relecture du fichier
This commit is contained in:
parent
7c4682e29b
commit
d0dc086e93
|
@ -5,7 +5,7 @@
|
|||
Concrètement, nous pourrions tout à fait nous limiter à Notepad ou Notepad++.
|
||||
Mais à moins d'aimer se fouetter avec un câble USB, nous apprécions la complétion du code, la coloration syntaxique, l'intégration des tests unitaires et d'un debugger, ainsi que deux-trois sucreries qui feront plaisir à n'importe quel développeur.
|
||||
|
||||
Si vous manquez d'idées ou si vous ne savez pas par où commencer:
|
||||
Si vous manquez d'idées ou si vous ne savez pas par où commencer :
|
||||
|
||||
\begin{itemize}
|
||||
\item
|
||||
|
@ -42,13 +42,11 @@ Ceci dit, disposer d'un terminal séparé facilite parfois certaines tâches.
|
|||
A nouveau, si vous manquez d'idées :
|
||||
|
||||
\begin{enumerate}
|
||||
\item
|
||||
Soit vous utilisez celui qui intégré à VSCodium et qui fera suffisament bien son travail
|
||||
\item Soit vous utilisez celui qui intégré à VSCodium et qui fera suffisament bien son travail
|
||||
\item
|
||||
Si vous êtes sous Windows, téléchargez une copie de \href{https://cmder.net/}{Cmder}.
|
||||
Il n'est pas le plus rapide, mais propose une intégration des outils Unix communs (\texttt{ls}, \texttt{pwd}, \texttt{grep}, \texttt{ssh}, \texttt{git}, \ldots\hspace{0pt}) sans trop se fouler.
|
||||
\item
|
||||
Pour tout autre système, vous devriez disposer en natif de ce qu'il faut.
|
||||
\item Pour tout autre système, vous devriez disposer en natif de ce qu'il faut.
|
||||
\end{enumerate}
|
||||
|
||||
\begin{figure}[H]
|
||||
|
@ -61,7 +59,7 @@ A nouveau, si vous manquez d'idées :
|
|||
\section{Un gestionnaire de mots de passe}
|
||||
|
||||
Nous en auront besoin pour gé(né)rer des phrases secrètes pour nos applications.
|
||||
Si vous n'en utilisez pas déjà un, partez sur \href{https://keepassxc.org/}{KeepassXC}: il est multi-plateformes, suivi et s'intègre correctement aux différents environnements, tout en restant accessible.
|
||||
Si vous n'en utilisez pas déjà un, partez sur \href{https://keepassxc.org/}{KeepassXC} : il est multi-plateformes, suivi et s'intègre correctement aux différents environnements, tout en restant accessible.
|
||||
|
||||
\includegraphics{images/environment/keepass.png}
|
||||
|
||||
|
@ -73,40 +71,34 @@ Il est une aide précieuse pour développer rapidement des preuves de concept, s
|
|||
Ses deux plus gros défauts concernent sa courbe d'apprentissage pour les nouveaux venus et la complexité des actions qu'il permet de réaliser.
|
||||
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
\includegraphics{images/xkcd-1597-git.png}
|
||||
\caption{\url{https://xkcd.com/1597/}}
|
||||
\centering
|
||||
\includegraphics{images/xkcd-1597-git.png}
|
||||
\caption{\url{https://xkcd.com/1597/}}
|
||||
\end{figure}
|
||||
|
||||
Même pour un développeur solitaire, un système de gestion de versions (quel qu'il soit) reste indispensable.
|
||||
|
||||
Chaque "\textbf{branche}" correspond à une tâche à réaliser: un bogue à corriger (\emph{Hotfix A}), une nouvelle fonctionnalité à ajouter ou un "\emph{truc à essayer}" \footnote{Oui, comme dans "Attends, j'essaie vite un truc, si ça marche, c'est beau."} (\emph{Feature A} et \emph{Feature B}).
|
||||
Chaque "\textbf{branche}" correspond à une tâche à réaliser: un bogue à corriger (\emph{Hotfix A}), une nouvelle fonctionnalité à ajouter ou un "\emph{truc à essayer}"\footnote{Oui, comme dans "Attends, j'essaie vite un truc, si ça marche, c'est beau."} (\emph{Feature A} et \emph{Feature B}).
|
||||
|
||||
Chaque "\textbf{commit}" correspond à une sauvegarde atomique d'un état ou d'un ensemble de modifications cohérentes entre elles.\footnote{Il convient donc de s'abstenir de modifier le CSS d'une application et la couche d'accès à la base de données, sous peine de se faire huer par ses relecteurs au prochain stand-up.}
|
||||
De cette manière, il est beaucoup plus facile pour le développeur de se concenter sur un sujet en particulier, dans la mesure où celui-ci ne doit pas obligatoirement être clôturé pour appliquer un changement de contexte.
|
||||
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
\includegraphics{images/diagrams/git-workflow.png}
|
||||
\caption{Git en action}
|
||||
\centering
|
||||
\includegraphics{images/diagrams/git-workflow.png}
|
||||
\caption{Git en action}
|
||||
\end{figure}
|
||||
|
||||
Cas pratique: vous développez cette nouvelle fonctionnalité qui va révolutionner le monde de demain et d'après-demain, quand, tout à coup (!), vous vous rendez compte que vous avez perdu votre conformité aux normes PCI parce les données des titulaires de cartes ne sont pas isolées correctement.
|
||||
Il suffit alors de:
|
||||
Cas pratique : vous développez cette nouvelle fonctionnalité qui va révolutionner le monde de demain et d'après-demain, quand, tout à coup (!), vous vous rendez compte que vous avez perdu votre conformité aux normes PCI parce les données des titulaires de cartes ne sont pas isolées correctement.
|
||||
Il suffit alors de :
|
||||
|
||||
\begin{enumerate}
|
||||
\item
|
||||
Sauver le travail en cours (\texttt{git\ add\ .\ \&\&\ git\ commit\ -m\ {[}WIP{]}})
|
||||
\item
|
||||
Revenir sur la branche principale (\texttt{git\ checkout\ main})
|
||||
\item
|
||||
Créer un "hotfix" (\texttt{git\ checkout\ -b\ hotfix/pci-compliance})
|
||||
\item
|
||||
Solutionner le problème (sans doute un \texttt{;} en trop ?)
|
||||
\item
|
||||
Sauver le correctif sur cette branche (\texttt{git\ add\ .\ \&\&\ git\ commit\ -m\ "Did\ it!"})
|
||||
\item
|
||||
Récupérer ce correctif sur la branche principal (\texttt{git\ checkout\ main\ \&\&\ git\ merge\ hotfix/pci-compliance})
|
||||
\item Sauver le travail en cours (\texttt{git\ add\ .\ \&\&\ git\ commit\ -m\ {[}WIP{]}})
|
||||
\item Revenir sur la branche principale (\texttt{git\ checkout\ main})
|
||||
\item Créer un "hotfix" (\texttt{git\ checkout\ -b\ hotfix/pci-compliance})
|
||||
\item Solutionner le problème (sans doute un \texttt{;} en trop ?)
|
||||
\item Sauver le correctif sur cette branche (\texttt{git\ add\ .\ \&\&\ git\ commit\ -m\ "Did\ it!"})
|
||||
\item Récupérer ce correctif sur la branche principal (\texttt{git\ checkout\ main\ \&\&\ git\ merge\ hotfix/pci-compliance})
|
||||
\item
|
||||
Et revenir tranquillou sur votre branche de développement pour fignoler ce générateur de noms de dinosaures rigolos que l'univers vous réclame à cor et à a cri (\texttt{git\ checkout\ features/dinolol})
|
||||
\end{enumerate}
|
||||
|
@ -118,10 +110,11 @@ Les plus connus sont \href{https://www.gitflow.com/}{Gitflow} et \href{https://w
|
|||
\subsection{Décrire ses changements}
|
||||
|
||||
La description d'un changement se fait \emph{via} la commande \texttt{git\ commit}.
|
||||
Il est possible de lui passer directement le message associé à ce changement grâce à l'attribut \texttt{-m}, mais c'est une pratique relativement déconseillée: un \emph{commit} ne doit effectivement pas obligatoirement être décrit sur une seule ligne.
|
||||
Il est possible de lui passer directement le message associé à ce changement grâce à l'attribut \texttt{-m}, mais c'est une pratique relativement déconseillée : un \emph{commit} ne doit effectivement pas obligatoirement être décrit sur une seule ligne.
|
||||
Une description plus complète, accompagnée des éventuels tickets ou références, sera plus complète, plus agréable à lire, et plus facile à revoir pour vos éventuels relecteurs.
|
||||
|
||||
De plus, la plupart des plateformes de dépôts présenteront ces informations de manière ergonomique. Par exemple:
|
||||
De plus, la plupart des plateformes de dépôts présenteront ces informations de manière ergonomique.
|
||||
Par exemple :
|
||||
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
|
@ -144,11 +137,12 @@ D'autres moteurs nécessitent des librairies tierces (Oracle, Microsoft SQL Serv
|
|||
|
||||
\subsection{SQLite}
|
||||
|
||||
Parfois, SQLite peut être une bonne option:
|
||||
Parfois, SQLite peut être une bonne option :
|
||||
|
||||
\begin{quote}
|
||||
Write througput is the area where SQLite struggles the most, but there's not a ton of compelling data online about how it fares, so I got some of my own: I spun up a Equinix m3.large.x86 instance, and ran a slightly modified1 version of the SQLite kvtest2 program on it.
|
||||
Writing 512 byte blobs as separate transactions, in WAL mode with synchronous=normal3, temp\_store=memory, and mmap enabled, I got 13.78$\mu$s per write, or \textasciitilde72,568 writes per second. Going a bit larger, at 32kb writes, I got 303.74$\mu$s per write, or \textasciitilde3,292 writes per second.
|
||||
Writing 512 byte blobs as separate transactions, in WAL mode with synchronous=normal3, temp\_store=memory, and mmap enabled, I got 13.78$\mu$s per write, or \textasciitilde72,568 writes per second.
|
||||
Going a bit larger, at 32kb writes, I got 303.74$\mu$s per write, or \textasciitilde3,292 writes per second.
|
||||
That's not astronomical, but it's certainly way more than most websites being used by humans need.
|
||||
If you had 10 million daily active users, each one could get more than 600 writes per day with that.
|
||||
\end{quote}
|
||||
|
@ -168,16 +162,13 @@ Parfois, SQLite peut être une bonne option:
|
|||
|
||||
\subsection{Gestionnaires}
|
||||
|
||||
Il n'est pas obligatoire de disposer d'une application de gestion pour ces moteurs: pour les cas d'utilisation simples, le shell Django pourra largement suffire (nous y reviendrons).
|
||||
Il n'est pas obligatoire de disposer d'une application de gestion pour ces moteurs : pour les cas d'utilisation simples, le shell Django pourra largement suffire (nous y reviendrons).
|
||||
Mais pour faciliter la gestion des bases de données elles-même, et si vous n'êtes pas à l'aise avec la ligne de commande, choisissez l'une des applications d'administration ci-dessous en fonction du moteur de base de données que vous souhaitez utiliser.
|
||||
|
||||
\begin{itemize}
|
||||
\item
|
||||
Pour \textbf{PostgreSQL}, il existe \href{https://www.pgadmin.org/}{pgAdmin}
|
||||
\item
|
||||
Pour \textbf{MariaDB} ou \textbf{MySQL}, partez sur \href{https://www.phpmyadmin.net/}{PHPMyAdmin}
|
||||
\item
|
||||
Pour \textbf{SQLite}, il existe \href{https://sqlitebrowser.org/}{SQLiteBrowser} PHPMyAdmin ou PgAdmin.
|
||||
\item Pour \textbf{PostgreSQL}, il existe \href{https://www.pgadmin.org/}{pgAdmin}
|
||||
\item Pour \textbf{MariaDB} ou \textbf{MySQL}, partez sur \href{https://www.phpmyadmin.net/}{PHPMyAdmin}
|
||||
\item Pour \textbf{SQLite}, il existe \href{https://sqlitebrowser.org/}{SQLiteBrowser} PHPMyAdmin ou PgAdmin.
|
||||
\end{itemize}
|
||||
|
||||
\section{Intégration continue}
|
||||
|
|
Loading…
Reference in New Issue