Nik Okuntseff
Канада
405 сообщений
#9 лет назад
Вопрос к опытным программистам Дельфи.

При работе в команде, какую конвенцию / стандарт кодирования используете и почему?

Годится ли например эта http://www.econos.de/delphi/cs.html ?
Nik Okuntseff
Канада
405 сообщений
#9 лет назад
Извините, но я не понял.

Неужели тут нет серьёзных кодеров, кто работает в команде?

Неужели никто не использую какую-то стандартную конвенцию?

Ведь это азбука кодирования, один из элементов, чтобы писать минимально приемлемый, аккуратный код.

Всё действительно так запущено и каждый плугатарит, на что горазд?
Евгений Б.
38 лет, Россия
5330 сообщений
#9 лет назад
А не больно ли пофиг, если код потом через фильтр прогоняется + комментарии есть всегда
или охота научится сразу на чистовую?
ну еще заготовки используются для мелочей.. правда комбинации клавиш геморройно запоминать
Nik Okuntseff
Канада
405 сообщений
#9 лет назад
Видите те ли, какая ситуация.

Конвенция конечно не нужна, когда вы латаете дыру в сарае.

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

Иначе каждого прогера несёт в необъятные просторы, и предела этому нет.
Николай М.
35 лет, Украина
1895 сообщений
#9 лет назад


В прочем все зависит от средств для общего кодинга, а не от его правильности, я напр. использую cnPack, SVN, и т.д. что помогает делать разработку как в одиночке так и в команде, первый делает эти логические блоки кода более нагляднимы, второй решает проблему конфликта версий, все уже давно придумано....

почему вы решили сделать пост на форуме, сделали же проект... и даже не ответили на него... ай.. как не хорошо с вашей стороны...
Nik Okuntseff
Канада
405 сообщений
#9 лет назад
Цитата ("MMM_Corp"):
почему вы решили сделать пост на форуме, сделали же проект... и даже не ответили на него... ай.. как не хорошо с вашей стороны...

Николай, если вы имели в виду почему я не ответил на вашу заявку, то причина проста - насторожила вот эта фраза:

"Интересная задача, в принципе переписывать прописные истины наверное не стоит..."

Тут как раз надо прописать явно прописные истины, или указать на документ откуда их брать. В этом основной смысл конвенции - дать людям некую систему, чтобы не было сомнений. Использование других инструментов типа SVN и прочего - это совсем другая опера.

Не секрет что даже матёрые кодеры считают не царским занятием комментировать свой (часто нетривиальный) код, а это надо пресекать в зародыше.
Денис Ш.
43 года, Украина
7132 сообщения
#9 лет назад
Цитата ("wrc"):
Неужели тут нет серьёзных кодеров, кто работает в команде?


А вам не приходило в голову, что кто-то не пишет на Делфи? Или что в форуме присутствуют единицы из фрилансеров биржи?

Если вы настолько "серьезны", то сами должны понимать, что нет "правильной" конвенции. Любая конвенция правильна, если ее придерживаются все участники проекта. Да, и настроить современную ИДЕ под какой-либо стандарт не составит труда.

И если вы настолько "серьезны", то должны сами установить стандарт в своей команде и требовать ее соблюдения, а ваш пост похож на попытку завязать очередной холивар. Лично я кодирую в разных конвенциях, что зависит от проекта и команды. Есть те, которые устанавливаю я, а есть те, что устанавливают мне - все зависит от проекта.

Хотите конструктивных обсуждений сходите на любой специализированный форум кодеров, тимлидов и ПМов - там вам и расскажут правду жизни (коя у каждого своя)

Забыл добавить: конвенция это одна из не самых больших составляющих успешного проекта - есть гораздо серьезней вещи, на которые стоит обращать внимания.
Евгений Б.
38 лет, Россия
5330 сообщений
#9 лет назад
Цитата ("shapod"):
А вам не приходило в голову, что кто-то не пишет на Делфи? Или что в форуме присутствуют единицы из фрилансеров биржи?

с фига ли не программирует...??

Цитата ("wrc"):
Конвенция конечно не нужна, когда вы латаете дыру в сарае.

исходники обрабатывайте своими средствами и приводите их к "каноническому" виду.
Nik Okuntseff
Канада
405 сообщений
#9 лет назад
shapod, не понял к чему вы написали такое множество слов и как это отвечает на изначальный вопрос.

Мне сейчас нужна именно конвенция для проекта на Дельфи, а не дискуссии про неё. Потому что на одном из проектов её к сожалению нет (это моя ошибка) и я устал быть заложником одного кодера. Просьба ко всем придерживаться темы. Спасибо.
Евгений О.
40 лет, Россия
2989 сообщений
#9 лет назад
Интересно, почему периодически возникают шумные обсуждения по стандарам оформления кода? Лучший стандарт - это рабочий код!
И потом, если уж все такие "грамотные программисты", не проще ли написать программу, которая будет приводить исходный код к нужному виду, чем шуметь по поводу где должен быть begin - в конце текущей строки или в начале следующей?
Денис Ш.
43 года, Украина
7132 сообщения
#9 лет назад
Цитата ("wrc"):
не понял к чему вы написали такое множество слов и как это отвечает на изначальный вопрос.


вы хотите, чтобы я написал еще больше слов?

Цитата ("wrc"):
Мне сейчас нужна именно конвенция для проекта на Дельфи, а не дискуссии про неё.


Если вам нужна конвенция, то ищите конвенцию. А раздел "Общение" на форуме не лучшее место для этого. Тут как-то больше дискуссии бывают.
И я не предлагаю вам дискутировать. Я вам дал совет, вы его игнорируете - это ваше дело.

Цитата ("wrc"):
Просьба ко всем придерживаться темы. Спасибо.


Вот эти слова тоже по теме были?

Цитата ("wrc"):
Неужели тут нет серьёзных кодеров, кто работает в команде?
Цитата ("wrc"):
Всё действительно так запущено и каждый плугатарит, на что горазд?


Это видимо было написано с целью получения конструктивного диалога?

Если вы хотите ответа, не стоит пытаться брать на слабо и опускать возможных советчиков.

И если вы настолько "серьезны", то неужели не смогли воспользоваться гуглом?

Вот одна из ссылок:

http://www.delphiplus.org/articles/delphi/source_code_standards/index.html

Вот вторая:

http://www.citforum.ru/programming/delphi/style_delphi/

А вот на англицком наречии:

http://delphi.about.com/od/standards/Delphi_Coding_Standards_and_Conventions.htm

или

http://www.cs.ut.ee/~jellen/delphi/cs.html


Z874381605536 - можно 20 баксов, т.к. я не писал, а только искал.

Думаю, тема закрыта?
Евгений Б.
38 лет, Россия
5330 сообщений
#9 лет назад
Цитата ("elosoft"):
И потом, если уж все такие "грамотные программисты", не проще ли написать программу, которая будет приводить исходный код к нужному виду, чем шуметь по поводу где должен быть begin - в конце текущей строки или в начале следующей?
скажу по секрету, можно даже купить такие программы хотя только для с++
а для лазаруса есть, но там компиляется через опу.
Николай М.
35 лет, Украина
1895 сообщений
#9 лет назад
Этот: http://www.econos.de/delphi/cs.html
Margins

Margins will be set to 80 characters. In general, source shall not exceed this margin with the exception to finish a word, but this guideline is somewhat flexible. Wherever possible, statements that extend beyond one line should be wrapped after a comma or an operator. When a statement is wrapped, it should be indented so that logically grouped segments are on the same level of indentation.


полностью устарел канон, как не крути, мониторы большие, все 200 символов можно вставить, хотя я лично больше 160 стараюсь не писать, но никак не 80 в строку...

я лично особо не изучал как нужно правильно писать, просто смотрел как пишут другие и уже со временем выводил свои стили, напр:
if i=1 then   // пишу именно так, потому что условие можно легко закоментить, или даже частенько беру условие в скобки, тоесть "if (i=1) then ", чтобы потом не возвращаясь добавлять условия
begin
...
end.


а все блоки, как показано на рисунке делаю строго вертикально..., в отличии от напр.:
if Result = mrOK then
begin
aUserName := UserDataForm.edtUserName.Text;
aUserID := StrToInt(UserDataForm.edtUserID.Text);
end;

я пишу, так:
[quote
]if Result = mrOK then
begin
aUserName := UserDataForm.edtUserName.Text;
aUserID := StrToInt(UserDataForm.edtUserID.Text);
end;
[/quote]

понимаете, то как кто пишет - дело личное, но все рождается исходя из удобства, а не по мнению других людей

вот еще напр. коментить шапку каждого юнита... ну и зачем оно? абсурд... если чтобы навигацию делать по модулях так без проблем, но не так... а, ИМХО, правильно через комментирование DPR-ки и только, IDE - это поддерживает

не знаю как кто, но я лично многое из прописного написанного игнорирую, ибо неудобно, поэтому я и написал что на каноны напр. http://www.econos.de/delphi/cs.html - эти смотреть не стоит, нужно только взять основное, дополнить свежим, с объяснениями и дополнениями,

на крайняк, есть форматировщики кода, раз и готово
Николай М.
35 лет, Украина
1895 сообщений
#9 лет назад
Цитата ("ArtPro"):
Цитата ("elosoft"):
И потом, если уж все такие "грамотные программисты", не проще ли написать программу, которая будет приводить исходный код к нужному виду, чем шуметь по поводу где должен быть begin - в конце текущей строки или в начале следующей?
скажу по секрету, можно даже купить такие программы хотя только для с++
а для лазаруса есть, но там компиляется через опу.


и что же там не так в лазарусе? помоему все там гуд, или вы про сверх жирную екзешку без напильника?)
Евгений О.
40 лет, Россия
2989 сообщений
#9 лет назад
Цитата ("ArtPro"):
скажу по секрету, можно даже купить такие программы хотя только для с++

Да и бесплатные есть, и для паскаля. Народ для себя чего только не пишет, только до ума, как правило, не доводят.
Николай М.
35 лет, Украина
1895 сообщений
#9 лет назад
Delphi 2010 + Edit - Format Source (Ctrl + D)
Nik Okuntseff
Канада
405 сообщений
#9 лет назад
shapod, прочтите внимательно изначальный пост.

Нужно не найти ссылки (искать я сам умею, что очевидно из первого поста). Нужно ОБОСНОВАТЬ использование какого-то конкретного стандарта. И если вы не программируете профессионально на Delphi, то лучше наверное вам не отвечать в данной теме? Опять-таки читаем изначальный пост и проходим мимо.
Денис Ш.
43 года, Украина
7132 сообщения
#9 лет назад
Цитата ("wrc"):
Нужно ОБОСНОВАТЬ использование какого-то конкретного стандарта.


Чего? Вы сами поняли, что написали?

А давайте попросим левшу обосновать использование левой руки, а правшу - правой

Цитата ("wrc"):
И если вы не программируете профессионально на Delphi, то лучше наверное вам не отвечать в данной теме?


Не вижу препятствий. Вы же тоже не программируете профессионально на Делфи. В ваш тендер я не лезу, а здесь форум общего направления.

Вам не нравится мое мнение - не читайте.

Цитата ("wrc"):
Опять-таки читаем изначальный пост и проходим мимо.


Читаем правила форума и начинаем уважительно относится к другим.

Вы НИГДЕ и НИКОГДА не получите ОБОСНОВАНИЯ использования той или иной конвенции в программировании.

Я лично пользуюсь тремя конвенциями - я не нашел никаких преимуществ той или иной. В своих проектах у меня есть мое лично предпочтение.

Если вы не умеете читать, повторю: нет и не может быть "правильных" конвенций. они все решают одну и ту же задачу. Просто есть более полные частные соглашения, есть некие базовые вещи. Но нет универсального.
Nik Okuntseff
Канада
405 сообщений
#9 лет назад
Цитата ("shapod"):
Цитата ("wrc"):
Нужно ОБОСНОВАТЬ использование какого-то конкретного стандарта.


Чего? Вы сами поняли, что написали?

Да, вполне. Например:

Предпочитаю стандарт такой-то посколько он заставляет меня давать понятные имена переменным и классам. Стандарт такое-то лучше работает для чтения и проверок кода. Стандарт такой-то оптимален с точки зрения подробных комментариев на всех уровнях кода.

Цитата ("shapod"):
Цитата ("wrc"):
И если вы не программируете профессионально на Delphi, то лучше наверное вам не отвечать в данной теме?


Не вижу препятствий. Вы же тоже не программируете профессионально на Делфи.

И зря. Я нигде не писал, что я программирую на этом языке. Я вообще в нём мало разбираюсь, поэтому и поднял тему.
Николай М.
35 лет, Украина
1895 сообщений
#9 лет назад
Да не, что вы на человека набросились, все правильно, хочет что то знать, хочет порядка.

wrc, как идея, одна голова хорошо, а 2 еще лучше, намного эффективней будет собрать несколько дельфийцев со стажем, и провести платный холивар по САБЖу, старые кануны устарели, и требуют переоценки, новые идеи, новые возможности и взгляды, уверен к такому мероприятию будет много внимания, и вам сделаем хорошо и для общества пользу, в виде новых какунов форматирования кода, да и проекта в целом. Один человек просто будет навязывать свой взгляд, а это не хорошо однозначно!