powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Стандартизация кода и общий процесс разработки приложений
44 сообщений из 44, показаны все 2 страниц
Стандартизация кода и общий процесс разработки приложений
    #35239068
alex376
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Постоянно возникает вопрос, как организовать код по некоторым стандартам и правилам:
комментирование, название переменных, структуры модулей, разбив функционала на модули.

Часть стандартов-правил конечно используется, но хотелось бы двигаться дальше в этом плане. Никто из знакомых программистов сказать толком ничего не может.
Если работало несколько человек, то потом все собирается "на коленке".


Хотелось бы почитать литературу, с современным подходом и средствами коллективной разработки.
Может какую посоветуете ?
...
Рейтинг: 0 / 0
Стандартизация кода и общий процесс разработки приложений
    #35239229
edges7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Например, Стив Макконелл "Совершенный код" ( Steve McConnell "Code Complete" ). Если вы ищете руководство по стилю программирования и конструированию ПО, то это книга, я думаю, - то что надо.
...
Рейтинг: 0 / 0
Стандартизация кода и общий процесс разработки приложений
    #35239363
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
edges7Например, Стив Макконелл "Совершенный код" ( Steve McConnell "Code Complete" ). Если вы ищете руководство по стилю программирования и конструированию ПО, то это книга, я думаю, - то что надо.+1
...
Рейтинг: 0 / 0
Стандартизация кода и общий процесс разработки приложений
    #35239424
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А сколько человек будет участвовать в одном проекте?
...
Рейтинг: 0 / 0
Стандартизация кода и общий процесс разработки приложений
    #35239463
Фотография Ban Me
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
по мойму - одну задачу должен один программист прогать. тогда и вопросов не будет. и не суть важно по каким правилам оформлены комментарии и названия переменных. если алгоритм принципиально корректен, то скорее возникает вопрос правильности постановки задачи и дальнейшего использования результатов. методологическая задача. а не синтаксическая.
...
Рейтинг: 0 / 0
Стандартизация кода и общий процесс разработки приложений
    #35239620
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ban Meодну задачу должен один программист прогать
... работать на этом предприятии и сопровождать пожизнено!
...
Рейтинг: 0 / 0
Стандартизация кода и общий процесс разработки приложений
    #35239663
edges7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ban Me... и не суть важно по каким правилам оформлены комментарии и названия переменных...

Наверное, программисты, которые в дальнейшем займутся сопровождением проги не очень сильно обрадоваются этому факту. Проще и быстрее разобраться в коде, который выполнен в единообразной форме.
...
Рейтинг: 0 / 0
Стандартизация кода и общий процесс разработки приложений
    #35239957
ban me!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
edges7 Ban Me... и не суть важно по каким правилам оформлены комментарии и названия переменных...

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

как вы себе это представляете? :) в чём единообразность должна заключаться? в названии переменных? ха ха ха! :)
...
Рейтинг: 0 / 0
Стандартизация кода и общий процесс разработки приложений
    #35239973
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ban me!Предположим, имеется 150 единообразных форм , запросов, отчётов. и таблиц!

как вы себе это представляете? :) в чём единообразность должна заключаться? в названии переменных? ха ха ха! :)а в чём проблема заключается, не поделитесь?
...
Рейтинг: 0 / 0
Стандартизация кода и общий процесс разработки приложений
    #35240001
edges7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ban me!Предположим, имеется 150 единообразных форм , запросов, отчётов. и таблиц!
как вы себе это представляете? :) в чём единообразность должна заключаться? в названии переменных? ха ха ха! :)

Ну, в любом языке программирования еще много чего есть, кроме переменных.
...
Рейтинг: 0 / 0
Стандартизация кода и общий процесс разработки приложений
    #35240071
Фотография Ban Me
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorychа в чём проблема заключается, не поделитесь?в методологии определения единообразности, разве не понятно? каждый блок программы по идее уникален, поскольку выполняет свою функцию. своего рода слой, плоскость , через которую рассматриваются остальные блоки, некоторые из которых имеют точки пересечения с рассматриваемым блоком. По большому счёту только точки пересечения и интересны должны быть. Так в чём проблема задокументировать их по методологии. А не рассматривать принцип единообразности уникальных плоскостей.

Всё придумано уже очень давно: и тестеры и тех писатели лишние штоле?
а то пишут сами не поймут чего: авторкомментирование, название переменных, структуры модулей, разбив функционала на модули.какое?

автор не в том направлении ищет причину постоянного возникновения вопросов по организации.
...
Рейтинг: 0 / 0
Стандартизация кода и общий процесс разработки приложений
    #35240091
alex376
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ban Meпо мойму - одну задачу должен один программист прогать. тогда и вопросов не будет. и не суть важно по каким правилам оформлены комментарии и названия переменных. если алгоритм принципиально корректен, то скорее возникает вопрос правильности постановки задачи и дальнейшего использования результатов. методологическая задача. а не синтаксическая.

На мой взгляд такой подход принципиально неверен. Многие , с которыми взаимодействовал, придерживались такого же взгляда. Вопрос возникает, например:
через год нужно изменить алгоритм добавив в него новый функционал. В том что написано, даже этот самый "кодер" не может разобраться. Получается, что деньги ему зря платили, раз он создал нечитаемый код.
...
Рейтинг: 0 / 0
Стандартизация кода и общий процесс разработки приложений
    #35240111
Фотография Ban Me
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex376На мой взгляд такой подход принципиально неверен. Многие , с которыми взаимодействовал, придерживались такого же взгляда. Вопрос возникает, например:
через год нужно изменить алгоритм добавив в него новый функционал. В том что написано, даже этот самый "кодер" не может разобраться. Получается, что деньги ему зря платили, раз он создал нечитаемый код.что вы делали в 5 часов дня ровно год назад?

за што заплатили кодеру говорите? как за што? вы чо?
а работу когда принимали о чём думали? работало же всё, задача была выполнена раз приняли?

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

имхо.
...
Рейтинг: 0 / 0
Стандартизация кода и общий процесс разработки приложений
    #35240128
The_ShadoW
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, одна сторона проблемы там как раз правильно замечена. Если не применяется XP, то одну задачу должен писать более-менее один человек. Иначе бывают неприятные коллизии, и CVS спасает только от потери кода, но не от потери времени в попытках сделать нормальный diff.

Но другое дело, что ключевые слова там - "более-менее". Когда у каждого во владении строго его собственный код - это тоже сильно чревато.
Ну и конечно, несмотря на то, что роли поделены - каждый пишет в единообразном стиле. Тогда проблемы вникания в криво написанный код обычно не стоит (за исключением случаев, когда код намеренно криво написан, но это быстро обнаруживается).
...
Рейтинг: 0 / 0
Стандартизация кода и общий процесс разработки приложений
    #35240136
The_ShadoW
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ban Meчто вы делали в 5 часов дня ровно год назад?

за што заплатили кодеру говорите? как за што? вы чо?
а работу когда принимали о чём думали? работало же всё, задача была выполнена раз приняли?

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

имхо.

Программист может вообще всё

Но это не отменяет того факта, что вникание во вменяемый код происходит за *намного* меньшее время, чем переписывание этого кода с нуля.
...
Рейтинг: 0 / 0
Стандартизация кода и общий процесс разработки приложений
    #35240247
MAPA3OT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ban Me
любой обычный программист легко может для изменения функционала - переписать любой код с нуля, а если не может то он ваще дармоед и работает хуже "того гадкого кодера" .
имхо.

Угу, ярко так себе представил один программист написал программу скажем, за месяц, потом он уволился/уехал/умер. И теперь чтобы добавить в эту программу хотя бы один отчет понадобится... барабанная дробь... один месяц и один день, ведь мы ПЕРЕписываем с нуля, а не ДОписываем.
Отличный подход. Предлагаю расширить его и на остальные области, например: Кто такие вообще эти Лагранж, Коши и прочие, к черту их, все теоремы и формулы выводим с нуля.
...
Рейтинг: 0 / 0
Стандартизация кода и общий процесс разработки приложений
    #35240280
Фотография Ban Me
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MAPA3OTУгу, ярко так себе представил один программист написал программу скажем, за месяц, потом он уволился/уехал/умер. И теперь чтобы добавить в эту программу хотя бы один отчет понадобится... барабанная дробь... один месяц и один день, ведь мы ПЕРЕписываем с нуля, а не ДОписываем.
Отличный подход. Предлагаю расширить его и на остальные области, например: Кто такие вообще эти Лагранж, Коши и прочие, к черту их, все теоремы и формулы выводим с нуля.Между прочим всё правильно. Вот к примеру, если в винде выскочила ошибка которая мешает вам программировать - вы што делать-то собираетесь? Исправлят ьошибки функциональность расширять? ну ну. Программирование ради программирования получается. Задача в чём заключается мы вобще про конкретику разговариваем или рассматриваем гипотетические случаи?
Ну давайте напишем гипотетическую абсолютно читаемую программу, чтоб каждый прочесть мог и своё дописать. Чтоб каждый понял слёту про что написано

а то ведь, чтоб один отчёт добавить это ж всю программу "понять" необходимо .
...
Рейтинг: 0 / 0
Стандартизация кода и общий процесс разработки приложений
    #35240329
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex376Постоянно возникает вопрос, как организовать код по некоторым стандартам и правилам:
комментирование, название переменных, структуры модулей, разбив функционала на модули.
Спокойно и незатейливо. Этот процесс должен идти снизу, а не сверху: есть потребность - приняли решение - выполняем. Попытка ввести такое сверху.... может, наверное, привести к счастью, но имхо сомнительна.

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

alex376Хотелось бы почитать литературу, с современным подходом и средствами коллективной разработки.
Средства коллективной разработки тут менее всего при чем. Лично мне хватило форума, на котором в течение полутора месяцев (в промежутках между основными делами) сотрудники отдела обсуждали и согласовывали подходы.

Ban Meпо мойму - одну задачу должен один программист прогать. тогда и вопросов не будет.
Ага, точно. Мое начальство тоже так считало, вплоть до августа 98-го года. Тогда грянул кризис, все встали на уши, главный программист застрял в отпуске хрен знает где, и возник вопрос - либо мы срочно делаем несколько вещей, либо теряем одного из двух основных клиентов. Вот тогда они вспомнили, как я говорил "а нас на предыдущей работе учили лазить в код друг другу"

The_ShadoWЕсли не применяется XP, то одну задачу должен писать более-менее один человек. Иначе бывают неприятные коллизии
Когда "одну задачу пишет один человек", неприятные коллизии бывают намного чаще. Вида "через полгода посмотрели, что же он сделал, и охренели".

The_ShadoW, и CVS спасает только от потери кода, но не от потери времени в попытках сделать нормальный diff.
Если уж дело дошло до diff-ов, надо пользоваться нормальными инструментами и нормальными технологиями, а не пережитками позапрошлого века. Но сами по себе diff-ы имеют крайне мало отношения к делу.
...
Рейтинг: 0 / 0
Стандартизация кода и общий процесс разработки приложений
    #35240369
alex376
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просветите, что такое diff ?
...
Рейтинг: 0 / 0
Стандартизация кода и общий процесс разработки приложений
    #35240431
MAPA3OT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ban MeМежду прочим всё правильно. Вот к примеру, если в винде выскочила ошибка которая мешает вам программировать - вы што делать-то собираетесь? Исправлят ьошибки функциональность расширять? ну ну. Программирование ради программирования получается. Задача в чём заключается мы вобще про конкретику разговариваем или рассматриваем гипотетические случаи?
Ну давайте напишем гипотетическую абсолютно читаемую программу, чтоб каждый прочесть мог и своё дописать. Чтоб каждый понял слёту про что написано

а то ведь, чтоб один отчёт добавить это ж всю программу "понять" необходимо .

1) Если у меня выскочила ошибка не важно в какой программе (ОС - ведь тоже программа), то я пойду пинать того, у кого код этой программы - bugreport и т.д. Возвращаясь к Windows, представьте, что вы получаете не патч к ОС, а каждый раз переставляете ее заново, а так по вашему и должно быть. Новая команда, взяла и переписала все заново с нуля.

2) То есть, всякие разные плагины и расширения функциональности - бред? Кстати, а вы хоть раз участвовали в проектах - долгостроях, то есть тех, которые дляться больше года. Состав разработчиков может измениться кардинально, и что делать остальным?

3) Если у меня есть код программы и полное тех описание то я, должен читать программу с листа. Если этого не происходит то одно из следущего: 1) Я дурак 2) программа написана идиотами 3) тех. описание сделано идиотами.

И наконец. Представьте себе коллектив разработчиков, есть два варианта:
1) каждый пишет свой кусок не влезая в другие (сферические кони.. так просто не бывает), но даже здесь в итоге куски придется сцеплять и если стиль программирования разный - вы удавитесь.
2) каждый пишет свою задачу или 2-3 человека пишут одну задачу, то есть переодически вносятся правки в разные куски. Если у каждого из программистов - свой стиль, то на выходе имеем кашу вместо кода и затянутые сроки разработки.

Хотите пример, допустим мне нравится такой стиль программирования:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
private Integer its(Integer  ich, Integer  ist){
     return java.lang.MAth.round(java.lang.Math.exp(pr(ist,java.lang.Math.log(ich)));
}

/* много строк кода */

private Float pr(Float ch1, Float ch2){
     return ch1*ch2;
}
Возьметесь поддерживать? :)
...
Рейтинг: 0 / 0
Стандартизация кода и общий процесс разработки приложений
    #35240549
Фотография Ban Me
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MAPA3OTЕсли у меня есть код программы и полное тех описание то я, должен читать программу с листаУ меня тоже есть коды разных программ и описания - однако читать их мне лениво :)

Разговор о крупных проектах: есть кусок в котором надо разобраться : поручили вам, а как там получится - тех писатели дураки, или программисты ранее писавшие код , или вы - безразлично.
Не можешь сделать, скинь претензию руководителю. Обратно на тебя вешают - работай в другом месте. Всё просто до тупости. И не столь важно ПЕРЕписывать надо или ДОписывать. Можешь - выбирай из этих двух вариантов.

Вы походу тоже пример хотите, пожалуста:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
If check_sum <> CLng(H + Mid(server_block,  3 ,  8 )) Then
           GoSub qwerty: GoTo CheckSum_NotNumeric
    End If
    
    If CByte(H + Mid(server_block,  1 ,  2 )) - &HA0 >=  0  Then
       If Abs(CLng(Int(VBA.Now)) - CLng(H + Mid(server_block,  17 ))) >  2  Then
         GoSub qwerty: GoTo Temporary_Expired
       End If
    End If
...
Рейтинг: 0 / 0
Стандартизация кода и общий процесс разработки приложений
    #35240636
MAPA3OT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Время, уважаемый, время...
Если мне сильно надо, то я и после обфускатора код прочитаю, но вот вопрос, сколько времени это займет.
Вот для того чтобы не гадить на голову товарищам и придумывают некие спецификации. Если вы возьмете мой пример кода, то если где-то кто-то напишет,что в любом месте кода префикс i - означает integer, а две подряд идущие буквы ch - число не зависимо от его типа. То вы все еще будете хотеть убить автора, но уже чуть меньше, ибо ключ к разгадке у вас есть.

Если мы говорим о вашем примере кода, то судя по всему поддерживался принцип - информационно значащие переменны, слова в которых разделены "_", код - не вкусный, но опять-таки понимается легче, чем если бы не было вообще никаких подсказок

Заметим, что можно легко различить переменную и метку (не лучший способ, но они хотя бы различаются)
check_sum - я понимаю что она означает
CheckSum_NotNumeric - я понимаю, что должно происходит в том месте куда я перейду
server_block - вот тут - теряюсь в догадках, но узнав специфику скорее всего пойму что это
Temporary_Expired - опять таки ясно куда послали.
...
Рейтинг: 0 / 0
Стандартизация кода и общий процесс разработки приложений
    #35240648
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MAPA3OTЕсли вы возьмете мой пример кода, то если где-то кто-то напишет,что в любом месте кода префикс i - означает integer, а две подряд идущие буквы ch - число не зависимо от его типа. То вы все еще будете хотеть убить автора, но уже чуть меньше,
Ошибаетесь, лично я буду хотеть убить автора куда больше.
...
Рейтинг: 0 / 0
Стандартизация кода и общий процесс разработки приложений
    #35240675
MAPA3OT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
Ошибаетесь, лично я буду хотеть убить автора куда больше.
Экий вы кровожадный, чтобы вы не искали этого беднягу, скажу, что код придуман мной :)
Но все-таки неужели тупого, но доброго (хоть какие-то ключи оставил) человека, вы будете хотеть убить больше, чем просто тупого?
...
Рейтинг: 0 / 0
Стандартизация кода и общий процесс разработки приложений
    #35240787
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MAPA3OTЭкий вы кровожадный, чтобы вы не искали этого беднягу, скажу, что код придуман мной :) Но все-таки неужели тупого, но доброго (хоть какие-то ключи оставил) человека, вы будете хотеть убить больше, чем просто тупого?
Безусловно. Уж лучше я буду думать об авторе, что он просто называл переменные по-немецки, чем что он сознательно делал такой ужас.
...
Рейтинг: 0 / 0
Стандартизация кода и общий процесс разработки приложений
    #35240854
MAPA3OT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как говориться, на вкус и цвет, все фломастеры - разные. Честно говоря, поимел некое время назад много секеса с названиями переменных, так что теперь даже за то, что человек назвал Int-овую переменную/функцию ia, а не просто a, уже готов говорить спасибо.
Ну а уж за грамотную спецификацию - огромное спасибо :)
...
Рейтинг: 0 / 0
Стандартизация кода и общий процесс разработки приложений
    #35240934
Фотография StalkerS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На самом деле подобный вопрос давно меня интересует, должен-ли программист быть в какой-то степени перфекционистом ? Ведь понятно, что сам по-себе спагетти код никуда не годиться, но в то-же время у меня часто бывают ситуации, когда мой код мне не нравиться, хотя он вполне читаем (с моей точки зрения), но в то-же время я ведь вижу, что можно что-то улучшить - тут выделить в отдельный метод, тут чуть подправить и переименовать итп. Ведь хочеться-же достигнуть своеобразного грааля программирования - что-бы каждый класс являл собой четкую и ясную сущность, без примеси "подозрительных" с точки зрения его интерфейса методов, каждый метод имел ясное название и делал-бы только то, что написано в его названии и ничего другого, и так далее (не один десяток таких-вот пожеланий) по стопам великих и ужастных Фаулера, Макконнела и прочих компьютерных умов нашего времени.
Но ведь у подобного вылизывания есть один недостаток - поглащаемое время, и так сложно иногда определиться, хватит тут рефакторить, или стоит еще немного улучшить ...
...
Рейтинг: 0 / 0
Стандартизация кода и общий процесс разработки приложений
    #35240981
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StalkerSНа самом деле подобный вопрос давно меня интересует, должен-ли программист быть в какой-то степени перфекционистом ?
Боюсь, внятной статистики на этот счет ни у кого нет, поэтому вопрос вкусов. Имхо - да.

StalkerSно в то-же время я ведь вижу, что можно что-то улучшить .... Но ведь у подобного вылизывания есть один недостаток - поглащаемое время,
Вообще говоря, понятие качества кода во всех его вариациях сводится ровно к противоположному - к экономии времени. Тут прогрессия: если сегодня хорошо поработал, завтра тебе будет легко и просто; если сегодня схалтурил, завтра придется разгребать, послезавтра завалит, а потом и вообще уже никогда ни на что не хватит времени - знай только, вставляй костыли за скрепляй разваливающуюся хрень. Любимое на тему... замени "дом" на "программу" и будет в нашу действительность

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
КАРИАТИДЫ

Что-то где-то происходит... Ладно, ну и пусть бы.
Люди рушат и возводят здания и судьбы.
Судьбы лепятся, как стены, и, как бюсты, чувства.
Тоже, милый, всё священно, тоже, брат, искусство!
Вот так, а ты как думал?

Строишь славное строенье, вроде всё как надо:
барельефы, обрамленье, крыша, анфилада,
слева виды, справа виды, ходы-переходы,
по бокам кариатиды подпирают своды.

Не забыл, и слава Богу, нанести орнамент.
Что ж забыл? Забыл немного - заложить фундамент.
Вот те раз! А впрочем, слушай, что же тут такого!
Можешь сразу всё порушить и построить снова.

Мастерство свое утроить можешь, Бог с тобою.
А ломать - оно не строить. Так же и с судьбою.
Скажем, вышла неплохая крепкая обитель,
но изъяны различает только сам строитель.

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

Был бы я такой же честный, я б не сомневался,
я б за свой домишко тесный этак не держался,
я размёл его дотла бы и построил новый.
Но такой, видать, я слабый али бестолковый.

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

Вот такая, брат, картина, маюсь, рот раззявив.
Если, скажем, ты скотина, - знай своих хозяев.
Будь ты ангел или гнида - знай своё местечко.
Если ж ты кариатида - знай своё крылечко!

Что-то где-то происходит, ладно, ну и пусть бы.
Люди сносят и возводят здания и судьбы.
А тебе-то что до них, до сутолоки разной?
Если ты кариатида - стой и подпирай знай.
Вот так оно всю жизнь. А ты как думал?

1982
...
Рейтинг: 0 / 0
Стандартизация кода и общий процесс разработки приложений
    #35241077
Николай1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer StalkerSНа самом деле подобный вопрос давно меня интересует, должен-ли программист быть в какой-то степени перфекционистом ?
Боюсь, внятной статистики на этот счет ни у кого нет, поэтому вопрос вкусов. Имхо - да.

StalkerSно в то-же время я ведь вижу, что можно что-то улучшить .... Но ведь у подобного вылизывания есть один недостаток - поглащаемое время,
Вообще говоря, понятие качества кода во всех его вариациях сводится ровно к противоположному - к экономии времени. Тут прогрессия: если сегодня хорошо поработал, завтра тебе будет легко и просто; если сегодня схалтурил, завтра придется разгребать, послезавтра завалит, а потом и вообще уже никогда ни на что не хватит времени - знай только, вставляй костыли за скрепляй разваливающуюся хрень. Любимое на тему... замени "дом" на "программу" и будет в нашу действительность


Могу добавить еще одну сентенцию, от себя - "правильный и неправильный код пишется одинаковое время".

"А если нет разницы...."
...
Рейтинг: 0 / 0
Стандартизация кода и общий процесс разработки приложений
    #35242897
Фотография StalkerS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
Боюсь, внятной статистики на этот счет ни у кого нет, поэтому вопрос вкусов. Имхо - да.
...
Вообще говоря, понятие качества кода во всех его вариациях сводится ровно к противоположному - к экономии времени.

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

Николай1
Могу добавить еще одну сентенцию, от себя - "правильный и неправильный код пишется одинаковое время".

если-бы это было так, то мы-бы уже давно жили при коммунизме, еда в магазинах была-бы бесплатной, а работать надо было-бы только один час в неделю, да и в этот час нечего особо делать было-бы не надо ;)
...
Рейтинг: 0 / 0
Стандартизация кода и общий процесс разработки приложений
    #35242921
The_ShadoW
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerКогда "одну задачу пишет один человек", неприятные коллизии бывают намного чаще. Вида "через полгода посмотрели, что же он сделал, и охренели".

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

softwarerЕсли уж дело дошло до diff-ов, надо пользоваться нормальными инструментами и нормальными технологиями, а не пережитками позапрошлого века. Но сами по себе diff-ы имеют крайне мало отношения к делу.

Подскажите мне инструмент и технологию, которая из двух на 50% законченных листингов, описывающих одно и то же (но конечно же, разными способами), соберет один рабочий.
...
Рейтинг: 0 / 0
Стандартизация кода и общий процесс разработки приложений
    #35243047
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
The_ShadoWА слова "более-менее"-то специально выкинули?
Выкинул как бессмысленные. Во всяком случае, тонкости смысла идиомы "более-менее один человек" для меня трудноуловимы. Я так понимаю, имеется в виду нечто типа "чаще один, иногда например двое".

The_ShadoWПодскажите мне инструмент и технологию, которая из двух на 50% законченных листингов, описывающих одно и то же (но конечно же, разными способами), соберет один рабочий.
Лом стальной, длина 1200мм. Применяется сначала к головам разработчиков (которые независимо делают одно и то же), а потом к анусу руководителя проектов (который им это сказал). Ну или наоборот, как удобнее.

Если же разработчики делают не одно и то же, а разные вещи в одном файле, все тривиально. Сначала с помощью лома проводится внушение тому, кто хочет применять diff, потом учим разработчиков правильной технологии использования любого visual merge.
...
Рейтинг: 0 / 0
Стандартизация кода и общий процесс разработки приложений
    #35243138
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StalkerSвсе оно конечно так, но ведь совершенство-то недостижимо по определению, да и как известно лучшее враг хорошего, вот и приходиться думать, когда-же остановиться.
Не знаю, не знаю. Это утверждение и последующие исходят из предположения, что "пишем плохо, надо улучшать". А я предпочитаю сразу писать хорошо :) Конечно, через какое-то время можешь осознать ошибки, набрать практику применения или увидеть новую идею - ну так берешь и улучшаешь.

StalkerS Николай1
Могу добавить еще одну сентенцию, от себя - "правильный и неправильный код пишется одинаковое время".

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

Здесь стоит учесть, что "хороший код" - вовсе не то же самое, что и "код, строго соответствующий выкладкам известного теоретика Х, примененным в самом неподходящем месте самым неудачным образом".
...
Рейтинг: 0 / 0
Стандартизация кода и общий процесс разработки приложений
    #35243587
Фотография StalkerS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
Не знаю, не знаю. Это утверждение и последующие исходят из предположения, что "пишем плохо, надо улучшать". А я предпочитаю сразу писать хорошо :) Конечно, через какое-то время можешь осознать ошибки, набрать практику применения или увидеть новую идею - ну так берешь и улучшаешь.

ну во-первых "хорошо" и "совершенно" - разные веши :) Или вы предпочитаете сразу писать совершенный код ? ;)

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

softwarer
Ошибаетесь. Во всяком случае, я куда более согласен с Николаем. Плохой код пишут не потому, что быстрее (хотя этим чаще всего оправдываются), а потому что для этого не требуется думать. Реально плохой код не сказать что быстрее в момент написания

хм, вы с Николаем тратите одинаковое время на придумывание имени метода DoSomeStuff() и CalculateTotalBalance() ? Вы с Николаем за пару мгновений выделяете общее из пары похожих методов в отдельное место ? Вы с Николаем в мгновение ока перемещаете методы между классами ?
Что-ж, вы с Николаем гении. Я вам завидую. А вот я не гений. Мне, что-бы что-то изменить в коде требуется некоторое время. Что-бы вместо одного здорового метода с уродским названием в левом классе, написать пару методов с ясными именами и вписывающимися в интерфейс своих классов мне тоже требуется время. Иногда оно не очень большое, иногда очень.

softwarer
резко медленнее в плане последующих затрат на исправление.

с этим не поспоришь
...
Рейтинг: 0 / 0
Стандартизация кода и общий процесс разработки приложений
    #35243664
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StalkerSну во-первых "хорошо" и "совершенно" - разные веши :) Или вы предпочитаете сразу писать совершенный код ?
Разные. Признаться, не очень представляю себе "совершенный код" с практической точки зрения. Если считать, что это код, к которому трудно предъявить обоснованные претензии "что улучшить", то в моем понимании хороший код и совершенный станут примерно одним и тем же :)

StalkerSВсе предпочитают сразу писать хорошо. Только не всегда это получается. По мере написания лучше вникаешь в требования, осознаешь свои собственные ошибочные предположения, меняются сами требования. Все это приводит к изменениям.
Именно. Можно и нужно менять по ходу, и заметных затрат времени это не требует.

StalkerSхм, вы с Николаем тратите одинаковое время на придумывание имени метода DoSomeStuff() и CalculateTotalBalance() ?
Не знаю как Николай, но в общем-то да. Более того, я абсолютно уверен в том, что если решение хорошо продумано, каждый участвующий в нем объект тривиально именуется. Затруднения в придумывании имени (а также желание иметь анонимные объекты, что возможно в некоторых языках) с моей точки зрения означают ровно одно: решение не продумано, программист не совсем понимает, что будет делать объект и зачем, поэтому и название под вопросом.

StalkerS Вы с Николаем за пару мгновений выделяете общее из пары похожих методов в отдельное место ?
Лично я, собираясь написать несколько строк, и вспоминая, что "похожее я уже писал", не испытываю проблем с тем, чтобы вместо прискорбно типичного Ctrl-C Ctrl-V выделить метод. И времени на это тратится.... ну вот честно, по сравнению например с написанием хорошего набора юнит-тестов к тому же коду о таких тратах и говорить-то бредово. А хороший код, кстати, существенно экономит время на юнит-тесты :)

StalkerSМне, что-бы что-то изменить в коде требуется некоторое время. Что-бы вместо одного здорового метода с уродским названием в левом классе, написать пару методов с ясными именами и вписывающимися в интерфейс своих классов мне тоже требуется время. Иногда оно не очень большое, иногда очень.
Хм. Скажем так, по моим представлениям работы пальцами здесь секунды.
...
Рейтинг: 0 / 0
Стандартизация кода и общий процесс разработки приложений
    #35243886
Фотография StalkerS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
Именно. Можно и нужно менять по ходу, и заметных затрат времени это не требует.

мне почему-то кажется, что это сильно зависит от того, что конкретно меняется ;)

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

угу. А что-бы решение было хорошо продумано, времени-то случаем не надо тратить ? Вы-б еще сказали, что если решение продумано вплоть до названия каждой переменной, то набирание кода не отнимет много времени. Ну да, не отнимет, кто-бы спорил :)

softwarer
Лично я, собираясь написать несколько строк, и вспоминая, что "похожее я уже писал", не испытываю проблем с тем, чтобы вместо прискорбно типичного Ctrl-C Ctrl-V выделить метод. И времени на это тратится.... ну вот честно, по сравнению например с написанием хорошего набора юнит-тестов к тому же коду о таких тратах и говорить-то бредово.

в общем, затраты на рефакторинг у вас пренебрежительно малы. Что-ж, могу вас только поздравить с этим замечательным фактом. Но судя по всему, это не везде так, ибо зачем тогда тому-же Фаулеру вводить в свою книгу подглаву "Уменьшение стоимости рефакторинга" ?

softwarer
Хм. Скажем так, по моим представлениям работы пальцами здесь секунды.

в смысле секунды ? Напечатать в редакторе код ? А думать, в какие классы поместить методы и как они будут выглядеть и называться, будет сам редактор кода ? Мне-б такой редактор ;)
...
Рейтинг: 0 / 0
Стандартизация кода и общий процесс разработки приложений
    #35244232
edges7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StalkerS ...
Все предпочитают сразу писать хорошо. Только не всегда это получается. По мере написания лучше вникаешь в требования, осознаешь свои собственные ошибочные предположения, меняются сами требования. Все это приводит к изменениям.
В конце концов даже окинув взглядом готовый класс можно вдруг осознать, что лучше было-бы сделать немного не так. ... Видишь, что еще можно улучшить и улучшаешь. Потом еще. Потом видишь число на календаре и начинаешь задумываться о недостижимости совершенства :)

К сожалению, это горькая правда.
Написать все верно и с первого раза довольно проблематично. Да, наверное, это просто невозможно. Если бы все сразу всё правильно проектировали, писали совершенный код, то тогда просто не существовало бы такого понятия, как "рефакторинг". И тогда бы ни Макконнелы, ни Фаулеры не издавали бы свои замечательные руководства, не издавалась бы литература по шаблонам проектирования.
P.S. Да и это было бы просто скучно. :) Но это вовсе не означает, что не нужно стремиться к совершенству.
...
Рейтинг: 0 / 0
Стандартизация кода и общий процесс разработки приложений
    #35244475
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StalkerSмне почему-то кажется, что это сильно зависит от того, что конкретно меняется ;)
Безусловно. Я говорю о случае "пишешь хороший код и по ходу дела соображаешь, что пару помарок таки допустил".

StalkerSугу. А что-бы решение было хорошо продумано, времени-то случаем не надо тратить ?
Надо. И что самое удивительное - примерно столько же, сколько нужно, чтобы решение было плохо продумано. Разница при этом в том, работает ли мозг как должно или вхолостую.

StalkerSв общем, затраты на рефакторинг у вас пренебрежительно малы.
Уточню: на рефакторинг "прямо по ходу создания", о котором мы и говорим в смысле "совершенствовать можно до бесконечности". Разумеется, со временем меняются требования, появляются новые задачи и новые модули, появляется новый взгляд на систему - это уже порой требует рефакторинга вплоть до "все переписать".

StalkerSв смысле секунды ? Напечатать в редакторе код ? А думать, в какие классы поместить методы и как они будут выглядеть и называться, будет сам редактор кода ? Мне-б такой редактор ;)
Не понимаю я Вас, честно. Если я хочу разбить на части большую процедуру НарисоватьЧеловечка, у меня как-то не возникает вопроса с названиями процедур НарисоватьРуку, НарисоватьНогу и ГдеТоЗдесьДолжнаБытьГолова. Ну максимум сходить на мультитран за английским термином.
...
Рейтинг: 0 / 0
Стандартизация кода и общий процесс разработки приложений
    #35246381
Фотография StalkerS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
Безусловно. Я говорю о случае "пишешь хороший код и по ходу дела соображаешь, что пару помарок таки допустил".

а если помарка большая ? Например осознал, что иерархия классов неверная ? Вы это тоже на пару минут переделаете ?

softwarer
Надо. И что самое удивительное - примерно столько же, сколько нужно, чтобы решение было плохо продумано.

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

softwarer
Уточню: на рефакторинг "прямо по ходу создания", о котором мы и говорим в смысле "совершенствовать можно до бесконечности". Разумеется, со временем меняются требования, появляются новые задачи и новые модули, появляется новый взгляд на систему - это уже порой требует рефакторинга вплоть до "все переписать".

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

softwarer
Не понимаю я Вас, честно. Если я хочу разбить на части большую процедуру НарисоватьЧеловечка, у меня как-то не возникает вопроса с названиями процедур НарисоватьРуку, НарисоватьНогу и ГдеТоЗдесьДолжнаБытьГолова. Ну максимум сходить на мультитран за английским термином.

а если взять что-нибудь посложнее человечка ? Например моделирование полета сверхзвукового истребителя ? Тоже никаких вопросов не возникнет ?

Боюсь сказать банальную вешь, но при программировании приходиться принимать массу решений буквально на каждом шаге (собственно как и в любой инженерной науке, по сути программисты те-же конструктора истребителей или автомобилей). Если вы хотите, что-бы ваш истребитель быстро летал, метко стрелял и не разваливался в воздухе - будьте добры внимательно подумать над его конструкцией, а если в ходе проектирования выяснился промах - что-то в нем переделать.
Каким образом это может занять одинаковое время с проектированием чуда техники, у которого отвалятся крылья при попытке пилота завести двигатель ?
...
Рейтинг: 0 / 0
Стандартизация кода и общий процесс разработки приложений
    #35251206
The_ShadoW
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerВыкинул как бессмысленные. Во всяком случае, тонкости смысла идиомы "более-менее один человек" для меня трудноуловимы. Я так понимаю, имеется в виду нечто типа "чаще один, иногда например двое".

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

softwarerЕсли же разработчики делают не одно и то же, а разные вещи в одном файле, все тривиально. Сначала с помощью лома проводится внушение тому, кто хочет применять diff, потом учим разработчиков правильной технологии использования любого visual merge.

Смысл этой "правильной технологии" основывается на всё том же банальном diff, однако с более крутым внешним представлением. Когда я писал про "diff", я имел в виду сам принцип. А не собственно программу музейной древности с консольным выводом.
...
Рейтинг: 0 / 0
Стандартизация кода и общий процесс разработки приложений
    #35251837
codeconv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Фсё уже придумано до вас http://java.sun.com/docs/codeconv/
...
Рейтинг: 0 / 0
Стандартизация кода и общий процесс разработки приложений
    #35251857
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StalkerSа если помарка большая ? Например осознал, что иерархия классов неверная ?
Мм.. а это еще входит в "пишешь хороший код"?

StalkerSа если взять что-нибудь посложнее человечка ? Например моделирование полета сверхзвукового истребителя ? Тоже никаких вопросов не возникнет ?
Если я плотно работаю с моделированием полетов, то в чем их принципиальное отличие от человечка?

StalkerSЕсли вы хотите, что-бы ваш истребитель быстро летал, метко стрелял и не разваливался в воздухе - будьте добры внимательно подумать над его конструкцией, а если в ходе проектирования выяснился промах - что-то в нем переделать. Каким образом это может занять одинаковое время с проектированием чуда техники, у которого отвалятся крылья при попытке пилота завести двигатель ?
Очень простым. Процесс "проектирования чуда техники" приводит к тому, что крылья у него отваливаются гораздо раньше, еще когда двигатели не смонтированы. Их кое-как прилепляют жевательной резинкой, монтируют двигатели и обнаруживают хвостовое оперение на носу. Переносят - оказывается, оно так поддерживало крылья, и теперь те снова отвалились. В итоге до момента первого запуска двигателей проходит нисколько не меньше времени, скорее наоборот. Ну а качество результата...
...
Рейтинг: 0 / 0
Стандартизация кода и общий процесс разработки приложений
    #35255514
The_ShadoW
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для тех, кто до сих пор верит, что getWorkTime(плохой_код) < getWorkTime(хороший_код):

1) Во-первых, собственно написание кода всегда как минимум неявно разделено на "написание" и "проектирование". Иногда разделено явно, но в массе случаев деление идет не далее головы программиста. Однако оно всегда присутствует.
2) Хороший_код требует N времени на проектирование. Плохой код требует 0 времени на проектирование, но X > N времени на "доработку напильником".
3) Под словами "написали <хороший\плохой> код" следует понимать "написали код, и он работает как надо". А вовсе не "написали код, а теперь поехали тестировать". В последнем случае действительно на формальное написание плохого_кода уйдет меньше времени, однако еще будет далеко не нулевой период от момента "код написан" до момента "код работает как надо".

И в итоге подход "написать как выйдет, а потом поправить" всегда и везде длинее подхода "обдумать и написать максимально хорошо". Разумеется, когда программист не шибко хорошо знаком с предметной областью задачи, либо с применяемыми инструментами (учится/осваивается/врубается в проблему) - писать "сразу хорошо" едва ли выйдет. Однако к этому нужно стремиться, и это вовсе не идеал в бесконечности, а вполне нормальный рабочий подход.
...
Рейтинг: 0 / 0
Стандартизация кода и общий процесс разработки приложений
    #35269966
Николай1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
edges7 StalkerS ...
Все предпочитают сразу писать хорошо. Только не всегда это получается. По мере написания лучше вникаешь в требования, осознаешь свои собственные ошибочные предположения, меняются сами требования. Все это приводит к изменениям.
В конце концов даже окинув взглядом готовый класс можно вдруг осознать, что лучше было-бы сделать немного не так. ... Видишь, что еще можно улучшить и улучшаешь. Потом еще. Потом видишь число на календаре и начинаешь задумываться о недостижимости совершенства :)

К сожалению, это горькая правда.
Написать все верно и с первого раза довольно проблематично. Да, наверное, это просто невозможно. Если бы все сразу всё правильно проектировали, писали совершенный код, то тогда просто не существовало бы такого понятия, как "рефакторинг". И тогда бы ни Макконнелы, ни Фаулеры не издавали бы свои замечательные руководства, не издавалась бы литература по шаблонам проектирования.
P.S. Да и это было бы просто скучно. :) Но это вовсе не означает, что не нужно стремиться к совершенству.

Надо писать такой код, который легко поддается рефакторингу.
Не надо заранее гадать - будет то, что я сейчас пишу отдельным классом-методом или нет.
Если код выделяется в отдельный логический блок, то надо его выделить в самый простой, впроть до
{
}
только надо постараться сделать его отторгаемым.

Потом, если этот код понадобиться повторить, то можно будет его "отторгнуть" и куда-нибудь приспособить (в класс, метод, библиотеку). Это, в общем, не долго.
...
Рейтинг: 0 / 0
44 сообщений из 44, показаны все 2 страниц
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Стандартизация кода и общий процесс разработки приложений
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]