Skip to content

Commit

Permalink
ST - Correzioni 'front end' e termini glossario
Browse files Browse the repository at this point in the history
  • Loading branch information
mzecchinato committed Mar 6, 2017
1 parent 744770b commit 8d76337
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ \subsubsection{Model}
\end{figure}

\subsubsection{Bubble Memory}
La componente di bubble memory gestisce la parte di persistenza della bubble in locale, tenendo traccia di variabili e del loro valore, incluso lo stato della bubble. La bubble memory è strutturata come un oggetto JavaScript, non avendo così vincoli relativamente al tipo di informazioni che è possibile inserire al suo interno.
La componente bubble memory gestisce la parte di persistenza della bubble in locale, tenendo traccia di variabili e del loro valore, incluso lo stato della bubble. La bubble memory è strutturata come un oggetto JavaScript, non avendo così vincoli relativamente al tipo di informazioni che è possibile inserire al suo interno.
\begin{samepage}
\paragraph{BubbleMemory}\label{fm-memory}\mbox{}\\
\nopagebreak
Expand Down
2 changes: 1 addition & 1 deletion LaTex/documenti/SpecificaTecnica/capitolo-introduzione.tex
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
\section{Introduzione}

\subsection{Scopo del documento}
Il presente documento ha lo scopo di definire la progettazione ad alto livello del progetto \glossario{\ProjectName{}}. Vengono quindi presentate le architetture del framework e delle bubble demo \glossario{To-do list} e Bubble \& eat con i relativi componenti software e i design pattern utilizzati per il loro sviluppo. Vengono inoltre descritte le diverse tecnologie che verranno utilizzate per lo sviluppo del progetto insieme al tracciamento tra le diverse componenti software e i requisiti a cui sono correlate.
Il presente documento ha lo scopo di definire la progettazione ad alto livello del progetto \glossario{\ProjectName{}}. Vengono quindi presentate le architetture del \glossario{framework} e delle bubble demo \glossario{To-do list} e Bubble \& eat con i relativi componenti software e i \glossario{Design Pattern} utilizzati per il loro sviluppo. Vengono inoltre descritte le diverse tecnologie che verranno utilizzate per lo sviluppo del progetto insieme al tracciamento tra le diverse componenti software e i requisiti a cui sono correlate.

\subsection{Scopo del Prodotto}
\ScopoDelProdotto
Expand Down
6 changes: 3 additions & 3 deletions LaTex/documenti/SpecificaTecnica/capitolo-tecnologie.tex
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ \section{Tecnologie utilizzate}
\end{itemize}

\subsection{Meteor}
Meteor è un framework JavaScript sviluppato con lo scopo di semplificare la creazione di applicazioni web gestendo allo stesso tempo le parti di front-end, \glossario{back end} e dei dati. Si integra facilmente con diverse tecnologie utilizzate nello sviluppo web come \glossario{AngularJS} e \glossario{React}.
Meteor è un framework JavaScript sviluppato con lo scopo di semplificare la creazione di applicazioni web gestendo allo stesso tempo le parti di front end, \glossario{back end} e dei dati. Si integra facilmente con diverse tecnologie utilizzate nello sviluppo web come \glossario{AngularJS} e \glossario{React}.
L'utilizzo di Meteor nella realizzazione del progetto è vincolato essendo questo il framework su cui è scritto Rocket.Chat. Questo però porta a numerosi vantaggi, permettendo una gestione semplificata dell'applicativo web.

\subsection{MongoDB}
Expand All @@ -29,7 +29,7 @@ \subsection{MongoDB}
\subsection{ECMAScript 2015}
Il linguaggio JavaScript da utilizzare per il progetto deve implementare le specifiche ECMAScript 2015 (o ECMAScript 6), come richiesto da \glossario{\Proponente}. ECMAScript 2015 introduce in JavaScript diverse migliorie utilizzabili per rendere più efficiente lo sviluppo. Nel dettaglio le funzionalità più rilevanti sono:
\begin{itemize}
\item \textbf{Promises:} Gestione degli eventi asincroni più efficace tramite le promises. Comparabili ai future di Java (\url{https://docs.oracle.com/javase/6/docs/api/java/util/concurrent/Future.html}), le promises restituiscono un valore futuro a cui può essere assegnata una callback da chiamare in caso di esecuzione andata a buon fine del metodo asincrono. L'utilizzo di questo modello di concorrenza e la possibilità di concatenare le promises garantisce un rischio molto minore di incorrere nei problemi di concorrenza che si riscontrerebbero utilizzando il modello classico.
\item \textbf{Promises:} Gestione degli eventi asincroni più efficace tramite le promises. Comparabili ai future di \glossario{Java} (\url{https://docs.oracle.com/javase/6/docs/api/java/util/concurrent/Future.html}), le promises restituiscono un valore futuro a cui può essere assegnata una callback da chiamare in caso di esecuzione andata a buon fine del metodo asincrono. L'utilizzo di questo modello di concorrenza e la possibilità di concatenare le promises garantisce un rischio molto minore di incorrere nei problemi di concorrenza che si riscontrerebbero utilizzando il modello classico.
\item \textbf{ArrowFunctions:} Nel passare come parametro funzioni di callback ad altre funzioni è possibile omettere la definizione esplicita di funzione indicando direttamente parametri e valori di ritorno. In questo modo si incrementa la leggibilità del codice e si diminuisce di conseguenza la probabilità di commettere errori nella stesura.
\item \textbf{Classi:} ECMAScript 2015 prevede inoltre di aggiungere zucchero sintattico al pattern \textit{Object-Oriented} (\glossario{OOP}) di JavaScript permettendo la dichiarazione di classi, ereditarietà, metodi statici e di istanza. Di conseguenza il codice prodotto è più semplice da comparare con quello di un qualsiasi altro linguaggio orientato agli oggetti.
\end{itemize}
Expand All @@ -46,7 +46,7 @@ \subsection{Sass (CSS3)}
È un'estensione del CSS che permette di utilizzare variabili, creare funzioni e organizzare il foglio di stile dividendolo in più file. Rispetto al CSS standard permette di costruire strutture più complesse con minor sforzo, minimizzando così la possibilità di fare errori durante la stesura.

\subsection{Bootstrap}
Bootstrap è un framework per la progettazione della parte front end di siti e applicazioni web. Questo framework permette di migliorare la qualità del codice utilizzando \glossario{template} HTML e CSS di comprovata efficienza ed efficacia. Bootstrap garantisce un notevole supporto allo sviluppo del front-end di \ProjectName{} grazie alla presenza di numerose componenti responsive e classi CSS già configurate.
Bootstrap è un framework per la progettazione della parte front end di siti e applicazioni web. Questo framework permette di migliorare la qualità del codice utilizzando \glossario{template} HTML e CSS di comprovata efficienza ed efficacia. Bootstrap garantisce un notevole supporto allo sviluppo del front end di \ProjectName{} grazie alla presenza di numerose componenti responsive e classi CSS già configurate.

\subsection{React}
Per una migliore gestione della UI il gruppo ha deciso di utilizzare la libreria JavaScript React. Essa utilizza HTML e CSS per creare componenti web. È possibile creare delle viste dedicate per ogni stato dell'applicazione e le modifiche ad ogni componente verranno aggiornate singolarmente direttamente da React. Questo risulta in una maggior facilità di scrittura di codice JavaScript. L'utilizzo della libreria React è stato consigliato dal proponente, vista la notevole diffusione e la conseguente intenzione degli sviluppatori di mantenere il progetto.
Expand Down

0 comments on commit 8d76337

Please sign in to comment.