Dans quelle langue dois-je nommer mes cours d'affaires?

29

Je demande les meilleures pratiques avec cette question. Ce n'est un problème que si l'entreprise cliente est strictement nationale et a une langue maternelle autre que l'anglais, je pense.

Si le client a beaucoup d'expressions principalement très spécifiques au domaine (disons, allemand), mélangées à des noms moins spécifiques au domaine. La langue de nos commentaires de code, noms de classe / méthode / variable est l'anglais. Souhaitez-vous traduire tous les noms de domaine spécifiques?

Zeemee
la source
11
Anglais. Lingua franca pour la programmation.
Rig
6
L' une des plus « difficiles » les messages d'erreur PHP a une tournure intéressante hébreu: unexpected T_PAAMAYIM_NEKUDOTAYIM. Ayant vu cela plusieurs fois dans ma vie, je ne doute pas que l'on devrait utiliser l'anglais.
K.Steff
3
L'une des expressions spécifiques au domaine allemand a-t-elle des caractères non standard (par exemple, umulauts (sp?))? Si vous embauchez des programmeurs en dehors de votre région, ils ne pourront peut-être pas trouver un clavier avec les caractères requis (pas le mien). Oui, il existe des moyens de changer la langue «tapée», mais je ne voudrais pas que ça me dérange.
Clockwork-Muse
2
Grec - l'utilisation d'alphabets non latins est une meilleure sécurité d'emploi que le klingon.
Wyatt Barnett
3
@ X-Zero en dehors de la simple ASCII ouvre la boîte de dialogue "Quel codage de caractères utilisons-nous"? Habituellement, vous vous faites mordre et n'y retournez pas.

Réponses:

16

Je travaille en Allemagne et je préfère choisir l'anglais.

Parfois, par exemple, des choses spécifiques au domaine, comme la création d'un module pour "DATEV" (logiciel de facturation / facturation allemand), j'utilise des noms allemands. Certains mots allemands ne peuvent pas être traduits correctement, par exemple "Referenzbuchungsnummer" (ReferenceBookingNum?) Ou "Sachkontenlaenge" (..?). Je pense aussi que les choses spécifiques au domaine se termineraient par une horreur de maintenance. Vous vous souviendrez peut-être que ReferenceBookingNum serait lié à "Referenzbuchungsnummer", mais qu'en est-il de vos collègues? Ils doivent étudier la documentation interne sur la dénomination, si la documentation existe. Ils ne seront pas très familiers avec le module sans avoir de noms propres. C'est une complexité inutile si tous les autres développeurs sont également allemands. Mais "CakeFactory" sonne beaucoup mieux que "KeksFabrik";)

Tout dépend donc.

lurkerbelow
la source
2
Cette réponse reflète le plus mon opinion personnelle, après avoir lu les autres réponses. Surtout ce point: "C'est une complexité inutile si tous les autres développeurs sont également allemands" lors de la traduction de tout.
Zeemee
1
@Mulmoth: "C'est une complexité inutile si tous les autres développeurs sont également allemands" --- Comment pouvez-vous être sûr qu'à un moment donné, certaines années, le projet ne sera pas externalisé dans un autre pays? Comment pouvez-vous être sûr qu'un développeur non germanophone ne sera pas introduit dans le projet à un moment donné?
Coral Doe
5
@Coral Doe - Je pense que la nouvelle / autre développeur / externalisent déjà doivent creuser profondément dans le domaine des affaires et de ses expressions spécifiques. Donc, à mon humble avis, il est plus facile de mapper ce que le client (qui sera alors allemand) saisit des classes nommées allemandes au lieu de noms anglais mal / mal traduits.
Zeemee
2
Les "trucs" liés à la facturation / aux taxes en Allemagne ne seront jamais sous-traités à un pays non germanophone. À l'université, quelqu'un m'a dit que 85% de tous les livres de facturation / fiscalité se réfèrent aux lois allemandes et sont écrits en allemand. à l'échelle mondiale.
lurkerbelow
3
Je suis d'accord, mais un problème qui se produit presque toujours est que le langage utilisé par les développeurs est divulgué aux utilisateurs et aux autres parties prenantes. Pas dans le cadre de l'interface utilisateur, mais sur la façon dont vous parlez du domaine problématique. Cela conduira inévitablement à la confusion car tout le monde ne parle pas aussi bien l'anglais que la plupart des développeurs.
Mille Bessö
14

Étant norvégien travaillant dans une entreprise norvégienne, je nomme mes objets en anglais. Bien sûr, certains mots ou concepts peuvent ne pas avoir d'équivalent en anglais et dans ce cas, on peut affirmer qu'un mot natif peut être utilisé à la place d'un mauvais remplacement ou d'une traduction littérale qui n'a pas de sens. Bien sûr, la plupart de ces problèmes pourraient être le fait que certains d'entre nous devraient avoir un meilleur vocabulaire, donc je demande généralement à un collègue si je ne peux pas penser à un bon nom anglais :)

Certains de nos employés ne sont pas norvégiens et donc écrire en anglais leur profite. Être en mesure d'embaucher des programmeurs de la plupart des pays européens est bon pour l'économie, donc mon entreprise en profite également.

BTW: Je me souviens avoir lu la source d'Hermes une fois (implémentation ebXML b2b) et j'aurais eu du mal s'ils avaient écrit et commenté en mandarin.

Sylwester
la source
5
Presque modifié "college" pour ce que je suppose être censé être "collègue" mais je ne savais pas si c'était intentionnel.
Jacob Schoen
Bien sûr, je voulais dire collègue :)
Sylwester
Of course some words or concepts might not have a English counterpart- Je suis toujours curieux quand cela arrive dans la programmation, presque comme si vous connaissiez un modèle de conception que les anglophones ne trouveraient pas. Avez-vous un exemple rapide?
Izkata
5
@Izkata: la question portait sur les classes affaires . Ils sont plus souvent liés aux règles et réglementations spécifiques au pays. Par exemple, si la loi vous oblige à suivre l'emplacement de tous les camions contenant des produits chimiques dangereux, vous pourriez très bien nommer cette classe d'après cette loi.
MSalters
9

Je crois que puisque l'anglais est la lingua franca du domaine informatique, limiter votre code source à une autre langue crée des obstacles artificiels à son développement. Vous limitez d'abord le bassin de personnes pouvant contribuer à celles qui parlent une langue spécifique. La même raison que vous avez posée en échange de pile et non sur un site local.

Vous ne savez pas non plus d'où proviendront les contributions ni où elles iront. Et si vous utilisez un échantillon d'un site, allez-vous traduire cela? Que se passe-t-il si le produit se développe pour être utilisé par des clients dans un autre pays? Si vous avez besoin d'embaucher un entrepreneur / d'externaliser un peu? Pourquoi limiter à un seul pool et ne pas obtenir le meilleur ajustement du monde entier?

Peut supposer qu'il est OK pour certaines structures spécifiques à un domaine qui ne mappent pas facilement à d'autres langues ou si une base de code existante est maintenue.

Dimitrios Mistriotis
la source
9

Mon dernier objectif de projet était de modéliser le domaine commercial des garanties et des hypothèques. Tous les développeurs et l'entreprise pour laquelle nous avons travaillé sont originaires de Pologne. Nous avons construit le logiciel selon les principes de conception pilotée par domaine. Nous avons utilisé des noms polonais pour toutes les entités commerciales et je pense que c'était un très bon choix. Je pense que nous avons pu éviter les problèmes de communication grâce à cette approche. Le domaine des affaires comprenait de nombreux termes que je ne connaissais même pas en polonais, sans parler des traductions en anglais. Nous n'avons utilisé que des lettres latines et toutes les classes techniques ont été nommées en anglais.

empi
la source
4
C'est un bon point: si toutes les connaissances du domaine sont dans la langue locale et qu'aucun nom anglais convenu pour les concepts de domaine n'existe, l'utilisation de la langue locale peut être une bonne idée.
Joachim Sauer
7

Il est généralement plus facile de lire le code source écrit dans une seule langue. Cela pour la plupart des langages de programmation implique que vous devez l'écrire en anglais.

Cela dit, il existe un problème majeur avec les concepts de domaine qui ne se traduisent pas facilement en anglais. Un exemple typique est un identifiant unique que la société donne à l'individu - aux États-Unis, le concept le plus proche est le numéro de sécurité sociale, mais ce n'est pas une cartographie précise. Les noms et numéros de téléphone correspondent généralement assez bien.

Je pense qu'il est généralement nécessaire de conserver les termes du domaine chaque fois qu'une cartographie précise n'est pas facilement disponible en anglais, mais seulement ceux-ci - gardez le reste en anglais. Il en résultera des identifiants inhabituels comme KommuneImpl mais cela devrait avoir un sens immédiat pour ceux qui connaissent le domaine.


la source
2

Projets de type open source / communauté internationale

La langue commune des projets open source et de la communauté internationale est l'anglais. Par exemple, la langue des sites Stack Exchange est l'anglais. Pour une accessibilité plus large, l'anglais doit être utilisé pour tous les noms de code et d'objet.

Projets commerciaux

La plupart des éditeurs de logiciels internationaux exigent que le code soit écrit en anglais. C'est le plus grand dénominateur commun, il est donc logique d'utiliser l'anglais comme moyen de créer de la cohérence.

De nombreuses sociétés régionales de logiciels écrivent dans leur langue maternelle. Tous ne suivent pas cette approche, mais cela a du sens de leur point de vue - ils utilisent le langage commun à tous leurs développeurs.

Nommer des objets métier

Le langage de codage de l'équipe doit être utilisé pour nommer les objets.
La priorité est que les développeurs puissent communiquer entre eux sur les objets et les exigences du projet. Si l'équipe écrit en français, les objets métier doivent être nommés en français. S'ils codent en anglais, nommez les objets en anglais.

Votre question ajoute une ride car le client parle une langue maternelle autre que le langage de codage de votre équipe. Vous devez toujours utiliser le langage de codage de votre équipe pour nommer les objets.
Lorsque les analystes commerciaux ou les développeurs doivent communiquer avec le client au sujet des objets métier spécifiques, une traduction au besoin du nom de l'objet du langage de codage vers le langage client peut être requise. D'après mon expérience, il est assez rare que j'aie parlé d'objets de code spécifiques avec le client, de sorte que la traduction dans le langage client n'a pas vraiment été nécessaire.

La seule exception à la règle de dénomination est lorsqu'un objet n'a pas d'autre terme suffisamment concis pour capturer l'intention de l'objet. OMI, c'est vraiment rare, mais ça peut arriver. En réalité cependant, c'est la même chose que les langues parlées font pour exprimer des concepts particuliers. " Facade " est à l'origine un terme français mais a été adapté par l'anglais afin d'exprimer le concept, et est un modèle de conception commun. " Schadenfreude " est un autre bon exemple d'un terme emprunté bien que je ne pense pas qu'il ait un schéma correspondant.


la source
1
Votre dernier paragraphe contredit totalement votre premier, semble
James
@James - merci! J'ai supprimé cette section car je n'ai pas le temps pour le moment de clarifier ce que je voulais dire. C'était censé soutenir, mais peu importe.
1
Pas du tout d'accord. Étant donné que les concepts de base de pratiquement toutes les langues que vous rencontrerez sont écrits en anglais, l'utilisation d'une terminologie non anglaise conduit à un code source moins lisible. L'esprit doit constamment sauter entre l'anglais et l'autre langue. Le code doit être fluide et lisible.
Mike Adler
@MikeAdler - ce n'est pas clair si vous n'êtes pas d'accord avec ce que je suggère comme règle générale (nommer les choses dans la langue de l'équipe) ou le cas d'exception qui devrait être très rare.
Accordé. Je précise: je ne suis pas d'accord pour dire que tout objet doit être nommé dans une langue autre que l'anglais. Votre première rubrique «Projets de type Open Source / communauté internationale» reflète très bien mon point de vue. Après tout, je n'achète pas. La raison, comme indiqué, est la maintenabilité, qui devrait être une préoccupation primordiale pour pratiquement toutes les décisions de conception (y compris le schéma de dénomination) que vous prenez, à mon avis.
Mike Adler