Was ist Ihre umstrittenste Programmiermeinung?

363

Dies ist definitiv subjektiv, aber ich möchte versuchen zu vermeiden, dass es argumentativ wird. Ich denke, es könnte eine interessante Frage sein, wenn die Leute sie angemessen behandeln.

Die Idee für diese Frage kam aus dem Kommentarthread meiner Antwort auf "Was sind fünf Dinge, die Sie an Ihrer Lieblingssprache hassen?" Frage . Ich habe behauptet, dass Klassen in C # standardmäßig versiegelt werden sollten - ich werde meine Argumentation nicht in die Frage einfügen, aber ich könnte eine ausführlichere Erklärung als Antwort auf diese Frage schreiben. Ich war überrascht über die Hitze der Diskussion in den Kommentaren (derzeit 25 Kommentare).

Welche umstrittenen Meinungen vertreten Sie ? Ich würde lieber die Art von Dingen vermeiden, die mit relativ wenig Grundlage ziemlich religiös sind (z. B. Platzieren von Zahnspangen), aber Beispiele könnten Dinge wie "Unit-Tests sind eigentlich nicht besonders hilfreich" oder "öffentliche Felder sind wirklich in Ordnung" sein. Das Wichtigste (für mich jedenfalls) ist, dass Sie Gründe für Ihre Meinung haben.

Bitte präsentieren Sie Ihre Meinung und Argumentation - ich möchte die Leute ermutigen, für Meinungen zu stimmen, die gut argumentiert und interessant sind, unabhängig davon, ob Sie ihnen zustimmen oder nicht.

Jon Skeet
quelle

Antworten:

875

Programmierer, die in ihrer Freizeit nicht zum Spaß programmieren, werden niemals so gut wie diejenigen, die dies tun.

Ich denke, selbst die klügsten und talentiertesten Leute werden niemals wirklich gute Programmierer, wenn sie es nicht als mehr als einen Job betrachten. Das heißt, sie machen nebenbei kleine Projekte oder spielen in ihrer Freizeit einfach mit vielen verschiedenen Sprachen und Ideen.

(Hinweis: Ich sage nicht, dass gute Programmierer nichts anderes als Programmieren tun, aber sie tun mehr als Programmieren von 9 bis 5)

Rost
quelle
769

Die einzige "Best Practice", die Sie ständig anwenden sollten, ist "Use Your Brain".

Zu viele Leute springen auf zu viele Bandwaggons und versuchen, Methoden, Muster, Frameworks usw. auf Dinge zu zwingen, die sie nicht rechtfertigen. Nur weil etwas neu ist oder weil jemand Respektierte eine Meinung hat, heißt das nicht, dass es für alle passt :)

EDIT: Nur zur Klarstellung - Ich denke nicht, dass die Leute Best Practices, geschätzte Meinungen usw. ignorieren sollten. Nur, dass die Leute nicht einfach blind auf etwas springen sollten, ohne darüber nachzudenken, warum dieses "Ding" so großartig ist, ist es auf das anwendbar, was ich bin mache, und welche Vor- und Nachteile bringt es?

Steven Robbins
quelle
711

"Googeln" ist okay!

Ja, ich weiß, dass es einige Leute da draußen beleidigt, dass ihre jahrelangen intensiven Auswendiglernen und / oder glorreichen Stapel von Programmierbüchern auf der Strecke bleiben zu einer Ressource, auf die jeder innerhalb von Sekunden zugreifen kann, aber Sie sollten das nicht gegen Leute halten die es benutzen.

Zu oft höre ich googelnde Antworten auf Probleme als Ergebnis von Kritik, und es ist wirklich sinnlos. Zunächst muss eingeräumt werden, dass jeder Materialien benötigt, auf die er sich beziehen kann. Sie wissen nicht alles und müssen nachschlagen. Ist es wirklich wichtig, woher Sie die Informationen haben, wenn Sie das zugeben? Ist es wichtig, ob Sie es in einem Buch nachgeschlagen, bei Google nachgeschlagen oder von einem sprechenden Frosch gehört haben, den Sie halluziniert haben? Eine richtige Antwort ist eine richtige Antwort.

Wichtig ist, dass Sie das Material verstehen, es als Mittel zum Zweck einer erfolgreichen Programmierlösung verwenden und der Kunde / Ihr Arbeitgeber mit den Ergebnissen zufrieden ist.

(obwohl, wenn Sie Antworten von halluzinatorischen sprechenden Fröschen erhalten, Sie wahrscheinlich trotzdem Hilfe bekommen sollten)

PhoenixRedeemer
quelle
710

Die meisten Kommentare im Code sind tatsächlich eine schädliche Form der Codeduplizierung.

Wir verbringen den größten Teil unserer Zeit damit, Code zu pflegen, der von anderen (oder uns selbst) geschrieben wurde, und schlechte, falsche, veraltete, irreführende Kommentare müssen ganz oben auf der Liste der nervigsten Artefakte im Code stehen.

Ich denke, irgendwann machen viele Leute sie einfach leer, besonders diese Blumenkasten-Monstrositäten.

Es ist viel besser, sich darauf zu konzentrieren, den Code lesbar zu machen, ihn nach Bedarf umzugestalten und Redewendungen und Eigenheiten zu minimieren.

Auf der anderen Seite lehren viele Kurse, dass Kommentare fast wichtiger sind als der Code selbst, was dazu führt, dass in der nächsten Zeile eine Rechnung zum Gesamtstil des Kommentierens hinzugefügt wird .

Ed Guiness
quelle
693

XML wird stark überbewertet

Ich denke, zu viele springen auf den XML-Zug, bevor sie ihr Gehirn benutzen ... XML für Web-Inhalte ist großartig, da es dafür entwickelt wurde. Ansonsten denke ich, dass einige Problemdefinitions- und Designgedanken jede Entscheidung, es zu verwenden, verhindern sollten.

Meine 5 Cent

Überbewertet
quelle
678

Nicht alle Programmierer sind gleich

Sehr oft denken Manager, dass DeveloperA == DeveloperB einfach, weil sie die gleiche Erfahrung haben und so weiter. Tatsächlich kann die Leistung eines Entwicklers 10x oder sogar 100x der eines anderen Entwicklers betragen.

Es ist politisch riskant, darüber zu sprechen, aber manchmal möchte ich darauf hinweisen, dass dies nicht immer der Fall ist , obwohl mehrere Teammitglieder gleich gut zu sein scheinen . Ich habe sogar Fälle gesehen, in denen Lead-Entwickler „hoffnungslos“ waren und Junior-Entwickler die gesamte eigentliche Arbeit erledigten - ich habe jedoch dafür gesorgt, dass sie den Kredit erhielten. :) :)

Dmitri Nesteruk
quelle
614

Ich verstehe nicht, warum die Leute denken, dass Java die absolut beste "erste" Programmiersprache ist, die an Universitäten unterrichtet wird.

Zum einen glaube ich, dass die erste Programmiersprache so sein sollte, dass sie die Notwendigkeit hervorhebt, Kontrollfluss und Variablen zu lernen, nicht Objekte und Syntax

Zum anderen glaube ich, dass Leute, die noch keine Erfahrung mit dem Debuggen von Speicherlecks in C / C ++ haben, nicht genau verstehen können, was Java auf den Tisch bringt.

Auch sollte der natürliche Fortschritt von "Wie kann ich das tun" zu "Wie kann ich die Bibliothek finden, die das tut" und nicht umgekehrt sein.

Lernen
quelle
541

Wenn Sie nur eine Sprache beherrschen, egal wie gut Sie sie kennen, sind Sie kein großartiger Programmierer.

Es scheint eine Einstellung zu geben, die besagt, dass alles, was Sie brauchen, wenn Sie C # oder Java oder eine andere Sprache, die Sie zu Beginn gelernt haben, wirklich gut beherrschen. Ich glaube es nicht - jede Sprache, die ich jemals gelernt habe, hat mir etwas Neues über das Programmieren beigebracht, das ich mit all den anderen wieder in meine Arbeit einbringen konnte. Ich denke, dass jeder, der sich auf eine Sprache beschränkt, niemals so gut sein wird, wie er sein könnte.

Es zeigt mir auch einen gewissen Mangel an Neugier und Experimentierfreude, der nicht unbedingt mit den Eigenschaften übereinstimmt, die ich von einem wirklich guten Programmierer erwarten würde.

Glenatron
quelle
535

Leistung ist wichtig.

Daniel Paull
quelle
488

Druckanweisungen sind eine gültige Methode zum Debuggen von Code

Ich glaube, es ist vollkommen in Ordnung, Ihren Code zu debuggen, indem Sie ihn damit verunreinigen System.out.println(oder welche Print-Anweisung auch immer für Ihre Sprache funktioniert). Dies ist häufig schneller als das Debuggen, und Sie können gedruckte Ausgaben mit anderen Läufen der App vergleichen.

Stellen Sie einfach sicher, dass Sie die Druckanweisungen entfernen, wenn Sie zur Produktion gehen (oder verwandeln Sie sie besser in Protokollierungsanweisungen).

David
quelle
467

Ihre Aufgabe ist es, sich arbeitslos zu machen.

Wenn Sie Software für Ihren Arbeitgeber schreiben, muss jede von Ihnen erstellte Software so geschrieben werden, dass sie von jedem Entwickler mit minimalem Aufwand aufgenommen und verstanden werden kann. Es ist gut gestaltet, klar und konsistent geschrieben, sauber formatiert, dokumentiert, wo es sein muss, wird wie erwartet täglich erstellt, in das Repository eingecheckt und entsprechend versioniert.

Wenn Sie von einem Bus angefahren, entlassen, entlassen oder von der Arbeit entlassen werden, sollte Ihr Arbeitgeber in der Lage sein, Sie kurzfristig zu ersetzen, und der nächste Mann könnte in Ihre Rolle eintreten, Ihren Code abholen und aufstehen und aufstehen Laufen innerhalb einer Woche Tops. Wenn er oder sie das nicht kann, dann haben Sie kläglich versagt.

Interessanterweise habe ich festgestellt, dass dieses Ziel mich für meine Arbeitgeber wertvoller gemacht hat. Je mehr ich mich bemühe, verfügbar zu sein, desto wertvoller werde ich für sie.

Mike Hofer
quelle
465

1) Die Business Apps Farce :

Ich denke, dass das ganze "Enterprise" -Framework Rauch und Spiegel sind. J2EE, .NET, die meisten Apache-Frameworks und die meisten Abstraktionen zur Verwaltung solcher Dinge verursachen weitaus mehr Komplexität als sie lösen.

Nehmen Sie ein normales Java- oder .NET-ORM oder ein vermeintlich modernes MVC-Framework, das "magisch" ist, um mühsame, einfache Aufgaben zu lösen. Am Ende schreiben Sie riesige Mengen an hässlichem XML-Boilerplate, das schwer zu validieren und schnell zu schreiben ist. Sie haben massive APIs, von denen die Hälfte nur dazu dient, die Arbeit der anderen APIs zu integrieren, Schnittstellen, die nicht recycelt werden können, und abstrakte Klassen, die nur benötigt werden, um die Inflexibilität von Java und C # zu überwinden. Das meiste brauchen wir einfach nicht.

Wie wäre es mit all den verschiedenen Anwendungsservern mit ihrer eigenen verdammten Deskriptorsyntax, den übermäßig komplexen Datenbank- und Groupware-Produkten?

Der Punkt dabei ist nicht die Komplexität == schlecht, sondern die unnötige Komplexität == schlecht. Ich habe in massiven Unternehmensinstallationen gearbeitet, in denen ein Teil davon erforderlich war, aber selbst in den meisten Fällen sind nur ein paar selbst erstellte Skripte und ein einfaches Web-Frontend erforderlich, um die meisten Anwendungsfälle zu lösen.

Ich würde versuchen, all diese Unternehmensanwendungen durch einfache Webframeworks, Open Source-DBs und einfache Programmierkonstrukte zu ersetzen.

2) Die n Jahre Erfahrung erforderlich:

Wenn Sie keinen Berater oder Techniker benötigen, um ein bestimmtes Problem im Zusammenhang mit einer Anwendung, API oder einem Framework zu lösen, benötigen Sie nicht wirklich jemanden mit 5 Jahren Erfahrung in dieser Anwendung. Was Sie brauchen, ist ein Entwickler / Administrator, der die Dokumentation lesen kann, der über Domänenkenntnisse in allem verfügt, was Sie gerade tun, und der schnell lernen kann. Wenn Sie in einer Sprache entwickeln müssen, wird ein anständiger Entwickler diese in weniger als 2 Monaten erlernen. Wenn Sie einen Administrator für den X-Webserver benötigen, sollte er in zwei Tagen die Manpages und Newsgroups gelesen haben und auf dem neuesten Stand sein. Alles andere und diese Person ist nicht wert, was sie bezahlt.

3) Der gemeinsame Lehrplan für "Informatik":

Die Mehrheit der Abschlüsse in Informatik und Softwaretechnik sind Bullen. Wenn Ihre erste Programmiersprache Java oder C # ist, machen Sie etwas falsch. Wenn Sie nicht mehrere Kurse voller Algebra und Mathematik erhalten, ist das falsch. Wenn Sie sich nicht mit funktionaler Programmierung befassen, ist diese unvollständig. Wenn Sie keine Schleifeninvarianten auf eine triviale for-Schleife anwenden können, sind Sie als vermeintlicher Informatiker Ihr Geld nicht wert. Wenn Sie Erfahrung in x- und y-Sprachen und Objektorientierung haben, ist es voller S ***. Ein echter Informatiker sieht eine Sprache in Bezug auf die Konzepte und Syntaxen, die er verwendet, und sieht Programmiermethoden als eine von vielen an. Er hat ein so gutes Verständnis für die zugrunde liegenden Philosophien, dass beide Sprachen, Entwurfsmethoden oder Spezifikationssprachen auswählen sollten trivial sein.

Daishiman
quelle
439

Getter und Setter werden stark überbeansprucht

Ich habe Millionen von Menschen gesehen, die behaupteten, öffentliche Felder seien böse, also machen sie sie privat und stellen allen Getter und Setter zur Verfügung. Ich glaube, dies ist fast identisch mit der Veröffentlichung der Felder, möglicherweise etwas anders, wenn Sie Threads verwenden (dies ist jedoch im Allgemeinen nicht der Fall) oder wenn Ihre Accessoren über eine Geschäfts- / Präsentationslogik verfügen (zumindest etwas „Seltsames“).

Ich bin nicht für öffentliche Felder, sondern dagegen, für jeden von ihnen einen Getter / Setter (oder ein Eigentum) zu machen und dann zu behaupten, dass dies eine Kapselung oder ein Verstecken von Informationen ist ... ha!

AKTUALISIEREN:

Diese Antwort hat in ihren Kommentaren einige Kontroversen ausgelöst, daher werde ich versuchen, sie ein wenig zu klären (ich werde das Original unberührt lassen, da dies von vielen Leuten befürwortet wird).

Zuallererst: Jeder, der öffentliche Felder nutzt, verdient Gefängnisstrafe

Das Erstellen privater Felder und das anschließende automatische Generieren der Getter und Setter für jedes einzelne Feld ist fast so schlecht wie das Verwenden öffentlicher Felder.

Viele Leute denken:

private fields + public accessors == encapsulation

Ich sage, dass die (automatische oder nicht automatische) Erzeugung eines Getter / Setter-Paares für Ihre Felder effektiv gegen die sogenannte Kapselung verstößt, die Sie erreichen möchten.

Lassen Sie mich zum Schluss Onkel Bob in diesem Thema zitieren (entnommen aus Kapitel 6 von "Clean Code"):

Es gibt einen Grund, warum wir unsere Variablen privat halten. Wir wollen nicht, dass sich jemand auf sie verlässt. Wir wollen die Freiheit, ihre Art oder Implementierung aus einer Laune heraus oder aus einem Impuls heraus zu ändern. Warum fügen dann so viele Programmierer ihren Objekten automatisch Getter und Setter hinzu und legen ihre privaten Felder frei, als wären sie öffentlich?

Pablo Fernandez
quelle
381

Meinung: SQL ist Code. Behandle es als solches

Entwickeln Sie also genau wie Ihr C #, Java oder eine andere bevorzugte Objekt- / Prozedurensprache einen Formatierungsstil, der lesbar und wartbar ist.

Ich hasse es, wenn ich schlampigen, frei formatierten SQL-Code sehe. Wenn Sie schreien, wenn Sie beide Arten von geschweiften Klammern auf einer Seite sehen, warum oder warum schreien Sie nicht, wenn Sie frei formatiertes SQL oder SQL sehen, das die JOIN-Bedingung verdeckt oder verschleiert?

MustStayAnonymous
quelle
354

Die Lesbarkeit ist der wichtigste Aspekt Ihres Codes.

Noch mehr als Korrektheit. Wenn es lesbar ist, ist es einfach zu beheben. Es ist auch leicht zu optimieren, leicht zu ändern, leicht zu verstehen. Und hoffentlich können auch andere Entwickler etwas daraus lernen.

Craig P. Motlin
quelle
342

Wenn Sie Entwickler sind, sollten Sie in der Lage sein, Code zu schreiben

Ich habe letztes Jahr ziemlich viel interviewt und für meinen Teil des Interviews sollte ich testen, wie die Leute dachten und wie sie einfache bis mittelschwere Algorithmen auf einer weißen Tafel implementierten. Ich hatte anfangs mit Fragen begonnen wie:

Da Pi mit der Funktion 4 * (1 - 1/3 + 1/5 - 1/7 + ...) mit mehr Begriffen geschätzt werden kann, die eine größere Genauigkeit ergeben, schreiben Sie eine Funktion, die Pi mit einer Genauigkeit von 5 Dezimalstellen berechnet .

Es ist ein Problem, das Sie zum Nachdenken anregen sollte, aber für einen erfahrenen Entwickler nicht unerreichbar sein sollte (es kann in etwa 10 Zeilen C # beantwortet werden). Viele unserer (angeblich von der Agentur vorab geprüften) Kandidaten konnten jedoch nicht einmal anfangen, darauf zu antworten oder zu erklären, wie sie darauf antworten könnten. Nach einer Weile begann ich einfachere Fragen zu stellen wie:

Wenn die Fläche eines Kreises durch das Pi-fache des quadratischen Radius gegeben ist, schreiben Sie eine Funktion, um die Fläche eines Kreises zu berechnen.

Erstaunlicherweise konnte mehr als die Hälfte der Kandidaten diese Funktion in keiner schreiben Sprache (ich kann die beliebtesten Sprachen lesen, sodass sie jede Sprache ihrer Wahl verwenden können, einschließlich Pseudocode). Wir hatten "C # -Entwickler", die diese Funktion nicht in C # schreiben konnten.

Das hat mich überrascht. Ich hatte immer gedacht, dass Entwickler Code schreiben können sollten. Es scheint, dass dies heutzutage eine kontroverse Meinung ist. Sicher ist es unter den Interviewkandidaten!


Bearbeiten:

In den Kommentaren wird viel darüber diskutiert, ob die erste Frage gut oder schlecht ist und ob Sie in einem Interview so komplexe Fragen stellen sollten. Ich werde hier nicht näher darauf eingehen (das ist eine ganz neue Frage), abgesehen davon, dass Sie den Punkt des Beitrags weitgehend verfehlen .

Ja, ich sagte, die Leute könnten damit keine Fortschritte machen, aber die zweite Frage ist trivial und viele Leute könnten auch damit keine Fortschritte machen! Jeder, der sich selbst als Entwickler bezeichnet, sollte in wenigen Sekunden die Antwort auf die zweite Antwort schreiben können, ohne darüber nachzudenken. Und viele können nicht.

Greg Beech
quelle
330

Die Verwendung der ungarischen Notation sollte mit dem Tod bestraft werden.

Das sollte kontrovers genug sein;)

Marc
quelle
287

Designmuster schaden gutem Design mehr als sie helfen.

IMO-Software-Design, insbesondere gutes Software-Design, ist viel zu vielfältig, um sinnvoll in Mustern erfasst zu werden, insbesondere in der geringen Anzahl von Mustern, an die sich Menschen tatsächlich erinnern können - und sie sind viel zu abstrakt, als dass sich Menschen wirklich an mehr als eine Handvoll erinnern könnten. Sie helfen also nicht viel.

Andererseits verlieben sich viel zu viele Menschen in das Konzept und versuchen, überall Muster anzuwenden - normalerweise findet man im resultierenden Code nicht das tatsächliche Design zwischen allen (völlig bedeutungslosen) Singletons und abstrakten Fabriken.

Michael Borgwardt
quelle
274

Weniger Code ist besser als mehr!

Wenn die Benutzer "das ist es?" Sagen und Ihre Arbeit unsichtbar bleibt, wird sie richtig ausgeführt. Ruhm kann anderswo gefunden werden.

Jas Panesar
quelle
266

PHP ist scheiße ;-)

Der Beweis ist im Pudding.

Ungläubiger Thomas
quelle
262

Unit Testing hilft Ihnen nicht, guten Code zu schreiben

Der einzige Grund für Unit-Tests besteht darin, sicherzustellen, dass bereits funktionierender Code nicht beschädigt wird. Es ist lächerlich, zuerst Tests zu schreiben oder Code für die Tests zu schreiben. Wenn Sie vor dem Code in die Tests schreiben, wissen Sie nicht einmal, was die Randfälle sind. Sie könnten Code haben, der die Tests besteht, aber unter unvorhergesehenen Umständen immer noch fehlschlägt.

Darüber hinaus werden gute Entwickler den Zusammenhalt gering halten, wodurch das Hinzufügen von neuem Code wahrscheinlich keine Probleme mit vorhandenen Inhalten verursacht.

In der Tat werde ich das noch weiter verallgemeinern,

Die meisten "Best Practices" in der Softwareentwicklung sollen verhindern, dass schlechte Programmierer zu viel Schaden anrichten .

Sie sind da, um schlechte Entwickler in der Hand zu halten und sie davon abzuhalten, dumme Fehler zu machen. Da die meisten Entwickler schlecht sind, ist dies natürlich eine gute Sache, aber gute Entwickler sollten einen Pass bekommen.

Chad Okere
quelle
256

Schreiben Sie kleine Methoden. Es scheint, dass Programmierer es lieben, lange Methoden zu schreiben, bei denen sie mehrere verschiedene Dinge tun.

Ich denke, dass eine Methode erstellt werden sollte, wo immer Sie eine benennen können.

Matt Secoske
quelle
235

Es ist in Ordnung, ab und zu Müllcode zu schreiben

Manchmal reicht ein schneller und schmutziger Müllcode aus, um eine bestimmte Aufgabe zu erfüllen. Patterns, ORMs, SRP, was auch immer ... Rufen Sie eine Konsole oder Web-App auf, schreiben Sie eine Inline-SQL (fühlt sich gut an) und sprengen Sie die Anforderungen.

John Farrell
quelle
196

Code == Design

Ich bin kein Fan von ausgefeilten UML-Diagrammen und endloser Codedokumentation. In einer Hochsprache sollte Ihr Code so wie er ist lesbar und verständlich sein. Komplexe Dokumentationen und Diagramme sind nicht wirklich benutzerfreundlicher.


Hier ist ein Artikel zum Thema Code als Design .

Jon B.
quelle
186

Softwareentwicklung ist nur ein Job

Versteh mich nicht falsch, ich genieße die Softwareentwicklung sehr. Ich habe in den letzten Jahren einen Blog zu diesem Thema geschrieben. Ich habe genug Zeit hier verbracht, um> 5000 Reputationspunkte zu haben. Und ich arbeite in einem Start-up und mache normalerweise 60-Stunden-Wochen für viel weniger Geld, als ich als Auftragnehmer bekommen könnte, weil das Team fantastisch und die Arbeit interessant ist.

Aber im großen Stil ist es nur ein Job.

Es spielt eine wichtige Rolle unter vielen Dingen wie Familie, meiner Freundin, Freunden, Glück usw. und unter anderen Dingen, die ich lieber tun würde, wenn ich unbegrenzt Bargeld zur Verfügung hätte, wie Motorradfahren, Segelyachten oder Snowboarden.

Ich denke, manchmal vergessen viele Entwickler, dass das Entwickeln nur etwas ist, das es uns ermöglicht, die wichtigeren Dinge im Leben zu haben (und sie zu haben, indem wir etwas tun, das uns Spaß macht), anstatt das Endziel an sich zu sein.

Greg Beech
quelle
184

Ich denke auch, dass es nichts Falsches ist, Binärdateien in der Quellcodeverwaltung zu haben . Wenn es einen guten Grund dafür gibt. Wenn ich eine Assembly habe, für die ich nicht die Quelle habe und die sich möglicherweise nicht unbedingt an derselben Stelle auf jedem Entwicklungscomputer befindet, stecke ich sie normalerweise in ein "Binär" -Verzeichnis und verweise sie in einem Projekt unter Verwendung eines relativen Pfads .

Viele Leute scheinen zu denken, ich sollte auf dem Scheiterhaufen verbrannt werden, weil ich im selben Satz sogar "Quellcodeverwaltung" und "Binär" erwähnt habe. Ich kenne sogar Orte mit strengen Regeln, die besagen, dass man sie nicht hinzufügen kann.

Steven Robbins
quelle
180

Jeder Entwickler sollte mit der grundlegenden Architektur moderner Computer vertraut sein. Dies gilt auch für Entwickler, die auf eine virtuelle Maschine abzielen (vielleicht sogar noch mehr, weil ihnen immer wieder gesagt wurde, dass sie sich nicht um die Speicherverwaltung usw. kümmern müssen).

Brian Rasmussen
quelle
164

Software-Architekten / Designer werden überbewertet

Als Entwickler hasse ich die Idee von Software Architects. Es handelt sich im Grunde genommen um Personen, die nicht mehr Vollzeit codieren, Zeitschriften und Artikel lesen und Ihnen dann erklären, wie Sie Software entwerfen. Das sollten nur Leute tun, die tatsächlich Vollzeit Software schreiben, um ihren Lebensunterhalt zu verdienen. Es ist mir egal, ob Sie vor 5 Jahren der weltbeste Programmierer waren, bevor Sie Architekt wurden. Ihre Meinung ist für mich nutzlos.

Wie ist das für umstritten?

Bearbeiten (zur Verdeutlichung): Ich denke, die meisten Software-Architekten sind großartige Business-Analysten (Gespräche mit Kunden, Schreiben von Anforderungen, Tests usw.). Ich denke einfach, dass sie keinen Platz beim Entwerfen von Software auf hohem Niveau oder auf andere Weise haben.

rosten
quelle
152

Es gibt keinen "One Size Fits All" -Ansatz für die Entwicklung

Ich bin überrascht, dass dies eine kontroverse Meinung ist, weil sie mir wie gesunder Menschenverstand erscheint. Es gibt jedoch viele Einträge in beliebten Blogs, die für den Entwicklungsansatz "one size fits all" werben, sodass ich denke, dass ich tatsächlich in der Minderheit bin.

Dinge, die ich als den richtigen Ansatz für ein Projekt angepriesen habe - bevor Informationen darüber bekannt sind - sind Dinge wie die Verwendung von Test Driven Development (TDD), Domain Driven Design (DDD) und Object Relational Mapping (ORM). , Agile (Kapital A), Objektorientierung (OO) usw. usw. umfassen alles von Methoden über Architekturen bis hin zu Komponenten. Natürlich alle mit schönen marktfähigen Akronymen.

Die Leute scheinen sogar so weit zu gehen, Abzeichen in ihre Blogs wie "I'm Test Driven" oder ähnliches zu setzen, als ob ihre strikte Einhaltung eines einzigen Ansatzes, unabhängig von den Details des Projektprojekts, tatsächlich eine gute Sache ist .

Ist es nicht.

Die Auswahl der richtigen Methoden, Architekturen, Komponenten usw. sollte pro Projekt erfolgen und hängt nicht nur von der Art des Projekts und den jeweiligen Anforderungen ab, sondern auch von der Größe und den Fähigkeiten des Teams, mit dem Sie arbeiten.

Greg Beech
quelle