Imparare un nuovo concetto: scrivere da zero o utilizzare i framework? [chiuso]

5

Recentemente ho cercato di conoscere MVVM e tutti i concetti associati come repository, mediatori, accesso ai dati. Ho preso la decisione che non avrei usato alcun framework per questo in modo da ottenere una migliore comprensione di come tutto funzionasse. Sto iniziando a chiedermi se è stata la migliore idea perché ho riscontrato alcuni problemi che non sono in grado di risolvere, anche con l'aiuto di Stack Overflow!

Scrittura da zero
Ho ancora la sensazione che tu abbia una comprensione molto migliore di qualcosa quando ne hai avuto abbastanza di se stessi ad un livello più alto. L'altro lato di questa moneta è che sei nel fegato di qualcosa che non comprendi pienamente e che porterà a decisioni sbagliate sul design. Questo rende quindi difficile ottenere aiuto perché creerai scenari insoliti che sono meno probabili quando lavori all'interno dei confini di un framework.

Ho scoperto che ci sono molti tutorial sulle basi di un concetto, ma pochissimi ti portano da principiante ad esperto. Forse dovrei guardare un libro per questo?

Utilizzo dei framework
La più grande motivazione per me nell'utilizzare i framework è che è molto più probabile che vengano utilizzati sul posto di lavoro rispetto a una soluzione personalizzata arrotolata. Questo può essere un grande vantaggio quando si inizia un nuovo lavoro, se è una cosa in meno da imparare.

Ritengo che ci sia un supporto molto migliore per un framework piuttosto che una soluzione personalizzata che abbia senso; molte più persone usano il framework rispetto alla soluzione che hai creato. Anche il livello di aiuto è molto più ampio, dalle domande di base a domande molto specifiche e dettagliate.

Sarei interessato a sentire le opinioni di altre persone su questo. Quando stai imparando qualcosa di nuovo, dovresti / usi delle strutture o no? Perché? Se è una combinazione di entrambi, quando ne interrompi uno e passa all'altro?

    
posta Stu 01.06.2011 - 19:44
fonte

5 risposte

5

Utilizza un framework.

  • È sempre utile poter aggiungere un framework pubblicamente utilizzato al tuo curriculum
  • In realtà, puoi fare le cose anziché concentrarti sulle implementazioni idrauliche
  • Ottieni informazioni su come fanno gli altri. Più casi che no, hanno più esperienza di te, quindi potresti imparare cose nuove che altrimenti non avresti mai pensato
  • Se vuoi ancora imparare l'interno, passa attraverso il codice della libreria con il tuo debugger. Miglioralo (se è un sistema operativo) e fornisci le patch all'autore / i se pensi che ciò che hai scritto sia utile.

In breve, utilizzando un framework ti porterà sempre alla velocità con uno schema di progettazione che a farti da solo. Anche se si tratta di un esercizio accademico, l'intuizione che ottieni quando usi un altro framework (o un numero di essi) è inestimabile.

Non ha senso ricostruire la ruota quando ce ne sono molti già costruiti, con una solida documentazione che ti aiuta nell'apprendimento dei modelli specifici.

Tuttavia, se hai requisiti specifici che non sono soddisfatti da qualcosa che è già stato scritto, allora questa è un'altra storia.

    
risposta data 01.06.2011 - 19:54
fonte
9

A volte ho un approccio ibrido. Innanzitutto, prova a scriverlo da zero, ma non affezionarti troppo all'implementazione. Una volta che ho iniziato a comprendere correttamente la portata del problema, scopro spesso un nuovo apprezzamento e comprensione dei quadri esistenti e una migliore comprensione di quali strutture si adattano meglio. Mi capita spesso di premere il pulsante di espulsione a metà e andare con la struttura che si adatta meglio.

Di tanto in tanto, scopro che nessuno dei framework è esattamente ciò di cui ho bisogno, forse i seguenti motivi:

  • Elevate spese generali e / o caratteristiche prestazionali
  • Mancanza di funzionalità senza estensibilità
  • Troppa complessità (nel codice o nella configurazione)
  • Modello di licenza

In questi casi, continuo ad andare avanti. A volte scopro ancora che l'ambito del problema diventa molto più complesso di quello a cui sono disposto a dedicare del tempo, e poi rivalutare.

Non è l'approccio più veloce, ma ha funzionato abbastanza bene per me.

    
risposta data 01.06.2011 - 20:07
fonte
3

Ero abituato a provare e fare tutto da zero, ma sto scoprendo che usare un framework esistente e ampiamente accettato è un modo più rapido per imparare.

È molto più facile e veloce visualizzare un modo corretto di fare qualcosa e distinguerlo per capirlo, piuttosto che capire come fare qualcosa (spesso erroneamente) attraverso tentativi ed errori.

Per MVVM, consiglierei di consultare innanzitutto il MVVM Light Toolkit di Galasoft e capire cosa fanno quei pezzi, piuttosto che passare a Microsoft Prisma , che ha alcune funzionalità più avanzate.

Se sei interessato, ho anche postato qualcosa qui sull'utilizzo di MVVM in una semplice applicazione . Mostra il codice effettivo per alcuni degli oggetti MVVM standard come RelayCommands e INotifyPropertyChanged objects.

    
risposta data 01.06.2011 - 19:56
fonte
1

Quando imparo qualcosa di nuovo, scrivo da zero, o più precisamente nel più semplice contesto possibile per imparare il concetto senza "rumore" finché non lo capisco. Una volta che lo capisco bene, sono in grado di dire se può essere fatto usando un framework o altri strumenti, o per scrivere i miei strumenti che forniscono il concetto.

Il primo passaggio viene spesso chiamato "prototyping" .

    
risposta data 01.06.2011 - 19:54
fonte
0

Impara da zero. I framework sono lì per accelerare lo sviluppo rimuovendo il sovraccarico di ricreare attività comuni che vanno dalle viste alle interazioni del database, qualunque cosa sia comune alla piattaforma che si apprenderà. Ulteriori vantaggi sono cose come la manutenibilità, l'estendibilità e così via.

Dopo aver imparato la piattaforma, puoi passare a un framework, per i motivi sopra indicati.

Non hai imparato una lingua imparando un quadro su di essa. Avrai imparato il quadro. E alcuni framework davvero astratizzano il linguaggio che sono stati costruiti in larga misura.

E, soprattutto: se si finisce per lavorare con quella lingua per un lungo periodo con un'applicazione considerevole o importante, arriverà un momento in cui un framework ti limiterà a una cosa MOLTO bizzarra della società / impresa / esigenze del posto di lavoro / del cliente. Finirai per dover fare magie per farlo accadere. Anche la cosa che fai può sembrare totalmente idiota e irrazionale per un estraneo.

I requisiti delle trincee che possono accadere in essi possono essere molto diversi da quelli insegnati nelle istituzioni scolastiche.

    
risposta data 03.06.2014 - 00:48
fonte

Leggi altre domande sui tag