Che cosa devo sapere sui server in un ruolo di sviluppo Web? [chiuso]

12

So che potrebbe sembrare un po 'vago, quindi cercherò di spiegare un po' oltre ...

Dopo essere stato uno sviluppatore autonomo per molti anni, ora sono alla ricerca di un ruolo commerciale di sviluppatore web. La mia unica esperienza con server e hosting sta caricando tramite FTP e giocando un po 'con CPanel / WHM. Il ruolo che sto svolgendo sono lo sviluppo web PHP, MySQL, HTML, i ruoli di tipo CSS, ma nelle interviste recenti mi hanno fatto domande sull'impostazione di cose sul server, che non avevo idea di cosa si stesse dicendo ... che non era l'ideale!

Senza sapere più di me, è difficile spiegare che cosa sto cercando di imparare, ma fondamentalmente sono solo gli elementi server che dovrei conoscere come sviluppatore web? Se sei uno sviluppatore web, hai a che fare con il server a parte il caricamento dei file, e se sì, cosa? Sono cose come Subversion (SVN) e sistemi di controllo delle versioni spesso impostati dal team di sviluppo web, potrebbe essere quello di cui stavano parlando?

    
posta john 18.10.2013 - 14:53
fonte

5 risposte

10

Questa è una grande serie di domande, ma ho il sospetto che molte persone debbano affrontare, in particolare quando iniziano a progredire in una carriera iniziata con un focus pesante front-end.

Hai detto che stai andando per un ruolo che include lo sviluppo di PHP e MySQL. Queste sono cose che devono essere eseguite sul server. Essere in grado di formulare buoni giudizi tecnici come sviluppatore richiede che si comprenda come queste cose funzionano sul server e come interagiscono con il front-end web. Pertanto, è necessario sviluppare una comprensione del server.

Piuttosto che cercare di capire in prima persona l'esatta conoscenza che potresti aver bisogno del server, ti consiglio di immergerti e creare qualcosa, compresa l'installazione di tutti i software lato server. Un ottimo modo per bagnarti è installare Linux sul tuo computer. Puoi usare qualcosa come VirtualBox per farlo funzionare insieme al tuo sistema operativo attuale. Installa MySQL, installa e configura il server per PHP e prova a far funzionare tutto insieme. Il bello è che oggigiorno un laptop moderatamente attrezzato può eseguire tutto questo ed essere il "server". Questo potrebbe essere difficile all'inizio, soprattutto se non hai esperienza con Linux e la riga di comando. Come sviluppatore, dovresti almeno sapere abbastanza per essere in grado di superare questo esercizio e ti darà un salto in avanti nel capire come migliorare le tue conoscenze.

Ci sono tre aree in cui probabilmente dovrai migliorare la velocità:

  1. Le basi del sistema operativo Linux. Magari iniziare con una distribuzione facile da installare come Ubuntu.
  2. Configurazione di un server Web e PHP. Installare Apache è un buon punto di partenza. Ci sono altre alternative, ma è qui che inizia la maggior parte delle persone.
  3. Apprendere le basi per l'installazione e l'esecuzione di MySQL. Per lo meno, come sviluppatore, sarà probabilmente necessario essere in grado di scrivere DDL per creare tabelle e altre strutture nel database e sarà necessario essere in grado di interrogare il database sul server per esplorare i dati e garantire quali sono i vostri l'applicazione sta sputando le corrispondenze di ciò che si trova nel database.

Se dovessi andare con Ubuntu, potresti seguire le istruzioni di base qui a alzati e correndo. Nota, prima di iniziare a installare e giocare con i server web / i componenti del database dovrai fare un bel po 'di rampe sulle basi di Linux.

In termini di come gli sviluppatori devono interagire con il server, oltre al caricamento dei file, penso che questo varia molto da un'organizzazione all'altra.

  1. Gli sviluppatori si occupano spesso dell'amministrazione almeno dell'ambiente di sviluppo. A volte, sono gli sviluppatori che stanno impostando il sistema di controllo di revisione (ad esempio SVN) e il processo di distribuzione (spostamento del codice tra gli ambienti).
  2. A questo punto, per lo meno gli sviluppatori dovranno usare il sistema di controllo delle revisioni che vive sul server.
  3. Avrai anche bisogno di fare cose come guardare i registri su un server per vedere quali messaggi vengono generati per aiutare a diagnosticare e risolvere i problemi.
  4. Potrebbe essere necessario lavorare con un team di infrastruttura per determinare cose come la configurazione di rete o la configurazione di archiviazione del server. Spesso, i problemi delle applicazioni sono una combinazione della configurazione e del codice.

Il punto è che non c'è una sola risposta per esattamente come sarà necessario toccare il server, ma nel corso della tua carriera, sicuramente andrà oltre il semplice caricamento di file tramite qualcosa come FTP. Iniziare imparando le basi ora ti aiuterà.

    
risposta data 18.10.2013 - 15:48
fonte
2

Il mio primo consiglio è quello di non limitarti esclusivamente a un ruolo. È bello essere uno specialista e avere una profonda conoscenza di una particolare abilità set (PHP, per esempio). Tuttavia, è altrettanto importante avere una vasta conoscenza che abbraccia il resto del tuo dominio.

Nella mia esperienza la maggior parte delle squadre non sta cercando di assumere qualcuno che ha il conoscenza per riscrivere le funzionalità di base di PHP, ma piuttosto qualcuno che in grado di gestire qualsiasi problema che viene lanciato a loro (anche se con quel livello di la conoscenza non farebbe certamente male). O almeno qualcuno che può aiutare a risolvere eventuali problemi incontrati dal team. Ad esempio, immagina una situazione in cui la tua domanda si interrompe e i clienti ne subiscono le conseguenze. Puoi o alzare le mani e dire "Non ho idea di cosa fare ..." oppure puoi entrare in SSH il server, avvia i registri di scansione, nota che lo spazio su disco di un particolare il filesystem è pieno e procedere alla pulizia. Questo è un esempio minore ma io pensa che il punto sia chiaro. Con quella conoscenza di base, come sviluppatore, tu potrebbe scrivere uno script che controlli quel particolare filesystem e lo pulisca fuori una volta raggiunta una certa soglia. Ora sei diventato molto di più prezioso per il tuo manager.

Un'altra cosa che ho imparato durante la mia carriera è che le cose si muovono velocemente e se non ti alzi resterai indietro. Più cose conosci   l'intero ambiente (compresi gli aspetti aziendali), meglio è   siamo. Questo non vuol dire che devi essere un esperto in tutto ciò che fai, ma a   almeno le conoscenze per non essere etichettate come incapaci. Il più familiare   sei, più sei adattabile e più preziosa sei   alla tua azienda.

Per rispondere in modo specifico alle tue domande ...

  • Quali elementi del server dovrei sapere come sviluppatore?

Avere familiarità con l'intero stack di applicazioni. Sapere quale server web, database, meccanismi di memorizzazione nella cache, ecc. che vengono utilizzati. E anche quali versioni. Avere abbastanza familiarità da poter ricreare l'ambiente sul proprio server. Il che, in sé e per sé, è vitale. Dovresti sforzarti di più o meno avere gli stessi ambienti nello sviluppo e nella produzione, in quanto riduce sorprese ( link ).

  • Come sviluppatore quali rapporti hai con il server?

Questo dipende molto dalla squadra. Nel mio caso particolare, gli sviluppatori giocano a enorme ruolo nella messa in scena degli ambienti. Siamo i più familiari con l'interiore funzionamento dell'applicazione e quindi sono nella posizione migliore per determinare cosa le tecnologie server sono in atto per eseguirlo. Immagino che non tutte le squadre abbiano questo un approccio pratico, ma per avere abbastanza familiarità da poter coinvolgere te stesso nelle discussioni è un grande vantaggio. In particolare, per quanto riguarda controllo della versione, tu come lo sviluppatore sono molto influenzati da quale tecnologia è scelto (Git, Subversion, Mercurial, ecc.), e quindi dovrebbe sforzarsi di farlo coinvolgiti nel processo decisionale.

Quindi, ora cosa?

Per quanto riguarda il mio suggerimento su come meglio approcciare l'apprendimento a tutto questo? Sposta i tuoi piedi . non preoccupati di provare a leggere tutto ciò che puoi sull'argomento, la maggior parte lo farà probabilmente appena fuori dal tuo cervello per il momento in cui hai finito. Anziché inizia a sviluppare qualcosa da zero. Inizia con Vagrant ; lo farà ti consente di creare e gestire facilmente una macchina virtuale che puoi utilizzare come tua nuovo parco giochi. Quindi, installa un server Web e un database e inizia a creare. Se hai un'idea per un'app, perfetta, provaci ... se no, trova un tutorial o prova a ricreare un'app esistente. Il punto è solo per familiarizzare con il intero processo. Inoltre, come sviluppatore PHP, assicurati di controllare PHP: The Right Way ... contiene davvero molte informazioni eccellenti. E, soprattutto, non stressarti. Ti immagino seguito il percorso di uno sviluppatore perché è qualcosa che ti piace e lo sei appassionato di ... non perdere di vista questo!

    
risposta data 18.10.2013 - 18:23
fonte
1

Concentrarsi su Che cosa è necessario sapere sui server per essere uno sviluppatore web? ...

Davvero sorprendentemente piccolo. Le principali aree di conoscenza dovrebbero essere la programmazione, html, php, ecc.

Quello che devi sapere è come eseguire le cose a livello locale e quando lo fai stai usando la tua casella come "server". Quindi, quando esegui localmente, usi un browser web per visualizzare le pagine, proprio come con qualsiasi sito internet ... eccetto il tuo sarà http://localhost o http://127.0.0.1

Per quanto riguarda la configurazione di cgi, http, ecc. Non mi aspetto che tu debba saperlo. Puoi sempre lavorare su qualsiasi libro generale sulla configurazione di un server web per il sistema operativo in cui lavori e che sarebbe sufficiente per conoscere i termini generali.

Per un'immagine più ampia consiglio di entrare in Linux e di imparare come configurare e configurare macchine come i server web. Ma solo se hai effettivamente un interesse per il materiale. Non solo per impressionare nelle interviste.

Infine ti consiglierei di prendere appunti durante le interviste su aree di cui non sai abbastanza. Sarebbe utile se la tua domanda fosse più specifica su quali termini, ecc. Non lo sapessi.

    
risposta data 18.10.2013 - 16:33
fonte
0

Devi conoscere le seguenti cose per completare il ciclo di sviluppo web.

1) IDE (Netbeans ed Eclipse ecc.)

2) Qualsiasi linguaggio di programmazione per la codifica. (PHP, java, ecc.)

3) Tecnologia frontale per la progettazione di pagine (HTML, CSS ecc.)

4) Database supportato per archiviare e recuperare i dati. (MySQL ecc.)

3) Sistema di controllo delle versioni per il controllo e il recupero del repository dei moduli di codice.

4) strumento di compilazione per compilare il codice con i file dipendenti. (Ant, Maven)

6) Server Web per distribuire ed eseguire il codice.

7) È necessario conoscere il processo di distribuzione di base sui server per eseguire e testare componenti Web ed ejb. (Tomcat, server Web-Logic)

    
risposta data 18.10.2013 - 15:53
fonte
0

Oltre alla risposta di DemetriKots, aggiungerei anche delle soluzioni per l'implementazione automatizzata e l'integrazione continua. La configurazione iniziale del server è solo un passaggio e la distribuzione tramite FTP è dolorosa e soggetta a errori, senza una soluzione adeguata per il roll back di deploys dannosi.

  • Hudson - Server di integrazione continua
  • Phing - strumento di build automatizzato, specificamente per PHP, basato su Ant
  • Ant - strumento di creazione automatica
  • Capistrano - crea script di implementazione per automatizzare e facilitare la distribuzione della tua applicazione web.
risposta data 18.10.2013 - 18:17
fonte

Leggi altre domande sui tag