Quali considerazioni sulla lingua, il framework e l'hosting devono essere fatte prima di avviare lo sviluppo di un'applicazione Web scalabile?Pianificazione dello sviluppo di applicazioni Web scalabili
risposta
La considerazione più importante non è quella di eseguire un ingegnere eccessivo al punto da ostacolare la costruzione e il lancio di qualcosa. La paralisi dell'analisi è il singolo più grande inibitore della produttività, dei progressi e dei risultati.
Sì, fare un po 'di pianificazione. Scegli un quadro. La perfezione in un quadro sarà impossibile da trovare perché non esiste, in parte perché non sai di cosa hai bisogno fino a quando non lo costruisci comunque. È probabile che, se scegli qualcosa, sarà meglio che scegliere nulla.
Sì, prova a scegliere strumenti flessibili e interoperabili per dove ti vedi.
Sì, cerca un buon set di funzionalità integrate in cui ti vedi andare nei prossimi 6-18 mesi. Cercare di guardare oltre non è comunque molto realistico dato che la maggior parte dei progetti cambia comunque andando verso la prima versione.
Quindi, scegli ciò che ti piace o ciò che ti è familiare. Non seguire la folla, fai quello che ti dà i risultati migliori, più veloce e spesso. Comprendi che potresti dover cambiare in futuro. Quindi, qualunque cosa tu costruisca ora, prova a usare i test unitari in modo da poter ridistribuire se necessario.
Se quello che stai costruendo sarà un grande successo, sarà un grande problema da avere, e sarà facile lavorarci una volta che guadagnerai, dato che sarai in grado di ottenere altri talenti per aiutarti .
Condividi quello che finisci a raccogliere e perché per la tua situazione - aiuta anche noi a imparare da te!
Dipende.
iniziare a guardare le vostre esigenze (funzionali o definiti dall'utente) (Non funzionante - aspetti che descrivono il sistema desiderato link text)
Avanti vorrei chiarire che cosa significa avere un'applicazione web scalabile. Definirlo come casi di test che possono essere chiaramente testati (deve supportare X pagine viste/secondi con tempo di risposta < Y secondi).
Una volta posizionati quei pezzi, vorrei esaminare il tipo di competenze che il mio team di sviluppo può supportare (per il progetto iniziale e la manutenzione in corso). Quindi trova alcuni casi studio di applicazioni in natura che usano un linguaggio o un framework simile. Se qualcun altro ha realizzato una scala specifica per linguaggio/quadro, è probabile che anche tu possa farlo.
Infine uscire e cercare alcuni provider di hosting che supportano la lingua, la struttura e i requisiti scelti.
In primo luogo sul linguaggio, in gran parte non importa. PHP, Java e .Net sono probabilmente i più grandi tre sono tutti provati nel senso che eseguono alcuni dei più grandi siti sul Web, quindi non ascoltare chi ti dice che uno è più adatto di tutti gli altri.
Alcuni potrebbero anche inserire Ruby e Django/Python in questo elenco. Non ho nulla contro di loro, ma non sono a conoscenza di nessun grande (diciamo i primi 50) siti che usano entrambi.
considerazioni Hosting dipendono da quanto in basso si desidera avviare ma fondamentalmente l'ordine è:
- condivisa;
- Server privato virtuale;
- Dedicato.
La scalabilità riguarderà in gran parte il design della vostra applicazione rispetto a qualsiasi lingua, struttura o fornitore. Schema efficiente del database, consegna efficiente e utilizzo di JavaScript/CSS e memorizzazione nella cache nella memoria sono tutti problemi comuni a qualsiasi linguaggio o framework.
Lingua: raccomando qualcosa con buoni framework e buone librerie di test come Perl o Java.
Framework: dipende da cosa pensi di fare. Se inizi con un hosting che non consente FastCGI, è meglio evitare tali framework come Catalyst o Rails. Ecco perché amo CGI :: Application (principalmente Perl, ma anche in altri linguaggi), che può essere eseguito come CGI, FastCGI o mod_perl. Per lo sviluppo può essere eseguito dal proprio server web.
Hosting: niente è meglio del proprio server. Può essere il tuo server, server in leasing o server virtuale. Ma puoi iniziare con l'hosting più economico e quando hai bisogno di più, dovresti essere in grado di permettertelo.
Ruby on Rails non richiede FastCGI, quindi non sono sicuro del motivo per cui il supporto FastCGI è pertinente. – Chuck
Non necessariamente sposare te stesso a una lingua o quadro. È possibile che alcune parti del tuo sito funzionino meglio con linguaggi e framework diversi rispetto ad altri. Ad esempio, tutti i siti di 37signals sono basati su Ruby on Rails, ma di recente hanno scritto un post sul blog su come la tecnologia sottostante di uno sia effettivamente scritta in Erlang ora perché è molto più facile fare la concorrenza in questo modo.
Ovviamente c'è un livello di complessità in cui le cose si trasformano in un guazzabuglio, ma usare lo strumento giusto per il lavoro - anche se questo significa strumenti diversi per lavori diversi - può semplificare le cose.
- 1. Come progettare applicazioni scalabili?
- 2. qualsiasi buon libro su applicazioni web scalabili (Java/Ajax/REST)?
- 3. Sviluppo di applicazioni Web su Scala
- 4. Come progettare/pianificare lo sviluppo di applicazioni Web?
- 5. Utilizzo di python per lo sviluppo di applicazioni Web
- 6. Limiti della quota dell'API di YouTube e applicazioni scalabili
- 7. modo preferito di sviluppo di applicazioni web con m2eclipse
- 8. Trasformazione grafica vincolata nelle applicazioni di pianificazione
- 9. ASP.net sviluppo di applicazioni mobile
- 10. Vaadin per lo sviluppo di applicazioni Web - Pochi dubbi
- 11. Sviluppo di applicazioni Web utilizzando Objective-C su FreeBSD
- 12. IDE migliore per lo sviluppo di applicazioni desktop Java
- 13. Soluzioni scalabili di geocodifica internazionale
- 14. Debug di applicazioni Web
- 15. Possibile sviluppo multipiattaforma di applicazioni Watch/Wearable?
- 16. Python nello sviluppo di applicazioni desktop
- 17. Condivisione dello stato sessione SQL Server attraverso applicazioni Web
- 18. Devo utilizzare un framework durante l'apprendimento dello sviluppo Web
- 19. Il futuro dello sviluppo web (RIA rispetto al tradizionale HTML)
- 20. Avvio dello sviluppo dell'hardware
- 21. Licenze di applicazioni Web
- 22. Processo di sviluppo applicazioni Web - Controllo versione, Monitoraggio dei bug, Test unità, Distribuzione
- 23. Sviluppo Web
- 24. Quali sono i vantaggi e le sfide dello sviluppo di app web e app desktop?
- 25. Sviluppo applicazioni per Windows CE
- 26. Sviluppo applicazioni Android WebRTC nativo
- 27. La distribuzione di applicazioni Web Java è più costosa di altre applicazioni Web PHP?
- 28. Come gestire "ticket" durante la pianificazione dello sprint
- 29. Sviluppo di applicazioni per chat Android
- 30. Sviluppo di applicazioni Windows su Linux?
Siti Web scritti in Ruby: Twitter, Github, Amazon ... –