Aiuto nel decidere l'approccio / lingua per l'App Web [chiusa]

2

Ho un progetto personale - un'applicazione web che volevo sviluppare - ma sono confuso su quale strada prendere.

Conosco un po 'di programmazione e mi sono dilettato in Pascal, C, HTML, CSS e Actionscript (per Flash). E non mi interessa imparare un nuovo linguaggio (PHP, Python, mySQL, ecc.). Non ho alcun vincolo di tempo.

Informazioni sull'app:

Il meglio che posso descrivere è come una specie di sistema esperto (ma non AI) che ha bisogno di trovare il miglior flusso di lavoro per un processo, dato un insieme di parametri iniziali e finali. Per esempio. una 'capsula' di dati deve passare attraverso molti 'strumenti' o 'ambienti' per raggiungere l'output desiderato - qualcosa come un autolavaggio molto complicato.

Diciamo che ci sono molti strumenti che possono essere utilizzati in varie fasi del processo. Ho stimato che al momento ci sono almeno 500 strumenti, ed è destinata a crescere in futuro con l'introduzione di nuovi strumenti. Gli strumenti esistenti avranno anche aggiornamenti di versione.

Ogni strumento, in media, ha almeno 100 proprietà che definiscono lo strumento. Alcuni hanno addirittura 1000 proprietà uniche. Alcuni di questi strumenti sono collegati tra loro - ad esempio se uno strumento è selezionato, ci sono solo n strumenti che possono corrispondere ad esso per la fase successiva del processo. Ho anche il problema di "abbinare" gli strumenti per l'analisi. Per esempio. Lo strumento A potrebbe avere solo tre rpm fissi - 100, 200 e 500, ma lo strumento B potrebbe avere rpms dal 20 al 2000. Non sono sicuro di come sia possibile costruire un database senza comporre ogni numero, come nell'esempio sopra.

Il numero totale di strumenti necessari per il processo può essere definito all'inizio, tuttavia, cambierà via via che l'applicazione diventa più complessa in futuro. Ho intenzione di affrontare ogni evenienza nel processo. L'idea è: se l'utente immette i parametri iniziali e il risultato desiderato (un'altra serie di parametri), l'app deve trovare il percorso "migliore" - una sorta di come un albero decisionale. Il percorso migliore può essere il più veloce, il più economico, ecc. Vorrei che l'utente scelga ciò che è meglio per lui / lei.

Sfortunatamente, i parametri potrebbero cambiare, le relazioni potrebbero cambiare (ma non regolarmente) - le "regole" che userò potrebbero essere riviste per una migliore accuratezza nella previsione.

Ho anche bisogno di tracciare il percorso e le soluzioni di ciascun utente 'per riferimento futuro (ma nessun dato personale ad eccezione del nome utente e dell'indirizzo email per l'accesso). Forse quando l'app è attiva e funzionante, mi piacerebbe renderla più democratica, con gli utenti che contribuiscono a perfezionare la logica / le regole coinvolte.

Se possibile, vorrei anche che l'app producesse un diagramma di flusso grafico alla fine che mostri il flusso di lavoro con tutti gli strumenti raggruppati in un layout di facile comprensione.

Le mie domande:

  1. L'app sarà meglio servita con un DB relazionale come mySQL o un database Object?
  2. Posso farlo funzionare con PHP + AJAX + CSS + mySQL? C'è un'alternativa migliore? Preferirei programmi gratuiti: intendo che questa app sia gratuita, ma potrei voler renderla pubblicitaria in seguito. Ho bisogno che questo programma funzioni su qualsiasi dispositivo in grado di connettersi a Internet, inclusi tablet e cellulari, ecc.
  3. Ho bisogno di un framework? CodeIgniter / Symfony vs Django / ZOPE? Qual è il modo migliore per iniziare, considerando che potrei doverlo ridimensionare in futuro - con più dati, più utenti connessi contemporaneamente e più algoritmi? Non voglio cambiare le soluzioni in seguito - se devo investire tempo e sforzi preferirei farlo nel modo giusto fin dall'inizio.

Gradirei qualsiasi aiuto per iniziare. Grazie in anticipo.

    
posta kbs_01 03.12.2011 - 08:54
fonte

1 risposta

2

Will the app be better served with a relational DB like mySQL or an Object database?

Non importa. Entrambi funzionano.

Poiché devi ottenere qualcosa completato sceglierne uno che conosci.

Can I make this work with PHP+AJAX+CSS+mySQL?

Sì. Poiché devi ottenere qualcosa completato sceglierne uno che conosci.

Is there a better alternative?

Sì. Ma devi ottenere qualcosa finito , quindi non iniziare ad imparare nuove cose ora.

Do I need a framework? CodeIgniter/Symfony vs Django/ZOPE?

Sì. Hai bisogno di un framework.

Which is the best way for me to begin,

Utilizza gli strumenti che conosci.

I might have to scale it up in the future... I don't want to change solutions later on

Cattiva idea.

I'd rather do it the right way from the beginning.

Davvero non puoi. In due anni, la tecnologia sarà cambiata e ogni scelta che farai oggi avrà una scelta migliore tra due anni.

Devi solo far funzionare qualcosa il prima possibile. Arrivare al mercato è più importante di ogni altra cosa.

Avrai bisogno di aggiornare la tecnologia in ogni caso, quindi l'idea di "giusto la prima volta" non si applica.

    
risposta data 03.12.2011 - 14:09
fonte

Leggi altre domande sui tag