Каковы Ваши доводы за неиспользование транслита в коде?
Есть у меня один программист. Неплохой в общем-то парень, трудолюбивый, обязательный. Но со своими тараканами и упёртый до жути. Не могу его отучить использовать транслит в коде для названий переменных, классов и т.п. Так, например, вместо простого "backcall" пишет "zakaz_obrt_zvonok_otk". Я каждый раз бешусь, пытаюсь объяснить, привожу разные доводы, рассказываю про стандарты, но всё бесполезно. «Мне так удобно, я так привык, я не знаю английский...». Накидайте, пожалуйста, списочек ваших доводов, может быть я найду в них что-то новое для его переубеждения :) Спасибо!
Я не знаю транслита и не видел курса по нему, а английский можно выучить. (здесь я, наверное, немого лукавлю, но и программист тот вряд ли совсем уже не знает английского)
Я читаю транслит гораздо медленней, чем английский. (и это чистая правда, транслит читаю по слогам, мне проще незнакомые романские языки читать, чем транслит)
На транслит много стандартов, каждый пишет, как ему захочется. С английским проще.
Названия ключевых слов и прочего в языке программирования на английском, и английские же названия переменных и функций сморятся более эстетично foreach object in list: validate(object), чем рунглиш.
Код пишется не для удобства одного разработчика, а для того чтобы реализовывать бизнес-задачи. Рефакторинг и простота поддержки кода это бизнес-задача. Соглашением является именование методов и переменных на английском, так как, как выше уже сказали, такие названия органично смотрятся при чтении кода. Равно как завтра, например, код может пойти на международный рынок и разработка окажется за рубежом. Нерусскоязычный разработчик не сможет работать с таким кодом.
Если программист изобрел собственный стайлгайд и не желает следовать общепринятому - его право открыть собственную компанию и реализовывать там в команде свой стайлгайд. В противном случае в другой команде он мешает выполнению основной задачи кода - поддержке бизнеса. То есть делает противоположные своим прямым обязанностям вещи.
Мне кажется здесь нужно поставить вопрос ребром - никакие супер-компетенции не должны идти на поводу прихотей. В крайнем случае если разработчик сверхчеловек - отправьте его на курсы языка.
это у вас в голове тараканы, и какие-то непонятно откудо взятые догмы.
ну сколько можно насиловать разработчиков и заставлять их думать на английском, где скажите мне GDE сказано, что нужно обязательно на английском название переменных делать?
если вы неебаться там транснациональная корпорация типа гугла -> тогда да, можете объяснять за культуру использование "международного" языка в "международной" команде,
но если вы в России живёте и разрабатываете продукт в русскоговорящей команде -> не мучайте их, не заставляйте думать на английском, пускай они описывают смыслы и идеи на родном языке (транслите), использование английских переменных вам ничего кроме мучения и снижение производительности не даёт.
Paulus: нету у меня такой догмы, продукты рождаются и умирают, писать изначально с заделом на то что ваш продукт купит гугол, несколько опрометчиво. . .
вы все ваши методы и переменные 20 раз переименуйте уже в течении первого года работы, и если дойдёт дело до продажи, то 21 раз локализовать исходный код для америкосов, думаю не проблема.
Я утверждаю что - потребность в изначальной американизации исходного кода - нулевая!
Paulus: я более того считаю, что все кто являясь носителем великого и могучего, принципиально описывают мысли через корявые американизмы, не понимая даже правильности написания на американском - сраные мудаки.
дима кубитский напрасно думаете, что не проблема. Посчитайте, сколько у вас времени занимает рефакторинг одного метода переименованием + тесты, умножьте на количество методов, умножьте на стоимость трудочаса разработчика, получите весьма солидную сумму и это затраты, которых изначально можно избежать без особого труда. Вы ведь понимаете, что коммерческий продукт нельзя просто взять и отрефакторить контекстной заменой?
Paulus: вы меня, русского человека, хотите убедить? в том что мне, например как разработчику, быстрее и удобнее дешевле свои мысли описывать на английском?
вы вообще в своём уме????
более того я свободно разговариваю на английском, но всё равно он мне не позволяет писать действительно быстро код, не задумываясь над названиями.
хотя я как правило пишу именно на английском (дело привычки), но если встаёт какая-то проблема с названием, не задумываясь пишу это название транслитом.
для меня передача смысла куда важнее мифических возможностей продажи исходного кода гуглу, которые уверяю вас никогда не произойдёт.
ну а если и произойдёт, рефакторинг будет не проблемой, базарю!
дима кубитский я ни в чем не пытаюсь вас убедить. Очевидно, что вы не смотрите на код, как на бизнес-актив, коим он в сущности является. Без этого любой спор относительно стилистики не имеет смысла.
Paulus:
Насмотрелся я на таких клоунов, которые плохо зная английский язык всякий бред в названиях пишут, потом из-за недопониманий баги и кривая логика в работе/использовании методов.
проблемы от недопонимания при разработке будут куда дороже, стоимости рефакторинга, вашего "бизнес актива".
если от транслита код для команды становиться более понятным и выразительным, то могу гарантировать что ваш "бизнес актив" от этого только выиграет.
дима кубитский: Золотые слова! Как по мне, я бы вообще обязал выцарапывать код на берестяных грамотах... так сказать, для принципиального исключения нездоровой конкуренции на мировом рынке :)
дима кубитский: Все это - и ваша аргументация, и переменные транслитом - невероятно увлекательно, и наверняка, имеет немалую этнографически-патриотическую ценность... так сказать, в культурном аспекте дискурса. Только вот незадача... в IT принято (традиционно, исторически) писать код на английском, так же, как у юристов, врачей и биологов принято для определенных целей пользоваться латынью, и т.к. большинство представителей этих профессий заняты решением реальных проблем (а не душевными терзаниями на тему справедливости или несправедливости подобного хода истории), им самым что ни на есть откровеннейшим образом насрать на то, как к этому незначительному обстоятельству относятся, скажем, патриоты, политики или прочие представители шоубизнеса. Нет, разумеется, никому не запрещено плевать или справлять прочие естественные потребности против ветра... но и удивляться, что остальные находят это не более чем потешным, тоже как-то несерьезно, на правда ли?
На всякий случай: слово "принято" означает не какую-то там высшую справедливость и даже не заговор мировой закулисы, а всего навсего тот банальный факт, что большинство ИТ-шников поступают именно так по самым разным объективным соображениям, которые много раз озвучены. Если Вас это все не убеждает, или как-то задевает лично, Вам остается либо смириться, либо обеспечить такой "расцвет шахматной мысли в Васюках", что благодарное человечество наплюет на этот богомерзкий английский и дружно станет фигачить на транслите. Выбор, разумеется, за Вами. Единственно, что можно утверждать наверняка - тролинг на Тостере Ваших проблем точно не решит!
pi314: я здесь например, ничего объективного так и не услышал в пользу использования английского в названиях методов, вместо например транслита или кириллицы.
кроме фразы принято.
более того ни в каких соглашениях в разработчиков такого тоже не найдёте, не стоит придумывать, и выдавать ваши личные хотелки за "принято", никем этого не принято.
дима кубитский: транслитом имена переменных и функций пишут на первом курсе филологического. Без знания английского стать полноценным програмистом - нельзя.
Посмотрел ваши KOVLICHESTVO_BUKV_V_ALFAVITE - шикарно.
А я люблю так писать KOJlu4eCTBo_byKB_B_AJlqpABuTE - как вам? Взяли бы меня к себе имена переменным придумывать?
дима кубитский: и? А я люблю константы KOJlu4eCTBo_byKB_B_AJlqpABuTE так писать. Нравится такие названия читать?
А еще я имена функций пишу так: qpyHKCu9l_CJlojhuTb_4ucJlo()
Как тебе? Хотел бы мой код читать и поддерживать?
D' Normalization: есть соглашения по поводу написания например констант заглавными с разделителем через нижнее подчёркивание.
нет соглашения по поводу того на каком языке называть переменные -> это факт.
ты то мне чего тут свой безграмотностью, впаривать пытаешься? ай затролил азаза всё не надо больше.
дима кубитский: Мой комментарий почему-то был удален. Видимо сильно задел чувства истинных патриотов транслита. Мне тоже насрать на твой код, я лишь привел его в качестве довода, а ты уже изошолся говном. Но если это "черновики" как ты говоришь, нормальные люди черновики на гитхаб не выкладывают на всеобщее обозрение и тем более не выводят это в своем профиле здесь. Не пались и не палим будешь.
Покажите этому "нехочухе" код на французском или на японском\китайском транслите, и пусть он попытается разобраться в нем и отрефакторить.
Гнать взашей таких нехочух.
Очень многие языки программирования поддерживают название переменных прямо в Юникоде - поэтому можете не стесняется, и писать прямо заказ_обрт_звонок_отк. Ничего прям страшно плохого в этом нет, как я понимаю, это тот случай, когда код за пределы чисто русскоязычной компании не выйдет. А русские буквы смотрятся даже лучше транслита, как по мне (привет, 1С).
Но есть нюанс. Все в компании должны писать одинаково. С одинаковыми принципами наименования переменных. С одинаковым количеством пробелов/табов. В общем, много таких микро вопросов.
Соберитесь, выберете всей компанией стандарт, если у тимлидера нет авторитета сделать это в одиночку. И обязательно контролируйте это на уровне системы контроля версий. Код не по стандарту не должен быть закоммичен!
Есть технический вариант: внедрите в используемом IDE проверку синтаксиса и сделайте ее "чистоту" обязательной. Транслит не пройдет, а заодно уменьшите количество опечаток. Особенно актуально для языков с неявным объявлением переменных типа пыха с жабоскриптом.
1. Пусть этот упёртый человек так и остаётся примером программиста с недостатками.
2. Как вариант, купите ему ABBYY Lingvo, пусть играет с буфером обмена.