среда, 16 июля 2008 г.

Красавец код

На днях был у коллег в гостях. Они купили стороннюю компоненту за 59 долларов для своего софта. Это ужос! Кашамр! Нет, всё работает, как надо, но код оформлен пренебрежительно плохо, с использованием самобытного урюпинского стиля форматирования. Выставлять такую «красоту» на всеобщее обозрение, а тем более продавать это за деньги … Нет слов, одни буквы.

Итак, для тех, кто ещё не знаком с правилами оформления public кода для Delphi, может прочесть эту статью. Кому некогда – просто скачайте Delfor или тулзу от протестантов на худой конец. И перед тем, как выдать код на свет божий, пропустите его через эти декастомизаторы, чтобы избавить от персонального или корпоративного «дизайна». Планета будет вам благодарна.

PS. Почему бы не встроить стандартный форматтер в среду? И что у нас есть из интегрированного? GExperts вроде не умеют форматировать, в MMX форматирование вызывает только смех, Lextutio я снес после очередного закидона...

7 комментариев:

Dmitry Gordienko комментирует...

'GExperts вроде не умеют…'
умеют
http://www.dummzeuch.de/news2006/english.html#a2006-10-22
experimental Version of GExperts with Code Formatter

Mikhail Mokhov комментирует...

Ну да, точно. У меня не экспериментальная стоит, поэтому alt+f12 не работает =) А за основу взят DelFor.

Mikhail Mokhov комментирует...

Читатели шлют ссылки на красиво оформленный вариант статьи А. Ткаченко на "Королевстве Дельфи":
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=802
Почему только reserved words не болдом? Непорядок.

Mikhail Mokhov комментирует...

Да, и ещё хотел добавить, что перед выходом Тибурона обновился Роадмап. В 2009 году мы наконец-то увидим встроенный форматтер =)

Geo комментирует...

Читаю вот такие перлы, как "<...> с использованием самобытного урюпинского стиля форматирования" и не знаю, веселиться или огорчаться.

Ну, скажите, кто откуда Вы взяли, что именно стиль от Borland -- лучший стандарт?! Борланд предлагает исходники VCL, но не стиль оформления кода. Мой "самобытный урюпинский" стиль сформировался еще до появления первой версии Delphi. Что же мне его теперь мненять? А завтра перейду на какое-нибудь другое средство, в котором исходники написаны с другим стилем. Снова прикажете менять? А на фига?

Если автор так хорошо знает утилиты, выполняющие автоматическое форматирование текста, то я вообще не понимаю причин его недовольства. Прогони этой утилитой тот код, который тебе не нравится, и все в порядке. Зачем шкум поднимать? Мне хуже: для моего стиля утилиты нет (а может быть и есть, только я ее не знаю). Так что в особо сложных случаях вынужден руками форматировать борландовский код, чтобы он стал для меня более читабельным. И, в общем-то, особых сложностей у меня это не вызывает.

Mikhail Mokhov комментирует...

Уважаемый Geo, в Вашем коменте очень много эмоций! Попытайтесь успокоиться и перечитать заметку заново. В ней речь идет о том коде, который программисты выставляют на всеобщее обозрение. Если Вы привыкли писать "урюпинским стилем" - это ваше законное право, но публикуя код нужно проявлять уважение к сообществу (именно из-за неуважения и был поднят, как Вы говорите, «шум») и привести оформление в соответствии с отраслевыми стандартами (для чего нужны стандарты, надеюсь, объяснять не надо). Конечно, Борланд нигде не регистрировал свой стиль форматирования кода, но его рекомендации лежат на официальном сайте. Также есть рекомендации от группы Jedi, а в сети можно встретить множество корпоративных документов, расширяющих эти стандарты под свои потребности. Такой документ обычно называется «Соглашением о кодировании» и несет в себе очень большой смысл, а именно – сократить расходы на коммуникационные нужды внутри команды разработчиков, которые, как известно, катастрофически возрастают с ростом числа сотрудников. И пока Вы занимаетесь форматированием кода под себя, другие разработчики, которым этого делать не нужно, спокойно пишут свои программы или занимаются другими делами.

Анонимный комментирует...

насчет встроенного форматера, тот же JediCodeFormat можно собрать ввиде эксперта, который встраивается в IDE