Ich verstehe die Bedeutung von gut dokumentiertem Code. Ich verstehe aber auch die Bedeutung von selbstdokumentierendem Code. Je einfacher es ist, eine bestimmte Funktion visuell zu lesen, desto schneller können wir bei der Softwarewartung fortfahren.
Vor diesem Hintergrund möchte ich große Funktionen in andere kleinere Funktionen aufteilen. Aber ich mache das bis zu einem Punkt, an dem eine Klasse mehr als fünf von ihnen haben kann, nur um eine öffentliche Methode zu bedienen. Multiplizieren Sie nun fünf private Methoden mit fünf öffentlichen, und Sie erhalten ungefähr fünfundzwanzig versteckte Methoden, die von diesen öffentlichen Methoden wahrscheinlich nur einmal aufgerufen werden.
Sicher, es ist jetzt einfacher, diese öffentlichen Methoden zu lesen, aber ich kann nicht anders, als zu viele Funktionen zu haben, ist eine schlechte Übung.
[Bearbeiten]
Die Leute haben mich gefragt, warum ich denke, dass es schlecht ist, zu viele Funktionen zu haben.
Die einfache Antwort: Es ist ein Bauchgefühl.
Meiner Meinung nach kann ich nicht auf stundenlange Erfahrung in der Softwareentwicklung zurückgreifen. Es ist nur eine Ungewissheit, die mir eine "Schreibblockade" gab, aber für einen Programmierer.
In der Vergangenheit habe ich nur persönliche Projekte programmiert. Erst kürzlich bin ich zu teambasierten Projekten übergegangen. Jetzt möchte ich sicherstellen, dass andere meinen Code lesen und verstehen können.
Ich war mir nicht sicher, was die Lesbarkeit verbessern würde. Einerseits dachte ich daran, eine große Funktion durch verständliche Namen in andere kleinere zu trennen. Aber es gab eine andere Seite von mir, die sagte, dass es nur überflüssig ist.
Also bitte ich dies, mich selbst zu erleuchten, um den richtigen Weg zu finden.
[Bearbeiten]
Unten I der zwei Versionen , wie ich konnte mein Problem lösen. Die erste Lösung besteht darin, keine großen Codestücke voneinander zu trennen. Der zweite macht verschiedene Dinge.
Erste Version:
public static int Main()
{
// Displays the menu.
Console.WriteLine("Pick your option");
Console.Writeline("[1] Input and display a polynomial");
Console.WriteLine("[2] Add two polynomials");
Console.WriteLine("[3] Subtract two polynomials");
Console.WriteLine("[4] Differentiate two polynomials");
Console.WriteLine("[0] Quit");
}
Zweite Version:
public static int Main()
{
DisplayMenu();
}
private static void DisplayMenu()
{
Console.WriteLine("Pick your option");
Console.Writeline("[1] Input and display a polynomial");
Console.WriteLine("[2] Add two polynomials");
Console.WriteLine("[3] Subtract two polynomials");
Console.WriteLine("[4] Differentiate two polynomials");
Console.WriteLine("[0] Quit");
}
Letzterer ruft in den obigen Beispielen eine Funktion auf, die während der gesamten Laufzeit des Programms nur einmal verwendet wird.
Hinweis: Der obige Code ist verallgemeinert, entspricht jedoch der Art meines Problems.
Nun, hier ist meine Frage: welche? Wähle ich den ersten oder den zweiten aus?