Продолжение заметок о впечатлениях после программирования на Java. Предыдущие части здесь:
Данная заметка будет совсем уж флеймовой. Но что поделать, нотация (соглашения о правилах именования классов/методов/переменных) имеет очень важное значение. Она как обувь, в которой приходится много ходить. Если где-то хоть чуть-чуть жмет или трет, или попал маленький камешек – ноги можно стереть в кровь. Так же и с нотацией. Если какая-то мелочь раздражает, то со временем от нее будешь в прямом смысле плеваться.
Вот в Java для меня такой мелочью совершенно неожиданно стало соглашение об именовании методов. Странная штука – этот camelCase. В чем логика не понятно. Почему названия классов в нормальном CamelCase, а вот названия методов в другом camelCase. Прямо как в анекдоте: “Запомнэте это дэти, патамушта понять это нэвазможна!”
Ирония ситуации в том, что где-то с 1994-го по 2001 я сам такой нотацией пользовался в собственных C++ных программах. Но потом, из-за того, что много времени стал просиживать за компьютером, отказался от любого вида CamelCase в пользу lower_case. Намного меньше глаза устают.
В C++ так же часто camelCase используется. В Qt, например. Но это не обязательная к использованию нотация. Поэтому в C++ проще, особенно если в качестве корпоративного стандарта принята удобное для тебя соглашение об именовании :)
На данный момент самыми осмысленными и удобными мне кажутся нотации, принятые в:
- Ruby: CamelCase для имен классов, lower_case для имен методов, UPPER_CASE для имен констант. Причем, что хорошо в Ruby, там правила именования зашиты в синтаксис языка.
- Eiffel: UPPER_CASE для классов, lower_case для методов.
Удобно, когда в C/C++ используется lower_case нотация (особенно, когда для типов добавляется суффикс _t).
В OCaml-е было бы все хорошо, если бы там аргументы функций было принято в скобочки заключать. А так приходится разбираться какой пробел что обозначает :)
Вынужден признать, что в C# так же осмысленная нотация, хотя CamelCase мне и не нравится.
В OCaml (да и в Haskell) все еще суровей имена функций и переменных не могут начинаться с большой буквы, зато имена конструкторов типов обязаны начинаться только с большой буквы.
ОтветитьУдалитьНе хочется лишний раз флеймить на тему ФП, но мне кажется, что авторы ФЯ являются задвинутыми математиками, привыкшими к трехэтажным формулам. Поэтому они не задумываются о читабельности кода программ.
ОтветитьУдалитьПо мне так это на читабельность никак (разве микроскопически положительно) ни влияет, вначале я конечно тоже чуть поморщился и все.
ОтветитьУдалитьВообще так-как у меня был довольно приличный период жизни на заказном программировании когда приходилось очень часто менять стили кодирования, то в целом на подобные мелочи мне пофиг :)
>Вообще так-как у меня был довольно приличный период жизни на заказном программировании когда приходилось очень часто менять стили кодирования, то в целом на подобные мелочи мне пофиг :)
ОтветитьУдалитьНу да, должно быть пофиг. Но вот меня что-то взяло и зацепило. Такая навязчивая мысль: "а нафига названия методов начинать с маленькой буквы писать, если затем каждое новое слово должно начинаться с большой буквы?" И не избавиться от нее никак, все долбит и долбит :)))
:)
ОтветитьУдалить