2008-12-22 4 views
11

NB Gefühl - Diese Frage ist nicht ein Stich an RoR oder Redmine Plugin-SystemDas "Du machst es falsch !!"


Ich habe für Redmine auf einem benutzerdefinierten Plugin arbeitet, ein Projekt-Manager-Plattform mit Ruby on Rails (RoR) gebaut . Jetzt bin ich nicht wirklich ein RoR oder für diese Angelegenheit, ein Ruby-Typ. Ich habe es geschafft, das Plugin zu schreiben, und alles funktioniert, obwohl es ein Durcheinander hinter den Kulissen ist. Das "Du machst es falsch !!" Das Gefühl kommt von der Tatsache, dass ich weiß, dass RoR ein hoch angesehener Rahmen ist, also muss es einfach, besser, elegant, hier etwas geben, was ich getan habe. Mir geht es nicht darum, diesen Code so perfekt wie möglich zu machen, nur weil dies nur intern verwendet wird, und wirklich, die Leute kümmern sich nur darum, dass es "funktioniert" (ich bin der Einzige, der sich den Code ansieht).

Welche Worte der Weisheit können weitergegeben werden, um das "Du machst es falsch !!" zu unterdrücken? Gefühl? Ich bin ziemlich sicher, wenn dieses Gefühl vorhanden ist, dann ist es wahrscheinlich wahr, dass die vorliegende Aufgabe falsch gemacht wird.

Antwort

66

Was ist das Problem? Das Gefühl "Du tust es falsch !!" ist die Essenz unserer Existenz.

+6

am besten. Antworten. je. –

+2

In der Tat. Ein Programmierer, der nie fühlt, dass es juckt, muss eine andere Linie der Arbeit finden. Oder zumindest bleib bei meinen Teams. –

+14

kann ich nur zustimmen. Lassen Sie mich Scott (http: // simpable.com/code/sick /): "Wenn du als Entwickler den Code, den du vor 6 Monaten geschrieben hast, jemals anschauen kannst und keine Übelkeit bekommst, ist es an der Zeit, es einzupacken und etwas anderes zu tun." – Cohen

4

RoR wie viele andere Frameworks, machen es wirklich einfach, Dinge zu tun, die sie erwarten, und ziemlich schwierig, Dinge zu tun, die sie nicht erwartet haben. Dies gilt für fast alle Frameworks, bei denen es sich nicht um benutzerdefinierte Frameworks handelt, die Sie speziell für Ihr Projekt entwickelt haben. Die Tatsache, dass man hinter den Kulissen viel Unordentliches tun musste, um etwas zu tun, überrascht mich nicht. Also, wenn Sie etwas tun, was nicht erwartet wurde, dann ist es ganz natürlich, sich so zu fühlen, als würden Sie es falsch machen, denn aus der Sicht der Framework-Designer sollten Sie das überhaupt nicht tun.

+0

In Anbetracht dessen, dass er meinte, dass sein Mangel an Vertrautheit mit RoR am meisten das Problem mit dem Plugin "Du machst es falsch" - Unsinn und Code-Chaos ... -1 aus Mangel an Lesen. –

10

Unterdrücken Sie nicht das Gefühl! Das ist das ist falsch Gefühl ist der Schlüssel zur Innovation. Fragen Sie sich einfach: "Wenn das falsch ist, was wäre dann besser?"

8

Denke nicht daran "Du machst es falsch!" Betrachten Sie es als "Was ist ein besserer Weg, dies zu tun?" Am besten, wenn Sie es effizienter machen, im schlimmsten Fall entdecken Sie etwas, das bei Ihrem nächsten Projekt nützlich sein könnte.

6

Ich habe noch nie ein Stück Code fertiggestellt, mit dem ich zu 100% zufrieden bin. Aber ich glaube nicht, dass es einen einzigen (nicht-trivialen) Code in der Welt gibt, der nicht verbessert werden kann.

Es sind die Entwickler, die immer denken, dass sie großartigen Code geliefert haben, um den ich mir Sorgen mache.

4

In vielen Fällen verwendet RoR 'syntaktischen Essig' genau um Ihnen das Gefühl zu geben, dass es einen besseren Weg gibt. Sie sollten sich wahrscheinlich einige andere Plugins ansehen, um ein Gefühl für die verwendeten Konventionen zu bekommen. Generell, wenn Sie der Konvention mit RoR folgen, fühlt es sich richtig an.

+1

+1 für den Ausdruck syntaktischer Essig. –

29

Ich habe vor einer Weile einen Ratschlag gelesen, der mir in solchen Situationen hilft. Es kann lähmend sein, etwas "richtig" zu machen, wenn man nichts davon weiß.

Also, wenn ich bauen, sagen wir, ein Kundenmanagementanwendung, könnte mein erster Schritt sein:

Bauen Sie ein wirklich beschissenKundenmanagementanwendung.

Es ist schwer, einen guten zu bauen, aber es ist einfach, einen beschissenen zu bauen, der das eine oder andere macht. Und obwohl es schwer ist zu wissen, wann etwas gut genug ist, ist es ziemlich einfach zu wissen, wann etwas beschissen ist.

Sobald ich die beschissene vor mir habe, kann ich klar sehen, was verbesserungsbedürftig ist. Und es ist leicht, es zu ändern, weil der Miesmacher tatsächlich etwas tut; Also, mit dem TDD-Prinzip, verbessere ich es, während es funktioniert. Irgendwann entwickelt sich die beschissene Anwendung zu einer guten.

Viele der Anwendungen, an denen ich gearbeitet habe, die am Ende fehlten, begannen damit, nicht zu sein ... und waren daher übermäßig kompliziert und schwer zu ändern, zu debuggen und zu verbessern.

+1

Schön. Ich wusste nicht, dass meine Art zu entwickeln geschätzt wird. – VVS

+0

Ein volles Herz +1 hier. Ich denke nicht, dass es möglich ist, eine anständige Version von irgendetwas zu bauen, bis Sie bereits eine "beschissene" Version davon gebaut haben. (Und das beschränkt sich nicht nur auf das Erstellen von Software!) – reuben

5

Sie sagen, Schriftsteller sollten jeden Tag etwas schreiben, ob es gut ist oder nicht.

Marc Raibert's advice ist, wenn Sie nicht etwas Gutes schreiben können, schreiben Sie etwas Schlechtes, und dann polieren Sie es aus.

Meine Erfahrung Programmierung ist, wenn ich etwas mehrmals getan habe, ich endlich anfangen, gut darin zu werden.

Erwarten Sie also keine Perfektion.

2

Wenn Sie auf ein Stück Code zurückblicken, den Sie heute ein paar Jahre in der Zukunft schreiben, sind Sie wahrscheinlich schockiert, wie schlimm es ist. Anders gesagt, es kann zeigen, wie viel Sie im Laufe der Zeit entwickelt haben. Das Gefühl, das Sie bekommen, ist Teil des kontinuierlichen Lernens. Beginnen Sie damit, es richtig zu machen und es stabil zu machen. Eleganz kommt mit der Zeit, und Mode ändert sich im Computerprogrammierstil wie bei allem anderen.

+0

Gut gesagt, ich bleibe definitiv in der "Must-be-most-elegant-on-first-iteration" -Spur stecken. Nichts ist mehr ein Realitäts-Check, als halb-gestartete Skripte zu betrachten. –

1

Wenn Sie das erste Mal mit einer Sprache, einem Framework usw. arbeiten, werden Sie etwas "falsches" tun. Wenn Sie andere Anwendungen entwickeln oder Verbesserungen an Ihrer ursprünglichen Anwendung vornehmen, erfahren Sie, was behoben werden muss oder was Sie besser machen könnten.

Bei jedem Projekt habe ich fast immer das Gefühl, etwas suboptimal oder nicht perfekt gemacht zu haben, aber wenn es darauf ankommt, funktioniert der Code, lässt die Leute tun, was sie brauchen, und ist in einem Weg, ein Erfolg. Also schreib weiter und lerne weiter!

3

Speziell mit Redmine ist das Plugin-System noch neu und wir versuchen, die Best Practices auszuarbeiten. Da Redmine (und Ruby on Rails) Open Source sind, würde ich vorschlagen, eure Gefühle in die Foren des Projekts einzubringen und zu sehen, was die Leute denken. Andere stimmen vielleicht mit Ihnen überein und können helfen, die Systeme zu verbessern.

Hinweis: Ich bin einer der Kernentwickler von Redmine, half beim Aufbau des Redmine-Plugin-Systems und hat etwa ein Dutzend Redmine-Plugins veröffentlicht. Und selbst ich fühle, dass die Dinge von Zeit zu Zeit umgekehrt sind.

2

"Was ist das Problem? Das" Du machst es falsch !! "Gefühl ist die Essenz unserer Existenz."

Vielleicht nicht wirklich verwandt, aber:

„Ein Programmierer ist jemand, der die Probleme ein Leben aus der Lösung macht die von den Lösungen verursacht wurden er vor erfunden“

+0

s/Programmierer/Politiker / – slacker