2009-06-27 11 views
17

Mi rendo conto che questo può essere soggettivo, ma ho davvero bisogno di una risposta a questo e non riesco a trovare nulla di abbastanza vicino ad esso nel resto del Forum. Ho letto che alcuni dicono che il framework (qualsiasi framework MVC) può oscurare troppe cose mentre altri dicono che può promuovere buone pratiche. Mi rendo conto che le strutture sono grandi per un certo livello di programmatore, ma per quanto riguarda le persone che iniziano? Uno dovrebbe concentrarsi sulla lingua o impararli insieme?Devo utilizzare un framework durante l'apprendimento dello sviluppo Web

+0

errore mio non avevo visto questo post. – Mackristo

+0

Non so perché qualcuno abbia votato per chiudere questo. Ci sono domande simili ma non esatte. +1 –

risposta

3

Lo sviluppo Web richiede un certo grado di organizzazione, poiché si basa molto sulla separazione delle preoccupazioni. Il browser, ad esempio, è progettato per visualizzare dati e interagire con l'utente. Non è progettato per cercare dati da un database o eseguire analisi. Di conseguenza, un framework di sviluppo web può aiutare a fornire servizi necessari per rendere il browser un'esperienza pratica.

La cosa bella dell'utilizzo di una piattaforma è che fornirà componenti fondamentali essenziali per la realizzazione di qualsiasi applicazione Web a cui non dovresti (e non dovresti) pensare, come ad esempio l'appartenenza utente. Molte delle decisioni di progettazione e il pensiero profondo su come implementare questi servizi è già stato fatto per te, permettendoti di concentrarti su ciò che effettivamente vuoi che la tua applicazione faccia.

Tra i framework disponibili, trovo che i framework che implementano il pattern MVC (model-view-controller) sono molto pratici. Organizzano chiaramente diverse funzioni di sviluppo web, mentre ti danno il pieno controllo del markup presentato al browser.

Detto questo, avrete bisogno di alcune abilità fondamentali per realizzare completamente lo sviluppo web, come HTML, CSS e un linguaggio di programmazione di base per l'effettivo programma sottostante, indipendentemente dal fatto che utilizziate una piattaforma o meno.

3

Utilizzerai SOME framework. La domanda è: a che livello vuoi imparare?

Probabilmente non ti preoccuperai di conoscere gli I/O asincroni e gli stili mutlithreaded vs. select/poll dei server web.

Quindi, la lingua di scelta fornirà un livello in cima a questa API di interfaccia Web preferita. Per Java è Servlet, il livello più basso in cui normalmente si codifica per le applicazioni Web lato server.

Dovresti scoprire cosa è questo livello "di livello inferiore" nella tua lingua e imparare almeno l'API. Dovresti conoscere i codici di stato HTTP di base, i cookie, i reindirizzamenti, POST vs GET, la codifica degli URL e, eventualmente, le azioni più importanti.

Arriverete quindi ad apprezzare ciò che questi framework di livello superiore portano in tavola e ad essere maggiormente in grado di valutare quale sia il livello appropriato di astrazione per le vostre esigenze/progetti.

+0

È fantastico. Grazie per l'aiuto. – Mackristo

1

si dovrebbe imparare come utilizzare framework perché sarebbe utile per voi in futuro anche è più facile da imparare.

MVC ti aiuterà molto .. fidati di me ... stavo sviluppando un progetto web non usando mvc ed è come un casino ... (in passato non si conosce bene mvc e non ne ho mai sentito parlare)

7

Penso che lo sviluppo del Web sia molto più di quanto chiunque abbia capito quando inizia a farlo! Leggi questo e sappi che è tutto facoltativo ... ma devi essere veramente bravo in quello che fai.

Ti suggerisco di dedicare del tempo all'apprendimento della lingua.Suggerirei di apprendere C# semplicemente perché è molto più commercializzabile e di solito è supportato direttamente nella maggior parte dei prodotti MS. Imparando C# - programmazione in ASP.NET, console app, server, servizi, app desktop, ecc. Saranno tutti a portata di mano. È possibile programmare per la maggior parte dei prodotti MS e su molte piattaforme di tipo Linux.

Una volta ottenuto questo, è possibile passare alla programmazione per il Web poiché la programmazione per il Web presenta alcune complessità che la maggior parte degli altri ambienti non dispone. Concetti come sessioni, memorizzazione nella cache, gestione dello stato, cross-site scripting, styling, programmazione lato client vs server, supporto browser, funzionamento di HTTP, get vs post, funzionamento di un modulo, cookie, ecc. Sono tutti nella parte superiore del elenco di cose da imparare separatamente, per non parlare dell'apprendimento dei framework di base e dei namespace di ASP.NET.

Una volta che si ha il linguaggio di programmazione e poi i concetti di programmazione web, suggerisco di mettere in pausa e imparare la progettazione del database. Non preoccuparti solo delle prestazioni ... prova prima a imparare un buon design. Le prestazioni verranno dopo. Un buon inizio per te è Access (bestemmia che conosco). È facile per un principiante con cui lavorare. E si traduce facilmente in una piattaforma più robusta come SQL Server. Impara almeno un po 'di SQL ... ma ti suggerisco di imparare tutto quello che il tuo stomaco può gestire. Ho sentito qualcuno dire che SQL è come il linguaggio assembly del database. La cosa numero uno che rallenta l'arresto di un'applicazione è il pessimo design del database e le query scarse. Una volta che hai questa conoscenza, riponila nella tua mente e dai un'occhiata a un buon ORM. NHybernate è probabilmente il migliore al momento, ma è più complesso di cui lo studente di base ha bisogno. Per questo motivo attualmente suggerisco di far funzionare LINQ to SQL in modo che sia SUPER EASY con cui lavorare. Poi guarda Entity Framework (anche se penso ancora che faccia schifo ... e dovresti aspettare fino a EF 2.0 ... ERRRRR ... ora 4.0 rilasciato con .net 4.0). Quindi NHybernate.

Ora è il momento di iniziare a capire l'infrastruttura richiesta dallo sviluppo web. Potresti scontrarti con la testa mentre impari alcune cose della programmazione web. Ma devi capire le basi di DNS, IIS, bilanciamento del carico, instradamento appiccicoso, round robin, clustering, fault tolerance, setup hardware del server, web farm, cache farms (MemCached Win32, Velocity), SMTP, MSMQ, accodamento della posta del database, ecc. Molte persone potrebbero dire che non ne hai bisogno. Che ci sarà un amministratore di rete esperto per aiutarti qui. Tuttavia generalmente sanno che le cose hanno un impatto su di loro ... non tu. Quanto più conosci, tanto più preziosa sarai per la compagnia che ti assolda.

Ora è possibile entrare nei dettagli delle migliori pratiche e dei modelli di progettazione. Scopri le nozioni di base come pattern di repository, pattern di fabbrica, pattern di facciata, pattern di presentazione di modelli di modelli, pattern di controller di visualizzazione di modelli, pattern di osservatori e varie altre cose. Segui Martin Fowler e altri per suggerimenti qui. Dai un'occhiata a concetti come inversione di controllo, iniezione di dipendenza, principio SOLID, DRY, FIT, progettazione basata su test e progettazione basata su domini, ecc. Scopri quanto puoi qui prima di passare al passaggio successivo.

ORA puoi pensare ai quadri! Inizia creando un'applicazione di base con ASP Classic (fornito con IIS gratuitamente!). Questo ti darà il sapore di un ambiente di sviluppo web senza fronzoli. Dai un'occhiata ai moduli web ASP.NET (brevemente) per vedere come MS ha cercato di rendere le cose più facili nascondendo tutte le cose complesse (che ora sai come gestire da solo dalle tue letture dei materiali sopra !!!). Ora non hai più bisogno di moduli Web ASP.NET. Spostare immediatamente su ASP.NET MVC. Il framwork MVC ti offre tutta la potenza di cui hai bisogno per creare una buona applicazione web facilmente gestibile. Se costruisci qualcosa di veramente grande, nessun framework per lo sviluppo del web puro potrebbe essere in grado di gestire ciò di cui hai bisogno. Tuttavia, MVC è molto più estensibile per tali scenari personalizzati UBER.

Ora che hai completato il percorso verso ASP.NET MVC puoi dare un'occhiata a cose come Blocchi di applicazioni aziendali di Microsofts (come quelli che usano su MySpace). Dai un'occhiata al log degli errori Elmah (un must). Guarda come costruire un custom SiteMapProvider per il tuo sito MVC.Se devi approfondire la ricerca, leggi Lucene.NET.

E se sei arrivato così lontano ... sei pronto a capire il resto da solo come si presenta! Buon divertimento. C'è molto spazio in questo spazio per una persona con una certa comprensione di tutti i concetti di cui sopra.

+0

È fantastico. Grazie per tutti i dettagli, ho una lunga strada da percorrere. – Mackristo

+5

Con tutto il rispetto per il poster, questa risposta ha 5 anni, è obsoleta e parla di tecnologie che sono state sostituite da quelle più recenti. Nel 2014 se vuoi entrare nello sviluppo del web come programmatore completamente nuovo, vorrai sicuramente iniziare con un framework, probabilmente Ruby on Rails o Meteor.js. E, soprattutto, dovresti ottenere una pagina il più velocemente possibile. Lavora su qualcosa che ti interessa.Se prendi l'approccio per cercare di "sapere" tutto in anticipo, perderai interesse. Risolvere i problemi mentre li incontri è il modo migliore per imparare. – alnafie

+1

+1 per il super consiglio (vale la pena ripeterlo): "Lavora su qualcosa che ti interessa. Se ti appresti a cercare di" sapere "tutto in anticipo, perderai interesse. Risolvere i problemi mentre li incontri è il modo migliore per imparare. " – GuruM

0

Versione corta: sì, e poi alcuni.

+0

Cosa intendi? – M98

3

Non credo di essere d'accordo con Andrew. Non credo che l'apprendimento di C sia un prerequisito per lo sviluppo web. In effetti, l'apprendimento di qualcosa come Javascript, Action-script o PHP è spesso più facile grazie in gran parte al vasto numero di siti e tutorial disponibili, e sono sufficienti per esporvi ai fondamenti di quasi tutte le lingue di programmazione. Variabile, condizioni, cicli e OOP. Penso solo che l'apprendimento di C# introduce un sacco di apprendimento che non è veramente rilevante per lo sviluppo web come i puntatori e la gestione della memoria.

Per quanto riguarda l'apprendimento di un framework? Sicuramente no. Mai e poi mai. Devi essere in grado di stare con i piedi per primo e stare bene con HTML/CSS, Server Side Scripting (PHP/ASP/Python/Ruby qualunque) e adorarlo o detestarlo, ma dovrai avere una comprensione decente di Flash e Action-script.

L'ordine in cui si impara questi è interamente a voi. Ma il mio piano di apprendimento andrebbe così ...

Inizia con HTML. Ci vogliono circa mezz'ora per ottenere le basi (è composto da tag con attributi, fine della lezione 1) ed è bene toglierlo di mezzo.

Quindi iniziare a piegare CSS. Avrai di nuovo le basi, molto rapidamente. Ma i CSS sono un campo minato quindi aspettati di passare il resto della tua vita a capirlo.

Avanti su Action-script. Molte persone non sono d'accordo con me, ma sopportano me. HTML e CSS non sono linguaggi di programmazione. Lo script di azione è. E imparare un linguaggio di programmazione per la prima volta è difficile e noioso. Il vantaggio che Action-script ha sulla maggior parte delle altre lingue è che i risultati sono molto visivi. È piacevole lavorare con te e puoi sederti e essere orgoglioso delle tue realizzazioni a intervalli regolari. Questo non è possibile con i linguaggi di scripting lato server o Javascript e c'è tutta una serie di cose che devi imparare per far funzionare lo scripting lato server. Ad esempio, non è possibile creare invasori spaziali con PHP.

Ho cambiato il mio modo di pensare qui. Incoraggerei i principianti a ignorare ActionScript e a concentrarsi su Javascript. Continuo a credere che riuscire a vedere le cose sullo schermo sia un buon motivatore, ma incoraggerei le persone a guardare tutorial e framework per i tag canvas. Javascript ha fatto molta strada dal 2009 ed è ora la lingua franca della programmazione, quindi è incredibilmente utile. Il mio punto iniziale su HTML e CSS che non sono linguaggi di programmazione è ancora valido.

Quindi, è possibile iniziare con la lingua lato server. Allo stesso tempo, dovrai trovare le informazioni sul database. Raccomando PHP e MySQL perché è gratuito.

Ancora una volta, ho cambiato il mio pensiero qui. Incoraggerei i principianti a utilizzare Javascript sul backend (Node.js) e dividere il loro apprendimento di database tra database relazionali e soluzioni noSql come Mongo.

Quindi .... impara il tuo quadro. O meglio ancora, tira il tuo. Questo è quello che ho fatto e ha sovraccaricato il mio apprendimento.

Se stai entrando nello sviluppo del web, DEVI sapere come funzionano questi blocchi. Non devi essere un esperto in tutte le aree, ma dovresti provare a diventare un esperto in almeno uno di essi. Se inizi ad apprendere una struttura prima di ottenere i fondamenti, ti troverai in una via di mezzo in cui non capirai perché le cose non funzionano e ti faranno infuriare, e chiunque debba lavorare con te.

+1

Eccellente! Grazie mille. È una specie di ciò che avevo pensato, o sentito comunque. Conoscenza interessante di Actionscript, vorrei verificarlo. Ho anche sentito parlare di quanto sia importante Javascript e questa è un'altra area su cui sto lavorando. – Mackristo

+0

Sì, Javascript è molto importante mentre ci spostiamo verso il web semantico. Personalmente, odio usare il flash per creare interi siti web, penso che la maggior parte delle persone qui sconsiglierebbe di usarlo per questo motivo. Ma come strumento di apprendimento per apprendere i fondamenti della programmazione, è un ottimo linguaggio e molto divertente. Lo stackoverflow – gargantuan

0

FWIW: Questa risposta più generica può essere utile a qualcuno là fuori.

Cosa: I quadri eliminano l'uso ripetuto del codice della piastra della caldaia. Nascondono i problemi di complessità e di design sotto maghi e convenzioni. Usano anche librerie speciali, modelli di progettazione, ecc. In modi che non sono affatto scontati per un principiante.

Quindi, utilizzare un framework è utile per eseguire le operazioni senza sapere esattamente come - come utilizzare un ATM senza conoscere gli interni. Basta aggiungere i bit del codice in determinati luoghi e le cose "funzionano".

HTML> CSS> Ruby> SQL> Struttura Rails/Javascript> Le librerie possono costituire una buona pista di apprendimento. Riposati apprendi mentre sei curioso, mentre sei in giro nei forum o quando hai bisogno di un apprendimento esteso.

COME: Il problema inizia nel momento in cui esci da semplici esempi di libri di testo (cioè quando cerchi di farlo fare qualcosa di anche un po 'diverso).

Decodifica messaggi di errore criptici quando sembra che tu abbia fatto tutto bene ma le cose continuano a non funzionare. Ricerca su stringhe di errore nei forum può aiutare. O semplicemente ripartendo da zero.

Leggere articoli e libri, video, tentativi ed errori, duro lavoro, motori di ricerca, stackoverflow/forum, guru locali, articoli di design, utilizzo di librerie, navigazione del codice sorgente sono un buon modo per scalare il curva di apprendimento dolcemente e su una base di requisiti.

Lavorare contro il telaio è il problema numero uno per i principianti. Capire cosa si aspetta il framework è la chiave per evitare i capelli bianchi in questa fase. Avere abbastanza informazioni per eseguire manualmente ciò che il framework automatizza può aiutare a ridurre questo sforzo di indovinare.

PERCHÉ: Per il debug/design più avanzato, è utile sapere cosa sta facendo il framework sotto il cofano esp. quando le cose non funzionano come pianificato. Inizialmente puoi prendere l'aiuto di guru locali o guru del forum che hanno già svolto il duro lavoro. Più tardi, mentre vai più a fondo, puoi assumere più di quel ruolo. Per esempio c'è un libro "rotaie di ricostruzione" che guarda sotto il cofano di Ruby on Rails.

Nota: alcuni dei suggerimenti sono orientati verso Ruby/Rails ma è possibile sostituire facilmente la lingua/struttura preferita.

+0

ha alcune grandi risorse per l'apprendimento di diversi framework/tecnologie. Esempio per RoR: http://stackoverflow.com/questions/55574/learning-ruby-on-rails – GuruM

Problemi correlati