Eine Sache, die ich in Haskell und F # gelernt habe, ist, dass jemand an einer Universität, der schlauer ist als ich, wahrscheinlich bereits eine Abstraktion für das gefunden hat, was ich tue. Ebenso gibt es in C # und objektorientierter Programmierung wahrscheinlich eine Bibliothek für "es", was auch immer ich tue.
Es wird so viel Wert darauf gelegt, Abstraktionen in der Programmierung wiederzuverwenden, dass ich oft ein Dilemma empfinde zwischen: 1) einfach selbst etwas Kurzes und Schmutziges zu programmieren oder 2) die gleiche Zeit damit zu verbringen, die robustere Bibliothek / Lösung eines anderen zu finden und diese zu verwenden.
Wie kürzlich hat einer der hier genannten Codierer einen (De-) Serializer für CSV-Dateien geschrieben, und ich konnte nicht anders, als zu glauben, dass so etwas online wahrscheinlich sehr leicht zu finden ist, wenn es nicht bereits mit dem .NET-Standard geliefert wird APIs.
Ich gebe ihm jedoch keine Schuld, da ich mehrere Male in .NET gearbeitet habe, habe ich eine Lösung zusammengestellt, die auf dem basiert, was ich weiß, nur um zu erkennen, dass es einen Methodenaufruf oder ein Objekt oder etwas gab , oft in derselben Bibliothek, das was tat Ich wollte und wusste es einfach nicht.
Ist dies nur ein Zeichen von Unerfahrenheit oder gibt es immer einen Kompromiss zwischen dem Schreiben von Neuem und der Wiederverwendung von Altem? Was ich am meisten hasse, ist, wenn ich auf eine Lösung stoße, die ich bereits kannte und vergessen habe. Ich habe das Gefühl, dass eine Person einfach nicht in der Lage ist, die schiere Menge an Code zu verarbeiten, die heutzutage in den meisten Sprachen vorverpackt ist.
quelle
Manchmal ist dies ein Zeichen von Unerfahrenheit, sei es mit der jeweiligen Sprache oder mit der Programmierung im Allgemeinen. Manchmal ist es jedoch besser, wenn die Übereinstimmung nicht offensichtlich ist, einen eigenen Code zu erstellen, der genau das tut , was Sie wollen, und nicht mehr . Generische Bibliotheken sind zwar oft nützlich, können jedoch für Anforderungen erstellt werden, die Sie einfach nicht haben. In einigen Fällen kann diese Generizität dazu führen, dass sie mehr Probleme bereiten, als sie wert sind.
Beispiel: Für meine kleinen Ein-Mann-Projekte verwende ich niemals eine "echte" Protokollbibliothek. Ich benutze
print
Anweisungen und eine kleine Ad-hoc-Konfiguration. Ich möchte nicht die Mühe machen, eine Protokollbibliothek einzurichten und zu konfigurieren, die weitaus mehr Funktionen bietet, als ich jemals verwenden werde, wennprint
Anweisungen für meine Zwecke gut funktionieren. Ich möchte auch keine weitere Abhängigkeit, die möglicherweise nicht mit der Version des Compilers / Interpreters kompatibel ist, den ich verwenden möchte, der verteilt werden muss usw.quelle
Willkommen in der Welt der Programmierung. Dieses Problem wird Gegenstand vieler Meinungsverschiedenheiten zwischen Ihnen und Ihren zukünftigen Kollegen sein. Sie haben zwei Möglichkeiten:
Ich denke, es gibt Zeiten, in denen beide Lösungen angemessen sind. Zum Beispiel würde ich es vorziehen, meinen eigenen CSV-Parser von ORM nicht zu rollen, wenn ich es meistens vermeiden kann, weil es ziemlich mühsam ist. Andererseits sind Bibliotheken häufig eingeschränkt. Ich würde sagen, dass ich bei jedem Projekt, an dem ich gearbeitet habe, auf Bibliotheken gestoßen bin, die mein Problem perfekt lösen würden, wenn dies nicht der Fall wäre. Oder manchmal ist eine Bibliothek genau das, was Sie brauchen, wenn Sie anfangen, etwas zu tun, aber es schadet mehr als zu helfen, wenn Sie Änderungen vornehmen müssen.
Im Allgemeinen rate ich jedoch davon ab, "richtige" Antworten zu finden, da diese nicht existieren. Wenn Sie Zweifel haben, gehen Sie einfach mit Ihrem Bauch. Ich hörte einmal jemanden sagen, dass Erfahrung durch wie viele dumme Fehler, die Sie machen, definiert wird. Normalerweise lernst du etwas oder machst etwas, das funktioniert. So oder so ist es nicht alles schlecht.
quelle
Dies (oder etwas Ähnliches) ist mir in früheren Jobs oft passiert, in denen das Framework unter schwerwiegenden inneren Plattformeffekten litt.
Grundsätzlich entwickelte sich die Codebasis aus den Anfängen von Windows C / C ++ und begann dann, unter MFC zu kompilieren - und so begannen die Betreuer, MFC und ihre alten internen Datenstrukturen und Fensterkomponenten zu mischen. Die innere Plattform war nicht sehr gut dokumentiert, aber es war angeblich "The Way", um Dinge an diesem Produkt zu tun, aufgrund einiger interner Einrichtungen, die es bereitstellte. Ich fand es oft einfacher und schneller, meine eigenen Sachen von Grund auf neu zu schreiben (anhand der MFC-Grundlagen), als herauszufinden, wie man es mit dem internen Framework des Unternehmens macht.
(Okay, das scheint also fast das Gegenteil von Ihrem Ausgangspunkt zu sein - aber das Prinzip ist das gleiche, hehe! Ja, manchmal ist es wirklich schneller, Ihr eigenes Ding zu machen, als Zeit und Mühe zu investieren, um ein existierendes wiederverwendbares zu finden Lösung.)
quelle