|
Хороший стиль кодирования на С/С++, и готовые программы конвертации в него. |
|
|
|
 |
Ответов
|
Sep 30 2015, 10:46
|
Знающий
   
Группа: Свой
Сообщений: 721
Регистрация: 23-10-08
Из: next to Odessa
Пользователь №: 41 112

|
к smalcom и adnega Сейчас применяю Dev-C++ (версия 4.9.9.2) под WinXP, а там возможности скромные по сравнению с другими, т.е. сама не форматирует. Пока хотел бы конвертор тоже какой-то скромный, где входной файл мой, а выходной уже стильный...
к CrimsonPig Загрузил Download Artistic Style 2.05.1 for Windows (441.3 kB), получил c:\AStyle\bin\AStyle.exe, но программа не запускается, оказывается она под Линукс, где у меня не большого опыта.... Хотя пишут for Windows... А стиль мой немного подпорчен опытом программирования МК на С.
к AlexandrY Автоматизация меня бы устроила... Дайте только программу...
к Canis Dirus Скачал GNU Indent и еще попробую ее под FreeBSD, но мне удобней бы по WinXP...
|
|
|
|
|
Sep 30 2015, 13:17
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Цитата(Serhiy_UA @ Sep 30 2015, 13:46)  к AlexandrY Автоматизация меня бы устроила... Дайте только программу... Что-то я не пойму в чем вы пишите исходники. В Notepad-е? Форматирование в любой стиль поддерживают и Eclipse и Visual Studio и SlickEdit и туча других IDE. Никаких дополнительных приблуд для этого качать не надо. Самый мощный по количеству фичей стилизатор содержит наверно SlickEdit. Там есть и макро язык в котором по одному нажатию можно все дерево исходников стилизовать.
|
|
|
|
|
Sep 30 2015, 19:26
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Цитата(zltigo @ Sep 30 2015, 18:08)  Специализированные "приблуды" существуют по причине того, что делают свое дело лучше, чем IDE в которых все все понемногу делают. Не говоря о том, что их работа не зависит от того в какой IDE сейчас кто-то что-то делает. Посему лично у меня к редактору подключены внешние. Хм, я стилизую каждые пару строчек, почти в непрерывном режиме. Непривычный стиль сбивает внимание. Рефакторинг опять же требует повторной стилизации. Здесь как раз стилизация облегчает сравнение версий. А вот стилизация сторонних исходников, особенно в больших проектах затрудняет сравнение версий. Хотя бы тупо потому что скажем все файлы будут фиксироваться как содержащие изменения после стилизации, а файлов может быть сотни. В одной GUI их больше 500. И вот такому горе стилизатору придется в случае проблем проверять вручную сотни файлов. А если оставить их в покое, то реальные отличия версий находятся на порядок быстрее.
|
|
|
|
|
Oct 1 2015, 06:21
|

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

|
QUOTE (AlexandrY @ Sep 30 2015, 22:26)  Хм, я стилизую каждые пару строчек, почти в непрерывном режиме. Непривычный стиль сбивает внимание. Аналогично. QUOTE Хотя бы тупо потому что скажем все файлы будут фиксироваться как содержащие изменения после стилизации, а файлов может быть сотни. Это будет зависить от того, как строите свою работу. QUOTE И вот такому горе стилизатору придется в случае проблем проверять вручную сотни файлов. А если оставить их в покое, то реальные отличия версий находятся на порядок быстрее. Повторяю: 1) Прогнать можно и вновь пришедшие, можно хранить экземпляр до стилизации. 2) В ручную сравнивать совершенно незачем, ибо есть мощные, умные, понимающие язык сравнилки подддерживающие пакетную обработку. Буквально секундное дело и сравнить и синхронизировать и подредактировать все средствами сравнилки.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Oct 1 2015, 07:16
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Цитата(zltigo @ Oct 1 2015, 09:21)  Повторяю: 1) Прогнать можно и вновь пришедшие, можно хранить экземпляр до стилизации. 2) В ручную сравнивать совершенно незачем, ибо есть мощные, умные, понимающие язык сравнилки подддерживающие пакетную обработку. Буквально секундное дело и сравнить и синхронизировать и подредактировать все средствами сравнилки. Что-то не понял. Ситуация: стилизовали пару сотен файлов. Сравниватель файлов покажет что они по датам разные и по содержимому. Тогда вынуждены для каждой пары файлов открывать сравниватель и убедится что они просто отличаются стилем. Хотите сказать, что есть сравниватели которые гарантированно после любого стилизатора могут сказать что сорсы абсолютно одинаковые и юзеру даже не надо их открывать? Что-то сомневаюсь, эти сравниватели должны очень хорошо тогда парсить C-и на уровне проекта и быть очень медленными.
|
|
|
|
|
Oct 1 2015, 09:02
|

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

|
QUOTE (AlexandrY @ Oct 1 2015, 10:16)  Хотите сказать, что есть сравниватели которые гарантированно после любого стилизатора могут сказать что сорсы абсолютно одинаковые и юзеру даже не надо их открывать? 1)И в ТРНТИЙ раз - при прогоне обеих исходников через стилизатор даже самый тупой сравнитель сможет их сравнить на соответствие. QUOTE Что-то сомневаюсь, эти сравниватели должны очень хорошо тогда парсить C-и на уровне проекта и быть очень медленными. 2) Да, хорошие, в том числе и тот, который называл, парсят на уровне не только Си, но и других языков и НЕ МЕДЛЕННЫЕ никак не медленнее компилятора. Поддерживают сравнение и содержимого директорй. Сравнивают не только исходники, но и PDF (а чего новенького в новой редакции документа появилось).
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Oct 1 2015, 10:53
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Цитата(zltigo @ Oct 1 2015, 12:02)  1)И в ТРНТИЙ раз - при прогоне обеих исходников через стилизатор даже самый тупой сравнитель сможет их сравнить на соответствие.
2) Да, хорошие, в том числе и тот, который называл, парсят на уровне не только Си, но и других языков и НЕ МЕДЛЕННЫЕ никак не медленнее компилятора. Поддерживают сравнение и содержимого директорй. Сравнивают не только исходники, но и PDF (а чего новенького в новой редакции документа появилось). Похоже вы не поняли проблемы. Я скачал вашу программу по ссылке. Хоть вы и даете почему-то ссылки только на коммерческие сомнительные продукты. Она делает не намного больше чем умеет Total Commander. Стилизованные файлы отмечает как отличающиеся. Т.е. по сути ничем в описанной мной ситуации не помогает. Приходится вручную! , не силой мысли, не телепатически, а тупо щелкая сотни раз мышью открывать все файлы и проверять их содержимое. Цитата(CrimsonPig @ Oct 1 2015, 13:27)  Ну, реальная жизнь вашими use-case не ограничивается.. Почему же, именно мой use-case вы и привели в пример. Пишете как попало, а потом приводите к единому стилю. И для того это делается чтобы потом было проще сравнивать. Вон в Python отступы вообще являются элементами синтаксиса и все его любят.
|
|
|
|
|
Oct 1 2015, 12:08
|

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

|
QUOTE (AlexandrY @ Oct 1 2015, 13:53)  Я скачал вашу программу по ссылке. Хоть вы и даете почему-то ссылки только на коммерческие сомнительные продукты. Коммерческие - да. Полагаю, что стабильность и развитие продукта много важнее его бесплатности. На счет "сомнительности" - ну не порите чушь. Я пользують несколько десятилетий добротными, развиваемыми и поддерживаемыми продуктими. Это уже много стоит. QUOTE Она делает не намного больше чем умеет Total Commander. Да ну  QUOTE Стилизованные файлы отмечает как отличающиеся. Стадо слонов-то и не приметили. Там РАЗНЫЕ уровни отличия и разные механизмы сравнения. Отличие, например, в форматировании, комментариях... отмечаются, как несущественные. Хотите - можете игнорировать, можете сразу синхронизировать. QUOTE а тупо щелкая сотни раз мышью открывать все файлы и проверять их содержимое. Ну если в голове только микроскопом гвозди забивать, то тогда да  . А по нормальному сравнение всего дерева директорий, оценка по отметке и расцветке имени файла уровня различий, рассматривание только тех, кто имеет существенные с точки зрения заданного языка различия (текст и навигация по нему тоже размечена в зависимоти от существенности ). В процессе рассатривания синхронизация различий, как индивидуально, так и скопом. QUOTE Почему же, именно мой use-case вы и привели в пример. Я приводил этот пример еще ДО ВАС, как вариант тупого лобового решения. Вополне работает. Претензий нет. Только можно и удобннее. Не гоаоря уже о том, что всякое правило НУЖДАЕТСЯ в исключениях. Я, например, привык места временных решений, или подлежащие дополнительному анализу размещать с нарушением общестильных отступов - достаточно хорошо заметны, но прогонять их через форматтер для последующего "упрощения" сравнения не хорошо будет.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Oct 1 2015, 13:09
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(zltigo @ Oct 1 2015, 18:08)  Я, например, привык места временных решений, или подлежащие дополнительному анализу размещать с нарушением общестильных отступов - достаточно хорошо заметны, но прогонять их через форматтер для последующего "упрощения" сравнения не хорошо будет. Ха! Я в таком случае использую спец. маркер - тройной слеш /// (для си, для асм - ;;;) Для меня он означает "Обрати внимание! Здесь есть временная вставка!" Если вставка однострочная - в конце строки, для многострочной отделяю пустыми строками блок от остального текста и в начале этого блока ставлю /// За годы уже натренировался зрительно выделять /// из массы кода
|
|
|
|
|
Oct 1 2015, 15:32
|
Гуру
     
Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823

|
Цитата(jcxz @ Oct 1 2015, 16:09)  "Обрати внимание! Здесь есть временная вставка!" я перешел на условную компиляцию с внятно написанными условиями, чтобы не нужно было просматривать десятки файлов в поисках временных вставок #ifdef UART0_USED_FOR_RS485 .... #endif Все условия собираются в одном файле. Тупиковые условия постепенно исключаются, чтобы не загромождали код.
--------------------
Уходя, оставьте свет...
|
|
|
|
|
Oct 2 2015, 04:02
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(Dog Pawlowa @ Oct 1 2015, 21:32)  я перешел на условную компиляцию с внятно написанными условиями, чтобы не нужно было просматривать десятки файлов в поисках временных вставок #ifdef UART0_USED_FOR_RS485 .... #endif Это очень громоздко. Когда нужно вставить что-то типа "i=0;", и к тому-же если в разных местах исходника вставить с десяток таких строк, то гораздо проще в конце каждой поставить /// чтобы потом не забыть их удалить. Цитата(zltigo @ Oct 1 2015, 20:05)  Тоже вариант. Только если в чужих исходниках так отмечать, то мешаются любители использовать разделители ////////////////////////////////////////////////////////////////////////////////  Чужие стараюсь не править (и не использовать), а если приходится (изредка) заменяю такие строки на что-то другое, типа //------------------
|
|
|
|
|
Oct 2 2015, 05:58
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Цитата(jcxz @ Oct 2 2015, 07:02)  Это очень громоздко. Когда нужно вставить что-то типа "i=0;", и к тому-же если в разных местах исходника вставить с десяток таких строк, то гораздо проще в конце каждой поставить /// чтобы потом не забыть их удалить.
Чужие стараюсь не править (и не использовать), а если приходится (изредка) заменяю такие строки на что-то другое, типа //------------------ А в курсе что в Eclipse автоматом обрабатываются все комменты типа // FIXME: или //TODO: или xxx и аккуратно выводятся в табличку tasks с содержащимся в коменте текстом и указанием на файл где это находится Цитата(zltigo @ Oct 1 2015, 22:55)  Не можете описать, можете привычно воспользоватся и подключением перед сравненим внешнего конвертора. Это еще что за приблуда - внешний конвертер? Как то все предельно заморочено. Да и Beyond Compare я уже снес.
|
|
|
|
|
Oct 2 2015, 08:19
|

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

|
QUOTE (AlexandrY @ Oct 2 2015, 08:58)  А в курсе что в Eclipse.. К сожалению, мне об Eclipse достаточно знания того, что он из РЕАЛЬНО подающего в моих глазах большие надежды редактора, быстро превратился в неуправлемое глюкало растаскиваемое по разным веткам  . QUOTE А в курсе что в Eclipse автоматом обрабатываются все комменты типа // FIXME: или //TODO: или xxx и аккуратно выводятся в табличку tasks с содержащимся в коменте текстом и указанием на файл где это находится Такие простейшие действия реализуются на скриптах любого приличного редактора. А за, буквально, минуту даже на готовом механизме тагов, или фильтрации текстов, такое к древному, как дерьмо мамонта, Multiedit прикручу. Но TODO веду отдельно. Чем хотели удивить? Все уже придумано до создателей монстрообразных IDE. QUOTE (ae_ @ Oct 2 2015, 09:49)  там такое выделение называется to-do comment. В любой хоть сколь-нибудь вменяемой оболочке всевозможных выделений чего угодно можно добавить море.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
Сообщений в этой теме
Serhiy_UA Хороший стиль кодирования на С/С++ Sep 30 2015, 08:07 smalcom обычно это уже есть в средах разработки и большинс... Sep 30 2015, 08:14 adnega Например, eclipse позволяет определить свой собств... Sep 30 2015, 08:18 CrimsonPig Цитата(Serhiy_UA @ Sep 30 2015, 09:07) Пр... Sep 30 2015, 08:19  CrimsonPig Цитата(Serhiy_UA @ Sep 30 2015, 11:46) За... Sep 30 2015, 10:49   Serhiy_UA Цитата(CrimsonPig @ Sep 30 2015, 13:49) Х... Sep 30 2015, 10:59    CrimsonPig Цитата(Serhiy_UA @ Sep 30 2015, 11:59) Ещ... Sep 30 2015, 11:20          AlexandrY Цитата(zltigo @ Oct 1 2015, 15:08) Коммер... Oct 1 2015, 12:52           zltigo QUOTE (AlexandrY @ Oct 1 2015, 15:52) Вот... Oct 1 2015, 14:05            AlexandrY Цитата(zltigo @ Oct 1 2015, 17:05) Спасиб... Oct 1 2015, 17:21             zltigo QUOTE (AlexandrY @ Oct 1 2015, 20:21) Или... Oct 1 2015, 19:55           ViKo Цитата(jcxz @ Oct 1 2015, 16:09) Ха! ... Oct 1 2015, 15:08            zltigo QUOTE (ViKo @ Oct 1 2015, 18:08) Я задума... Oct 1 2015, 15:37            ae_ Цитата(ViKo @ Oct 2 2015, 00:08) Если буд... Oct 2 2015, 06:49               AlexandrY Цитата(zltigo @ Oct 2 2015, 11:19) Такие ... Oct 2 2015, 08:55                zltigo QUOTE (AlexandrY @ Oct 2 2015, 11:55) А щ... Oct 2 2015, 09:21     CrimsonPig Цитата(AlexandrY @ Sep 30 2015, 20:26) Хм... Oct 1 2015, 10:27 zltigo QUOTE (AlexandrY @ Sep 30 2015, 11:51) Во... Sep 30 2015, 12:45  Serhiy_UA Цитата(zltigo @ Sep 30 2015, 15:45) ...Да... Oct 1 2015, 05:34 Canis Dirus Цитата(Serhiy_UA @ Sep 30 2015, 13:07) Во... Sep 30 2015, 09:45 inventor Цитата(Canis Dirus @ Sep 30 2015, 12:45) ... Sep 30 2015, 15:05 arhiv6 Ещё есть uncrustify. Подобный софт по-русски назыв... Sep 30 2015, 13:13 Lagman Если используется notepad++, то для него есть плаг... Sep 30 2015, 19:12 dxp Ещё забыли достаточно мощную шутку Understand for ... Oct 1 2015, 06:08
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|