49 lines
1.8 KiB
Org Mode
49 lines
1.8 KiB
Org Mode
:PROPERTIES:
|
|
:ID: ca50d517-3e8a-4d03-ba38-7ff411e87408
|
|
:mtime: 20220928120750
|
|
:ctime: 20211230101331
|
|
:END:
|
|
#+title: Software
|
|
|
|
* Conceptes
|
|
** /LBYL/ et /EAFP/
|
|
*** *L*ook *B*efore *Y*ou *L*eap
|
|
Technique consistant à anticiper les éventuelles erreurs (en vérifiant un pointeur /null/ par exemple).
|
|
*** *E*asier to *A*sk *F*orgiveness than *P*ermission
|
|
Technique privilégiant l'interception d'erreurs à leur anticipation. Cela permet :
|
|
* De réduire la charge CPU en vérifications, surtout lorsque la probabilité d'exception est faible, d'autant plus à
|
|
partir de Python3.11 ([[https://github.com/python/cpython/issues/84403][zero-cost exceptions]]).
|
|
Il est nécessaire que le language mis en oeuvre permette l'interception d'erreurs (pas le cas du C ou du Go).
|
|
|
|
* Design pattern
|
|
TODO
|
|
|
|
* Classement/tri de données
|
|
** [[id:6af01039-a0a9-46fc-abe8-82f9662bc4b7][heap sort algorithm]]
|
|
|
|
* Langages
|
|
** Compilés
|
|
*** [[id:ed8be72a-8a4d-4ef7-92e4-78d07095deaf][C++]]
|
|
*** [[id:673d43c9-0b31-4f28-b550-4eb615c41dac][Rust]]
|
|
** Interprétés
|
|
*** [[id:a877b82e-4925-41de-8903-8109dd98e773][Bash]]
|
|
*** [[id:33ef1e68-70ad-43c8-850d-4b8ed2c5ea16][Elisp]]
|
|
*** [[id:d4197090-4ee5-4fa3-ba2d-a70ce9953923][Javascript]]
|
|
*** [[id:4fabfe6a-b104-464f-8a87-dfd7d761dbcc][Python]]
|
|
|
|
* Composition de docs
|
|
** [[id:3250943b-32f0-4bdc-b0d2-5fbcf1724f36][Latex]]
|
|
|
|
* Méthodes/Principes
|
|
** [[id:b827c6e7-fe86-4301-a72c-dfaee85e142f][SOLID]]
|
|
** [[id:6da0b985-e6f4-4454-bb6a-e941b722365b][Test driven development]]
|
|
|
|
* Gestionnaire de configuration
|
|
** [[id:e93719b3-088d-4fe7-9ef8-fc9a4fd84827][Git]]
|
|
|
|
* Outils
|
|
** Diff
|
|
*** [[id:67317dba-3771-405f-ae58-0ef13062975d][diffsitter]]
|
|
** Performances
|
|
*** [[https://www.intel.com/content/www/us/en/developer/tools/oneapi/vtune-profiler.html#gs.26xa9e][Intel® VTune™ Profiler]]
|