Wie bringen wir Programmierer dazu, bestehende Funktionen nachzuschlagen, bevor sie ihre eigenen schreiben?

7

Warum schreiben so viele Leute immer noch beschissene Versionen von Dingen in Standardbibliotheken? Nicht um nach PHP-Entwicklern zu suchen, aber Leute lesen den

Andrew Clark 13.03.2009, 15:30
quelle

10 Antworten

6

Bessere Suchtechniken. und Domänenspezifische Vertrautheit

Wie sucht ein Entwickler nach einer Funktion, von der er den Namen nicht kennt? Oder vielleicht gibt es keine GENAU eingebaute Funktion, um zu tun, was sie wollen, aber etwas, das sie verwenden können, um eine Menge Code zu speichern. Sie müssen in der Lage sein, die richtige Terminologie für das vorliegende Problem zu finden, und von dort wissen Sie, wonach Sie suchen müssen. Dies erreichen Sie am besten, indem Sie die für Ihre Problemdomäne spezifischen Themen lesen. Gehen Sie weg von der Programmierung bestimmter Ressourcen und verbringen Sie irgendwann in dem Bereich, für den Sie programmieren ... sei es Einzelhandel, Medizin, Versicherung, etc.

    
Neil N 13.03.2009, 15:40
quelle
11

Peer Review kann helfen, diese Art von Sache zu fangen. Wenn Sie einen anderen Entwickler haben, der sich den Code ansieht, und er ständig Implementierungen von Standard-Bibliotheksmethoden findet, sollte die Überprüfung fehlschlagen, es sei denn, es gibt einen guten Grund, das Rad neu zu erfinden.

    
Elie 13.03.2009 15:36
quelle
8

Junge, ehrgeizige Programmierer mögen es, jedes Problem selbst zu lösen. Sie brauchen keine stinkenden Bibliotheken. Ältere, faule Programmierer suchen lieber nach vorhandenen Lösungen für das Problem.

Also mein Tipp: Wenn Sie das nächste Mal einen Programmierer beauftragen, wählen Sie den alten Mann, der im Empfangsbereich einschläft.

Nur ein Scherz, meistens. Peer Review und Bildung ist die Antwort.

    
Boden 13.03.2009 15:40
quelle
6

Zusammenfassung: Annahme ist die Mutter aller FUBARs

Ich sehe das viel von Kollegen, die mit dem Konzept von Frameworks nicht vertraut sind (Gott, wie sie sich über "zwei Sprachen in einem" beschweren), nämlich: alte C ++ - Typen, die plötzlich mit C # tauchen, um Hashtables neu zu erstellen scratchen ...

Offensichtlich ist ein großer Teil dieses Phänomens aus diesem Blickwinkel nicht aus alten Denkweisen und Gewohnheiten herauszutreten. Wenn Sie sich in einer neuen Umgebung befinden, müssen Sie die neuen Regeln lernen. Der einzige Weg, damit umzugehen, von außen nach innen zu schauen, ist das Training, sei es die Paar-Programmierung für eine Weile oder etwas Formales.

Mangelnde Vertrautheit mit Ihren Werkzeugen erzeugt die Geringschätzung anderer.

    
annakata 13.03.2009 15:43
quelle
3

Ein einfaches Coding-Stil-Dokument könnte helfen, die Entwickler daran zu erinnern, dass es Bibliotheken gibt (vielleicht einige bevorzugte) und dass sie mit ihnen vertraut sein sollten.

Manchmal müssen Sie die Leute nur daran erinnern.

Eine Peer Review würde helfen.

    
royatl 13.03.2009 15:41
quelle
3

PHP ist genau dann gut dokumentiert, wenn Sie genau wissen, wonach Sie suchen. Zum Beispiel würden Sie Arrays und Array Funktionen Abschnitte, um zu sehen, was Sie mit Arrays tun können. Und raten Sie mal, es gibt keine Erwähnung von SPL.

    
vartec 13.03.2009 15:49
quelle
3

Sie sollten auch die Forschung anregen, bevor Sie tatsächlich Code schreiben. Ich gehe normalerweise auf Probleme zu, indem ich über einen Weg nachdenke, es zu tun, und dann versuche ich, etwas in der Standardbibliothek oder anderen Bibliotheken zu finden, die mir helfen werden. Ich würde sagen, dass eine Stunde Forschung in einigen Fällen Tage des Codierens wert sein kann.

Wenn die Leute das nicht tun, ist es vielleicht eine gute Idee, dass jemand ihnen Fragen zu ihrer allgemeinen Herangehensweise an das Problem stellt und welche Bibliotheksfunktionen / Klassen sie verwenden. Wenn sie etwas Offensichtliches vermissen, schlagen Sie es ihnen vor.

    
Jason Baker 13.03.2009 16:14
quelle
2

Zwei Gründe kommen mir schnell in den Sinn. Erstens ist die Standard-PHP-Bibliothek nicht gut bekannt und leidet an schlechter Dokumentation. Die php.net-Website wird allgemein als das beste Gut der Sprache angesehen, aber viele neuere integrierte Klassen (wie SPL, Reflection API, DomDocument, etc.) sind kaum mehr als eine Liste von Methoden ohne viel Kontext.

Wichtiger ist jedoch, dass es so aussieht, als ob die vollständige SPL niemals mit einer PHP-Version ausgeliefert wurde, die vor der (noch nicht veröffentlichten) Version 5.3 lag. Dies ist ein Mörder, was die Adoption angeht. Normalerweise haben Leute, die PHP-Code schreiben, keine Kontrolle darüber, was in ihrer PHP-Binärdatei enthalten ist. Das wird von ihrem Webhost- und / oder Betriebsteam gehandhabt, und Webhosts und / oder Betriebsteams haben andere Ziele als ein Entwickler und werden nicht jede optionale Erweiterung installieren, die mitkommt. Das bedeutet auch, dass Projekte wie Drupal, Joomla, Wordpress usw. sich nicht darauf verlassen können, dass der SPL überall installiert wird, also benutzen sie ihn nicht.

Teil der Grund, warum PHP über Perl "gewonnen" hat war eine einzige Installation hatte alles, was Sie jemals benötigt haben. Optionale Erweiterungen wurden nie so weit übernommen, bis sie Teil der Basisinstallation wurden.

    
Alan Storm 13.03.2009 15:58
quelle
1

Sehr schwer zu beantwortende Frage. Offensichtlich hilft Peer Review, aber auch die richtige Dokumentation. Verfügen Ihre Projekte über technische Spezifikationen, in denen Sie die zu erstellenden Klassen und Oberflächen abbilden?

Wenn ja, sollte jemand anderes im Team die Spezifikationen überprüfen und darauf hinweisen, wo der vorhandene Code verwendet werden kann ...

    
user69889 13.03.2009 15:43
quelle
0

Stimmen Sie dem Training und dem Peer-Review-Verfahren zu, aber auch das Testen von Einheitentests und Codedokumentation sollte beim NIH -Syndrom helfen :)

    
si618 13.03.2009 16:04
quelle

Tags und Links