IT knowledge base
CTRL+F per cercare la tua parola chiave

Traduzione: chi è uno sviluppatore Full Stack?

Ciao, Habr! Presento alla vostra attenzione la traduzione dell'articolo "Cos'è uno sviluppatore Full Stack?" di Laurence Gellert .

Immagine

Chi è uno sviluppatore Full Stack?

È ragionevole aspettarsi che i comuni mortali possiedano tutti gli aspetti dello sviluppo? Probabilmente no, ma Facebook potrebbe chiedertelo. All'OSCON (O'Reilly Open Source Convention), un dipendente di Facebook ha affermato di assumere solo sviluppatori Full Stack. Cosa significa?

Per me, uno sviluppatore Full Stack è una persona con una buona comprensione di ogni livello di sviluppo e un sincero interesse per tutte le tecnologie software.

I bravi sviluppatori che hanno familiarità con l'intero stack sanno come semplificare la vita a coloro che li circondano. Questo è il motivo per cui sono così contrario alla frammentazione del posto di lavoro. Naturalmente, i problemi politici e di comunicazione si intromettono nelle grandi organizzazioni. Penso che l'essenza della politica di assunzione di Facebook sia che se le persone intelligenti usano la testa e ascoltano il cuore, allora il miglior prodotto viene creato in meno tempo.

Immagine

Livelli di sviluppo dello stack completo:

  1. Server, rete e ambiente di hosting R. Ciò include la comprensione di cosa può rompersi e perché, senza dare per scontate le risorse. B. L'uso corretto del file system, dell'archiviazione cloud, delle risorse di rete e della comprensione della ridondanza e della disponibilità dei dati è essenziale. C. In che modo l'applicazione si adatta ai vincoli hardware? D. Che dire del multithreading e delle race condition? Molto probabilmente non li applicherai nel tuo sviluppo, ma sono usati nel mondo. E. Gli sviluppatori full stack possono lavorare fianco a fianco con DevOps. Il sistema dovrebbe fornire utili messaggi di errore e funzionalità di registrazione.
  2. Modellazione dei dati R. Se il modello di dati è imperfetto, la logica aziendale e i livelli superiori iniziano a richiedere codice strano (brutto) per compensare i casi che il modello di dati non copre. B. Gli sviluppatori di stack completi sanno come creare un modello relazionale ragionevolmente normalizzato, completo di chiavi esterne, indici, viste, tabelle di ricerca e altro. C. Gli sviluppatori full stack hanno familiarità con il concetto di database non relazionali e comprendono come questi siano superiori ai database relazionali.
  3. Logica di business A. Comprendere il valore rappresentato dall'applicazione. B. Conoscenza di solidi principi orientati agli oggetti. C. Conoscenza dei framework utilizzabili.
  4. Livello API / Livello di azione / MVC A. Come il mondo esterno influenza la logica di business e il modello dei dati. B. I framework dovrebbero essere utilizzati attivamente a questo livello. C. Gli sviluppatori full stack hanno la capacità di scrivere interfacce chiare, coerenti e di facile utilizzo. Sono scoraggiato dalla confusione di alcune API.
  5. Interfaccia utente (UI) A. Gli sviluppatori full stack a) capiscono come creare un layout leggibile o b) riconoscono di aver bisogno dell'aiuto di artisti e grafici. In ogni caso, l'implementazione di un buon design visivo è fondamentale. B. Competenza in HTML5 / CSS. C. JavaScript è un promettente linguaggio del futuro e ci sono molti interessanti progetti in corso nel mondo JavaScript (nodo, backbone, knockout...).
  6. Esperienza utente (UX) R. Gli sviluppatori full stack apprezzano che gli utenti vogliono solo che le cose funzionino. B. Un buon sistema non dà ai suoi utenti la sindrome del tunnel carpale o l'infiammazione degli occhi. C. Gli sviluppatori dello stack completo scrivono messaggi di errore leggibili. Se qualcosa si rompe, chiedi scusa. A volte i programmatori scrivono inavvertitamente messaggi di errore che fanno sentire l'utente stupido da leggere.
  7. Capire di cosa hanno bisogno il cliente e l'azienda R. Ora stiamo confondendo la linea dell'architetto, ma questo è un ruolo troppo importante. B. Gli sviluppatori dello stack completo hanno un'idea di cosa succede quando l'utente utilizza il software. Hanno anche una comprensione commerciale.

Altri punti importanti

  1. Capacità di scrivere unit test di qualità. A proposito, anche JavaScript può avere test di unità in questi giorni.
  2. Comprendi i processi ripetitivi e automatizzati per creare un'applicazione, testarla, documentarla e distribuirla su larga scala.
  3. La consapevolezza dei problemi di sicurezza è importante poiché ogni livello presenta le proprie potenziali vulnerabilità.

Pensieri finali

È una pessima pratica collegare il codice a un'implementazione specifica (libreria, sistema operativo, hardware, ecc.). Il fatto che uno sviluppatore full stack comprenda l'intera gamma di tecnologie non significa che disponga dell'autorizzazione per utilizzare il percorso più semplice. In effetti, lo fanno se si tratta di un "progetto esplosivo".

Le startup tecnologiche hanno bisogno di sviluppatori full stack a causa della loro versatilità! Tuttavia, man mano che l'organizzazione si sviluppa, ha bisogno di sempre più professionisti dedicati.

Non sono sicuro che tu possa definirti uno sviluppatore full stack a meno che tu non abbia lavorato in più lingue, piattaforme e persino settori nella tua carriera professionale. Lo stack completo va oltre lo scopo di un "ingegnere senior" in quanto è nella stessa direzione del programmatore poliglotta, ma con una rappresentazione più elevata di tutti i raccordi. Si prega di notare che ci sono solo 3-5 elementi relativi alla codifica nella mia lista.