|
|
  |
Библиотеки для STM32 |
|
|
|
Apr 3 2017, 10:34
|

Профессионал
    
Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045

|
Цитата(Kabdim @ Apr 3 2017, 14:41)  +1 за гугльстайл. Самый вменяемый стайлгайд на данный момент. Цитата string table_name; // OK - uses underscore. string tablename; // OK - all lowercase.
string tableName; // Bad - mixed case. где уж самый вменяемый? tableName - читабельно. table_name - читабельно. tablename - не читабельно. tableName - такой стиль часто встречал. Например Qt так написан. Например переменная bool QGuiApplication::quitOnLastWindowClosed, в гуглсайле будет так quitonlastwindowclosed - это плохо читаемо. имхо.
|
|
|
|
|
Apr 3 2017, 12:58
|
Знающий
   
Группа: Свой
Сообщений: 558
Регистрация: 26-11-14
Из: Зеленоград
Пользователь №: 83 842

|
Цитата(juvf @ Apr 3 2017, 13:34)  tablename - не читабельно Как по мне так вполне читабельно, особенно если это не просто два слова, а постоянно используемые в такой связке два слова. Рекомендаций называть переменную предложением, а потом записывать её имя без подчеркиваний там нет. А по поводу вашего примера: bool QGuiApplication::quitOnLastWindowClosed - не переменная, а property. В гугльстайле вы модификаторы property можете называть как переменную, но это не требуется. Т.е. когда имя property - предложение, очевидно её удобней называть Camal case'ом, что стайл вполне позволяет.
|
|
|
|
|
Apr 3 2017, 13:44
|

Профессионал
    
Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831

|
Цитата(Kabdim @ Apr 3 2017, 15:58)  Как по мне так вполне читабельно, особенно если это не просто два слова, а постоянно используемые в такой связке два слова. Полагаю, что если жить только с гуглекодом и изучать/пользовать/читать только гуглепроеты с утра до вечера, то постепенно привыкаешь и подсаживаешься Однако, если пройдет какое-то время (перерыв), то придется заново вкуривать в этот код, потратив некоторое время на повторное привыкание. Существуют книги, написанные так, что читаются на одном дыхании - как бежишь под ровной дороге, но попадаются такие, что "спотыкаешься" на каждом слове, словно бежишь через непролазный лес. Гуглестиль, имхо, больше относится ко второму, нежели к первому )))
--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
|
|
|
|
|
Apr 3 2017, 13:51
|

Местный
  
Группа: Свой
Сообщений: 243
Регистрация: 5-10-06
Из: Зеленоград
Пользователь №: 21 007

|
К чему холивар, Kabdim? Главное не инструмент (коих много), а цель - достичь переносимости и поддерживаемости кода в команде. Если тебе инструмент не подходит - ты берёшь другой, или делаешь удобный, под себя. Цитата А вот придумывать своё в 17 году - это жесть, ей богу. В чём именно жесть? Скомпилировать несколько трудов, взять из них лучшее, вычеркнуть неудачное и лишнее, скомпоновать - это здорово! Между прочим, разработчики крупных проектов не стесняются внедрять свои собственные правила, поищите JPL C Coding Standard, CERN C++ Coding Standard ГуглоСтайл как по мне, не совсем торт. Аналогично как и КьютСтайл. Выше уже высказались.
|
|
|
|
|
Apr 3 2017, 15:51
|
Знающий
   
Группа: Свой
Сообщений: 558
Регистрация: 26-11-14
Из: Зеленоград
Пользователь №: 83 842

|
Цитата(Forger @ Apr 3 2017, 18:44)  Затраты на переучивание? Не смешите ))) Если программер не умеет читать чужой код, то его бесполезно переучивать Выходит codestyle вообще не нужен? Цитата(Forger @ Apr 3 2017, 18:44)  Дело тут в другом - крайне затратно вынуждать опытного программиста писать и отлаживать свой код в стиле чужого кривого кода, к тому же далеко не каждый профи на это подпишется. Не понял, вы другими словами повторил то что я сказал, но при этом возразили.
|
|
|
|
|
Apr 3 2017, 15:58
|

Профессионал
    
Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831

|
Цитата(Kabdim @ Apr 3 2017, 18:51)  Выходит codestyle вообще не нужен? Конечно, дисциплина в коде и документации нужна! Но только в том случае, если она ориентирована под максимальное кол-во народу, а не под уникальных мега-ботанов, которые сходу способны читать такие названия правильно: Код quitonlastwindowclosed Цитата Не понял, вы другими словами повторил то что я сказал, но при этом возразили.  Повторюсь: "крайне затратно вынуждать опытного программиста писать и отлаживать свой код в стиле чужого кривого кода". Под словом "кривой" я подразумеваю код, реализованный в "кривом" стиле, который выдуман "с потолка", в стиле "изобретаем велосипед".
--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
|
|
|
|
|
Apr 3 2017, 16:00
|
Знающий
   
Группа: Свой
Сообщений: 558
Регистрация: 26-11-14
Из: Зеленоград
Пользователь №: 83 842

|
Цитата(Forger @ Apr 3 2017, 18:58)  Нужен, если он создан под максимальное кол-во народу, а не под уникальных мега-ботанов  Согласен, уже говорил что множество публичных стандартов позволяет выбирать на свой вкус. Цитата(Forger @ Apr 3 2017, 18:58)  Повторюсь: "крайне затратно вынуждать опытного программиста писать и отлаживать свой код в стиле чужого кривого кода". Под словом "кривой" я подразумеваю код, реализованный в "кривом" стиле, который выдуман "с потолка", в стиле "изобретаем велосипед". Чем публичней и распространенней стандарт тем меньше он кривой? И наоборот чем уже сфера пользователей тем он как минимум шероховатый.
|
|
|
|
|
Apr 3 2017, 16:04
|

Профессионал
    
Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831

|
Цитата(Kabdim @ Apr 3 2017, 19:00)  Чем публичней и распространенней стандарт тем меньше он кривой? И наоборот чем уже сфера пользователей тем он как минимум шероховатый. Все так, это - эволюция (извиняюсь за громкое слово). Кривой стиль и соответственно говно-код не способны эволюционировать нормально. Но нужно отличать коммерциолизированный стандарт (скажем, гугльстайл) и обычный - "бесплатный", который можно почерпнуть из книжек. Бесплатный эволюционирует эффективнее, он гибче и потому жизнеспособнее, нежели платный () Но это все же пустая дискуссия, все одно каждый останется при своем мнении и при своем стиле
--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
|
|
|
|
|
Apr 4 2017, 05:31
|

Профессионал
    
Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045

|
Цитата(Kabdim @ Apr 3 2017, 17:58)  А по поводу вашего примера: bool QGuiApplication::quitOnLastWindowClosed - не переменная, а property. А проперти - это не переменная? в с++ вообще нет проперти. проперти - это уже смысловое значение переменной или константы. Код Q_PROPERTY([b]bool quitOnLastWindowClosed[/b] READ quitOnLastWindowClosed WRITE setQuitOnLastWindowClosed) вижу тип переменной bool, имя переменной quitOnLastWindowClosed. может в с++ появилось что-то новое, появились проперти.... заглянул в ассистант, глянул что такое PROPERTY Код Q_PROPERTY(type name..... ан нет... тип и имя переменной. без разницы в каком стеле написано.... главное чтобы всем было понятно.... конечно в чужом стиле - непривычно, и лучше вырабатать стиль максимально приближенный к самым распространённым. моя шпаргалка и тут книжки выкладывали - приближены. что касается гуглстайла.... не разу не встречал его. камел кэйс используется во многих стилях. я глянул по диагонали гуглстайл.... нашел в гугл стайле то, что явно будет ухудшать чтение кода, а именно переменные quitonlastwindowclosed. есть там ещё, что, что будет мешать... не то к чему я не привык, а что будет мешать. я не привык к именам quit_on_last_window_closed, но это дела вкуса и привычки. такая переменная нормально читается. а вот quitonlastwindowclosed - это мешает. и не только мне не понравился гугл стайл. ps в довершении.... в QtCreator, и позже в Eclipse, есть автодополнение по камел кейсу. назвал переменную quitOnLastWindowClosed, в коде набираешь qol (или qOL) автодополнение предлагает все переменные начинающиеся на q и имеющие в имени большие буквы O и L. в итоге будет предложены все переменные и методы... с вероятностью в 100% будет предложена переменная quitOnLastWindowClosed (или достаточно будет набрать qO). у QString набираешь tss - автодополнение делает toStdString. Набираешь gp - выдает getPoint и getPosition. tn - выскочит tableName Т.е. камел кэйс дает подсказку для автодополнения. Это очень удобно в написании.
|
|
|
|
|
Apr 4 2017, 07:22
|
Знающий
   
Группа: Свой
Сообщений: 558
Регистрация: 26-11-14
Из: Зеленоград
Пользователь №: 83 842

|
Цитата(Forger @ Apr 3 2017, 19:04)  Но это все же пустая дискуссия, все одно каждый останется при своем мнении и при своем стиле  Мнение, то у нас общее - стиль нужен, а вот вкусы и правда различаются.  Цитата(juvf @ Apr 4 2017, 08:31)  А проперти - это не переменная? Нет, у проперти может вообще не быть представления в виде закрытой переменной. Цитата(juvf @ Apr 4 2017, 08:31)  в с++ вообще нет проперти. А в QT из которого выдран пример - есть. Цитата(juvf @ Apr 4 2017, 08:31)  без разницы в каком стеле написано.... главное чтобы всем было понятно.... Тут я с вами безусловно согласен. Цитата(juvf @ Apr 4 2017, 08:31)  и не только мне не понравился гугл стайл. ps в довершении.... в QtCreator, и позже в Eclipse, есть автодополнение по камел кейсу. назвал переменную quitOnLastWindowClosed, в коде набираешь qol (или qOL) автодополнение предлагает все переменные начинающиеся на q и имеющие в имени большие буквы O и L. в итоге будет предложены все переменные и методы... с вероятностью в 100% будет предложена переменная quitOnLastWindowClosed (или достаточно будет набрать qO). у QString набираешь tss - автодополнение делает toStdString. Набираешь gp - выдает getPoint и getPosition. tn - выскочит tableName Т.е. камел кэйс дает подсказку для автодополнения. Это очень удобно в написании. Тут тоже частично соглашусь, но это всё же особенности конкретного автодополнения, он мог бы точно так поступать и с разделением подчеркиваниями.
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|