Skip to content

Développement logiciel

Julien DAUPHANT edited this page Sep 19, 2019 · 12 revisions

Langue

Code

Par uniformité avec les bibliothèques standard fournies par les langages de programmation, les objets (méthode, fonctions, variables…) manipulés dans le code seront nommés en anglais.

Exemples : getCurrentYear(), var total = sum(1, 2).

En application des principes du DDD et des bonnes pratiques de programmation, les éléments du domaine métier conservent leur nom intact, y compris dans le code, et sans traduction s’ils sont en français.

Exemples : getRevenuFiscal(), var total = sum(chefDeFamille, conjoint).

Backlog

Par souci de lisibilité pour les partenaires, notamment administratifs, la langue utilisée pour la description et le suivi de fonctionnalités est le français.

Discussions

En revanche, pour éviter le coût du changement de contexte, les discussions techniques, notamment par le biais de commentaires ou d'échanges par des logiciels spécialisés, peuvent se faire en anglais, la langue la plus utilisée dans le cadre du développement logiciel.

Documentation

Attention à ne pas rédiger un README intégralement en anglais. Un simple résumé en français (exemple) vous permettra de respecter la loi.

Infrastructure / langages

Fais ce que tu veux. Mais prévois que tu ne seras probablement pas le seul à intervenir sur ton produit… s'il marche 😉

Usage de services commerciaux externes

Un service commercial externe est un outil ou un composant logiciel sur lequel la DINSIC n'a pas tout à la fois :

  • la liberté d'utiliser le logiciel ;
  • la liberté de copier le logiciel ;
  • la liberté d'étudier le logiciel ;
  • la liberté de modifier le logiciel et de redistribuer les versions modifiées.

Il s'agit des quatre libertés fondamentales du logiciel libre.

Cela n'implique pas nécessairement qu'il s'agisse d'un logiciel libre. Un logiciel sous propriété intellectuelle DINSIC peut ainsi respecter ces critères.

Éviter si critique

Un outil ou composant logiciel dont une défaillance empêche le produit de remplir une promesse faite à l'utilisateur ne devrait pas être un service commercial externe.

Le logiciel doit pouvoir être réutilisé par d'autres acteurs que la DINSIC… et si un composant critique disparaît, on est coincés !

Exemples :

  • Framework applicatif.
  • Serveur.
  • Composant de compilation.
  • Moteur de recherche.

Utilisable si optionnel

Un outil ou composant logiciel qui n'est pas nécessaire pour que le produit tienne les promesses faites à l'utilisateur est dit « support ». Les outils supports à la production peuvent être des services commerciaux externes.

Exemples :

  • Outil de suivi d'avancement.
  • Outil de déploiement continu.
  • Composant de suivi d'usage.

Licence

Voir la page licences.

Sous-domaines de beta.gouv.fr

Si tu veux que ton projet ait une adresse de la forme monprojet.beta.gouv.fr, il faut en faire la demande sur le canal #incubateur-ops du Slack de beta.gouv: quelqu'un doit ajouter une ligne sur le DNS.

Concernant l'HTTPS, il faut également:

  • demander l'accès au repository infra/nginx-shared (non public pour des raisons évidentes de sécurité)
  • ajouter sa configuration nginx via une Merge Request
  • demander à quelqu'un la validation/merge de la MR en question sur #incubateur-ops

Suivi de l'audience d'un site

Une instance de Matomo (anciennement appelé Piwik) est disponible. Elle est gracieusement mis à disposition par Etalab et n'a pas de SLA. Demande la création d'un compte pour ton projet sur le canal #etalab-ops du Slack de beta.gouv. Tu pourras ensuite intégrer le code de suivi fourni par Matomo dans le code de ton application.

Design Systeme

Quel Design Systeme pour le secteur public ?

Clone this wiki locally