Проверка исходных текстов перед компиляцией
От: softilium Россия http://www.pristroy.com
Дата: 10.02.05 07:12
Оценка:
При коллективной работе над проектами, особенно большими, часто стоит задача проверки и просмотра кода разработчиков перед сборкой. Обычно этим занимается менеджер проекта, часто он же и производит билды для тестирования и для заказчика.

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

Посмотреть можно здесь: http://www.softilium.com/clearcode/index.htm, там сверху прямая ссылка на скачивание.

А теперь вопросы:

1. Любая конструктивная критика.

2. В дистрибутив включены примеры правил для Delphi и то, только общие правила. Как Вы считаете, каким образом лучше организовать обмен правилами, и сбор правил от людей, пишущих на других языках. Понятно, что человек, участвующий в написании правил, поощряется скидкой или бесплатным ключем. Но как это сделать УДОБНЕЕ?

18.02.05 12:19: Перенесено модератором из 'Управление проектами' — Merle
Re: Проверка исходных текстов перед компиляцией
От: byur Россия http://yurybuluy.blogspot.com/
Дата: 10.02.05 07:32
Оценка:
Здравствуйте, softilium, Вы писали:

S>При коллективной работе над проектами, особенно большими, часто стоит задача проверки и просмотра кода разработчиков перед сборкой. Обычно этим занимается менеджер проекта, часто он же и производит билды для тестирования и для заказчика.


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

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


Я думаю народ бы более охотно откликнулся, если бы это был freeware

S>Посмотреть можно здесь: http://www.softilium.com/clearcode/index.htm, там сверху прямая ссылка на скачивание.


S>А теперь вопросы:

S>1. Любая конструктивная критика.

Насколько я знаю, теперь такая возможность включена во многие среды разработки ...
Re: Проверка исходных текстов перед компиляцией
От: Plague Россия  
Дата: 10.02.05 07:35
Оценка:
S>Посмотреть можно здесь: http://www.softilium.com/clearcode/index.htm, там сверху прямая ссылка на скачивание.

А куда все делось ???
Re[2]: Проверка исходных текстов перед компиляцией
От: softilium Россия http://www.pristroy.com
Дата: 10.02.05 07:48
Оценка:
Здравствуйте, byur, Вы писали:

B>Да ... то что программеров припахивают к выявлению требований к системе от заказчика, и тестированию -- это практикуется ... а вот чтобы мереджер проекта сам билды делал ... наверное проект небольшой и он (проект) один, раз у него есть на это время ...


Проект большой, но у меня он один сейчас. Я в нем выполняю роль "играющего тренера". Знаю еще по крайней мере несколько команд, которые работают по сходным схемам.

B>Я думаю народ бы более охотно откликнулся, если бы это был freeware


Тогда это будет пионерская поделка, которую автор будет поддерживать по остаточному принципу. Нужен тул такого уровня?

B>Насколько я знаю, теперь такая возможность включена во многие среды разработки ...


Да, только правила проверки зачастую зависят от проекта. Среды разработки обячно включают правила проверки типа warnings/hints, сделанные "на сдачу" от синтаксического разбора текста. Это все же несколько другое.
Re[2]: Проверка исходных текстов перед компиляцией
От: softilium Россия http://www.pristroy.com
Дата: 10.02.05 07:49
Оценка:
Здравствуйте, Plague, Вы писали:

S>>Посмотреть можно здесь: http://www.softilium.com/clearcode/index.htm, там сверху прямая ссылка на скачивание.


P>А куда все делось ???



какие-то проблемы у хостера. Решаю...
Re[2]: Проверка исходных текстов перед компиляцией
От: softilium Россия http://www.pristroy.com
Дата: 10.02.05 07:51
Оценка:
Здравствуйте, Plague, Вы писали:

P>А куда все делось ???


Все исправлено.
Re: Проверка исходных текстов перед компиляцией
От: Слава Шевцов Россия http://www.rentaguru.ru/
Дата: 10.02.05 08:22
Оценка:
Здравствуйте, softilium, Вы писали:

S>1. Любая конструктивная критика.


А какие ещё существуют аналогичные инструменты?
----------------------------------------------------------------------------------------------
Rentaguru
Re[2]: Проверка исходных текстов перед компиляцией
От: softilium Россия http://www.pristroy.com
Дата: 10.02.05 08:30
Оценка:
Здравствуйте, Слава Шевцов, Вы писали:

СШ>А какие ещё существуют аналогичные инструменты?


При обсуждении темы в SWRUS-PROGRAMMING всплыла информация об утилите FxCop, она проверяет .NET assemblies на соответствие гайдлайнам. Насколько я понял, это где-то близко, но не аналог.

Поиском по google можно найти с десяток подобных утилит, но они как правило достаточно дороги и занимаются именно синтаксическим анализом, с помощью которого находятся потенциальные дыры. Здесь совсем другой принцип, все гораздо проще.
Re[3]: Проверка исходных текстов перед компиляцией
От: Слава Шевцов Россия http://www.rentaguru.ru/
Дата: 10.02.05 08:47
Оценка:
Здравствуйте, softilium, Вы писали:

СШ>>А какие ещё существуют аналогичные инструменты?


S>При обсуждении темы в SWRUS-PROGRAMMING всплыла информация об утилите FxCop, она проверяет .NET assemblies на соответствие гайдлайнам. Насколько я понял, это где-то близко, но не аналог.


S>Поиском по google можно найти с десяток подобных утилит,


То есть уже наработанный опыт не был учтён при написании обсуждаемой утилиты?
----------------------------------------------------------------------------------------------
Rentaguru
Re[2]: Проверка исходных текстов перед компиляцией
От: Alik Украина  
Дата: 10.02.05 08:57
Оценка: 5 (1)
Здравствуйте, Слава Шевцов, Вы писали:

СШ>Здравствуйте, softilium, Вы писали:


S>>1. Любая конструктивная критика.


СШ>А какие ещё существуют аналогичные инструменты?


Сходу вспоминается pc-lint (Gimpel) и CodeWizard (Parasoft). Есть еще "C++Test", но это уже более широкого профиля софта (включает в себя тестирование).

Пытался внедрить в проект — особого успеха не имела и пользы имхо не принесла.
С уважением. Алик.
Re[4]: Проверка исходных текстов перед компиляцией
От: softilium Россия http://www.pristroy.com
Дата: 10.02.05 09:00
Оценка:
Здравствуйте, Слава Шевцов, Вы писали:

S>>Поиском по google можно найти с десяток подобных утилит,


СШ>То есть уже наработанный опыт не был учтён при написании обсуждаемой утилиты?


Нечего там перенимать, если честно. Интерфейсные решения для подобных утилит должны быть максимально простыми и удобными — это единственный критерий, по-моему. Вот удастся мне упростить интерфейс без ущерба функциональности еще в 2 раза — отлично. Можете меня поправить.

А о перенимании алгоритмов работы, как Вы сами понимаете, не может идти речи, это уже не совсем честно по отношению к авторам.
Re[3]: Проверка исходных текстов перед компиляцией
От: softilium Россия http://www.pristroy.com
Дата: 10.02.05 09:04
Оценка:
Здравствуйте, Alik, Вы писали:

A>Сходу вспоминается pc-lint (Gimpel) и CodeWizard (Parasoft). Есть еще "C++Test", но это уже более широкого профиля софта (включает в себя тестирование).


A>Пытался внедрить в проект — особого успеха не имела и пользы имхо не принесла.


Я считаю, что подобные утилиты должны комплектоваться хорошим набором готовых правил для проверки, которые будут демонстрировать их реальную пользу "с ходу". А если человек на такую проверку кода подсядет — он потом и сам сколько угодно критериев для проверки и оценки кода выработает. У меня около 40 активно испольуемых правил в своем проекте, которые, поверьте, сильно облегчают жизнь при коллективной работе.

Вот на собирание коллекции правил (для разных языков) и направлены мои усилия, собственно.
Re[5]: Проверка исходных текстов перед компиляцией
От: Слава Шевцов Россия http://www.rentaguru.ru/
Дата: 10.02.05 09:11
Оценка:
Здравствуйте, softilium, Вы писали:

S>>>Поиском по google можно найти с десяток подобных утилит,

СШ>>То есть уже наработанный опыт не был учтён при написании обсуждаемой утилиты?
S>Нечего там перенимать, если честно.

Если честно, там должна быть вешь, которая недоступна шароварщику: опыт контроля кода проектов разной степени сложности. Этот опыт копится годами и десятилетиями. И он не может быть преобретён рассуждениями о программе и её пользователях.

S>А о перенимании алгоритмов работы, как Вы сами понимаете, не может идти речи, это уже не совсем честно по отношению к авторам.


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

Кроме того, поддержка одного из форматов привела бы к тому, что программа обрела некий набор правил форматирования, которые уже давно используются. Например, не нужно было бы каждому разработчику OpenSource с нуля вбивать GNU-стандарт на форматирование кода.
----------------------------------------------------------------------------------------------
Rentaguru
Re[3]: Проверка исходных текстов перед компиляцией
От: Слава Шевцов Россия http://www.rentaguru.ru/
Дата: 10.02.05 09:26
Оценка:
Здравствуйте, Alik, Вы писали:

S>>>1. Любая конструктивная критика.

СШ>>А какие ещё существуют аналогичные инструменты?
A>Сходу вспоминается pc-lint (Gimpel) и CodeWizard (Parasoft). Есть еще "C++Test", но это уже более широкого профиля софта (включает в себя тестирование).

Спасибо.

A>Пытался внедрить в проект — особого успеха не имела и пользы имхо не принесла.


А в чём причина? Вроде такие утилиты должны приводить к более качественному коду и минимизации опасных участков. Или этого не происходит?
----------------------------------------------------------------------------------------------
Rentaguru
Re[6]: Проверка исходных текстов перед компиляцией
От: softilium Россия http://www.pristroy.com
Дата: 10.02.05 09:26
Оценка:
Здравствуйте, Слава Шевцов, Вы писали:

СШ>Если честно, там должна быть вешь, которая недоступна шароварщику: опыт контроля кода проектов разной степени сложности. Этот опыт копится годами и десятилетиями. И он не может быть преобретён рассуждениями о программе и её пользователях.


Для подпадания под такое определение нужно быть pure шароварщиком — никогда не работать в командах разработчиков, никогда не работать с другими, кроме своих собственных, исходников и пр. Я например, подавляющую часть рабочего времени работаю с чужим кодом в течение последних 5-ти лет. Утилитку эту писал изначально только для себя и последние как минимум пол-года ни одна сборка моего проекта без проверки не проходит. Плюс к этому, имею собственный шароварный проект. Ничего, что я не подпадаю под Ваше определение?

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


No comments. Не вобрал. Маленькое замечание: даже при том, что алгоримты не патентуются — это все равно некорректно по отношению к их авторам.

СШ>Кроме того, поддержка одного из форматов привела бы к тому, что программа обрела некий набор правил форматирования, которые уже давно используются. Например, не нужно было бы каждому разработчику OpenSource с нуля вбивать GNU-стандарт на форматирование кода.


Полностью с Вами согласен. Не могли бы Вы привести примеры утилит, которые могут служить образцом для подражания? Я буду их изучить и подстроиться под их стиль, если это будет разумно.
Re[4]: Проверка исходных текстов перед компиляцией
От: bkat  
Дата: 10.02.05 09:53
Оценка:
Здравствуйте, softilium, Вы писали:

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


A>>Сходу вспоминается pc-lint (Gimpel) и CodeWizard (Parasoft). Есть еще "C++Test", но это уже более широкого профиля софта (включает в себя тестирование).


A>>Пытался внедрить в проект — особого успеха не имела и пользы имхо не принесла.


S>Я считаю, что подобные утилиты должны комплектоваться хорошим набором готовых правил для проверки, которые будут демонстрировать их реальную пользу "с ходу". А если человек на такую проверку кода подсядет — он потом и сам сколько угодно критериев для проверки и оценки кода выработает. У меня около 40 активно испольуемых правил в своем проекте, которые, поверьте, сильно облегчают жизнь при коллективной работе.


Можно привести пример?
Re[5]: Проверка исходных текстов перед компиляцией
От: softilium Россия http://www.pristroy.com
Дата: 10.02.05 12:51
Оценка: 1 (1)
Здравствуйте, bkat, Вы писали:


S>>Я считаю, что подобные утилиты должны комплектоваться хорошим набором готовых правил для проверки, которые будут демонстрировать их реальную пользу "с ходу". А если человек на такую проверку кода подсядет — он потом и сам сколько угодно критериев для проверки и оценки кода выработает. У меня около 40 активно испольуемых правил в своем проекте, которые, поверьте, сильно облегчают жизнь при коллективной работе.


B>Можно привести пример?


Вот кусочек из моего проекта, там все ясно:

http://www.softilium.com/clearcode/example/ClearCode.ini
Re[2]: Проверка исходных текстов перед компиляцией
От: Denis_TST Россия www.transsys.ru
Дата: 10.02.05 17:53
Оценка:
Здравствуйте, Слава Шевцов, Вы писали:

СШ>Здравствуйте, softilium, Вы писали:


S>>1. Любая конструктивная критика.


СШ>А какие ещё существуют аналогичные инструменты?

Для Java :
в IDEA есть режим Insect Code — около 50+ проверок
(например использование конкретного класса вместо интерфейса)
причем это все интегрированно с редактром,
при вводе такие места показываются как варнинги или ошибки (настраивается)

Кроме того есть инструменты для исправления этих проблем например
можно автоматом заменить все проверки вида
if (!string.equals(""))


на
if (!"".equals(string))




еще в Together'e есть метрики, но я с ними не разбирался...
... << RSDN@Home 1.1.4 beta 4 rev. 302>>
Re: Проверка исходных текстов перед компиляцией
От: mihhon  
Дата: 11.02.05 09:28
Оценка:
пример на java:
проверка — checkstyle http://checkstyle.sourceforge.net/
автоматическое форматирование — jalopy http://jalopy.sourceforge.net/
и то и другое встраивается в процедуры автоматического билда (типа maven maven.apache.org) и генерятся отчёты — кто и что и как написал, например

всё это — продукты, которые широко используются в огромной куче проектов. посмотри идеи, заложенные в них
Re[2]: Проверка исходных текстов перед компиляцией
От: softilium Россия http://www.pristroy.com
Дата: 11.02.05 09:31
Оценка:
Здравствуйте, mihhon, Вы писали:

M>проверка — checkstyle http://checkstyle.sourceforge.net/

M>автоматическое форматирование — jalopy http://jalopy.sourceforge.net/
M>и то и другое встраивается в процедуры автоматического билда (типа maven maven.apache.org) и генерятся отчёты — кто и что и как написал, например

M>всё это — продукты, которые широко используются в огромной куче проектов. посмотри идеи, заложенные в них


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