Con le librerie disponibili, i programmatori dovrebbero anche imparare il vecchio modo di scrivere le stesse cose? [duplicare]

-2

Con i programmi pre-scritti disponibili, che necessitano solo di editing, i programmatori dovrebbero anche imparare a scrivere da zero?

    
posta user82809 01.03.2013 - 15:00
fonte

3 risposte

1

Ho intenzione di proteggere le mie scommesse con "dipende dalla biblioteca".

Se è qualcosa di specifico come una libreria client di Twitter, probabilmente non è necessario sapere come scrivere un client specifico di Twitter da zero. Quello che probabilmente dovrebbe sapere come fare è scrivere un client per le API XML o JSON REST, scrivere il trasporto HTTP di base, ecc.

Quando costruisci un'applicazione, avere un ampio ecosistema di librerie che puoi mettere insieme è un vantaggio decisivo, e probabilmente mostra che hai fatto una buona scelta di lingua / piattaforma / framework.

OTOH, tu hai bisogno di capire cosa sta succedendo "sotto le copertine", perché non tutte le librerie (qualsiasi?) daranno conto di ogni caso limite o d'angolo che potresti incontrare nel tuo dominio aziendale specifico. Quindi scrivere una libreria simile "da zero" (o usare componenti di livello inferiore come lo stdlib della lingua) è un esercizio di wothwhile. Se non altro, ti renderà uno sviluppatore più competente e più capace.

Dovresti usare la tua libreria invece di una libreria open-source ben collaudata che è in produzione con successo altrove? Probabilmente no.

Ma ciò non riduce il valore di sapere come quella libreria è stata costruita.

    
risposta data 01.03.2013 - 15:12
fonte
0

Sembra che tu ritenga che lo sviluppo del software sia un problema risolto. Non lo è.

Le persone in tutte le aziende hanno molti motivi per essere insoddisfatti delle tecnologie esistenti. Ogni giorno vengono creati nuovi hardware e nuovi mercati. Sono state trovate nuove soluzioni a vecchi problemi. Ci sarà sempre bisogno di nuovi software / librairie.

Inoltre, non scrivi mai nulla "da zero". Usi i compilatori e le librerie standard. Dovresti invece chiedere a te stesso se preferisci programmare in lingue di alto livello o "di basso livello", a seconda della volontà che vuoi raggiungere.

    
risposta data 01.03.2013 - 15:08
fonte
0

Non fa male, e il suo valore dipenderà dallo specifico stack in questione, ma nel complesso? Non proprio.

Nel caso quadro, eccetto che per scopi puramente accademici (o se vuoi contribuire allo sviluppo del framework), direi che non bisogno per imparare a scriverli da zero, ma dovresti avere una comprensione generale del linguaggio a cui è rivolto il framework. Questo è il punto centrale di un framework. D'altra parte, non ho bisogno di conoscere i dettagli di FCKEditor per aggiungerlo al mio sito web e persino personalizzarlo con moderazione.

Ora, vuol dire che le persone non dovrebbero capire che il valore di ritorno di una query LINQ è molto spesso un tipo IEnumerable (o cos'è IEnumerable )? È sempre utile avere una comprensione della struttura di base della tecnologia di livello superiore che stai utilizzando.

Hai mai fatto qualche codifica con .Net prima della versione 3 e l'introduzione di Entity Framework e LINQ? Hai mai dovuto effettuare chiamate RAW ADO.NET per connettersi a un database, eseguire la query SQL raw, ottenere i dati e archiviarli da qualche parte e assicurarti di disconnetterti dal database? Questa roba non era proprio quella difficile , di per sé, ma ci sono voluti tempo e prove - tempo speso meglio per fare qualcosa con quei dati. Era noioso, era soggetto a errori e tutti dovevano farlo, di solito più volte per ogni applicazione. Perché non creare un'utilità che si occupa di tutto ciò che fa per te?

È qui che entra in gioco Entity Framework (e in realtà, qualsiasi ORM o sistema simile per qualsiasi lingua), e prima di ciò, le persone spesso costruivano classi simili a modelli per gestire le attività di connessione. Automatizzando quel sistema, puoi passare il tuo tempo usando i dati, invece di eseguire il debugging per ottenere i dati (e portarli in uno stato utilizzabile nel tuo sistema).

Se vuoi prendere l'idea di "scrivere tutto da zero" in modo assurdo, anche se logico e molto reale, allora torniamo alla programmazione con chip fisici e porte logiche. Posso dirti per esperienza che così facendo avrai una buona conoscenza di come funzionano i computer e dell'importanza del binario.

Ma perché? Perché tutti dovrebbero passare il loro tempo mettendo insieme cancelli logici, quando è già stato fatto innumerevoli volte e perfezionati al punto abbastanza vicino alla perfezione per essere affidabili su base regolare, senza avere una conoscenza intima dei dettagli?

Questo sale in cima allo stack, dai gate e switch fisici, attraverso il binario, l'assemblatore e lo stack fino al C e i linguaggi di livello simile, e fino in fondo al framework .Net usare oggi

Avere una comprensione generale di alcuni dei sistemi sottostanti, e probabilmente sarebbe una buona regola per capire di più sui sistemi più vicini alla "superficie" della tua tecnologia attuale (cioè - jQuery fa un sacco di modifiche alla sintassi in JavaScript, quindi c'è spesso un strong contrasto tra la persona che ha una solida conoscenza di JS e una che usa solo jQuery, in questo caso la comprensione della tecnologia al prossimo livello è un vantaggio importante, ma la conoscenza dei sistemi che JavaScript dipende da (i motori di layout nei browser, i linguaggi sottostanti, ecc.) Diventa sempre più inutile), ma tale comprensione non deve necessariamente essere a livello di esperti. La tecnologia è un campo enorme, anche ristretto alla programmazione. È impossibile per un dato individuo sapere tutto su ogni pezzo di tecnologia da cui dipende il suo attuale.

    
risposta data 01.03.2013 - 15:58
fonte

Leggi altre domande sui tag