\documentclass[usepdftitle=false]{beamer} \usepackage[fr,code]{projektor} \usepackage{adforn} % Aliases \def\sujetPT{Analyse des conventions de programmation} \def\clf{\texttt{clang-format}} \def\black{\texttt{black}} \def\ruff{\texttt{ruff}} \def\st{Implémentation du projet tuteuré} \title[\st]{\sujetPT} \subtitle{\st} \author{ \begin{tabular}{@{}l@{\hspace{.5em}}l} \href{mailto:anri.kennel@etud.univ-paris8.fr}{Anri Kennel} &| L3 \\ \href{http://www.bocal.cs.univ-paris8.fr/~balmas/}{Françoise Balmas} &| Tutrice \end{tabular}\\ } \institute{ \href{https://informatique.up8.edu/licence-iv/}{Université Paris 8} $\cdot$ Licence informatique \& vidéoludisme } \date{Année universitaire 2022-2023} \hypersetup{ pdfauthor={Anri Kennel (étudiant) et Françoise Balmas (tuteur)}, pdftitle={\st}, } \begin{document} \maketitle \begin{frame}[t, plain]{Plan} \begin{center} \sujetPT \end{center} \tableofcontents \end{frame} \def\title{Projet} \section{\title} \begin{frame}[fragile]{Conventions de programmation} Qu'est-ce que c'est ? \begin{itemize} \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} \begin{frame}{\title} \only<5>{ \begin{figure} \includegraphics[width=\textwidth]{imgs/regular.png} \caption*{Errsy} \end{figure} } \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) \end{itemize} \column{50mm} % colonne de droite \only<1-2>{ \vspace{2cm} \begin{figure} \def\ecart{-6cm} \hspace{\ecart} \includegraphics[width=10cm]{imgs/main.png} \caption*{\hspace{\ecart}Écran principal} \end{figure} } \only<3>{ \begin{figure} \def\ecart{-5mm} \hspace{\ecart} \includegraphics[width=5cm]{imgs/style.png} \caption*{\hspace{\ecart}Sélection des styles} \end{figure} } \only<4>{ \begin{figure} \def\ecart{-6cm} \hspace{\ecart} \includegraphics[width=10cm]{imgs/page.png} \caption*{\hspace{\ecart}Menu du bas pour les pages} \end{figure} } \end{columns} \onslide<7>{\centering $\Rightarrow$ Démonstration $\Leftarrow$} \end{frame} \section[Suivi de conventions de programmation]{Suivre une convention} \def\title{Outils utilisés - développement du projet} \subsection*{\title} \begin{frame}{\title} 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}<3->{Linter : \ruff} Complément à \black, formate les importations, préviens de certains bugs en amont \end{block} \vspace{5mm} \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} \end{frame} \def\title{Facile d'utilisation} \subsection*{\title} \begin{frame}{\title} \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-> 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 \begin{frame}[plain, c] \centering \Large \adforn{21} \textbf{Merci} \adforn{49} \end{frame} \end{document}