Frage

Ich habe einen Artikel finden, die das Thema „Code Bewunderung“ diskutiert. Grundsätzlich sollte der Autor spricht darüber, wie Entwickler mehr skeptisch über Code, den sie schreiben. Wie wir „bewundern“, unser Code zu viel können, bringen unsere selbst es, was uns zu Bugs und anderen Pannen anfälliger, die vor uns liegen werden können.

Wie fühlen Sie sich zu diesem Thema? Und haben Sie weitere Tipps, wie dieses Problem zu vermeiden / bewusst werden?

War es hilfreich?

Lösung

Vor einigen Jahren war ich auf einem kleines „Hobby“ Projekt mit einem anderen zu arbeiten, und ich erkennen, dass wir neu bewerten Dinge hatten. Wir hatten eine Menge Code geschrieben, aber es war nicht alles gut Code.

Wir wollten nicht wirklich „wegzuwerfen“ die ganze Arbeit, die wir in gesetzt hatte Aber ich merkte etwas. Was am wichtigsten war die Menge der Arbeit, müssten wir in setzen von jetzt an .

Wir konnten nichts daran ändern, dass wir schon so viel Arbeit in das Projekt gesteckt hatte, so dass der einzige Weg, das zu minimieren total Menge Arbeit müsste das Projekt, wäre die zu minimieren Menge an Arbeit, die wir noch nicht getan .

Seit diesem Tag habe ich aufgehört zu meinen Code angebracht ist. Wenn ich zuversichtlich bin, dass es weg und von vorne anfangen zu werfen bedeutet weniger Arbeit, als es zu halten und es auf meine Bedürfnisse anzupassen, dann werde ich es wegwerfen.

Andere Tipps

Mein High-School-Kunstlehrer verwendet, um uns zu ermutigen, zu nehmen, was wir als unsere besten Zeichnungen werden und reißen sie auf; er nannte dies „die Seele Reinigung“. Seine Begründung war, dass, als Künstler, wurden wir angetrieben Kunstwerke zu schaffen, und jedes Mal, wenn wir etwas produziert, das hat uns gut gefallen und das gab uns Zufriedenheit, unsere Motivation zu schaffen fortsetzen würde verringert werden.

So folgte ich seinem Rat und riss meine besten Sachen, und es funktionierte. Anstatt meine Zeit zu verbringen, meine alte Arbeit bewundern, habe ich neue Sachen und ständig besser. Ich habe versucht, das gleiche Prinzip mit meinem Code zu folgen, aber es funktioniert nicht wirklich. Mein Computer eine harte Kunststoffschale, die fast unmöglich zu reißen durch

ich ein Fragment von Jeff Atwood Blog veröffentlichen, Saugen Weniger Jedes Jahr , und ich stimme 100%.

  

Ich habe oft gedacht, dass das Saugen weniger   Jedes Jahr ist wie bescheiden Programmierer   verbessern. Sie sollten unglücklich sein mit   Code, den Sie schrieb vor einem Jahr. Wenn du   Sie sind nicht, bedeutet, dass entweder A)   hat nichts in einem Jahr gelernt, B)   Ihr Code kann man nicht verbessert, oder C werden)   nie alten Code überdenken. Alle von denen   für Software ist der Kuss des Todes   Entwickler.

Wir möchten, dass unser schönen Code bewundern, aber es ist nicht immer einfach zu wissen, was zu bewundern. Komplizierte und aufwändige Code ist für bewundernswert Code manchmal verwechselt, während Eleganz und Einfachheit sollte vielmehr sein, was zu streben.

Zwei Zitate in den Sinn kommen:

  

"Debugging ist doppelt so hart wie das Schreiben   der Code in dem ersten Platz.   Daher schreiben, wenn Sie den Code als   geschickt wie möglich, Sie sind durch   Definition, nicht intelligent genug, um zu debuggen   es.“

     

- Brian Kernighan

und

  

"Machen Sie alles so einfach wie   möglich, aber nicht einfacher. "

     

- Albert Einstein

Jonathan Edwards schrieb einen eindrucksvoll schönen Essay zu diesem Thema durch die Arbeit auf dem O'Reilly-Buch aufgefordert, Beautiful Code . Hier ist der letzte Absatz, aber der Rest des Aufsatzes ist auch lesenswert.

  

Eine weitere Lektion, die ich gelernt habe, ist zu Misstrauen Schönheit . Es scheint, dass Verliebtheit mit einem Design unweigerlich zu Herzschmerz führt, wie hässlich Realitäten übersehen eindringen. Liebe ist blind, aber Computer sind es nicht. Eine langfristige Beziehung - ein System für die Jahre beibehalten - lehrt eine weiteren häusliche Tugenden wie Geradlinigkeit und Konventionalität zu schätzen. Schönheit ist eine idealistische Phantasie: Was wirklich zählt, ist die Qualität des nicht enden wollenden Gespräch zwischen Programmierer und Code, da jeder von lernt und passt sich an die anderen. Schönheit ist keine ausreichende Grundlage für eine glückliche Ehe.

Andere Versionen dieser gleichen Weisheit gibt es in anderen Bereichen. Samuel Johnson, über das Schreiben:

  

Lesen Sie über Ihre Kompositionen, und wo immer Sie mit einem Durchgang treffen, die Sie denken, besonders schön ist, schlagen Sie es aus.

William Faulkner-Version davon war viel prägnanter: „Ihre Lieblinge Kill“

Mein Vater-in-law arbeitet als Cutterin, und er vermeidet geflissentlich den Satz, wo der Film gedreht wird. Als er wieder zu besuchen hat, schirmt er die Augen so viel wie er kann. Dies liegt daran, wenn er entscheidet, ob eine Szene im fertigen Film zu schließen, hat er nicht von ihr beeinflusst werden will, wie viel Mühe es dauerte die Szene zu schießen. Was zählt, ist, wie gut die Szene im fertigen Film funktioniert.

Mein Essay „Meine Entwicklung als Programmierer“ (was ich verbinden würde, wenn ich nicht ein neuer Benutzer), vor allem ist die Skepsis gegenüber dem Code über das Lernen, die ich geschrieben hatte: ob es funktioniert, ob es sinnvoll, ob es verständlich ist (Paar Programmierung war ein echten Weckruf hier). Es ist schwer!

Ich bewundere meinen Code nie. Ich bewundere andere Völker-Code, der i „borgen“ und versuchen, emulieren sie oder besser, sie und ich finde, dass je mehr ich weiß, vor allem über die weitere Codierung i finde ich es gar nicht wissen. Das einzige, was von Wert sein Wold für Peer-Programmierer meinen Code zu bewundern und es ausleihen.

Ich glaube, er einen guten Punkt hat. Es ist frustrierend, mit Menschen zu arbeiten, die zu viel von diesem haben, wie es wirklich Teamwork und immer auf die beste Lösung für das Problem behindert.

Als ich ein wenig wahn sein kann, versuche ich Praktiken in Stelle zu setzen, die mich in der Realität geerdet halten. Für Code,

  • Unit-Tests : Dies halten uns mehr auf, was der Code tun sollte, als zu jeder abstrakten "Schönheit" gegenüber.

  • Shared Code Eigentum : Es gibt zwei Lager hier: geben den Menschen mehr das Eigentum an ihren Code und hoffen, dass Stolz übernimmt, oder geben sie weniger und Peer-Druck ins Spiel kommen lassen. Ich glaube, dass die Menschen mehr Eigenverantwortung zu geben an diesem Code Bewunderung führen kann. Wir üben Code Eigentum geteilt, so dass ich immer wieder zu sehen, wie jemand umschreiben meinen perfekten Code gezwungen, um es besser zu machen (im Kopf). Mir wurde schnell klar bewundernd es zu viel Zeitverschwendung war und emotional schwierig.

  • Paar Programmierung . Arbeitet Seite an Seite mit jemandem Sie realistisch hält

  • sonstiges Feedback : Dies sind alle Feedback-Schleifen, aber es gibt andere. Es gibt keinen besseren Weg, um zu sehen, ob etwas funktioniert als von jemandem beobachtet (versuchen) zu verwenden. Setzen Sie Ihre Arbeit vor so vielen Menschen wie möglich. Haben Sie Code-Reviews. Lesen Sie anderen Code der Menschen. Führen Sie statische Code-Analyse Tools.

Ich bin mit PurplePilot - ich meine eigenen Code nicht bewundern, und als solche bin ich ständig auf der Suche nach neuen, effizienteren (Hölle, einfacher) Möglichkeiten, das Gleiche zu tun. Ich mag das effektive c # Buch, nahm viele nützlichen Code von dort, dass ich bewundere.

würde ich ohne zu zögern haben Code wegzuwerfen und beginnen wieder, aber nicht unbedingt von Grund auf, das heißt, durch einen Code für ein bestimmtes Szenario zu schreiben und sie dann wegzuwerfen, werden Sie wahrscheinlich ein besseres Verständnis des Szenarios haben. Mit anderen Worten, es ist ein „böses Problem“, oder Sie haben eine anderen Weg gefunden, die nicht a la Edison funktioniert.

Es stellt eine größere Frage: wenn der Code nicht weggeworfen wird, oder zumindest revisited, auf Bibliotheken entwickelt, die stagnierende eine gute Sache immer

?

Es ist nichts falsch mit Ihrem Code zu bewundern ... dieser Teil des positiven Verstärkung Prozesses ist, dass Sie mehr und besseren Code in der Zukunft schreiben motivieren wird.

Allerdings verloren oder mißbraucht Bewunderung kann ein Problem sein. Wenn der Code nicht wirklich gut ist, oder hat Fehler, die nicht vom Gerät oder anderen Tests ausgesetzt, oder muß Refactoring / Redesign / Ersatz dann dieser fehl am Platz admiratoin ist ein Problem. Und Bewunderung unter Verwendung als Vorwand Teil des Prozesses zu überspringen - wie Code-Reviews oder nicht eine skeptische Haltung gegenüber Code -. Ist Missbrauch von Bewunderung

Wie alles andere, was gut ist, Bewunderung Code kann fehl am Platz oder missbraucht werden - es bedeutet nicht, dass es an sich schlecht ist. Das wäre wie wenn man sagt „Religion ist eine schlechte Sache, weil es Konflikte und Kriege zwischen den Menschen verursacht“.

Zwei Worte:. Code-Review

Sammeln Sie zwei oder mehr anderen Entwicklern und laden sie / Kommentar zu Ihrem Code zu überprüfen / zu kritisieren. ‚Köper wirft ein (zugegebenermaßen hart) Licht auf Ihrem Code.

Es ist vielleicht besser, eine gesündere Perspektive zu haben - wir sind keine Raketenwissenschaftler, und wir Heilung von Krebs nicht - es ist einfach funktionieren

.

(Ja, es ist vernünftig stolz auf ein ganzes Gebäude, Ihnen geholfen zu bauen, wenn Sie ein Architekt sind, aber haben sie wirklich viel ihr Selbstwertgefühl in einem individuellen Plan, oder einen Schrank auf dem Boden gewickelt 3 sie selbst entworfen?).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top