реклама на сайте
подробности

 
 
> Хороший стиль кодирования на С/С++, и готовые программы конвертации в него.
Serhiy_UA
сообщение Sep 30 2015, 08:07
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 721
Регистрация: 23-10-08
Из: next to Odessa
Пользователь №: 41 112



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

Вопрос такой, есть ли программы конвертации, которые автоматизированным способом упорядочивают коды в соответствии с рекомендациями хорошего стиля.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
AlexandrY
сообщение Sep 30 2015, 08:51
Сообщение #2


Ally
******

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



Цитата(Serhiy_UA @ Sep 30 2015, 11:07) *
Вопрос такой, есть ли программы конвертации, которые автоматизированным способом упорядочивают коды в соответствии с рекомендациями хорошего стиля.


Вот чего не надо делать в этом деле так это "автоматизировать"
Это усложняет потом сравнение с предыдущими и последующими версиями.

Go to the top of the page
 
+Quote Post
Serhiy_UA
сообщение Sep 30 2015, 10:46
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 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...
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Sep 30 2015, 13:17
Сообщение #4


Ally
******

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



Цитата(Serhiy_UA @ Sep 30 2015, 13:46) *
к AlexandrY
Автоматизация меня бы устроила... Дайте только программу...


Что-то я не пойму в чем вы пишите исходники. В Notepad-е?
Форматирование в любой стиль поддерживают и Eclipse и Visual Studio и SlickEdit и туча других IDE.
Никаких дополнительных приблуд для этого качать не надо.

Самый мощный по количеству фичей стилизатор содержит наверно SlickEdit.
Там есть и макро язык в котором по одному нажатию можно все дерево исходников стилизовать.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Sep 30 2015, 15:08
Сообщение #5


Гуру
******

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



QUOTE (AlexandrY @ Sep 30 2015, 16:17) *
Форматирование в любой стиль поддерживают и Eclipse и Visual Studio и SlickEdit и туча других IDE.
Никаких дополнительных приблуд для этого качать не надо.

Специализированные "приблуды" существуют по причине того, что делают свое дело лучше, чем IDE в которых все все понемногу делают. Не говоря о том, что их работа не зависит от того в какой IDE сейчас кто-то что-то делает. Посему лично у меня к редактору подключены внешние.



--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Sep 30 2015, 19:26
Сообщение #6


Ally
******

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



Цитата(zltigo @ Sep 30 2015, 18:08) *
Специализированные "приблуды" существуют по причине того, что делают свое дело лучше, чем IDE в которых все все понемногу делают. Не говоря о том, что их работа не зависит от того в какой IDE сейчас кто-то что-то делает. Посему лично у меня к редактору подключены внешние.


Хм, я стилизую каждые пару строчек, почти в непрерывном режиме.
Непривычный стиль сбивает внимание.
Рефакторинг опять же требует повторной стилизации.
Здесь как раз стилизация облегчает сравнение версий.

А вот стилизация сторонних исходников, особенно в больших проектах затрудняет сравнение версий.
Хотя бы тупо потому что скажем все файлы будут фиксироваться как содержащие изменения после стилизации, а файлов может быть сотни. В одной GUI их больше 500.
И вот такому горе стилизатору придется в случае проблем проверять вручную сотни файлов.
А если оставить их в покое, то реальные отличия версий находятся на порядок быстрее.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Oct 1 2015, 06:21
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 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
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Oct 1 2015, 07:16
Сообщение #8


Ally
******

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



Цитата(zltigo @ Oct 1 2015, 09:21) *
Повторяю:
1) Прогнать можно и вновь пришедшие, можно хранить экземпляр до стилизации.
2) В ручную сравнивать совершенно незачем, ибо есть мощные, умные, понимающие язык сравнилки подддерживающие пакетную обработку. Буквально секундное дело и сравнить и синхронизировать и подредактировать все средствами сравнилки.


Что-то не понял.
Ситуация:
стилизовали пару сотен файлов. Сравниватель файлов покажет что они по датам разные и по содержимому.
Тогда вынуждены для каждой пары файлов открывать сравниватель и убедится что они просто отличаются стилем.

Хотите сказать, что есть сравниватели которые гарантированно после любого стилизатора могут сказать что сорсы абсолютно одинаковые и юзеру даже не надо их открывать?
Что-то сомневаюсь, эти сравниватели должны очень хорошо тогда парсить C-и на уровне проекта и быть очень медленными.

Go to the top of the page
 
+Quote Post
zltigo
сообщение Oct 1 2015, 09:02
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 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
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Oct 1 2015, 10:53
Сообщение #10


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 отступы вообще являются элементами синтаксиса и все его любят. biggrin.gif
Go to the top of the page
 
+Quote Post
zltigo
сообщение Oct 1 2015, 12:08
Сообщение #11


Гуру
******

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



QUOTE (AlexandrY @ Oct 1 2015, 13:53) *
Я скачал вашу программу по ссылке. Хоть вы и даете почему-то ссылки только на коммерческие сомнительные продукты.

Коммерческие - да. Полагаю, что стабильность и развитие продукта много важнее его бесплатности. На счет "сомнительности" - ну не порите чушь. Я пользують несколько десятилетий добротными, развиваемыми и поддерживаемыми продуктими. Это уже много стоит.
QUOTE
Она делает не намного больше чем умеет Total Commander.

Да ну sm.gif
QUOTE
Стилизованные файлы отмечает как отличающиеся.

Стадо слонов-то и не приметили. Там РАЗНЫЕ уровни отличия и разные механизмы сравнения. Отличие, например, в форматировании, комментариях... отмечаются, как несущественные.
Хотите - можете игнорировать, можете сразу синхронизировать.
QUOTE
а тупо щелкая сотни раз мышью открывать все файлы и проверять их содержимое.

Ну если в голове только микроскопом гвозди забивать, то тогда да sad.gif. А по нормальному сравнение всего дерева директорий, оценка по отметке и расцветке имени файла уровня различий, рассматривание
только тех, кто имеет существенные с точки зрения заданного языка различия (текст и навигация по нему тоже размечена в зависимоти от существенности ). В процессе рассатривания синхронизация различий, как индивидуально, так и скопом.
QUOTE
Почему же, именно мой use-case вы и привели в пример.

Я приводил этот пример еще ДО ВАС, как вариант тупого лобового решения. Вополне работает. Претензий нет. Только можно и удобннее. Не гоаоря уже о том, что всякое правило НУЖДАЕТСЯ в исключениях. Я, например, привык места временных решений, или подлежащие дополнительному анализу размещать с нарушением общестильных отступов - достаточно хорошо заметны, но прогонять их через форматтер для последующего "упрощения" сравнения не хорошо будет.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Oct 1 2015, 12:52
Сообщение #12


Ally
******

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



Цитата(zltigo @ Oct 1 2015, 15:08) *
Коммерческие - да. Полагаю, что стабильность и развитие продукта много важнее его бесплатности. На счет "сомнительности" - ну не порите чушь. Я пользують несколько десятилетий добротными, развиваемыми и поддерживаемыми продуктими. Это уже много стоит.

Стадо слонов-то и не приметили. Там РАЗНЫЕ уровни отличия и разные механизмы сравнения. Отличие, например, в форматировании, комментариях... отмечаются, как несущественные.
Хотите - можете игнорировать, можете сразу синхронизировать.


Вот ссылка из мануала вашей программы
Прикрепленное изображение


Как видно программа может сказать только то что файлы отличаются.
Никакого парсинга c-и файлов не делает и отличить существенные и несущественные изменения не может.
Щелкаю Ignore Unimportant Differences и ничего не происходит, прога не считает пробелы неважным отличием.
Прикрепленное изображение

Go to the top of the page
 
+Quote Post
zltigo
сообщение Oct 1 2015, 14:05
Сообщение #13


Гуру
******

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



QUOTE (AlexandrY @ Oct 1 2015, 15:52) *
Вот ссылка из мануала вашей программы
....
Никакого парсинга c-и файлов не делает

Спасибо. У меня есть сама программа и я с ней работаю лет двадцать с гаком. И менно ТАК, КАК ОПИСАЛ c ПАРСИНГОМ Cи не только Си файлов. Так-что обсуждать Ваши явные непонимания того, как с ней работать в режиме Rules-based comparsion, как использовать готовые правила под языки и создавать свои, я просто не буду.

QUOTE (jcxz @ Oct 1 2015, 16:09) *
Ха! Я в таком случае использую спец. маркер - тройной слеш /// (для си, для асм - ;;;)

Тоже вариант. Только если в чужих исходниках так отмечать, то мешаются любители использовать разделители ////////////////////////////////////////////////////////////////////////////////
sad.gif

Отступы удобны тем, что у меня в редакторе они меняются для любого существующего блока отступов на хоткее. Очень быстро менять.
более существенные перманентые пометки отмечаются тоже на хоткее таким:
//zlt[
.....
//]zlt
Надо будет и снятие такой пометки сделать на автомате, но лет 20 забываю это написать wink.gif


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Oct 1 2015, 17:21
Сообщение #14


Ally
******

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



Цитата(zltigo @ Oct 1 2015, 17:05) *
Спасибо. У меня есть сама программа и я с ней работаю лет двадцать с гаком. И менно ТАК, КАК ОПИСАЛ c ПАРСИНГОМ Cи не только Си файлов. Так-что обсуждать Ваши явные непонимания того, как с ней работать в режиме Rules-based comparsion, как использовать готовые правила под языки и создавать свои, я просто не буду.


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

Или покажите какую грамматику написали вы чтобы эта прога уверенно распознавала разные стили как один и тот же текст.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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
||||- - zltigo   QUOTE (AlexandrY @ Oct 1 2015, 20:21) Или...   Oct 1 2015, 19:55
|||- - jcxz   Цитата(zltigo @ Oct 1 2015, 18:08) Я, нап...   Oct 1 2015, 13:09
|||- - 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
|||- - Dog Pawlowa   Цитата(jcxz @ Oct 1 2015, 16:09) "Об...   Oct 1 2015, 15:32
|||- - jcxz   Цитата(Dog Pawlowa @ Oct 1 2015, 21:32) я...   Oct 2 2015, 04:02
|||- - AlexandrY   Цитата(jcxz @ Oct 2 2015, 07:02) Это очен...   Oct 2 2015, 05:58
|||- - zltigo   QUOTE (AlexandrY @ Oct 2 2015, 08:58) А в...   Oct 2 2015, 08:19
|||- - 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


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th June 2025 - 17:58
Рейтинг@Mail.ru


Страница сгенерированна за 0.01648 секунд с 7
ELECTRONIX ©2004-2016