aboutsummaryrefslogtreecommitdiff
path: root/2017-meetandcode
diff options
context:
space:
mode:
Diffstat (limited to '2017-meetandcode')
-rw-r--r--2017-meetandcode/Makefile10
-rw-r--r--2017-meetandcode/SoftwareEngineersLife.pngbin0 -> 396503 bytes
-rw-r--r--2017-meetandcode/pres.pdfbin0 -> 611126 bytes
-rw-r--r--2017-meetandcode/pres.tex200
-rw-r--r--2017-meetandcode/what-your-code-looks-like.pngbin0 -> 203331 bytes
5 files changed, 210 insertions, 0 deletions
diff --git a/2017-meetandcode/Makefile b/2017-meetandcode/Makefile
new file mode 100644
index 0000000..5366756
--- /dev/null
+++ b/2017-meetandcode/Makefile
@@ -0,0 +1,10 @@
+FILE=pres
+
+$(FILE).pdf: $(FILE).tex $(patsubst %.svg,%.pdf,$(wildcard *.svg))
+ pdflatex -shell-escape $<
+
+%.pdf: %.svg
+ inkscape -D -z --file=$< --export-pdf=$@ --export-latex
+
+clean:
+ ls | grep -v -E "($(FILE).tex|Makefile|scheme|svg|png|eps)$$" | xargs rm -rf
diff --git a/2017-meetandcode/SoftwareEngineersLife.png b/2017-meetandcode/SoftwareEngineersLife.png
new file mode 100644
index 0000000..6ae1579
--- /dev/null
+++ b/2017-meetandcode/SoftwareEngineersLife.png
Binary files differ
diff --git a/2017-meetandcode/pres.pdf b/2017-meetandcode/pres.pdf
new file mode 100644
index 0000000..c125230
--- /dev/null
+++ b/2017-meetandcode/pres.pdf
Binary files differ
diff --git a/2017-meetandcode/pres.tex b/2017-meetandcode/pres.tex
new file mode 100644
index 0000000..205742d
--- /dev/null
+++ b/2017-meetandcode/pres.tex
@@ -0,0 +1,200 @@
+\documentclass{beamer}
+\usetheme{metropolis}
+\usepackage{lmodern}
+\usepackage[czech]{babel}
+\usepackage[utf8x]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage{textpos}
+\usepackage{tikz,calc}
+\usepackage{graphicx}
+\usepackage{wrapfig}
+\usepackage{color}
+\usepackage{mathtools}
+\usepackage{hyperref}
+\usepackage{epstopdf}
+\usepackage{amsmath}
+\usepackage{minted}
+\hypersetup{
+ colorlinks,
+ citecolor=black,
+ filecolor=black,
+ linkcolor=black,
+ urlcolor=black
+}
+\usepackage{pdflscape}
+
+\title{Softwarový projekt z 0 na 95\% a zpět}
+\author{Karel Kočí}
+\date{17.10.2017}
+
+\begin{document}
+
+\frame{\titlepage}
+
+\begin{frame}{Život projektu z pohledu vývojáře}
+ \begin{itemize}
+ \item Zadání
+ \item Návrh
+ \item Proof of concept
+ \item Prvotní implementace
+ \item Nasazení
+ \item Bugy, refactoring a přidávání/odebírání feature
+ \item Next generation
+ \end{itemize}
+\end{frame}
+
+\begin{frame}
+ \center
+ \includegraphics[width=5.5cm]{what-your-code-looks-like.png}
+\end{frame}
+
+\begin{frame}{Zadání}
+ Zodpovídá management ale nečekejte, že vědí co dělají!
+ \begin{block}{Co by mělo určitě obsahovat}
+ \begin{itemize}
+ \item Časový horizont projektu
+ \item Software/Hardware omezení
+ \item Stěžejní funkcionality
+ \item Rozdělení na krátkodobé a dlouhodobé cíle
+ \end{itemize}
+ \end{block}
+ \begin{block}{A co naopak určitě ne}
+ \begin{itemize}
+ \item Výběr technologií
+ \item Popis UX
+ \item Přání a myšlenky
+ \end{itemize}
+ \end{block}
+\end{frame}
+
+\begin{frame}{Design}
+ Vychází ze zadání a dává ho dohromady vedoucí vývojář.
+ \begin{block}{Co by měl určitě obsahovat}
+ \begin{itemize}
+ \item Přesná technická specifikace jednotlivých funkcionalit
+ \item Rozporcování na modulární minimalistické části
+ \item Rozplánování dočasných a stálých částí
+ \item Rešerše rozhraní ke zbytku systému a všech nutných funkcionalit
+ \item Vymezení interakce s uživatelem
+ \item Vymezení technologií
+ \end{itemize}
+ \end{block}
+ Design -> uživatelská a vývojářská dokumentace
+\end{frame}
+
+\begin{frame}{Předtím než napíšete řádku}
+ \begin{block}{Výběr jazyka}
+ \begin{itemize}
+ \item Co je vhodné
+ \item Co se v dané oblasti používá
+ \item Co umíte
+ \end{itemize}
+ \end{block}
+ \begin{block}{Výběr knihoven}
+ \begin{itemize}
+ \item Nepiště si věci sami
+ \item Nestavějte kolem jedné knihovny
+ \end{itemize}
+ \end{block}
+\end{frame}
+
+\begin{frame}{Proof of concept}
+ \begin{itemize}
+ \item Funkční ale nepřívětivé (CLI, žádný frontend)
+ \item Implementace pouze stěžejních funkcionalit
+ \item Pokud možno předneste zadavateli
+ \item Neobtěžujte se testy
+ \item Benchmarky
+ \end{itemize}
+\end{frame}
+
+\begin{frame}{Skládáme základy}
+ \begin{itemize}
+ \item Build systém
+ \item Unit testy
+ \item Integrační testy (platforma)
+ \item CI testy na jiné než vývojářské platformě
+ \item Version control (git)
+ \end{itemize}
+\end{frame}
+
+\begin{frame}{Kvalita kódu}
+ \begin{block}{Python}
+ \begin{itemize}
+ \item flake8 a pylint
+ \item unittest
+ \item coverage
+ \end{itemize}
+ \end{block}
+ \begin{block}{C/C++}
+ \begin{itemize}
+ \item cppcheck
+ \item clang
+ \item gcc -Wall (-Werror)
+ \item gcov
+ \item valgrind
+ \end{itemize}
+ \end{block}
+ A komentáře!
+\end{frame}
+
+\begin{frame}{Komentáře 1}
+ \Huge
+ Nikdy ``Here be dragons''!
+\end{frame}
+
+\begin{frame}[fragile]{Komentáře 2}
+ \begin{minted}[frame=lines]{Python}
+ def size(self):
+ """Returns size"""
+ return self.__size__
+
+ def increament(self):
+ """Increments size"""
+ self.__size__ += 1
+ \end{minted}
+\end{frame}
+
+\begin{frame}{Změny v projektu}
+ \begin{block}{Přidáváme funkcionality}
+ \begin{itemize}
+ \item Součástí toho je refactoring
+ \item Přidáváme pouze smysluplné funkcionality
+ \end{itemize}
+ \end{block}
+ \begin{block}{Odebíráme funkcionality}
+ \begin{itemize}
+ \item Označíme za obsolete (v kódu, dokumentaci a nejlépe při použití také do logu)
+ \item Po dostatečné době odstraní znovu spolu s refactoringem
+ \item Zpětná kompatibilita? Přechod?
+ \end{itemize}
+ \end{block}
+\end{frame}
+
+\begin{frame}
+ \center
+ \includegraphics[width=11cm]{SoftwareEngineersLife.png}
+\end{frame}
+
+\begin{frame}{Předáváme projekt}
+ \begin{itemize}
+ \item Dodržujte kvalitu kódu a pokrytí dokumentací
+ \item Přímé vysvětlená myšlenky projektu a budoucí plány
+ \item Přiznejte co se nepovedlo
+ \end{itemize}
+\end{frame}
+
+\begin{frame}{Next generation}
+ \begin{itemize}
+ \item Analýza toho co se povedlo a co ne
+ \item Rozdíly v designu či dokonce zadání
+ \item Vracíte se na začátek
+ \item Poučte se z chyb
+ \end{itemize}
+\end{frame}
+
+\section{Moje zpackání}
+
+\section{Děkuji za pozornost}
+
+\end{document}
diff --git a/2017-meetandcode/what-your-code-looks-like.png b/2017-meetandcode/what-your-code-looks-like.png
new file mode 100644
index 0000000..7af97ba
--- /dev/null
+++ b/2017-meetandcode/what-your-code-looks-like.png
Binary files differ