L'un des problèmes les plus courants dans le développement de logiciels est le débat sur le choix technologique. Qu'il s'agisse de langages de programmation, de frameworks ou d'outils. Trop souvent, ces débats se terminent par de simples conclusions : « La technologie A est meilleure que B » ou « La technologie X est pire que Y » sans tenir compte du contexte et des systèmes de valeurs derrière la conception de ces technologies
.
Comprenez la différence entre « ne fonctionne pas » et « ne sert pas l'objectif ».
Décider quelle technologie est bonne ou mauvaise est Il faut distinguer deux points principaux :
-
Une technologie qui "Ne fonctionne pas" : est une technologie qui ne parvient pas à atteindre les objectifs fixés dans sa propre conception, par exemple
- Un langage conçu pour la vitesse. Mais cela fonctionne beaucoup plus lentement que les concurrents
- Framework qui prétend augmenter la productivité mais a une courbe d'apprentissage trop élevée
- Système qui met l'accent sur la sécurité Mais il y a un sérieux défaut
-
Une technologie qui « ne répond pas aux besoins du système de valeurs » : est une technologie qui fonctionne aussi bien qu'elle a été conçue. Mais ce à quoi il accorde de l'importance ne correspond pas à nos besoins, comme
- Langage axé sur les performances, mais nous avons besoin de plus de vitesse de développement
- Un cadre très flexible. Mais nous voulons de la simplicité dans la maintenance
- Outil qui met l'accent sur une sécurité maximale. Mais nous avons besoin de rapidité dans le développement
Étude de cas : Go contre Rust
Un exemple clair de la différence entre les systèmes de valeurs est la comparaison entre Go et Rust :
Go : système de valeurs qui met l'accent sur la productivité des développeurs
- Conçu pour être facile à apprendre
- L'accent est mis sur la simplicité du langage
- Concentrez-vous sur le travail en grandes équipes
- Convient aux développeurs ayant différents niveaux d'expérience
- Sacrifiez certaines fonctionnalités pour réduire la courbe d'apprentissage
Rust : système de valeurs qui met l'accent sur la performance et la sécurité
- Concentrez-vous sur l'efficacité au niveau de la programmation système
- Focus sur la sécurité de la gestion de la mémoire
- Il existe un système de type strict
- Permet une courbe d'apprentissage élevée en échange de sécurité et d'efficacité
Go et Rust ne sont pas "mauvais" dans la façon dont ils ont été conçus, mais ils ont des systèmes de valeurs très différents
Contexte commercial et sélection technologique
Le choix de la technologie doit tenir compte du contexte commercial comme important :
Cas de démarrage
- Besoin d'un délai de mise sur le marché rapide
- Ressources limitées pour embaucher des développeurs
- Peut échanger les performances contre la vitesse de développement
- Budget infrastructure Ce n'est peut-être pas la principale limitation
Dans le cas des grandes organisations
- Doit considérer les coûts à long terme
- Dispose d'une équipe de développeurs nombreuse et diversifiée
- Besoin de cohérence dans le développement
- Les performances du système ont un impact important sur les coûts
Échapper au piège du système de valeurs
Les développeurs expérimentés tombent souvent dans le piège de leurs propres systèmes de valeurs familiers. Il existe plusieurs façons d'échapper à ce piège :
-
Ouvrez votre esprit pour découvrir différents contextes
- Étudier des études de cas d'organisations dont la taille et la nature sont différentes de celles auxquelles nous sommes habitués
- Parlez à des développeurs travaillant dans différents contextes
-
Entraînez-vous à examiner les problèmes sous plusieurs angles
- Considérez les avantages et les inconvénients de chaque option dans divers contextes
- Ne vous précipitez pas en concluant que notre méthode préférée est toujours la meilleure
-
Comprendre les origines du design
- Etudier les raisons et les motivations derrière la conception de diverses technologies
- Comprenez que chaque conception comporte un compromis
Conclusion
Comprendre et adopter la diversité des systèmes de valeurs dans le développement de logiciels est important pour chaque développeur. Il n’existe pas de « meilleure » technologie dans toutes les situations. Choisir la bonne technologie dépend de la compréhension du contexte, des objectifs et des limites de chaque situation
Les discussions technologiques devraient se concentrer sur l'échange de points de vue sur différents systèmes de valeurs. Au lieu de cela, les jugements sur ce qui est bon ou mauvais sont portés sans contexte. Parce que comprendre ces différences nous aidera à concevoir et développer des systèmes qui répondent mieux aux besoins des utilisateurs
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!