Re: про нэйминг
От: Ромашка Украина  
Дата: 13.05.18 11:41
Оценка: +1 :)
Здравствуйте, MadHuman, Вы писали:
MH>Если б у вас был выбор что выбрать, или если сложилось впечатление о преимуществах одной перед другой, или то что напрягает, welcome поделиться ...

Мне пофиг. Меня напрягло это только один раз: команда полгода вырабатывала общий нейминг, таки родила документ, босс приказал всем писать строго по нему и через месяц спросил в каком лесу меня научили начинать имена приватных членов с подчеркивания? Я, конечно, указал номер страницы, босс мне, конечно, ответил "бл...", но с тех пор я окончательно уверился что всем пофиг и по примеру босса прекратил читать всякую чушь.


Всё, что нас не убивает, ещё горько об этом пожалеет.
Re[3]: про нэйминг
От: DenisCh Россия  
Дата: 12.05.18 15:02
Оценка: :)
Здравствуйте, MadHuman, Вы писали:

MH> MH>> а как у вас?...

MH> DC>Я всегда использую Camel Case. На любом языке. Мне так удобно.
MH> А какие у вас вызывает эмоции использование Camel Case например в js? особенно если используются и сторонние библиотеки с lowerCamelCase ?

Я не стану отвечать. За мат на этом форуме банят.
avalon/2.0.3
про нэйминг
От: MadHuman Россия  
Дата: 25.04.18 10:07
Оценка:
Приветствую, коллеги.

Есть разные naming convention. В разные времена довелось поработать с разными технологиями имеющие разные конвенции (C#, javascript, sql, html, css итп). Если к какой-то привыкнуть, то вообщем нормально, но когда переключаешся между средами с разными конвенциями, то несколько подняпрягает... и непонятны преимущества их друг перед другом.

Если б у вас был выбор что выбрать, или если сложилось впечатление о преимуществах одной перед другой, или то что напрягает, welcome поделиться ...

например меня напрягает, разница между C# и javascript — в C# имена методов/полей класса с большой буквы, а в js — имена с маленькой.
но нет ощущения что какая-то лучше).

также в sql удобно что функции и поля в таблицах именуются с маленьких букв, но когда в проекте смешиаваются что-то типа EF и ручного sql, то опять же разница в конвенциях режет глаз.

а как у вас?...
Re: про нэйминг
От: _NN_ www.nemerleweb.com
Дата: 25.04.18 18:49
Оценка:
Здравствуйте, MadHuman, Вы писали:

MH>также в sql удобно что функции и поля в таблицах именуются с маленьких букв, но когда в проекте смешиаваются что-то типа EF и ручного sql, то опять же разница в конвенциях режет глаз.

<offtopic>
Возьмите LINQ2DB и перестаньте писать ручной SQL
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[2]: про нэйминг
От: MadHuman Россия  
Дата: 25.04.18 19:03
Оценка:
Здравствуйте, _NN_, Вы писали:

_NN>Здравствуйте, MadHuman, Вы писали:


MH>>также в sql удобно что функции и поля в таблицах именуются с маленьких букв, но когда в проекте смешиваются что-то типа EF и ручного sql, то опять же разница в конвенциях режет глаз.

_NN><offtopic>
_NN>Возьмите LINQ2DB и перестаньте писать ручной SQL

Спасибо, про linq , linq2db я в курсе и это несколько не то что хотелось бы обсудить
Re: про нэйминг
От: Sinclair Россия https://github.com/evilguest/
Дата: 26.04.18 05:30
Оценка:
Здравствуйте, MadHuman, Вы писали:
MH>Есть разные naming convention. В разные времена довелось поработать с разными технологиями имеющие разные конвенции (C#, javascript, sql, html, css итп). Если к какой-то привыкнуть, то вообщем нормально, но когда переключаешся между средами с разными конвенциями, то несколько подняпрягает... и непонятны преимущества их друг перед другом.
Это уже обсуждали.
Единственное требование — consistency. Напрягает именно смешение конвенций.
Поэтому если работаете с платформой, то применяйте конвенцию, принятую на этой платформе по дефолту. Иначе будете всю жизь мучиться, глядя на Pascal конвенцию в Java коде, где все остальыне используют кэмел.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[2]: про нэйминг
От: MadHuman Россия  
Дата: 26.04.18 09:46
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Единственное требование — consistency. Напрягает именно смешение конвенций.

так

S>Поэтому если работаете с платформой, то применяйте конвенцию, принятую на этой платформе по дефолту.

дак вот тут и проблема. если C# и javascript (как часть asp.net mvc проекта), конвенции разные, и это и напрягает — переключение туда/сюда.
Re: про нэйминг
От: DenisCh Россия  
Дата: 12.05.18 05:08
Оценка:
Здравствуйте, MadHuman, Вы писали:

MH> а как у вас?...


Я всегда использую Camel Case. На любом языке. Мне так удобно.
avalon/2.0.3
Re[2]: про нэйминг
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 12.05.18 08:38
Оценка:
Здравствуйте, DenisCh, Вы писали:

DC>Я всегда использую Camel Case. На любом языке. Мне так удобно.


Такая же фигня. Использую с лохматых годов, как только перешел с техники, допускающей только uppercase, на нормальную.
Re[2]: про нэйминг
От: MadHuman Россия  
Дата: 12.05.18 08:39
Оценка:
Здравствуйте, DenisCh, Вы писали:

MH>> а как у вас?...


DC>Я всегда использую Camel Case. На любом языке. Мне так удобно.

А какие у вас вызывает эмоции использование Camel Case например в js? особенно если используются и сторонние библиотеки с lowerCamelCase ?
Re[3]: про нэйминг
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 12.05.18 08:46
Оценка:
Здравствуйте, MadHuman, Вы писали:

MH>А какие у вас вызывает эмоции использование Camel Case например в js? особенно если используются и сторонние библиотеки с lowerCamelCase ?


Почему это вообще должно вызывать какие-то особые эмоции?
Re: про нэйминг
От: vsb Казахстан  
Дата: 12.05.18 09:03
Оценка:
Мой идеальный naming convention это нормальные слова с пробелами. Но поддержку такого я видел только в SQL и, как ни странно, в BAT-файлах. Вроде теоретически в Kotlin можно, если каждый идентификатор обрамлять обратными кавычками, не пробовал писать в таком стиле. Видимо пробел это слишком ценный символ, чтобы отдавать его идентификаторам. Второй по идеальности это полностью lower-case с подчёркиваниями. Такой видел только в C. Почему верблюды самые популярные, я вообще не понимаю. Может быть это влияние английской традиции типографики, для меня дико выглядит разделение слов большими буквами, хотя и приходится прогибаться под изменчивый мир. Но будь моя воля, я бы писал именно_так.
Re[4]: про нэйминг
От: MadHuman Россия  
Дата: 12.05.18 09:07
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

MH>>А какие у вас вызывает эмоции использование Camel Case например в js? особенно если используются и сторонние библиотеки с lowerCamelCase ?


ЕМ>Почему это вообще должно вызывать какие-то особые эмоции?

ломка привычки обычно не вызывает приятных эмоций хотя в данном случае "ломка" слишком громко, но всё равно отступление от привычного.
например, у меня — пописав на lowerCamelCase и затем переключившись на C# (Camel Case), некоторое время часто возникает желание (причем довольно сильное) продолжать использовать lowerCamelCase , но коллеги потом бывают недовольны
Отредактировано 12.05.2018 9:16 MadHuman . Предыдущая версия .
Re[5]: про нэйминг
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 12.05.18 09:16
Оценка:
Здравствуйте, MadHuman, Вы писали:

MH>например, у меня — попИсав на lowerCamelCase и затем переключившись на C# (Camel Case), некоторое время часто возникает желание (причем довольно сильное) продолжать использовать lowerCamelCase , но коллеги потом бывают недовольны


При коллективной разработке нужно принять единый стиль, и придерживаться его всем. При индивидуальной можно использовать любой.
Re[2]: про нэйминг
От: pagid Россия  
Дата: 12.05.18 09:20
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>Мой идеальный naming convention это нормальные слова с пробелами. Но поддержку такого я видел только в SQL и, как ни странно, в BAT-файлах. Вроде теоретически в Kotlin можно, если каждый идентификатор обрамлять обратными кавычками, не пробовал писать в таком стиле.

Знаю один локальный язычек, где такое можно, и там прижилось только для записи имен переменных являющихся одновременно полями БД.
vsb>Видимо пробел это слишком ценный символ, чтобы отдавать его идентификаторам.
Кавычки мешают читать. И большая длина идентификаторов не способствует легкому восприятию.

vsb> Второй по идеальности это полностью lower-case с подчёркиваниями. Такой видел только в C. Почему верблюды самые популярные, я вообще не понимаю. Может быть это влияние английской традиции типографики, для меня дико выглядит разделение слов большими буквами, хотя и приходится прогибаться под изменчивый мир. Но будь моя воля, я бы писал именно_так.

А меня подчеркивания в качестве пробелов раздражают и мешают читать CamelCase или lowerCamelCase читается гораздо легче. Дело привычки.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[2]: про нэйминг
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 12.05.18 09:29
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>Мой идеальный naming convention это нормальные слова с пробелами. Но поддержку такого я видел только в SQL и, как ни странно, в BAT-файлах


В большинстве ЯП идентификатор — это термин, используемый в рамках утверждения (оператора). Если делать ЯП, приближенный к естественному языку, то и элементы утверждения логично разделять именно пробелом. Во всех науках и технологиях всегда старались использовать однословные термины, чтобы не возникало разночтений при изменении падежей, использовании управляющих/управляемых конструкций и т.п.

Кстати, в BAT/CMD пробелы допустимы только в именах переменных, которые ограничиваются спецсимволами. В именах меток, по понятной причине, их использовать не получится.

vsb>Видимо пробел это слишком ценный символ, чтобы отдавать его идентификаторам.


Он не то, чтобы ценный, он просто традиционный (и естественный) разделитель.

vsb>Почему верблюды самые популярные, я вообще не понимаю.


Они достигают сразу двух целей — разделяют слова и экономят пространство на разделителях. Проблемы возникают исключительно на аббревиатурах, которые принято записывать заглавными буквами.
Re[3]: про нэйминг
От: vsb Казахстан  
Дата: 12.05.18 09:30
Оценка:
Здравствуйте, pagid, Вы писали:

vsb>>Видимо пробел это слишком ценный символ, чтобы отдавать его идентификаторам.

P>Кавычки мешают читать.

IDE это может улучшить. Например скрыть кавычки (или сделать их блёклыми) и выделить идентификатор прямоугольником, чтобы подчеркнуть его логически-единую сущность.

P>И большая длина идентификаторов не способствует легкому восприятию.


Почему это? Посмотри на Java, там полно длинных идентификаторов. Мне наоборот всяческие сокращения мешают лёгкому восприятию (кроме общепринятых). Хотя, конечно, есть и культура юникса с его strncpy, хз.

vsb>> Второй по идеальности это полностью lower-case с подчёркиваниями. Такой видел только в C. Почему верблюды самые популярные, я вообще не понимаю. Может быть это влияние английской традиции типографики, для меня дико выглядит разделение слов большими буквами, хотя и приходится прогибаться под изменчивый мир. Но будь моя воля, я бы писал именно_так.

P>А меня подчеркивания в качестве пробелов раздражают и мешают читать CamelCase или lowerCamelCase читается гораздо легче. Дело привычки.

Ну у меня точно не дело привычки, т.к. я всю жизнь пишу на Java.
Re[3]: про нэйминг
От: vsb Казахстан  
Дата: 12.05.18 09:39
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

vsb>>Мой идеальный naming convention это нормальные слова с пробелами. Но поддержку такого я видел только в SQL и, как ни странно, в BAT-файлах


ЕМ>В большинстве ЯП идентификатор — это термин, используемый в рамках утверждения (оператора). Если делать ЯП, приближенный к естественному языку, то и элементы утверждения логично разделять именно пробелом. Во всех науках и технологиях всегда старались использовать однословные термины, чтобы не возникало разночтений при изменении падежей, использовании управляющих/управляемых конструкций и т.п.


Но элементы утверждения в ЯП разделяются не пробелами, а операторами. Пробел как значащий символ я помню только в хаскеле (ну видимо и в других похожих функциональных языках). По-мне текст вида
let person name = person.get name
if (person name.starts with("a")) {
  person.set name("b")
}

читается нормально. Хотя в идеале нужна подсветка IDE.

ЕМ>Кстати, в BAT/CMD пробелы допустимы только в именах переменных, которые ограничиваются спецсимволами. В именах меток, по понятной причине, их использовать не получится.


Да, можно было бы и получше спроектировать, скажем ограничивать метку двоеточиями. Ну да ладно, кто там на этих bat-никах чего пишет, скорее так, курьёзный факт.


vsb>>Почему верблюды самые популярные, я вообще не понимаю.


ЕМ>Они достигают сразу двух целей — разделяют слова и экономят пространство на разделителях.


Чего там это пространство экономить в 21-м веке. Хоть 55-дюймовые мониторы покупай. Хотя мне и 27 хватает на 140 символов в ширину, что позволяет обходиться почти без переносов.
Re[4]: про нэйминг
От: pagid Россия  
Дата: 12.05.18 11:18
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>IDE это может улучшить. Например скрыть кавычки (или сделать их блёклыми) и выделить идентификатор прямоугольником, чтобы подчеркнуть его логически-единую сущность.

В том частном случае она умееет выделять подобный идентификатор цветом, несиотря на свою примитивность, в этом случае даже кавычки не так мешают, но все равно не прижилось. А вот выделять в тексте программы что-то кроме ошибок не цветом букв, а цветом фона — прямоугольником, это совершенно дурной способ.

vsb>Почему это? Посмотри на Java, там полно длинных идентификаторов. Мне наоборот всяческие сокращения мешают лёгкому восприятию (кроме общепринятых). Хотя, конечно, есть и культура юникса с его strncpy, хз.

То и другое в топку. Но это конечно не призыв скрестить мечи обсуждая эту проблему. Хотя если strncpy в конкретной программе часто используемая функция, ну вместе с остальными strstr, то вариант нормальный.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[5]: про нэйминг
От: vsb Казахстан  
Дата: 12.05.18 11:31
Оценка:
Здравствуйте, pagid, Вы писали:

vsb>>IDE это может улучшить. Например скрыть кавычки (или сделать их блёклыми) и выделить идентификатор прямоугольником, чтобы подчеркнуть его логически-единую сущность.

P>В том частном случае она умееет выделять подобный идентификатор цветом, несиотря на свою примитивность, в этом случае даже кавычки не так мешают, но все равно не прижилось. А вот выделять в тексте программы что-то кроме ошибок не цветом букв, а цветом фона — прямоугольником, это совершенно дурной способ.

Ну у меня Idea выделяет и мне это очень нравится. Пожалуй это одно из немногих улучшений текста, которые я не отключаю.

vsb>>Почему это? Посмотри на Java, там полно длинных идентификаторов. Мне наоборот всяческие сокращения мешают лёгкому восприятию (кроме общепринятых). Хотя, конечно, есть и культура юникса с его strncpy, хз.

P>То и другое в топку. Но это конечно не призыв скрестить мечи обсуждая эту проблему. Хотя если strncpy в конкретной программе часто используемая функция, ну вместе с остальными strstr, то вариант нормальный.

Хз, я использую многословные идентификаторы и мне это нравится. Если длина меньше 30 символов, проблем вообще нет. Если больше — смотря как часто используется.
Re: про нэйминг
От: Ops Россия  
Дата: 12.05.18 17:02
Оценка:
Здравствуйте, MadHuman, Вы писали:

MH>а как у вас?...


Пишукаксловавнемецкомязыке
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re[4]: про нэйминг
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 13.05.18 01:56
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>Но элементы утверждения в ЯП разделяются не пробелами, а операторами.


Вы хотели сказать "операциями" (operator)? Утверждение — это оператор (statement).

По-мне текст вида
vsb>
vsb>let person name = person.get name
vsb>if (person name.starts with("a")) {
vsb>  person.set name("b")
vsb>}
vsb>

vsb>читается нормально. Хотя в идеале нужна подсветка IDE.

С подсветкой он еще худо-бедно читается, а без подсветки — только после предварительной настройки мозга. Если пробел может быть частью идентификатора, то "let person name" — идентификатор, а не ключевое слово "let", за которым следует идентификатор "person name". Мозг, привыкший читать тексты на естественных языках, автоматически делит "person name.starts with" на "person", "name.starts" и "with" (точка, за которой не следует пробела, не воспринимается, как конец предложения).

vsb>Да, можно было бы и получше спроектировать, скажем ограничивать метку двоеточиями.


Тогда уж ввести какой-нибудь универсальный ограничитель, вроде обратных кавычек.

vsb>Ну да ладно, кто там на этих bat-никах чего пишет, скорее так, курьёзный факт.


В них еще и синтаксиса единого никогда не было, вот случайно и получилось.

vsb>>>Почему верблюды самые популярные, я вообще не понимаю.


vsb>Чего там это пространство экономить в 21-м веке.


В 21-м веке у людей выросли дополнительные пальцы для набора дополнительных символов?

vsb>Хоть 55-дюймовые мониторы покупай.


И вози их с собой, ввиду возрастающей мобильности? Ну и банально неудобно вертеть головой там, где в иных условиях достаточно движения глаз.

vsb>Хотя мне и 27 хватает на 140 символов в ширину, что позволяет обходиться почти без переносов.


Это на любителя. Большинству некомфортны длинные строки, за ними труднее следить глазами. "Портретный" формат книг устоялся не просто так.
Re: про нэйминг
От: Cyberax Марс  
Дата: 13.05.18 11:23
Оценка:
Здравствуйте, MadHuman, Вы писали:

MH>Если б у вас был выбор что выбрать, или если сложилось впечатление о преимуществах одной перед другой, или то что напрягает, welcome поделиться ...

Объективно наиболее правильная конвенция в Java. Она позволяет сразу отличать имена методов (camelCase) от классов (CamelCase) и более компактна, чем имена_с_подёркиваниями.
Sapienti sat!
Re: про нэйминг
От: Lepsik Индия figvam.ca
Дата: 17.05.18 16:57
Оценка:
MH>а как у вас?...

GetCamelCase for methods

m_sCamelCase, s_i64CamelCase, l_wzCamelCase, g_ptrCamelCase for values

CamelCase for propertis
Re: про нэйминг
От: Vladek Россия Github
Дата: 08.06.18 07:00
Оценка:
Здравствуйте, MadHuman, Вы писали:

MH>Приветствую, коллеги.


MH>Есть разные naming convention. В разные времена довелось поработать с разными технологиями имеющие разные конвенции (C#, javascript, sql, html, css итп). Если к какой-то привыкнуть, то вообщем нормально, но когда переключаешся между средами с разными конвенциями, то несколько подняпрягает... и непонятны преимущества их друг перед другом.


Меня больше напрягает отсутствие единого стиля или документации к нему в команде. Если все неукоснительно придерживаются единого стиля, то код выглядит хорошо, даже если стиль какой-то вычурный. Вообще, предпочитаю, чтобы стиль был таким же как в базовых библиотеках (рантайме) используемого языка.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.