Das Problem: Zwei Entwickler => drei Meinungen zu Einrückungen, Klammern zu neuen Zeilen oder nicht usw.
Normalerweise arbeiten wir mit drei oder vier Personen an unseren Projekten und jede von ihnen hat ihren eigenen Codestil. Ich weiß, die gängige Lösung besteht darin, sich auf einen Codestil zu einigen, den jeder verwenden muss, aber ich möchte kreative Programmierer nicht dazu zwingen, einen Anzug zu tragen, der nicht zu ihnen passt.
Die Frage ist also: Gibt es eine Möglichkeit, jeden Programmierer seinen eigenen Stil leben zu lassen, aber eine gemeinsame Codebasis im Repository zu haben? Ich denke an ein git / svn / whatever-Plugin, das beim Auschecken und Festschreiben zwischen persönlichem und allgemeinem Stil wechselt. Es scheint mir, dass der schwierige Teil dieses Ansatzes darin besteht, korrekte Unterschiede zwischen den Versionen einer Datei zu unterstützen
quelle
Antworten:
Nein, Sie müssen einen Standard erstellen. Wenn Sie Teammitglied B geändert haben (entweder mit einem automatisierten IDE-Tool oder manuell), hat ein ganzer Haufen Code-Teammitglied A geschrieben, der festgeschrieben und als Änderung angezeigt wird.
Dies ist etwas, dem sich fast jedes Team gegenübersieht, und aus diesem Grund werden Standards "erzwungen". Ich würde vorschlagen, dass Sie die Standards der Sprachbehörden als Grundlage befolgen und sie an Ihr Team anpassen.
Ein einheitlicher Codierungsstil trägt auch zur Wartbarkeit des Projekts bei und verringert die Eintrittsbarriere für neue Personen, die an dem Code arbeiten.
quelle
Nein, Sie müssen einen Codierungsstandard definieren (vorzugsweise einen, der bereits vorhanden ist), und Ihre Entwickler müssen sich daran halten. Ein professioneller Programmierer zu sein bedeutet, dass Sie sich an jeden Codierungsstandard anpassen können, der in dem Projekt verwendet wird, an dem Sie arbeiten.
quelle
go fmt
. Siehe golangtutorials.blogspot.fr/2011/06/…JA, es kann funktionieren, solange alle Stile sinnvoll sind und die Leute nicht den Code anderer Leute ändern, um ihren Vorlieben zu entsprechen und / oder Stile in einer einzigen Codedatei zu mischen.
Es ist nicht ideal, aber es unterscheidet sich nicht davon, alten Code zu erben, der nach einem anderen "Standard" als dem Ihren erstellt wurde, und ihn in Ihre Codebasis integrieren zu müssen.
Also, wenn Sie es tun müssen, einige Richtlinien:
quelle
Die kurze Antwort lautet Nein.
Während Meinungen in der Arbeit besonders in einem wissensbasierten Job wie der Softwareentwicklung geschätzt werden sollen, müssen Entwickler erkennen, dass eine Meinung nur eine Meinung ist und dass sie dazu da sind, Software zu schreiben, ohne darüber zu streiten, welcher Zeileneinrückungsstandard am besten ist.
Das Ziel eines Normungsdokuments sollte darin bestehen, eine Reihe gemeinsamer Kodierungsnormen / -konventionen durchzusetzen / vorzuschlagen, die sich an diese richten
Die Standarddokumente tragen dazu bei, dass der Code einfach zu lesen, zu warten und in seinen Konventionen konsistent ist.
Dies ist von unschätzbarem Wert, wenn Sie den Code vor dem Einchecken überprüfen, einen anderen Code debuggen oder den Code mehrere Jahre nach dem Ausscheiden des ursprünglichen Entwicklers ändern.
Normalerweise überprüfe ich beim Erstellen eines Coding Standards-Dokuments die Industriestandards für die von mir verwendete Sprache (C, C #, SQL), verwende die am besten geeigneten Standards, verteile sie an die erfahrensten / einflussreichsten Entwickler zur Kommentierung, binde die Kommentare gegebenenfalls ein und dann Geben Sie das Dokument frei.
quelle
Theoretisch ist es möglich, Code automatisch neu zu formatieren, bevor er in Ihr Versionskontrollsystem übernommen wird.
Es gibt jedoch ein großes Problem: Automatische Code-Formatierungs-Tools sind nicht 100% zuverlässig. Sie könnten mit diesem System also tatsächlich Probleme in Ihren Code einführen. In meinen Augen tötet das die Idee. Es ist immer wichtiger, funktionellen Code zu haben als korrekt gestalteten Code!
Wenn das Projekt unterteilt ist und die meisten Teile des Codes den einzelnen Programmierern "gehören", ist es möglicherweise in Ordnung, sie ihre eigenen Stile verwenden zu lassen (innerhalb des vorgegebenen Rahmens). Wenn jedoch häufig mehrere Personen an demselben Codeteil arbeiten, muss wahrscheinlich ein Stil erzwungen werden.
Hier ist eine ähnliche Diskussion zum Stack Overflow .
quelle
Das einseitige automatische Neuformatieren von Code kann eine praktikable Lösung sein, wenn Sie:
Keines davon ist in vielen Fällen wirklich einfach zu bewerkstelligen, also ziehen Sie in Betracht, Ihre Schlachten hier auszusuchen! Ich habe Teams gesehen, die dies erfolgreich für ein C # /. NET-Projekt durchgeführt haben, bei dem die Neuformatierung bereits auf dem PC des Entwicklers stattgefunden hat, sodass dies unter bestimmten Umständen möglich ist.
quelle
absolut kannst du. Es geht nur darum, die kleinen Dinge nicht ins Schwitzen zu bringen.
Der einzige wichtige Standard ist "Behalten Sie den gleichen Stil wie der vorhandene Code bei". Solange Sie sich an einen Codierungsstil anpassen können, der nicht Ihr bevorzugter ist, können Sie mit jedem Codierungsstil arbeiten.
Was macht es also aus, in einem Unternehmen in 3 verschiedenen Stilen zu arbeiten? Ihre Entwickler benötigen , dies zu verstehen, dass das Schreiben von Code in der Art und Weise , wie sie finden für ihren Code ist aber , sobald sie Änderungen an einer anderen Datei, die verwendet einen anderen Stil, sie haben diesen Stil zu halten (oder es wird wirklich schlecht aussehen) . Eine Neuformatierung ist nicht zulässig (oder sie werden nur fortlaufend neu formatiert und die SCM-Unterschiede werden unbrauchbar) (und wenn Sie dies tun, sollte eine automatische Formatierung verwendet werden).
Sobald sie damit anfangen, werden sie wahrscheinlich zu einem Konsens darüber kommen, welchen Stil sie verwenden sollen, oder sie werden größtenteils zusammen driften. Wenn sie diesbezüglich kindisch sind und sich ständig neu formatieren, ist es an der Zeit, einen Standard aus dem Internet herunterzuladen und zu fordern, dass sie ihn verwenden. Möglicherweise möchten Sie dies trotzdem tun, nur um es ihnen als "Play nice or else" -Karte ins Gesicht zu winken.
quelle