Re: Нестандартный стиль быдлокодера
От: Artifact  
Дата: 19.01.15 10:20
Оценка: +1
Здравствуйте, Khimik, Вы писали:

K>Пожалуйста не пинайте меня, профессиональные офисные программеры, лучше скажите – где-нибудь ещё может использоваться похожий стиль?


Конечно, это же типичный код на BASIC-e.
__________________________________
Не ври себе.
Re[6]: Нестандартный стиль быдлокодера
От: Vain Россия google.ru
Дата: 19.01.15 22:02
Оценка: 32 (1) +2
Здравствуйте, Sinix, Вы писали:

S>>>Кэп 2: эта проблема решается не кодом, а наличием ТЗ, соглашениями по стилю кода, историей в таск-трекере, правильным разделением задач в команде и ещё тонной других способов.

V>>и каким же образом тз, знание стиля и истории трекера поможет знать предметную область? я что-то пропустил в этой жизни?
S>Это вопрос чтоб докопаться или серьёзно?
Я абсолютно серьёзно и безподколок. Видишь ли, я этот тезис про нового человека не знакомого с кодом вообще, читаемость сего кода и соответственно лёгкость его правки как следствие его "читаемости" слышу уже не в первый раз. Но на практике почему-то выходит, что этого не достаточно, а тезис всё повторяют и повторяют, как испорченную пластинку. Вот мне стало и интересна, сфигали?

S>Вопрос странный какой-то. Такое впечатление, что ты увидел у меня в посте какой-то тайный смысл, который я не закладывал, и с ним споришь

я вроде бы выделил твоё утверждение, но навсякий случай ещё раз:

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


S>Если код читаем и снабжён комментами/тестами, то проблема, которую должен решать код, восстанавливается и без автора.

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

S>Ссылка на ТЗ/лог таск-трекера позволяет уточнить детали (в том числе "предметную область кода") + найти человека, который поможет разобраться с непонятными моментами.

тогда мне не понятно это:

код правится без обращения к автору кода любым из разработчиков в команде

[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Re[7]: Нестандартный стиль быдлокодера
От: Sinix  
Дата: 20.01.15 05:56
Оценка:
Здравствуйте, Vain, Вы писали:

V>Я абсолютно серьёзно и безподколок. Видишь ли, я этот тезис про нового человека не знакомого с кодом вообще, читаемость сего кода и соответственно лёгкость его правки как следствие его "читаемости" слышу уже не в первый раз. Но на практике почему-то выходит, что этого не достаточно, а тезис всё повторяют и повторяют, как испорченную пластинку. Вот мне стало и интересна, сфигали?

А блин, я выразился некорректно Сорри

Речь шла про человека в команде, который видит конкретно этот кусок кода в первый раз, а не весь код вообще

Ну и дальше пошли недоразумения. Если натянуть ситуацию на абсолютного новичка — конечно бред получается, ему ещё минимум две недели надо въезжать что и куда.
Re[2]: Нестандартный стиль быдлокодера
От: Aptekar Россия  
Дата: 20.01.15 08:17
Оценка:
Здравствуйте, jhfrek, Вы писали:

J>Мне всегда хочется убить подобных "экономистов", потому что ни брекпоинт не поставить, ни посмотреть как переменные меняются — каждая строчка как "черный ящик"


А как же всякая околофункциональщина с лямбдой и comprehensions?
Re[3]: Нестандартный стиль быдлокодера
От: Mamut Швеция http://dmitriid.com
Дата: 20.01.15 08:43
Оценка: +2
J>>Мне всегда хочется убить подобных "экономистов", потому что ни брекпоинт не поставить, ни посмотреть как переменные меняются — каждая строчка как "черный ящик"

A>А как же всякая околофункциональщина с лямбдой и comprehensions?


В лямбдах брейпойнты можно поставить, а list comprehensions обычно достаточно короткие, чтобы не вызывать проблем


dmitriid.comGitHubLinkedIn
Re[7]: Нестандартный стиль быдлокодера
От: Vlad_SP  
Дата: 20.01.15 08:53
Оценка: +1
Здравствуйте, Vain,

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


Нет, вот тут ты не прав. Знания в предметной области чаще всего вообще не связаны с кодом. И хоть обизучайся "достаточно значительную массу кода", но знаний именно в предметной области — не прибавится.
Re: Нестандартный стиль быдлокодера
От: diez_p  
Дата: 22.01.15 23:20
Оценка:
Здравствуйте, Khimik, Вы писали:
K>Я никогда не работал на работодателя, и у меня в ходе написания моей программы сформировался собственный стиль кода. Вот два фрагмента Delphi-кода моей программы:
Если это троллинг то он удался
Если же нет, то правильно говорят, что не умеешь ничего делать — иди в программисты. Программирование не производство — кривые руки компьютером не вырвет, а как хотелось бы как хотелось.
Re[3]: Нестандартный стиль быдлокодера
От: Khimik  
Дата: 25.01.15 06:54
Оценка:
Здравствуйте, elmal, Вы писали:

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


VF>>Надеюсь что нет.

E>Зря надеешься. Код после обработки обфускаторами конечно читается получше чем этот, но все таки стиль очень похож. Топикстартеру просто браво, я думал я все в этой жизни видел, меня ничем не удивить, по в плане метрик WTF в коде этот шедевр переплюнуть просто нереально. Первое место просто — такой стиль перебил класс с двумя методами на 10000 строк со сплошными копипастами и мешаниной табов из пробелов и сбившимися отсупами, а это нужно умудриться. И это еще тривиальный код, я полагаю автор на средней задаче в состоянии развернуться гораздо круче, чем здесь показал.

Я, между прочии, уже 9 лет зарабатываю на своей программе, и мой опыт говорит что мой стиль лучше стандартного, по крайней мере для меня.
"Ты должен сделать добро из зла, потому что его больше не из чего сделать". АБ Стругацкие.
Re[4]: Нестандартный стиль быдлокодера
От: __kot2  
Дата: 26.01.15 15:50
Оценка:
Здравствуйте, Khimik, Вы писали:
K>Я, между прочии, уже 9 лет зарабатываю на своей программе, и мой опыт говорит что мой стиль лучше стандартного, по крайней мере для меня.
и ты 9 лет остаешься на одном уровне?
Re[5]: Нестандартный стиль быдлокодера
От: Vaako Украина  
Дата: 26.01.15 16:02
Оценка:
Здравствуйте, __kot2, Вы писали:

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

K>>Я, между прочии, уже 9 лет зарабатываю на своей программе, и мой опыт говорит что мой стиль лучше стандартного, по крайней мере для меня.
__>и ты 9 лет остаешься на одном уровне?

Узкий специались, только он может прочитать что он написал.
Re[2]: Нестандартный стиль быдлокодера
От: xy012111  
Дата: 29.01.15 06:53
Оценка:
Здравствуйте, Sinix, Вы писали:

S>2. После того, как выяснится, что код решает не ту проблему и не так, код правится без обращения к автору кода любым из разработчиков в команде. Даже если он видит этот код в первый раз.

S>Что-то я не уверен, что со вторым пунктом у вас всё ок.

Эээээ. Вот давайте проведём мысленный эксперимент — я вам дам ссылку на ишью Розлина, а вы сначала проэстимейтите время, необходимое для фикса ишью, а потом попробуете это сделать? Ишью даже выберем уже закрытое, что бы сравнить ваши оценку/рельтат с тем, что потребовалось, скорее всего, автору кода. Мне кажется, серьёзных упрёков по стилю кодирования к тому проекту не будет.

Конечно, вы не один из команды, но дак ну и что? Во многих проектах _любой_ член команды может понятия не иметь что и как в соседних кусках. И выполнить требование того, что бы "любой" мог где угодно что поправить невозможно. Какую-то простейшую ошибку из разряда опечаток, off-by-one error и т.п. — конечно. Но что-то системное — сильно сомневаюсь. Где-то конечно такое возможно, но далеко не везде. Неоправданно много времени может уйти на изучение подсистемы, в которой необходимо внести правку.

В трёхзвенке, дапустим, тот, кто "клепает формочки" может сильно подпортить много чего, забравшись в веб-сервер или БД без должной квалификации и наоборот ("может", а не "обязательно сделает" :о)). Разве нет? У вас в команде почему таких проблем не возникает? И почему они не могут возникать в других командах?
Re: Нестандартный стиль быдлокодера
От: xy012111  
Дата: 29.01.15 07:00
Оценка:
Здравствуйте, Khimik, Вы писали:

K>Пожалуйста не пинайте меня, профессиональные офисные программеры, лучше скажите – где-нибудь ещё может использоваться похожий стиль?


Если вас заинтересовал стиль программирования – первым делом покурите Code Complete (http://www.cc2e.com/, http://www.combook.ru/product/10015183/ — кстати, редкий момент, когда книгу можно преобрести). Вовсе не обязательно перенимать как догму всё что там написано, но эта книга покажет методику, с которой нужно браться за обсуждение стиля кода.

Сравнив используемый вами стиль с предлагаемым автором и ознакомившись с аргументами автора вы сможете составить представление о том, что (и почему) о вашем коде может подумать другой программист в самом худшем случае :о) Потом приходите и можно будет обсудить более предметно.
Re[3]: Нестандартный стиль быдлокодера
От: Sinix  
Дата: 29.01.15 09:33
Оценка:
Здравствуйте, xy012111, Вы писали:

X>В трёхзвенке, дапустим, тот, кто "клепает формочки" может сильно подпортить много чего, забравшись в веб-сервер или БД без должной квалификации и наоборот ("может", а не "обязательно сделает" :о)). Разве нет? У вас в команде почему таких проблем не возникает? И почему они не могут возникать в других командах?

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

Чтобы не флудить попусту: прочитайте вот это сообщение
Автор: Кодт
Дата: 22.01.15
ув.Кодта. Он тот же вопрос расписал другими словами, я с его точкой зрения полностью согласен. (Ок, поскольку это рсдн, то примерно тот же вопрос и практически полностью.)
Re: Нестандартный стиль быдлокодера
От: Kudriako Украина  
Дата: 29.01.15 09:34
Оценка:
Здравствуйте, Khimik, Вы писали:

K>Я никогда не работал на работодателя, и у меня в ходе написания моей программы сформировался собственный стиль кода. Вот два фрагмента Delphi-кода моей программы:


Извините, а не Вы, случайно, автор вот этой замечательной игры? Там внизу первой страницы примеры кода
http://www.gamedev.ru/projects/forum/?id=160897
Уж очень стиль оформления кода похож.
Re[4]: Нестандартный стиль быдлокодера
От: xy012111  
Дата: 29.01.15 12:24
Оценка:
Здравствуйте, Sinix, Вы писали:

X>>В трёхзвенке, дапустим, тот, кто "клепает формочки" может сильно подпортить много чего, забравшись в веб-сервер или БД без должной квалификации и наоборот ("может", а не "обязательно сделает" :о)). Разве нет? У вас в команде почему таких проблем не возникает? И почему они не могут возникать в других командах?

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

S>Чтобы не флудить попусту: прочитайте вот это сообщение
Автор: Кодт
Дата: 22.01.15
ув.Кодта. Он тот же вопрос расписал другими словами, я с его точкой зрения полностью согласен. (Ок, поскольку это рсдн, то примерно тот же вопрос и практически полностью.)


Да ладно расстраиваться :о) просто употребляя слова "любой" и тому подобные нужно быть готовым, что их воспримут не так, как бы вам того хотелось бы. Это закономерно и даже ожидаемо должно быть. Тут многие долго и упорно мучили свой мозг различными науками, отсюда и склонность, согласен порою излишняя, к строгости формулировок.

Если в "код правится без обращения к автору кода любым из разработчиков в команде" под "любым" понимается "любой из разработчиков", работающих над этим же кодом плюс-минус, а "комнда" — это некая макрокоманда, что ли в узком смысле этого слова, то полностью с утверждением согласен
Re[5]: Нестандартный стиль быдлокодера
От: Sinix  
Дата: 29.01.15 13:18
Оценка:
Здравствуйте, xy012111, Вы писали:

X>Если в "код правится без обращения к автору кода любым из разработчиков в команде" под "любым" понимается "любой из разработчиков", работающих над этим же кодом плюс-минус, а "комнда" — это некая макрокоманда, что ли в узком смысле этого слова, то полностью с утверждением согласен

А, ну ок тогда

Как-то так сложилось, что везде, где я работал, под командой понималась собственно команда из 5-7 человек (девелоперы,аналитик,qa), которая собственно работала над определённым куском проекта (ну, или над отдельным проектом, если он мелкий). Если хоцца чётких определений, то что-то в стиле хирургической бригады по Бруксу.

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

Не, при желании можно собрать коллектив и побольше, но из практики — или всё фейлится, или люди сами собираются в небольшие команды. Других вариантов не встречал, если видели и оно работало на практике — делитесь, как вы так умудрились?
Re[6]: Нестандартный стиль быдлокодера
От: xy012111  
Дата: 29.01.15 15:58
Оценка: 14 (1)
Здравствуйте, Sinix, Вы писали:

S>Как-то так сложилось, что везде, где я работал, под командой понималась собственно команда из 5-7 человек (девелоперы,аналитик,qa), которая собственно работала над определённым куском проекта (ну, или над отдельным проектом, если он мелкий). Если хоцца чётких определений, то что-то в стиле хирургической бригады по Бруксу.


Да, вот как-то и "команда" в широком понимании (например, командs MSVS, Windows или SAP, даже "команда разработчиков Майкрософт") и команда в более узком понимании (команда language services нарпимер) обозначаются одним словом. А законы Мёрфи пока никто отменить не осмелился…

S>Не, при желании можно собрать коллектив и побольше, но из практики — или всё фейлится, или люди сами собираются в небольшие команды. Других вариантов не встречал, если видели и оно работало на практике — делитесь, как вы так умудрились?


Было другое — в проекте несколько ведущих программистов, пишущих раличные слабосвязанные куски (с остальными кусками общаются посредством интерфейсов/протоколов), и между собой регулярных ревью не проводящих, разве что по очень важным поводам. Они не взаимозаменяемы. И, опционально, некоторое количество "студентов", коммиты которых проходят ревью от соответствующего "ментора" и других "студентов". Понятно, что "студенты" получаются заменяемыми другими студентами и ментором. И это отлично работает (дай Бог здоровья ведущим).

Вот про такие небольшие команды, где все равноценно плюс-минус заменяемы — видеть не приходилось.
Re[2]: Нестандартный стиль быдлокодера
От: Khimik  
Дата: 29.01.15 20:30
Оценка:
Здравствуйте, Kudriako, Вы писали:

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


K>>Я никогда не работал на работодателя, и у меня в ходе написания моей программы сформировался собственный стиль кода. Вот два фрагмента Delphi-кода моей программы:


K>Извините, а не Вы, случайно, автор вот этой замечательной игры? Там внизу первой страницы примеры кода

K>http://www.gamedev.ru/projects/forum/?id=160897
K>Уж очень стиль оформления кода похож.

Нет, у меня программа Chemcraft.
"Ты должен сделать добро из зла, потому что его больше не из чего сделать". АБ Стругацкие.
Re: Нестандартный стиль быдлокодера
От: B0FEE664  
Дата: 03.02.15 13:51
Оценка:
Здравствуйте, Khimik, Вы писали:

K>Я никогда не работал на работодателя, и у меня в ходе написания моей программы сформировался собственный стиль кода. Вот два фрагмента Delphi-кода моей программы:

K>Здесь в браузере обрезаются строки, а так у меня в коде могут быть строки больше 500 символов.

Я не знаю, чем он вам удобен, но если записать с отступами, то сразу виден простор для оптимизации весь ужас этого кода, состоящий в том, что вызовы AddCustomVector производятся по совершенно магическим правилам завязанным на длину curstrings.

'v': 
    begin//Вектор
      et:=vetOneArrow;
      if curstrings.Count>7 then
        if lowercase(curstrings[7])='n' then
          et:=vetNoArrows;

      if curstrings.Count>8 then
        begin
          AddCustomVector(
                           vector(
                                  strtofloat(curstrings[1]),
                                  strtofloat(curstrings[2]),
                                  strtofloat(curstrings[3])
                                 ),
                           vector(
                                  strtofloat(curstrings[4]),
                                  strtofloat(curstrings[5]),
                                  strtofloat(curstrings[6])
                                 ),
                           false,
                           et,
                           strtofloat(curstrings[8]),
                           strtofloat(curstrings[9]),
                           floatcolor(
                                      strtofloat(curstrings[10]),
                                      strtofloat(curstrings[11]),
                                      strtofloat(curstrings[12])
                                     ),
                           strtofloat(curstrings[13])
                         );
        end
      else
        AddCustomVector(
                         vector(
                                strtofloat(curstrings[1]),
                                strtofloat(curstrings[2]),
                                strtofloat(curstrings[3])
                               ),
                         vector(
                                strtofloat(curstrings[4]),
                                strtofloat(curstrings[5]),
                                strtofloat(curstrings[6])
                               ),
                         true,
                         et,
                         0,
                         0,
                         floatcolor(0,0,0),
                         0
                       );
    end;//v
'p':
    begin//Плоскость
      pltransp:=true;
      if curstrings.Count>13 then
        if lowercase(curstrings[13])='n' then
          pltransp:=false;

      if curstrings.Count>14 then
        begin
          AddCustomPlane(
                          vector(
                                 strtofloat(curstrings[1]),
                                 strtofloat(curstrings[2]),
                                 strtofloat(curstrings[3])
                                ),
                          vector(
                                 strtofloat(curstrings[4]),
                                 strtofloat(curstrings[5]),
                                 strtofloat(curstrings[6])
                                ),
                          vector(
                                 strtofloat(curstrings[7]),
                                 strtofloat(curstrings[8]),
                                 strtofloat(curstrings[9])
                                ),
                          vector(
                                 strtofloat(curstrings[10]),
                                 strtofloat(curstrings[11]),
                                 strtofloat(curstrings[12])
                                ),
                          false,
                          floatcolor(
                                     strtofloat(curstrings[14]),
                                     strtofloat(curstrings[15]),
                                     strtofloat(curstrings[16])
                                    ),
                          strtofloat(curstrings[17]),
                          pltransp
                        );
        end
      else
        AddPlane(
                  vector(
                          strtofloat(curstrings[1]),
                          strtofloat(curstrings[2]),
                          strtofloat(curstrings[3])
                        ),
                  vector(
                          strtofloat(curstrings[4]),
                          strtofloat(curstrings[5]),
                          strtofloat(curstrings[6])
                        ),
                  vector(
                          strtofloat(curstrings[7]),
                          strtofloat(curstrings[8]),
                          strtofloat(curstrings[9])
                        ),
                  vector(
                          strtofloat(curstrings[10]),
                          strtofloat(curstrings[11]),
                          strtofloat(curstrings[12])
                        ),
                  0,
                  false
                );
    end;//p
И каждый день — без права на ошибку...
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.