diff --git a/presentation/slides.tex b/presentation/slides.tex index d04bd8b..35f46f7 100644 --- a/presentation/slides.tex +++ b/presentation/slides.tex @@ -1,6 +1,7 @@ \documentclass[usepdftitle=false]{beamer} -\usepackage[fr]{projektor} +\usepackage[fr,code]{projektor} +\usepackage{adforn} \def\st{Implémentation du projet tuteuré} \title[\st]{Errsy} @@ -22,7 +23,9 @@ $\cdot$ Licence informatique \& vidéoludisme pdftitle={\st}, } +% Aliases \def\sujetPT{Analyse des conventions de programmation} +\def\clf{\texttt{clang-format}} \def\black{\texttt{black}} \def\ruff{\texttt{ruff}} @@ -34,21 +37,56 @@ $\cdot$ Licence informatique \& vidéoludisme \begin{center} \sujetPT \end{center} - \tableofcontents[pausesections] + \tableofcontents \end{frame} \def\title{Projet} \section{\title} -\begin{frame}{\title} - \def\clf{\texttt{clang-format}} - \textbf{Utilisation de \clf.} + +\begin{frame}[fragile]{Conventions de programmation} + Qu'est-ce que c'est ? \begin{itemize} - \item<1-> Rendre les conventions accessibles (GUI) - \item<2-> Customisation du style de convention suivi (\clf) - \item<3-> Suivre soi-même des conventions + \item<2-> \alert<4>{Contraintes imposées} de manière à rendre le code plus lisible et échangeable + \begin{itemize} + \item<2-> Code source + \item<2-> Projet en général (organisation des fichiers, \dots) + \end{itemize} + \item<3-> Par exemple : + \end{itemize} + + \onslide<3-> + \begin{figure} + \begin{minipage}{0.3\textwidth} + \begin{minted}[autogobble,frame=lines,rulecolor=\color{gray}]{abnf} + IndentWidth: 4 + \end{minted} + \end{minipage} + \caption*{Dans \clf, indentation de 4 espaces} + \end{figure} + + \only<4>{\frametitle{\dots implémentation ?}} + \begin{itemize} + \item<4-> Rendre le suivi des conventions moins contraignantes \end{itemize} \end{frame} +\begin{frame}{\title} + Base : + \begin{itemize} + \item \textbf{Utilisation de \clf.} + \begin{itemize} + \item<2-> Compatible avec plusieurs langages (C, C++, \dots) + \item<2-> Customisation du style de convention suivi + \end{itemize} + \item<3-> Développé en python + \end{itemize} + + \onslide<4->{Projet :} + \begin{itemize} + \item<4-> Création d'une interface basique pour \clf + \item<4-> Utilisation de \clf\ moins rebutante + \end{itemize} +\end{frame} \def\title{Interface} \section{\title} @@ -62,11 +100,11 @@ $\cdot$ Licence informatique \& vidéoludisme \begin{columns}[onlytextwidth] \column{\dimexpr\linewidth-50mm-5mm} % colonne de gauche \begin{itemize} - \item<1-3,6> Simple (tkinter) - \item<2-3,6> Support dossier complet ou fichier unique - \item<3,6> Rechargement automatique en cas de changement de style/fichier/dossier - \item<4,6> Système de pages - \item<6> Possibilité de cliquer sur les avertissements (détail) + \item<1-3,6-> Simple (tkinter) + \item<2-3,6-> Support dossier complet ou fichier unique + \item<3,6-> Rechargement automatique en cas de changement de style/fichier/dossier + \item<4,6-> Système de pages + \item<6-> Possibilité de cliquer sur les avertissements (détail) \end{itemize} \column{50mm} % colonne de droite @@ -96,22 +134,24 @@ $\cdot$ Licence informatique \& vidéoludisme \end{figure} } \end{columns} + \onslide<7>{\centering $\Rightarrow$ Démonstration $\Leftarrow$} \end{frame} -\section[Projet : suivre une convention]{Suivre une convention} -\def\title{Outils utilisés} +\section[Suivi de conventions de programmation]{Suivre une convention} +\def\title{Outils utilisés - développement du projet} \subsection*{\title} \begin{frame}{\title} - \begin{block}<1->{Formatter : \black} + Langage du projet : \textbf{Python} + \begin{block}<2->{Formatter : \black} Formate le code pour suivre la convention \textit{(convention décidée par les développeurs de l'outil)} \end{block} - \begin{block}<2->{Linter : \ruff} + \begin{block}<3->{Linter : \ruff} Complément à \black, formate les importations, préviens de certains bugs en amont \end{block} \vspace{5mm} - \begin{exampleblock}<3->{Configuration} + \begin{exampleblock}<4->{Configuration} Les deux outils sont configurés dans un unique fichier \texttt{pyproject.toml} et l'environnement de développement est explicité dans \texttt{requirements.txt}. \end{exampleblock} @@ -121,17 +161,37 @@ $\cdot$ Licence informatique \& vidéoludisme \subsection*{\title} \begin{frame}{\title} \begin{itemize} - \item<1-2> Outils dans les IDE \begin{itemize} + \item Configuration des IDE \begin{itemize} \item \texttt{EditorConfig} (\texttt{Emacs}, \texttt{Vim}\dots) \item \texttt{VSCode}/\texttt{VSCodium} \end{itemize} - \item<2-> Outil pour Git \begin{itemize} + \item<2-> Intégration dans Git \begin{itemize} \item hook $\rightarrow$ \texttt{precommit} (vérifie le code avec \black\ et \ruff) \end{itemize} \end{itemize} + \onslide<3>{\textbf{Permet de suivre les conventions de programmation plus facilement}} +\end{frame} + +\def\title{Conclusion} +\section*{\title} +\begin{frame}{\title} + Conventions de programmation : + \begin{itemize} + \item Ne dois pas être contraignant + \item Il faut être d'accord avec le style choisit + \end{itemize} + + \onslide<2> + Projet : + \begin{itemize} + \item Simple + \item Suivre une convention, c'est, aussi, simple + \end{itemize} \end{frame} \appendix -\section{\hspace{3cm} Merci} +\begin{frame}[plain, c] + \centering \Large \adforn{21} \textbf{Merci} \adforn{49} +\end{frame} \end{document}