Bestimmen Sie eine bessere Codierungspraxis

8

Als neuer Programmierer war es immer schwierig, Anwendungen zu erstellen, da ich mich noch in der Lernphase befinde.

Ich verstehe, dass es zahlreiche Möglichkeiten gibt, um das gleiche Ergebnis zu erzielen, um einen bestimmten Effekt oder eine bestimmte Funktion in einer Anwendung zu erzielen.

Sollte ich jedoch nur eine Funktion in ihrem Arbeitszustand erstellen, was bedeutet, dass sie in Ordnung sein sollte, solange sie so funktioniert, wie ich es möchte.

Können mir andere Programmiererkollegen auf höherer Ebene freundlicherweise mitteilen, wie die Dinge richtig gemacht werden?

Fußabdruck.
quelle
Ich weiß, dass Sie nach dem Codieren gefragt haben, aber das ist ein sehr kleiner Teil dessen, was einen Softwareentwickler ausmacht. Erfahren Sie mehr über Anforderungsanalyse, Anwendungsfälle, Softwarearchitektur, Entwurfsmuster, detaillierte Entwurfsdokumentation, automatisierten Komponententest, Systemtest, Integrationstest, Debugging, Fehlerverfolgung, Aufwandsschätzung, Projektplanung, Teamarbeit, spitze Chefs, unbezahlte Überstunden und Mountain Dew ...
Mawg sagt, Monica

Antworten:

4

Es gibt mehrere "bekannte" Codierungsstandards, die Sie sich ansehen können. Für die Embedded C-Entwicklung wäre beispielsweise MISRA C ein guter Anfang. Dies ist ein netter C ++ - Codierungsstandard. Es gibt wahrscheinlich andere für andere Sprachen.

Am Ende ist es viel gesunder Menschenverstand und gemeinsame Praktiken, das gewinnt man mit Erfahrung. Natürlich haben Arbeitsplätze ihre eigenen Kodierungsstandards (oder sollten es zumindest haben), an die Sie sich auch halten sollten.

littleadv
quelle
Nun, es ist einige Zeit her, seit ich es gelesen habe, aber ich scheine mich zu erinnern, dass MISRA ein totaler Witz ist. #
DeadMG
1
@DeadMG - Witz? Nein, warum? Es ist auf eine bestimmte Nische ausgerichtet, und für diejenigen, die sich nicht in dieser Nische befinden, kann es wie ein Overkill aussehen. Für eine sicherheitskritische Entwicklung wäre dies jedoch eine sehr gute Richtlinie. Ich habe mit MISRA C gearbeitet, als ich einen Codierungsstandard für mein Team entwickelte, und ich habe einige Dinge von dort übernommen (aber definitiv nicht alles, wir haben keinen sicherheitskritischen Code entwickelt, der keine Fehler enthalten sollte). Ich erwähne es hier jedoch als Beispiel für einen sehr umfassenden Codierungsstandard.
Littleadv
Es ist einige Zeit her, seit ich es gelesen habe, daher erinnere ich mich an keine konkreten Beispiele. Ich erinnere mich jedoch daran, es gelesen zu haben und fest davon überzeugt zu sein, dass es von Menschen geschrieben wurde, die keine Ahnung hatten, was sie taten oder sagten.
DeadMG
@DeadMG - dann scheint es mir, dass Sie keine Ahnung hatten, wofür es entwickelt wurde.
Littleadv
4

Das Mantra, das ich meinen Junior-Entwicklern wiederhole, lautet: "Lass es funktionieren, dann mach es hübsch." Ihr Code sollte einem Standard für die Benennung folgen und was nicht. Ich verwende die Framework Design Guidelines beim Schreiben von C # mit einer Ausnahme: Ich setze immer ein _ vor den Namen eines privaten Mitglieds. Erleichtert das Auffinden erheblich.

Jedenfalls gibt es hier eine zweite Frage. Und so können Sie den von Ihnen geschriebenen Code verbessern. Ich werde auf Clean Code und Triple P verweisen, da dies für Entwickler gelesen werden muss, die lernen möchten, wie man besser codiert.

Michael Brown
quelle
4

Wir sind alle noch in der Lernphase. Es wird ewig dauern.

Ich denke, der beste Weg, um Ihr Wissen zu verbessern, besteht darin, aus dem Code anderer zu lernen oder Paarprogramme mit höheren Profilen als Sie durchzuführen.

Daher sollten Sie Folgendes tun:

  • Bitten Sie um Paarüberprüfung oder aktive Programmierung. Warten Sie nicht, bis Ihnen dies vorgeschlagen wird. Wenn Sie ein Einzelentwickler sind, sollten Sie Online-Überprüfungsplattformen in Betracht ziehen .

  • Lesen Sie so viel Code wie möglich. Auf diese Weise lerne ich viele Funktionen des .NET Frameworks. "Oh, ich wusste nicht, dass ich das in nur einer Codezeile machen kann!" Es ist wie bei Romanautoren, die ihre Ideen von anderen Autoren erhalten. Sie wissen nicht, wo Sie suchen sollen? Wählen Sie ein zufälliges Open-Source-Projekt aus und stöbern Sie darin, genau wie es Stanley Kubrick getan hat, um sich inspirieren zu lassen : In die Bibliothek gehen und JEDES Buch in JEDER Kategorie auswählen.

In einer Kubrick-Biografie wird beschrieben, dass er seine Wissensbasis mit einer einfachen Methode erweitert. Er besuchte seine Bibliothek und wählte zufällige Bücher aus zufälligen Informationskategorien aus, ohne sich die Titel anzusehen. Er würde sich dann zwingen, diese Bücher zu lesen. Auf diese Weise zwang Stanley seinen Geist, regelmäßig Neuland zu betreten.

Um noch schneller zu lernen, setzen Sie das, was Sie in der Praxis sehen, in Ihren eigenen Code oder in Beispielprojekte. Es wird viel helfen, sich zu merken.

Lernen ist wahrscheinlich das, was uns alle beim Programmieren antreibt. Es ist eine ständige Erforschung.

Gemeinschaft
quelle
2

Realistisch gesehen können Sie die Codierungsstandards anderer Personen nicht anwenden. Dies liegt daran, dass sie Anforderungen haben, die Sie wahrscheinlich nicht haben. Schauen Sie sich beispielsweise den C ++ - Styleguide von Google an. Dies ist nicht der Fall, weil es gutes C ++ erzeugt, sondern genau das Gegenteil - weil es schreckliches C ++ im C-Stil erzeugt, damit sie mit ihrem alten C-Code interagieren können.

Die einzige Möglichkeit, gute Codierungsstandards realistisch zu entwickeln, besteht darin, sie entweder von jemandem zu erben, der bereits lange an der Codebasis gearbeitet hat, oder aus Ihren eigenen harten Erfahrungen damit zu lernen.

Sie sollten zuerst entwerfen, dann codieren. Sich in die Programmierung zu stürzen ist eine schlechte Angewohnheit. Aber mach es nicht hübsch - das ist nur Zeitverschwendung.

DeadMG
quelle
0

Einige gute Verbesserungsmöglichkeiten sind:

  • Bücher lesen
  • Arbeiten in einem Team unter der Autorität erfahrener Entwickler

Sie geben uns nicht viele Informationen, um Ihnen genauer zu helfen ...

KLE
quelle
0

Ich würde Verbesserungen aus verschiedenen Richtungen angehen:

Verwenden Sie einige Tools / Plugins, die Ihnen während der Programmierung sofortiges Feedback geben, damit Sie Ihren Code besser lesbar, benutzerfreundlich, robust, performant und korrekt machen können. In Java können Sie beispielsweise checkstyle, PMD und Findbugs verwenden

Schreibtests: Das allein verbessert Ihren Entwicklungsprozess und gibt Ihnen ein Sicherheitsnetz, wenn Sie experimentieren und versuchen, Ihren Code zu verbessern, z. B. durch Refactoring.

Verwenden Sie Metriken, um Ihr Ergebnis zu überprüfen und weitere Hinweise zu erhalten. Zum Beispiel in Java sind Sie jdepend, Metriken, JavaNCSS, EclEmma.

Holen Sie sich neue Ideen und Informationen von

  • Bücher lesen
  • Code-Review
  • Paar-Programmierung
  • Gespräche mit anderen Entwicklern, z. B. in Brown-Bag-Meetings / Mittagspausen
  • Podcasts anhören
  • Stackexchange-Beiträge lesen.
DaveFar
quelle
0

Ich persönlich bin ein Fan des High Integrity C ++ - Standards.

Die Regeln sind äußerst objektiv, es gibt zum Beispiel keine Namenskonvention.

3 Klasse

3.1 Allgemeines

High Integrity CPP Regel 3.1.1 Definitionen von Zugriffsebene Organisieren ‚Klasse‘, in der folgenden Reihenfolge: public, protected, private. (QACPP 2108, 2109, 2191, 2192, 2195)

Begründung Reihenfolge durch Verringerung des Publikumsumfangs. Kundenprogrammdesigner müssen die öffentlichen Mitglieder kennen. Designer potenzieller Unterklassen müssen über geschützte Mitglieder Bescheid wissen. und nur Implementierer der Klasse müssen über private Mitglieder und Freunde Bescheid wissen.

class C // correct access order
{
public: // ...
protected: // ...
private: // ...
};

Referenz Industriestärke C ++ A.12, A.13;

Matthieu M.
quelle