Ho programmato per poco meno di un anno e ho un po 'di esperienza nella scrittura di applicazioni di sistema, applicazioni web e script per aziende / organizzazioni. Tuttavia, una cosa che non ho mai fatto è lavorare con un framework come Django, Rails o Zend.
Guardando oltre il framework di Django, sono un po 'frustrato per quanto viene sottratto ai framework. Comprendo gli obiettivi principali di DRY e del codice minimale, ma alcuni di questi eccessivi affidamenti su diversi moduli e l'astrazione pesante delle funzioni di base mi sembrano così:
-
Rende i programmi molto veloci a causa della natura mutevole dei moduli / framework,
-
Rende il codice difficile da comprendere a causa della pletora di framework e moduli disponibili e di tutte le loro idiosincrasie,
-
Rende il codice meno logico a meno che tu non abbia letto tutta la documentazione; cioè, posso leggere alcune comprensioni delle liste e la logica condizionale e capire cosa sta facendo un programma, ma quando vedi le funzioni che richiedono il passaggio di stringhe e dizionari arbitrari, le cose diventano un po 'difficili da capire a meno che tu non sia già un guru un dato modulo; e:
-
Rende difficile e noioso passare da un framework all'altro. Passare da una lingua all'altra è già una sfida, ma è gestibile se si ha una comprensione abbastanza strong della loro funzionalità / filosofia di base. Il passaggio da una struttura all'altra sembra più una questione di memorizzazione meccanica, che in qualche modo sembra incoraggiare l'inefficienza che questi framework sono stati progettati per eliminare.
Abbiamo davvero bisogno di mettere come 50 strati di astrazione su qualcosa di semplice come una query MySQL? Perché non usare qualcosa come l'interfaccia PDO di PHP, dove vengono gestite le istruzioni / test di input preparati, ma la query SQL universalmente comprensibile fa ancora parte della funzione?
Queste astrazioni sono davvero utili? La funzionalità non è eccessiva, rendendole inutili, rendendo le applicazioni più difficili rispetto alle applicazioni simili scritte senza utilizzare un framework?