Периодически всем, кто трудится на поле разработки программного обеспечения приходится читать чужой код: код коллеги, код незнакомого разработчика или код популярной библиотеки. Помимо прочих плюсов и минусов невольно наталкиваешься на «трудности перевода». И хорошо если речь о родном языке, ведь когда такие «сложности» возникли у индуса или китайца, то результат порой вообще вызывает спазм
Например в популярной CMS UMI мы можем найти такое замечательное наименование свойства объекта: izobrazhenie
. Заметьте — не «image» и даже не «picture», а вот так незамысловато.
Что будет ощущать англоговорящий разработчик, читая этот код? Я склонен предполагать, что тоже самое, что и в упомянутой ситуации русскоговорящий разработчик читающий код разработчика из поднебесной.
Другой проблемой является обычная безграмотность в именовании, вероятно связанная со слабым знанием английского, когда слово подобрано для именования вроде бы верно, а вот употреблено как-то не очень. Возвращаясь к примеру той же UMI мы можем найти метод с наименованием childs
, который по замыслу создателей должен возвращать дочерние объекты по отношению к объекту-владельцу метода. Однако в английском слово «дети» в переводе имеет отдельную форма слова, а не образуется по общему правилу образования множественного числа от существительного. Потому правильно было бы children
. А если подходить ещё более глобально, то так как метод подразумевает действие (в отличие от свойства), то такое наименование больше подходит свойству, для метода же логичнее было бы употребить словосочетание с обязательным использованием глагола, в данном случае идеальным вариантом было бы назвать метод getChildren
.
Как-то раз мне пришлось копаться в коде написанном неизвестным немецким программистом, код стилистически был прекрасен, и работал просто замечательно… Но! Повторное использование было сильно омрачено вероятной полной уверенностью автора о повсеместном знании немецкого — абсолютно все наименования были на родном языке автора. Кто не в курсе: алфавит немецкого почти не отличается от обычной латиницы, чем и воспользовался германский программист. Мне пришлось попотеть разбираясь что к чему, попутно вспоминая школьный курс немецкого и мучая словарь (спасибо Яндекс.Словарям!).
Призываю коллег по цеху использовать английский (разумеется там, где он использоваться может), ставший в отрасли уже традиционным, вспоминать (или изучать) его параллельно, дабы повторное использование вашего труда вызывало только восхищение решениями, без горечи трудностей перевода.
P. S.: Предчувствуя реплики вроде «Не самая большая проблема в коде, есть куда более ужасные приёмы.» в комментариях, хочу сказать, что хороший код мы все любим и озвучивание ещё одной проблемы всем пойдёт на пользу. По крайней мере я на это надеюсь.
Автор: Pagefest