2009-02-08 3 views
9

Ho eseguito la programmazione Web tramite PHP, quindi conosco le basi di HTML, CSS e sessioni. Ciononostante, probabilmente ci sono molti concetti e teorie sullo sviluppo del web che probabilmente mi mancano poiché il mio approccio originario deriva dalla conoscenza di una lingua, non di una piattaforma stessa.Come si dovrebbe iniziare a imparare lo sviluppo di applicazioni web?

dove si va per imparare le pratiche e teoria generale, applicabile a tutti i linguaggi di programmazione, su:
-Proper HTML e CSS di codifica, le tecniche e le migliori pratiche
-Differences nel browser rendendo
sito -Web disegno
-Ottimizzazione per il carico
-Session gestione, biscotti
-client-side scripting, JavaScript
-Sicurezza (questo è un biggie)
paradigmi -Sviluppo
lingue -template

La mia domanda in sostanza deriva dal fatto che al giorno d'oggi la maggior parte dei siti sembrano come una maglia di spaghetti di CSS incorporato ed esterno e Javascript, AJAX, script lato server, API e framework che gestiscono tutto sotto il sole e hanno un milione di modi diversi di fare la stessa cosa (dalla sicurezza alle forme alla convalida alla generazione del codice), e sembra che non ci sia una fonte autorevole per tutto ciò; e quando ci si attiene a qualsiasi framework, sembra che ci sia un sacco di "magia" che nasconde un livello sconosciuto di complessità (l'uso preferito di GWT ha bisogno del caching sul lato client, Django fornisce i moduli per gestire ORM, ASP.NET ha un linguaggio template che mappe in modo strano per variabili lato client, ecc.)

+0

Per chiarire le cose: menziono CSS, HTML e Javascript al di fuori del set di "lingue" perché sono essenziali e necessarie per tutto lo sviluppo web, quindi indipendentemente da Python, Ruby, C# o qualsiasi altra cosa, quelli dovrebbero essere appreso – Daishiman

risposta

9

La mia risorsa numero uno: Google. Il resto è commentario:

Una cosa mi salta in testa per quanto riguarda il vostro elenco di informazioni sulla lavanderia è che attraversa interi domini. Per esempio, ci sono intere carriere costruite esclusivamente attorno alla "progettazione di siti web". I progettisti di siti Web conosceranno CSS, HTML e tutti i trucchi sporchi per ottenere un sito che sia bello (o almeno buono) nel maggior numero di browser possibile. Copre i primi tre nella tua lista. Il resto si estende lato client, lato server e pochi altri domini.

So- la risposta breve è: proprio come i medici e gli avvocati non imparano la loro intera pratica da un tomo di tre piani, non c'è posto solo per trovare informazioni su tutti gli aspetti dello sviluppo web.

Si potrebbe anche trascorrere un'eternità compilando tutti i tipi di "conoscenza" su questi argomenti senza mai veramente apprendimento nulla. Non fraintendetemi: per esigenze specifiche ci sono molte grandi risorse. Devi solo sapere cosa vuoi prima di andare a cercare. Non tentare di assorbire le conoscenze nell'intero elenco per ogni stack e framework. Diventerai matto. Concentrate la vostra ricerca sui risultati ottenuti in pochi domini fondamentali. Supplemento con la teoria indipendente dalla piattaforma per il resto per completarlo.

+0

+1 I secondi i pensieri "nessun singolo posto ...". – Wayne

2

La maggior parte di questi articoli dovrà essere ricercata tramite metodi convenzionali. Come in molte, molte, molte ore di ricerca degli argomenti in Google e collegamenti da pagine diverse. Ci sono molti libri là fuori per ogni argomento che menzioni. Amazon.com prenderà volentieri i tuoi soldi per questi libri e la biblioteca pubblica li offrirà volentieri in leasing a te praticamente gratis.

Nella mia esperienza, ho scoperto che è più semplice imparare un nuovo concetto di programmazione dando a me stesso un progetto su cui lavorare. Forse hai un'idea per un sito che utilizzerà tutti questi concetti e inizia a costruirlo. Nel processo di lavoro su questo progetto, ti verrà richiesto di apprendere questi argomenti per completare il progetto. Una volta che hai finito, se sei ancora un po 'arrugginito, strappi e ripassa. In altre parole, ricomincia da capo su un altro progetto. Chissà? Forse il tuo progetto finirà per diventare il prossimo MySpace ... o meglio ancora, StackOverflow.

In ogni caso, si spera che questo approccio ti possa aiutare nel tuo viaggio. In bocca al lupo.

2

Non sono un esperto in tutte le aree che hai acquistato, cercherò di rivolgermi a coloro con cui ho più esperienza.

-Proper HTML e la codifica CSS, tecniche e best practice
sito disegno -Web
Ci sono un sacco di libri sull'argomento, ma ho sempre trovato che il codice di lettura di qualcun altro è stato molto più vantaggioso. Dai un'occhiata ai modelli CSS gratuiti che puoi trovare su Google o scegli un sito web che ti piace e guarda HTML/CSS. Lo strumento che consiglierei di utilizzare è la funzione "controlla" in Firebug. Puoi puntare l'elemento sulla pagina e ti porta all'elemento corrispondente nel codice.

-Differences in del browser di rendering
-client-side scripting, JavaScript
IE6 ACCCKKKK !!! Scusa ma nella mia esperienza devi solo provarlo in tutti i browser e vedere cosa funziona e cosa non funziona. Nel caso del CSS this WC3 site vengono elencate le diverse proprietà CSS e quali browser le supportano. Nel caso di Javascript IntelliJ disponeva di una funzionalità simile a Intellisense che indicava a quali browser era supportata ogni funzione Javascript. Se non si dispone di IntelliJ, è anche possibile leggere MSDN e MDC per ulteriori informazioni su browser specifici e quali funzioni di Javascript sono supportato. Vorrei raccomandare l'uso di librerie Javascript esistenti (prototype, jquery, ...) per occuparsi delle cose JavaScript della piattaforma per te. Ti consigliamo di scrivere il tuo oggetto XMLHttpRequest compatibile con browser diversi. Ti darà una buona idea di ciò che i framework stanno facendo per te.

-Ottimizzazione per il carico
Il progetto senior presso la mia università è stata una web app utilizzata da 3000 persone settimanali. Sottolineiamo testato l'app e andava bene sul set di dati di test. Ma in natura con i dati utente reali è rallentato su una delle richieste URL. Per farla breve: una query del database era in esecuzione lenta e non era chiaro perché fosse così. Abbiamo risolto il problema semplicemente perché avevamo fatto il login sull'applicazione live ed eravamo in grado di utilizzare uno strumento di profilo mysql sul server live per vedere esattamente dove si stava verificando il problema. Risolvi il problema di ottimizzazione quando arrivi, ma fai tutto il possibile per prevenire o mitigare il problema attraverso la registrazione e lo stress test.

-Session gestione, biscotti
-Sicurezza (questo è un biggie)
gestione della sessione/cookie e tipo di sicurezza vanno di pari passo. Ulteriori informazioni sugli attacchi CSRF (here e here). Nuovi framework web hanno le cose in atto per prevenire questo tipo di attacco (django, ASP.NET MVC). CSRF è facile da masterizzare (è successo a me e ai grandi ragazzi come YouTube e Google). È successo agli esperti quindi non è un problema semplice. Ma CSRF e XSS sembrano essere i due grandi problemi comuni. Un modo per conoscerli è scrivere un'app che ne ha intenzionalmente uno e sfruttarla per poi risolverla.I modelli di Django durante il rendering sfuggiranno alle variabili che impediscono la maggior parte degli attacchi XSS.

Per quanto riguarda le strutture che fanno magie: hai ragione che lo fanno e questo è il punto del quadro. E può essere frustrante quando vuoi capire cosa sta succedendo sotto. Il framework nasconde le complessità che non dovresti mai doverti preoccupare di creare un'applicazione web. Pensaci in questo modo: un compilatore è altrettanto magico. Richiede un programma di alto livello e lo trasforma in un livello basso. Un modo per dissipare la magia del compilatore è imparare l'assembly e C. I framework Web non sono diversi. Per capire il tuo strumento a volte è meglio costruire lo strumento. Scrivi il tuo quadro web magari dopo averne imparato uno. Scrivi il tuo linguaggio modello. Scopri anche un framework che è open source in modo da poter rispondere alle domande sulla "magia" che sta facendo. Per esempio mi sono chiesto come django abbia implementato il middleware CSRF. Una rapida occhiata al codice e alla mia domanda è stata data una risposta. La maggior parte dei framework sono ben scritti, quindi il codice è solitamente leggibile. Non aver paura di guardarlo.


che la magia è Lear

0

Molte persone alredy citato Google, ed è ovvio scelta del corso. Vorrei solo aggiungere: leggi anche i libri convenzionali. Leggi i blog dei designer di siti web e dei programmatori. Nel mio google reader ho ricevuto pochi di quelli che leggo regolarmente, anche se non c'è nulla che stavo cercando. Solo per calci e per sapere con cosa gli altri stanno lottando.

1

Per CSS: Dai un'occhiata al sito dello sviluppatore di yahoo per informazioni su CSS orientato agli oggetti e prestazioni di reflow.

Per JS: Scopri come scrivere javascript non ostruibili, la delega degli eventi e come utilizzare uno dei principali framework come ad es. JQuery

Per HTML: Mantenerlo snello e semantico. Preferisci le classi agli id ​​e usa le tabelle solo per i dati tabulari, non per il layout. Non usare i gestori javascript o gli attributi di stile, se possibile.

Per il lato server: Questo dipende dal nostro linguaggio e dal nostro framework, tuttavia Ruby on Rails è piuttosto popolare e potrebbe darvi alcune buone idee. Dai un'occhiata anche a Lift (per Scala).

0

Ci sono libri che vale la pena leggere. 'CSS: The Definitive Guide' di Eric Meyer fa quello che dice sulla scatola e ha alcune note sul supporto del browser.

quirksmode.org ha scritture lunghe su problemi cross-browser in CSS e JavaScript.

"Designing With Web Standards" di Jeffrey Zeldman ha iniziato l'intera cosa CSS, quindi ho sentito. C'è una prima e una seconda versione; Non ho letto né, quindi non sono sicuro delle differenze.