Ich arbeite meistens mit Webanwendungen, und obwohl ich versuche, allgemein zu sein, trifft meine Antwort möglicherweise nicht auf Ihren Programmierbereich zu.
Ich werde auch "framework" synonym mit "library" verwenden.
Vor der Implementierung eines Frameworks müssen einige Dinge beachtet werden, hier einige allgemeine Beispiele.
# 1. Spart das Framework Zeit und Mühe?
Die Antwort auf diese Frage lautet fast immer ja . Frameworks werden in der Regel erstellt, um bestimmte Probleme zu lösen und sie sehr gut zu lösen . Frameworks wie EntityFramework können Sie beispielsweise vollständig vom Schreiben von SQL-Code abhalten . Was fantastisch sein kann, wenn Ihr Programmierteam kein fließendes SQL beherrscht.
Frameworks wurden erstellt, um entweder a) eine programmiererfreundliche Schnittstelle zu ansonsten komplexen Komponenten hinzuzufügen oder b) bereits bekannten (oder etablierten) Komponenten eine Abstraktion hinzuzufügen.
Letzteres (oder in einigen Fällen sogar Ersteres) kann der Entwicklung tatsächlich im Wege stehen . Dies gilt insbesondere dann, wenn Sie oder Ihr Programmierteam ein neues Framework implementieren, in dem sie noch nie zuvor gearbeitet haben.
Dies kann möglicherweise den Entwicklungsprozess verlangsamen, was möglicherweise kostspielig sein kann.
# 2 Der Umfang Ihrer Bewerbung
Es heißt, "alles , was es wert ist, getan zu werden, ist es wert, übertrieben zu werden" , aber normalerweise ist das nicht der Fall. Es gibt wahrscheinlich keinen guten Grund, ein übergroßes Framework zu implementieren, wenn der Sinn Ihrer Anwendung darin besteht, "Kartoffel" zu drucken .
Wenn Sie eine Anwendung entwickeln (sei es eine Web-, Desktop-, Mobil- oder eine andere denkbare Art von Anwendung) - wenn Sie der Meinung sind, dass die Größe Ihres Frameworks Ihre (möglicherweise zukünftige) Implementierung beeinträchtigt, ist dies möglicherweise eine große Herausforderung Warnsignal, dass Ihr Framework Ihre Anwendung möglicherweise nur aufbläht. Eine gute Anekdote wäre, wenn Sie jQuery einbinden, nur um Ihrem Body-Tag eine "geladene" Klasse hinzuzufügen, wenn das Dokument fertig ist. Dies nur mit nativem JavaScript zu tun, mag ein bisschen schwieriger sein , aber Ihre Anwendung wird dadurch nicht aufgebläht.
Auf der anderen Seite, wenn ein Framework eine Menge Dirty Work im Inneren ausführt (dh Datenbank-Frameworks), ist es möglicherweise sinnvoll, es zu implementieren, auch wenn Sie das Framework nur "teilweise" verwenden. Eine gute Anekdote wäre, nicht zu versuchen, einen eigenen ADO.NET- oder MongoDB-Treiber zu erstellen, nur weil Sie nicht die gesamte Bibliothek nutzen müssen.
Manchmal kommen Frameworks als Open Source (und mit 'do-whatever-you-want'-Lizenzen). Dies eröffnet eine neue Möglichkeit, bei der sich ein Programmierteam möglicherweise nur für Teile eines Frameworks entscheidet.
Dies knüpft letztendlich an Frage 1 und 3 an.
# 3 Auswirkungen.
Manchmal wirkt sich die Implementierung eines Frameworks direkt auf den Endbenutzer aus. Dies gilt insbesondere für Webanwendungen, da große clientseitige Frameworks die Benutzererfahrung negativ beeinflussen können. Benutzer mit langsameren Computern können langsames Rendern, Leistungsprobleme mit Javascript oder ähnliche Probleme, die durch untergeordnete Computer verursacht werden, feststellen. Benutzer mit langsamen Verbindungen können langsame (zumindest anfängliche) Ladezeiten haben.
Auch in anderen Anwendungsarten können Endbenutzer von Ihren Anwendungsabhängigkeiten beeinträchtigt werden. Frameworks zumindest immer nehmen etwas Speicherplatz, und wenn Sie eine mobile App (oder sogar eine Desktop - Anwendung) entwickeln könnte dies erforderlich werden , um in Betracht gezogen werden.
Serverseitige Frameworks (noch webspezifischer) wirken sich höchstwahrscheinlich nicht auf Ihre Endbenutzer aus, wirken sich jedoch auf Ihre Infrastruktur aus . Einige Frameworks weisen Abhängigkeiten auf , die möglicherweise einen Neustart des Webservers erfordern, entweder nur des Dienstes oder des gesamten Servers.
Einige Frameworks sind möglicherweise auch sehr ressourcenintensiv.
Dies knüpft natürlich an Punkt 1 und 2 an.
Es ist alles nur ein großer "Kreis von Überlegungen", und es gibt keine wirkliche wissenschaftliche Methode, um zu entscheiden, ob Sie ein Framework implementieren sollten oder nicht.
Corbin March hat es sehr gut zusammengefasst:
Die Gruppen, mit denen ich zusammengearbeitet habe, machen dasselbe - schätzen Sie Kosten und Nutzen, wählen Sie den produktivsten Weg und hoffen Sie, dass sie Recht haben. Es ist nicht besonders wissenschaftlich - ein Teil Intuition, drei Teile Erfahrung, ein Teil Anfälligkeit für Marketing, ein Teil List und fünf Teile Meinung.
Es ist auch wichtig, nicht elitär zu sein . Frameworks sind Werkzeuge, die verwendet werden sollen. Ich kenne Menschen beider Extreme. Auf der einen Seite macht sich der Typ das Leben schwer, auf der anderen Seite der Typ, der langsame, aufgeblähte Anwendungen erstellt.
Alle Frameworks haben Use-Cases, es geht nur darum, sie für die richtigen Zwecke zu implementieren.