From 038a291a1aacb72e395318008cf4c5631887c613 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karel=20Ko=C4=8D=C3=AD?= Date: Tue, 17 Oct 2017 20:09:12 +0200 Subject: Add presentation from Meet and Code --- 2017-meetandcode/Makefile | 10 ++ 2017-meetandcode/SoftwareEngineersLife.png | Bin 0 -> 396503 bytes 2017-meetandcode/pres.pdf | Bin 0 -> 611126 bytes 2017-meetandcode/pres.tex | 200 +++++++++++++++++++++++++ 2017-meetandcode/what-your-code-looks-like.png | Bin 0 -> 203331 bytes 5 files changed, 210 insertions(+) create mode 100644 2017-meetandcode/Makefile create mode 100644 2017-meetandcode/SoftwareEngineersLife.png create mode 100644 2017-meetandcode/pres.pdf create mode 100644 2017-meetandcode/pres.tex create mode 100644 2017-meetandcode/what-your-code-looks-like.png 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 Binary files /dev/null and b/2017-meetandcode/SoftwareEngineersLife.png differ diff --git a/2017-meetandcode/pres.pdf b/2017-meetandcode/pres.pdf new file mode 100644 index 0000000..c125230 Binary files /dev/null and b/2017-meetandcode/pres.pdf 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 Binary files /dev/null and b/2017-meetandcode/what-your-code-looks-like.png differ -- cgit v1.2.3