core asciidoc concepts
This commit is contained in:
parent
e98191e12d
commit
de0ccc4946
13
README.md
13
README.md
|
@ -12,6 +12,7 @@ Les lexers Pygments disponibles se trouvent sur cette page: http://pygments.org/
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
apt install texlive-latex-base latexmk texlive-latex-extra texlive-xetex
|
apt install texlive-latex-base latexmk texlive-latex-extra texlive-xetex
|
||||||
|
apt install plantuml ruby-asciidoctor-plantuml
|
||||||
```
|
```
|
||||||
|
|
||||||
## Sortie en PDF
|
## Sortie en PDF
|
||||||
|
@ -27,4 +28,16 @@ cd ~/
|
||||||
python3 -m venv .venvs/gwift-book
|
python3 -m venv .venvs/gwift-book
|
||||||
source .venvs/gwift-book/bin/activate
|
source .venvs/gwift-book/bin/activate
|
||||||
pip install -r requirements/base.txt
|
pip install -r requirements/base.txt
|
||||||
|
|
||||||
|
$ gem install asciidoctor-pdf --pre
|
||||||
|
$ gem install rouge
|
||||||
|
$ gem install asciidoctor-diagram
|
||||||
|
```
|
||||||
|
|
||||||
|
## Conversion en PDF
|
||||||
|
|
||||||
|
```bash
|
||||||
|
asciidoctor -a rouge-style=monokai -a pdf-themesdir=resources/themes -a pdf-theme=gwift main.adoc -t -r asciidoctor-diagram
|
||||||
|
|
||||||
|
asciidoctor-pdf -a rouge-style=monokai -a pdf-themesdir=resources/themes -a pdf-theme=gwift main.adoc -t -r asciidoctor-diagram
|
||||||
```
|
```
|
||||||
|
|
|
@ -21,6 +21,13 @@ Comme on l'a vu dans la première partie, Django est un framework complet, inté
|
||||||
|
|
||||||
Supervisor, nginx, gunicorn, utilisateurs, groupes, ...
|
Supervisor, nginx, gunicorn, utilisateurs, groupes, ...
|
||||||
|
|
||||||
|
[plantuml]
|
||||||
|
--
|
||||||
|
entity Nginx
|
||||||
|
entity "Gunicorn (sockets/HTTP)" as gunicorn
|
||||||
|
database PGSQL
|
||||||
|
--
|
||||||
|
|
||||||
Aussi : Docker, Heroku, Digital Ocean, Scaleway, OVH, ... Bref, sur Debian et CentOS pour avoir un panel assez large. On oublie Windows.
|
Aussi : Docker, Heroku, Digital Ocean, Scaleway, OVH, ... Bref, sur Debian et CentOS pour avoir un panel assez large. On oublie Windows.
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,11 @@
|
||||||
= Deep dive into Django
|
= Deep dive into Django
|
||||||
Cédric Declerfayt <jaguarondi27@gmail.com>; Fred Pauchet <fred@grimbox.be>
|
Cédric Declerfayt <jaguarondi27@gmail.com>; Fred Pauchet <fred@grimbox.be>
|
||||||
|
:doctype: book
|
||||||
:toc:
|
:toc:
|
||||||
|
:sectnums:
|
||||||
|
:chapter-label: Chapitre
|
||||||
|
:preface-title: Préface
|
||||||
|
:source-highlighter: rouge
|
||||||
|
|
||||||
On ne va pas se mentir: il existe enormément de tutoriaux très bien réalisés sur "Comment réaliser une application Django" et autres "Déployer votre code en 2 minutes". On se disait juste que ces tutoriaux restaient relativement haut-niveau et se limitaient à un contexte donné.
|
On ne va pas se mentir: il existe enormément de tutoriaux très bien réalisés sur "Comment réaliser une application Django" et autres "Déployer votre code en 2 minutes". On se disait juste que ces tutoriaux restaient relativement haut-niveau et se limitaient à un contexte donné.
|
||||||
|
|
||||||
|
@ -8,21 +13,27 @@ L'idée du texte ci-dessous est de jeter les bases d'un bon développement, en s
|
||||||
|
|
||||||
Ces idées ne s'appliquent pas uniquement à Django et à son cadre de travail, ni même au langage Python. Juste que ces deux bidules sont de bons candidats et que le cadre de travail est bien défini et suffisamment flexible.
|
Ces idées ne s'appliquent pas uniquement à Django et à son cadre de travail, ni même au langage Python. Juste que ces deux bidules sont de bons candidats et que le cadre de travail est bien défini et suffisamment flexible.
|
||||||
|
|
||||||
Pour cela, on présentera différents outils (mypy, flake, black, ...), la rédaction de tests unitaires et d'intégration pour limiter les régressions, les règles de nomenclature et de contrôle du contenu, ainsi que les bonnes étapes pour arriver à un déploiement rapide et fonctionnel en peu d'étapes.
|
Pour cela, on présentera différents outils (mypy, flake8, black, ...), la rédaction de tests unitaires et d'intégration pour limiter les régressions, les règles de nomenclature et de contrôle du contenu, ainsi que les bonnes étapes à suivre pour arriver à un déploiement rapide et fonctionnel avec peu d'efforts.
|
||||||
|
|
||||||
Dans tout à un seul et même endroit. Oui. :-)
|
Et tout ça à un seul et même endroit. Oui. :-)
|
||||||
|
|
||||||
Bonne lecture.
|
Bonne lecture.
|
||||||
|
|
||||||
include::toolchain/index.adoc[]
|
== Environnement de travail
|
||||||
|
|
||||||
|
include::toolchain/venvs.adoc[]
|
||||||
|
|
||||||
|
include::toolchain/tools.adoc[]
|
||||||
|
|
||||||
include::deploy/index.adoc[]
|
|
||||||
|
|
||||||
== Déploiement
|
== Déploiement
|
||||||
Et sécurisation du serveur.
|
Et sécurisation du serveur.
|
||||||
|
|
||||||
|
include::deploy/index.adoc[]
|
||||||
|
|
||||||
== Modélisation
|
== Modélisation
|
||||||
Et administration.
|
|
||||||
|
include::models/admin.adoc[]
|
||||||
|
|
||||||
== Go Live !
|
== Go Live !
|
||||||
Et supervision.
|
Et supervision.
|
|
@ -0,0 +1,4 @@
|
||||||
|
== Modélisation et conception avancée
|
||||||
|
|
||||||
|
=== Administration
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
extends: default
|
||||||
|
footer:
|
||||||
|
recto:
|
||||||
|
right:
|
||||||
|
content: '{section-or-chapter-title} | {page-number}'
|
||||||
|
verso:
|
||||||
|
left:
|
||||||
|
content: '{page-number} | {chapter-title}'
|
|
@ -3,6 +3,4 @@
|
||||||
|
|
||||||
Et configuration de l'espace de travail.
|
Et configuration de l'espace de travail.
|
||||||
|
|
||||||
include::venvs.adoc[]
|
|
||||||
|
|
||||||
include::tools.adoc[]
|
|
||||||
|
|
|
@ -1,11 +1,20 @@
|
||||||
=== Flake8
|
=== Chaîne d'outils
|
||||||
|
|
||||||
|
==== Flake8
|
||||||
|
|
||||||
|
[source,python]
|
||||||
|
--
|
||||||
|
from datetime import datetime
|
||||||
|
|
||||||
|
datetime.today()
|
||||||
|
datetime(2020, 2, 5)
|
||||||
|
--
|
||||||
|
|
||||||
|
==== Black
|
||||||
|
|
||||||
|
|
||||||
=== Black
|
==== pytest
|
||||||
|
|
||||||
|
|
||||||
=== pytest
|
==== mypy
|
||||||
|
|
||||||
|
|
||||||
=== mypy
|
|
||||||
|
|
||||||
|
|
|
@ -4,5 +4,5 @@ On va commencer avec la partie la moins funky, mais la plus utile, dans la vie d
|
||||||
|
|
||||||
Il est tout à fait possible de s'en passer complètement dans le cadre de "petits" projets ou d'applications déployées sur des machines dédiées, et de fonctionner à grand renforts de "sudo" et d'installation globale des dépendances. Cette pratique est cependant fortement déconseillée pour plusieurs raisons:
|
Il est tout à fait possible de s'en passer complètement dans le cadre de "petits" projets ou d'applications déployées sur des machines dédiées, et de fonctionner à grand renforts de "sudo" et d'installation globale des dépendances. Cette pratique est cependant fortement déconseillée pour plusieurs raisons:
|
||||||
|
|
||||||
. Pour la reproductibilité d'une
|
. Pour la reproductibilité d'un environnement spécifique. Cela évite notamment les réponses type "Ca juste marche chez moi", puisqu'on a la possibilité de construire un environnement sain et appliquer des dépendances identiques, quelle que soit la machine hôte.
|
||||||
. il est tout à fait envisagable que deux applications soient déployées sur un même hôte, et nécessitent chacune deux versions différentes d'une même dépendance.
|
. il est tout à fait envisagable que deux applications soient déployées sur un même hôte, et nécessitent chacune deux versions différentes d'une même dépendance.
|
Loading…
Reference in New Issue