|
|
  |
Библиотеки для STM32 |
|
|
|
Apr 4 2017, 08:54
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Forger @ Apr 3 2017, 19:04)  Но это все же пустая дискуссия, все одно каждый останется при своем мнении и при своем стиле  Ну отчего же "останется". Лично у меня за годы стиль менялся под влияним писанного и читанного. При этом догмы в общем нет. Есть обшие тяготения, например, имена функций все явно больше маленькими буквами без разделителей, если это не группа функций. Переменные напротив все с подчеркиваними, поскольку очень люблю структуры, а для структур разделители явяются естественными. Соответственно и просто переменные смотрятся на таком фоне гармоничнее с подчеркиваниями. Заглавные буквы когда то использовал в именах струкур, но перестал за в общем то ненадобностью. Константы и константные выражения, само собой заглавными. Макросы когда то давно тоже именовал заглавными, но перестал за ненадобностью. Не терплю органически "венгерского" стиля именования. В остальном в общем всеяден. Только трепертно отношусь к фоматировнию - любой чужой исходник с которым предстоит работать перегоняется для начала в удобный для себя формат.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Apr 4 2017, 08:56
|
Знающий
   
Группа: Свой
Сообщений: 558
Регистрация: 26-11-14
Из: Зеленоград
Пользователь №: 83 842

|
Цитата(juvf @ Apr 4 2017, 11:25)  я говорю что слитно не удобно Кмк эта возможность писать слитно слишком слишком демонизируется. Этот вариант написания один из возможных, т.е. программист может выбрать его там где он будет уместен. Например isalpha, в качестве локальной переменной - почему бы и нет. А в тех местах где это не уместно предлагаются подчеркивания.
|
|
|
|
|
Apr 4 2017, 09:20
|

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

|
Цитата(zltigo @ Apr 4 2017, 11:54)  При этом догмы в общем нет. Есть обшие тяготения, например, имена функций все явно больше маленькими буквами без разделителей, если это не группа функций. Переменные напротив все с подчеркиваними, поскольку очень люблю структуры, а для структур разделители явяются естественными. Соответственно и просто переменные смотрятся на таком фоне гармоничнее с подчеркиваниями. Заглавные буквы когда то использовал в именах струкур, но перестал за в общем то ненадобностью. Константы и константные выражения, само собой заглавными. Макросы когда то давно тоже именовал заглавными, но перестал за ненадобностью. А я в свое время отказался от такого кол-ва правил и упростил все до минимума, как в книжке Мартина "Чистый код" - не люблю кучу лишних правил, их тогда приходится всегда держать в голове. А особенно это напрягает при переписывании кода - скажем, структура переросла в класс, глобальная переменная стала локальной, поле класса стало локальной переменной, константа перестала быть таковой и наоборот. Короче, прошел через это, поплевался и удалил кучу лишних правил. После этого все стало значительно проще. Читаемость кода не пострадала, а даже наоборот - считаю лишним "кодировать" в названии объекта его принадлежность к определенной "рассе", другие нынче времена  Насчет макросов тут я не буду спорить, скорее всего сам уйду на именование макросов, как обычных методов классов (функций), т. к. любой макрос может стать функцией и наоборот. А вот замены "магических" чисел сознательно делаю большими буквами, пока что мне кажется, что это улучшает читаемость кода. Впрочем, время покажет ))) Я тоже "эволюционирую" ))) Цитата Не терплю органически "венгерского" стиля именования. В остальном в общем всеяден. Аналогично! До тошнотиков не выношу, когда в название переменной с какого-то перепугу вносят ее "рассовую" принадлежность Абсолютно убежден, что оооочень значительно ухудшает читаемость кода - приходится при изменении типа этой переменной ВЕЗДЕ менять ее название - "мартышкин" труд, иначе не назовешь )) Цитата Только трепертно отношусь к фоматировнию - любой чужой исходник с которым предстоит работать перегоняется для начала в удобный для себя формат. Абсолютно солидарен! Чистым кодом пользоваться гораздо приятнее )))
--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
|
|
|
|
|
Apr 4 2017, 10:28
|

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

|
Цитата(Kabdim @ Apr 4 2017, 11:56)  Кмк эта возможность писать слитно слишком слишком демонизируется. Этот вариант написания один из возможных, т.е. программист может выбрать его там где он будет уместен. Например isalpha, в качестве локальной переменной - почему бы и нет. А потому что в английском язые нет слова "isalpha", а есть два слова Is или Alpha, поэтому логичнее изменить на "isAlpha", is_alpha или IsAlpha. Английский Язык Предусматривает Написание Каждого Слова Предложения Заглавными Буквами, а русский - нет. Поэтому логично предположить, что и все правила английского языка распространяются на код, на котором он написан. Цитата А в тех местах где это не уместно предлагаются подчеркивания. Я раньше применял такое правил, но отказался - глаз спотыкается об эти подчеркивания, а пользы я не нашел. К тому же как только переменная меняет области видимости (локальная - глобальная - поле класса), ее ВЕЗДЕ приходится переименовывать. Какой в этом смысл? Зачем в название переменной вносить область ее видимости? Мне кажется более логичным создать ее экземпляр непосредственно перед тем местом, где она используется (в стеке). В С++ такое возмоно, но не в С. Например: Код for (int index = 0; ....) { ... } Если в коде опять будет цикл, можно создать переменную с точно таким же именем, но это будет совсем ДРУГАЯ переменная, что заставляет узко локализовать область использования временных (локальных) переменных, а не раскидывать их по всему коду функции, особенно, если она вся не влазит на экран. Хотя я стараюсь минимизировать число локальных переменных и главное - дробить огромные функции. Цитата(Aaron @ Apr 4 2017, 12:30)  очевидно же - у класса есть конструкторы/деструкторы и private/protected области видимости =) В структуре все поля, если не указано public/private/protected, являются по-умолчанию public, а в классе - private. Это - единственное отличие между структурой и классом. В остальном они отличаются лишь названием  Цитата(jcxz @ Apr 4 2017, 12:23)  Это как это?  Структура у меня используется лишь как структурированное хранилище данных (часто упакованы с соотв. атрибутами типа packed), т.е. ТОЛЬКО ПОЛЯ, а класс - уже что-умеет делать сам, т.е. у его есть еще и МЕТОДЫ. Я делю их между собой именно так, хотя прекрасно знаю, чем они отличаются на самом деле (см. выше). Структур (struct) в коде у меня очень мало и почти все они имеют крайне локализованный характер, т. е. обладают очень узкой областью видимости. Насколько это возможно. На самом деле, я немного слукавил, приведя в пример возможность структуры стать классом )) Обычно, это происходит не так явно - просто, резко сужается область видимости структуры и она попадает лишь внутрь соотв. класса. Небольшое дополнение насчет макросов и замен "магических" чисел. Поскольку в коде у меня нигде нет глобальных объектов, ни одного, то это создает некоторые сложности с отказом от моего правила - макросов и замен "магических" чисел - БОЛЬШИМИ_БУКВАМИ_С_ПОДЧЕРКИВАЕНИЕМ. Т. е. в моем случае такие "дефайны" имеют исключительно глобальный смысл и каждый объектный модуль при желании может их использовать. Таким образом получается, что я как бы намекаю (сам себе, разумеется), что речь идет не об объектах, а лишь заменах (дефайнах), которые при компиляции (после препроцессора) станую обычными числами и выражениями. Поэтому сильно сомневаюсь, что макросы и замены буду именовать иначе, чем так, как сейчас ))
--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
|
|
|
|
|
Apr 4 2017, 11:25
|
Знающий
   
Группа: Свой
Сообщений: 558
Регистрация: 26-11-14
Из: Зеленоград
Пользователь №: 83 842

|
Цитата(Forger @ Apr 4 2017, 13:28)  В С++ такое возмоно, но не в С. Например: Код for (int index = 0; ....) { ... } Вы про C99 не слышали? Цитата(Forger @ Apr 4 2017, 13:28)  можно создать переменную с точно таким же именем Вы уверены что это можно назвать хорошим стилем?  Цитата(Forger @ Apr 4 2017, 13:28)  Структура у меня используется лишь как структурированное хранилище данных (часто упакованы с соотв. атрибутами типа packed), т.е. ТОЛЬКО ПОЛЯ, Это называется plain old data (POD)
|
|
|
|
|
Apr 4 2017, 13:05
|

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

|
Цитата(Kabdim @ Apr 4 2017, 14:25)  Вы про C99 не слышали? Обратите внимание в какой теме и в каком разделе мы все это пишем ... C-исходник в подавляющем числом компиляторов под МК не поддерживает С99, поэтому мы не можем где ни попади объявлять локальные переменные. И, честно говоря, не вижу смысла строчить в С или С99, когда есть плюсы. Но это - по-ходу уже другая тема ))) Цитата Вы уверены что это можно назвать хорошим стилем?  Если цикл занимает всего пару строк, а не 10 страниц кода, то никакого криминала в этом не вижу )) Само тело цикла удобно использовать для ограничения зоны видимости его итератора, главное - давать осмысленные имена, чтобы они не вступали в конфликт с именами других объектов, фигурирующих в теле цикла. Цитата Это называется plain old data (POD) Да, это именно оно )) По сути, лишь для этого я и использую слово struct, так сразу видно в коде, о чем идет речь. А все остальные сущности - class. Даже для примитивных, т. е. не имеющих своих методов (но в будущем, возможно, будут). Цитата(juvf @ Apr 4 2017, 15:33)  рефакторинг ещё ни кто не отменял. Автоматизация "мартышкиного" труда еще не отменяет самого факт такого труда ))) К тому же даже в данный момент далеко не все среды (тоже обратите на тему и раздел где мы сидим) поддерживают такие вещи по ВСЕМУ проекту. Речь в данном случае не про внешние редакторы, а целиком про среды проектирования (Keil, Eclipse, Crossworks и др).
Сообщение отредактировал Forger - Apr 4 2017, 13:26
--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
|
|
|
|
|
Apr 5 2017, 04:01
|
Частый гость
 
Группа: Участник
Сообщений: 121
Регистрация: 8-11-05
Пользователь №: 10 577

|
Цитата(Forger @ Apr 4 2017, 18:05)  Автоматизация "мартышкиного" труда еще не отменяет самого факт такого труда ))) К тому же даже в данный момент далеко не все среды (тоже обратите на тему и раздел где мы сидим) поддерживают такие вещи по ВСЕМУ проекту. Речь в данном случае не про внешние редакторы, а целиком про среды проектирования (Keil, Eclipse, Crossworks и др). В Eclipse это Alt + Shift + R с древних времен и да ПО ВСЕМУ проекту...
|
|
|
|
|
Apr 5 2017, 04:13
|

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

|
Цитата(Forger @ Apr 4 2017, 18:05)  тоже обратите на тему и раздел где мы сидим так то я ТС ))) и тема не про стиль кода, а про библиотеки для стм32 )) Цитата Речь в данном случае не про внешние редакторы, а целиком про среды проектирования (Keil, Eclipse, Crossworks и др). в Eclipse этo Alt+Shift+R. На базе эклипса много сред (кокос, CCS, NIOS-IDE). Вообще эклипс - рулит. Остальные среды .... но это уже новый холивар ))) Да даже в IAR-e, со своим редактором, застрявшим в 90-х годах, можно сделать поиск с заменой в пару кликов. Ни какого мартышкиного труда )) ps что ещё вкусного в эклипсе - автоматическое форматирование кода. берёшь чужой код... там фигурные скобки не так как у меня стоят, отступы не те, пробелы не так, выравнивание schitch/case/break по другому. жамкаешь ctrl+shift+F - весь файл перефарматируется в мой стиль (только естественно стиль должен быть настроен и/или подключен. я один раз стиль настроил и всегда его подключаю, во всех эклипсонаследовательных ИДЭ)
|
|
|
|
|
Apr 5 2017, 06:13
|

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

|
Цитата(kostyan @ Apr 5 2017, 07:01)  В Eclipse это Alt + Shift + R с древних времен и да ПО ВСЕМУ проекту... "пук в лужу" с моей стороны - не сижу в эклипсе (пора исправлять это ...), привел его в пример фактически наугад )) Цитата(juvf @ Apr 5 2017, 07:13)  Ни какого мартышкиного труда )) ..... что ещё вкусного в эклипсе - автоматическое форматирование кода. берёшь чужой код... Под мартышкиным трудом понимаю переделывание своего кода, а не чужого.
--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|