Come determinare quale lingua / struttura è la migliore per il nostro progetto basato sul web?

6

Sono nelle prime fasi di sviluppo di un'applicazione web che ha tre sviluppatori (me compreso) che lavorano su di esso. Il progetto è, fondamentalmente, un database basato sul web che verrà utilizzato da circa 5.000 persone. Il suo scopo principale è quello di tenere traccia delle informazioni sui personaggi del gioco mentre impone un insieme di regole e sicurezza. Nel frattempo, dovrebbe essere il più possibile utilizzabile.

Mentre la presentazione principale si svolgerà su un browser Web desktop in rete, speriamo anche che

  • alcune funzioni dell'applicazione saranno utilizzabili quando sono disconnesse dalla rete e

  • che possiamo sviluppare una versione del frontend per dispositivi mobili.

Ecco alcuni elementi di base per gli sviluppatori; Penso che sia abbastanza pertinente alla domanda.

  • Lo sviluppatore A mantiene il sistema che stiamo riprogettando. E 'stato costruito in PHP, ma ci sono pochissimi codici reali che possiamo tenere. Ha anche il potere di veto, sebbene prenda facilmente le sue indicazioni.
  • Lo sviluppatore B è familiare solo con VB e SQL, anche se ultimamente ha studiato AJAX e HTML / CSS.
  • Lo sviluppatore C (me) ha una laurea in Ingegneria del software con esperienza in più lingue (non MS) e con uno sviluppo generale di database / web, ma ha sviluppato codice solo in Ruby da quando si è laureato (2009). Dev C ha esperienza in una versione precedente di PHP e ha contribuito a lavorare su un progetto nell'ultima versione di Rails nel 2008.

Gli strumenti principali che stiamo prendendo in considerazione sono Ruby on Rails 3 e PHP 5. Lo sviluppatore A sembra piuttosto contrario all'apprendimento di Rails, ma suppongo che stia partendo dal presupposto che sia più difficile da imparare di quanto non sia in realtà. Non lo so per certo, però. Indipendentemente dal quale scegliamo, voglio utilizzare un'architettura MVC.

Quali altre importanti preoccupazioni che dovremmo affrontare per determinare quale lingua sarebbe più adatta a noi? alcuni dei problemi elencati di seguito sono triviali?

I principali problemi / punti / dubbi I penso che devo considerare / indirizzo sono:

  • L'ostacolo dell'apprendimento per Rails - per lo sviluppatore A, soprattutto, ma anche se sarebbe più difficile imparare un po 'solo per aiutare lo sviluppatore B di quanto lo sarebbe per lui imparare un po' di PHP.
  • La possibilità che ci siano problemi di prestazioni con Rails.
  • La mancanza di una struttura forzata con PHP - dovrei aspettarmi difficoltà nell'imposizione di un MVC
  • Facilità di integrazione AJAX in PHP vs Rails.
posta corvec 06.05.2011 - 05:34
fonte

3 risposte

2

La tua prima decisione è la struttura dell'applicazione. Il secondo è la scelta del quadro. Anche la lingua potrebbe essere un fattore decisivo, ma non è altrettanto importante.

Poiché è necessario disporre di tutti i tipi di entità diverse nel proprio sistema, i personaggi, le abilità, probabilmente scrivono altre informazioni - è necessario un database relazionale completo. Quello di cui hai bisogno è anche un potente ORM, che è fondamentalmente un ponte tra database relazionale e linguaggio di programmazione.

Da qui avresti bisogno di decidere cosa stai facendo in termini di interfaccia utente. Il tuo team è composto da 3 sviluppatori e B apprende solo HTML, quindi hai bisogno di un framework che abbia un potente supporto per web ui.

PHP ha selezioni molto più ampie di diversi framework, cerca "PHP UI Framework", ma tieni presente che hai bisogno dell'interfaccia utente per lavorare senza problemi con ORM e database.

Se chiedi solo delle persone, il dialogo sarebbe:

  • Quale framework?
  • Framework X, è facile!
  • Perché?
  • Perché ho trascorso 1 anno ad apprenderlo.

Non sarebbe così semplice per te se stai appena iniziando. Prova a creare qualcosa di semplice in pochi quadri, scopri come ti senti flessibile e comodo con ciascuno di essi.

Sono interessato a cosa hai scelto:)

    
risposta data 07.05.2011 - 15:00
fonte
3

Questo è un caso per la prototipazione!

prendi sia PHP che Rails (e forse altri stack tecnologici che potresti voler valutare) e costruisci una piccola parte di funzionalità end to end con loro (dai al tuo mini-team 1-2 settimane per farlo), assicurandoti che la funzionalità sottolinea alcune delle preoccupazioni che hai sollevato (accesso offline e più client).

Quindi qualcosa come un oggetto Character con 5 campi che puoi CRUD a un DB sia centralmente che localmente (i browser moderni che supportano "HTML 5" lo consentono) e 2 interfacce utente separate. Un'interfaccia utente per il browser Web desktop e una per dire un dispositivo Android o iOS. Ci sono molte opzioni di interfaccia utente per dispositivi mobili, se la tua app è abbastanza semplice, allora sceglierei una soluzione basata su HTML anziché nativa.

Spero che abbia un senso!

    
risposta data 06.05.2011 - 13:51
fonte
0

La tua sfida qui è quella di migrare verso un codice più strutturato .

Ecco alcuni dei miei input.

  • scopri alcuni suggerimenti su refactoring .

  • È possibile migrare il codice PHP esistente in un framework PHP che applica MVC, come CakePHP. In questo caso, Dev A ha una curva di apprendimento poco profonda poiché utilizzerà PHP.

  • La migrazione su Rails, penso, sarà più impegnativa dal momento che Dev A deve impararlo (e se pensa di essere costretto a farlo, allora hai un problema :() e cambierai il codice esistente base in un'altra lingua.

Spero che questo aiuti:)

    
risposta data 06.05.2011 - 06:29
fonte

Leggi altre domande sui tag