Avec un autre développeur, je me suis lancé dans la création d'une application hébergée de type CRM qui s'adressera aux entreprises. Ces entreprises auront accès à notre application à distance et la nature hébergée de l'application nécessitera donc certaines fonctionnalités. Par exemple, pour garantir un niveau de service professionnel, les choses suivantes doivent être vraies :
- l'internationalisation nécessite plusieurs langues et la présentation de la date et de l'heure pour différents fuseaux horaires et lieux.
- capacité transactionnelle pour le traitement par lots des tâches et capacités de retour en arrière
- les problèmes de sécurité pour préserver la sécurité des données et la protection des invocations à distance contre les attaques
- etcetera, la liste est longue.
En raison de ces préoccupations et de mon rôle de développeur le plus responsable du développement côté serveur, je suis très intéressé par les choix que je fais dès le début. En ce qui concerne les fuseaux horaires et les langues par exemple, y a-t-il des problèmes liés à mon choix de base de données ou de champs de données ? Est-ce que je choisis d'utiliser un horodatage ou un champ de date UTC dans toute l'application et, dans ce cas, existe-t-il un format standard pour cela ? De même, en ce qui concerne les différentes langues, dois-je m'assurer que les données sont stockées dans la base de données en UTF-8 ou unicode ?
Je veux vraiment éviter de mettre en place l'infrastructure du système pour découvrir plus tard qu'une décision fondamentale était incorrecte ou pas assez grande, assez large, assez intelligente, etc. Quelqu'un peut-il m'indiquer la voie à suivre en ce qui concerne ces décisions fondamentales "précoces" ?
EDIT _ Ok j'apprécie les réponses larges et maintenant je vois que ma question était un peu trop peu spécifique. J'aimerais me concentrer sur les éléments plus spécifiques qui étaient présents dans la question, comme par exemple comment choisir le format approprié pour stocker une date/heure UTC ou comment sauvegarder mes données texte (dois-je spécifier un format UTF ?).