Repository navigation
Expand file tree
/
Copy pathappendix-technologies.tex
More file actions
92 lines (86 loc) · 2.98 KB
/
Copy pathappendix-technologies.tex
File metadata and controls
92 lines (86 loc) · 2.98 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
\chapter{Used Technologies}
\label{chap:technologies}
The technologies used in the project change quite quickly in order to meet new requirements,
especially on the frontend, where the tools and best practices are evolving rapidly.
The following tables show the overview of technologies used in the project in spring 2018.
%When this project started in 2015,
%we used several at that time popular technologies
%(AngularJS, Bootstrap, bower, grunt)
%which became obsolete during next 2 years,
%so we replaced them by newer ones.
%Many technologies were introduced naturally as the projects grew,
%e.g. Django Rest Framework for REST API,
%or redux-saga for cleaner handling of asynchronous side-effects
%(instead of the originally used redux-thunk).
\begin{table}[htb]
\centering
\caption{Project Management.}
\begin{tabular}{l l l}
\toprule
Area & Technology & Main Reason \\
\midrule
Version control & git, GitHub & features \\
% Online repository & GitHub & easy to use \\
Custom commands & make, django, npm & easy to use \\
Monitoring & Google Analytics & easy to use \\
\bottomrule
\end{tabular}
\end{table}
\begin{table}[htb]
\centering
\caption{Backend.}
\begin{tabular}{l l l}
\toprule
Area & Technology & Main Reason \\
\midrule
Language & Python 3 & concise, high-level \\
Dependencies & pip & standard tool, easy to use \\
Environment & virtualenvwrapper & easy to use \\
Unit tests & pytest & concise, readable \\
Web framework & Django & features, well-documented \\
REST API & DRF & features, well-documented \\
Database & PostgreSQL & widely used \\
Web server & Nginx, Gunicorn & widely used \\
Scheduled jobs & cron, django-crontab & standard tool \\
Data export & Django Rest Pandas & DataFrame tranformations \\ % before export \\
\bottomrule
\end{tabular}
\end{table}
\begin{table}[htb]
\centering
\caption{Frontend.}
\begin{tabular}{l l l}
\toprule
Area & Technology & Main Reason \\
\midrule
Language & ES6 & concise, readable \\
Dependencies & npm & easy to use \\
Bundling & webpack & feature-complete \\ %, widely used \\
Compiling & babel & feature-complete \\ % , widely used \\
State & redux & predictability, testability \\ % behavior, testability \\
Side effects & redux-sagas & readability, testability \\
Views & React & declarative, reusable \\
UI components & Material-UI & good appearance \\
HTTP client & axios & Promises API\\
Code blocks & Blockly & well-tested \\
Parsing & PEG JS & declarative rules \\ %(Parsing expression grammar) \\
Interpretation & JS-interpreter & stepping, custom hooks \\
Localization & react-intl & one place for all messages \\
\bottomrule
\end{tabular}
\end{table}
\begin{table}[htb]
\centering
\caption{Analysis.}
\begin{tabular}{l l l}
\toprule
Area & Technology & Main Reason \\
\midrule
Language & Python 3 & concise, high-level \\
Documents & Jupyter Notebook & interactivity \\
DataFrames & pandas & features, well-documented \\
Plotting & matplotlib, seaborn & features, nice plots \\
%Machine learning & sklearn & powerful \\
\bottomrule
\end{tabular}
\end{table}