This commit is contained in:
Mylloon 2023-06-05 12:44:43 +02:00
parent 2eb11484ba
commit c6df9d88df
Signed by: Anri
GPG key ID: A82D63DFF8D1317F

View file

@ -1,6 +1,7 @@
\documentclass[usepdftitle=false]{beamer} \documentclass[usepdftitle=false]{beamer}
\usepackage[fr]{projektor} \usepackage[fr,code]{projektor}
\usepackage{adforn}
\def\st{Implémentation du projet tuteuré} \def\st{Implémentation du projet tuteuré}
\title[\st]{Errsy} \title[\st]{Errsy}
@ -22,7 +23,9 @@ $\cdot$ Licence informatique \& vidéoludisme
pdftitle={\st}, pdftitle={\st},
} }
% Aliases
\def\sujetPT{Analyse des conventions de programmation} \def\sujetPT{Analyse des conventions de programmation}
\def\clf{\texttt{clang-format}}
\def\black{\texttt{black}} \def\black{\texttt{black}}
\def\ruff{\texttt{ruff}} \def\ruff{\texttt{ruff}}
@ -34,21 +37,56 @@ $\cdot$ Licence informatique \& vidéoludisme
\begin{center} \begin{center}
\sujetPT \sujetPT
\end{center} \end{center}
\tableofcontents[pausesections] \tableofcontents
\end{frame} \end{frame}
\def\title{Projet} \def\title{Projet}
\section{\title} \section{\title}
\begin{frame}{\title}
\def\clf{\texttt{clang-format}} \begin{frame}[fragile]{Conventions de programmation}
\textbf{Utilisation de \clf.} Qu'est-ce que c'est ?
\begin{itemize} \begin{itemize}
\item<1-> Rendre les conventions accessibles (GUI) \item<2-> \alert<4>{Contraintes imposées} de manière à rendre le code plus lisible et échangeable
\item<2-> Customisation du style de convention suivi (\clf) \begin{itemize}
\item<3-> Suivre soi-même des conventions \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{itemize}
\end{frame} \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} \def\title{Interface}
\section{\title} \section{\title}
@ -62,11 +100,11 @@ $\cdot$ Licence informatique \& vidéoludisme
\begin{columns}[onlytextwidth] \begin{columns}[onlytextwidth]
\column{\dimexpr\linewidth-50mm-5mm} % colonne de gauche \column{\dimexpr\linewidth-50mm-5mm} % colonne de gauche
\begin{itemize} \begin{itemize}
\item<1-3,6> Simple (tkinter) \item<1-3,6-> Simple (tkinter)
\item<2-3,6> Support dossier complet ou fichier unique \item<2-3,6-> Support dossier complet ou fichier unique
\item<3,6> Rechargement automatique en cas de changement de style/fichier/dossier \item<3,6-> Rechargement automatique en cas de changement de style/fichier/dossier
\item<4,6> Système de pages \item<4,6-> Système de pages
\item<6> Possibilité de cliquer sur les avertissements (détail) \item<6-> Possibilité de cliquer sur les avertissements (détail)
\end{itemize} \end{itemize}
\column{50mm} % colonne de droite \column{50mm} % colonne de droite
@ -96,22 +134,24 @@ $\cdot$ Licence informatique \& vidéoludisme
\end{figure} \end{figure}
} }
\end{columns} \end{columns}
\onslide<7>{\centering $\Rightarrow$ Démonstration $\Leftarrow$}
\end{frame} \end{frame}
\section[Projet : suivre une convention]{Suivre une convention} \section[Suivi de conventions de programmation]{Suivre une convention}
\def\title{Outils utilisés} \def\title{Outils utilisés - développement du projet}
\subsection*{\title} \subsection*{\title}
\begin{frame}{\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)} Formate le code pour suivre la convention \textit{(convention décidée par les développeurs de l'outil)}
\end{block} \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 Complément à \black, formate les importations, préviens de certains bugs en amont
\end{block} \end{block}
\vspace{5mm} \vspace{5mm}
\begin{exampleblock}<3->{Configuration} \begin{exampleblock}<4->{Configuration}
Les deux outils sont configurés dans un unique fichier \texttt{pyproject.toml} 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}. et l'environnement de développement est explicité dans \texttt{requirements.txt}.
\end{exampleblock} \end{exampleblock}
@ -121,17 +161,37 @@ $\cdot$ Licence informatique \& vidéoludisme
\subsection*{\title} \subsection*{\title}
\begin{frame}{\title} \begin{frame}{\title}
\begin{itemize} \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{EditorConfig} (\texttt{Emacs}, \texttt{Vim}\dots)
\item \texttt{VSCode}/\texttt{VSCodium} \item \texttt{VSCode}/\texttt{VSCodium}
\end{itemize} \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) \item hook $\rightarrow$ \texttt{precommit} (vérifie le code avec \black\ et \ruff)
\end{itemize} \end{itemize}
\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} \end{frame}
\appendix \appendix
\section{\hspace{3cm} Merci} \begin{frame}[plain, c]
\centering \Large \adforn{21} \textbf{Merci} \adforn{49}
\end{frame}
\end{document} \end{document}