Войти
ФлеймФорумПрограммирование

Что не есть "говнокод" ? (7 стр)

Страницы: 16 7 8 912 Следующая »
#90
3:39, 1 фев. 2012

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

Грубо говоря, у тебя есть код: ABHKSBADKB, путем преобразований ты получил ABBB/ABBC.
Ок, теперь достаточно понять принцип ABBB, чтобы потом легко допереть и до ABBC. Как в математике.
А если нет возможности объединить все в ABB{B|C} - Ну, что же, это уже не наша проблема, а языка, как ты говоришь.


#91
3:45, 1 фев. 2012

Sh.Tac.
> хорошим объективным критерием является например скорость исполнения такого кода : )
Я часто меняю свой код. Совершенствую, исправляю, приспосабливаю.
И для меня главным критерием является время, затрачиваемое на внесение в него изменений.
Пока код меняется - он жив. Код, который очень сложно изменить - считай труп.

#92
10:32, 1 фев. 2012

Sh.Tac.
> это субъективный критерий, зависит от навыков читающего, в последнее время эти
> навыки в среднем неуклонно снижаются для простоты (или от лени)
> хорошим объективным критерием является например скорость исполнения такого кода : )
Т.е. код на Питоне всегда говнокод по определению (если сравнивать с аналогичным кодом на ассемблере)?

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

#93
13:22, 1 фев. 2012
Изображение
#94
14:02, 1 фев. 2012

kipar
> код на Питоне всегда говнокод по определению (если сравнивать с аналогичным
> кодом на ассемблере)?
разумеется надо сравнивать питон с питоном и асм с асмом
просто всегда найдётся программаст который не врубит даже в годный код : )

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

З.Ы. большая часть говнокода получается именно так, человек уверенно пишет на одном языке в стиле другого : )

#95
18:14, 1 фев. 2012

Sh.Tac.
> он должен быть правильным (не содержать ошибок) и лаконичным

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

Этим и отличается красивый код от говнокода. Красивый - хорошо читается, и хорошо понимается. Чему способствую комментарии, красивые имена, красивые отступы, красивое отделение деклараций от реализаций, красивая документация, и бла бла бла.

#96
8:21, 2 фев. 2012

Zy:

#define эт это // не обращайте внимания на это, просто я не доверяю своему компилятору)))
эт> не есть "говнокод"

Маг
> Допустим, это проблема языка
> Я часто меняю свой код
я рыдаю Изображение
kipar
> Читаемость и легкость модификации кода обычно важнее,
кто бы сомневался.

Как говаривал мой дедушка: "эт мой дедушка ТУТ зарыл, поэт эт МОЁ"

А как нам(среди них был и я) читал(рэпил(про слепого кота, А?))лекции наш(в их числе и мой) учитель по информатике:
"
    Скобки эт неглавное(не и главное пишуТься вместе, п.ч. есть второстепенное).
!  90персентов эт тока поставить задачу. Ну, как раз  эт, однако, и не очевидно,
    НО! э тО так!
!  9центов эт на проектирование, декомпозицию, алгоритмизацию. Одним словом общее
    здесь вторая буква в стеке.
!  а адин полкопейки, это тута, в этом большом деле, как раз на ваши
    , Многоуважаемые,многоуважаемые скобки иль там отступы: то ли 4, то ли 8, аль таб, т.е. на то,
    что вы называете кодингом::: смешно))))
    Если изменить этот порядок, то мы как раз и будем получать  отдачу гонокодиной)
"
Поставить задачу эт Очень важно! Если здесь будет недобор, то всё проектирование полетит насмАрку(эт када мимо арки). А если полетит проектирование ВСЕ будут иметь говнокоД(т).

Моно долго распинаться тут, но всёж посоветую почитать Дейкстру: кто его прочел,
тот поймёт мЯ, иль будет продолжать тылдычиться на своём:
Маг
> Допустим, эт проблема языка
? )))

Kartonagnick
> Маг
> Мерзость! Мерзкий код! Фу! Фу! Фу! Текст вообще не читабельный! Логика
> ветвлений вообще никак не очевидна!

Эй?! Вы чё там провожаете? понимаю: адванст ацкий(hell) World
Соглашусь, логика не очевидна, НО, мне на скобки, если мягко выразиться(мог и твёрже, если я был этВо коТа сопроводителем):
Большой Стакан об асфальт: мне не очевидно здесь, что эт за Событие такое -
before
и что за эти Состояния, в которые оно(событие)его  переводит.
Тут должны быть обширные комменты. +
код выглядеть так:

if (before!=0)  { condition_ЛЯЛЯ();} 
else            { condition_СИСИ();} // во! симметрия просто прёт)))

Меня интересует, ЧТО эт за событие before, и ЧТО эт за состояния: ЛЯЛЯ и СИСИ в общем контексте задачи???
Будет абсолютно верно, когда моя мысль подопрёт решение, а не реализацию в её где-то там на дне канализации),
а остальное, типА скобок и
> left->prev!=0) ? { left->prev->next = left } : { dd->lfoot = left };
мне насрать хоть с тернаром, хоть и без тернара ТОчка.

да.

В три строчки всё не уместишь про эт: про ваш гавнокоМ..)

PS: смеюсь...

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

#97
18:56, 2 фев. 2012

Rooctor
Забыл в конце добавить "З павагай".

#98
19:04, 2 фев. 2012

Сообщение Rooctor можно считать примером говнокода: вроде по-русски пишет, но нихира не понять!
Логика у Rooctor совсем не_очевидная, да...

#99
20:17, 2 фев. 2012

Kartonagnick
> вроде по-русски пишет, но нихира не понять!
Для тех кто хочет записаться на приём к нихиру или просто для лучшего взаимопонимания:

+ Показать

(при входе не забываем снимать ортопеды.)


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

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

#100
20:25, 2 фев. 2012

Rooctor, варианта "использую нечто, отличное от UML" не рассматривается?
Кстати, тема проектирования, и тема говнокода - это две перпендикулярные темы, и не нужно их путать.

#101
21:35, 2 фев. 2012

Kartonagnick
> тема проектирования, и тема говнокода - это две перпендикулярные темы, и не
> нужно их путать

fsmoke своим примером опровергает такой подход, когда пишет о потерянных исходниках и оставшихся на их базе объектниках. Вот бы он удивился, когда бы заглянул в эти исходники: <<БА!! Во мля, да тут оказывается всё на галимом барсике...>> )))
И что? какая кому разнится на то с каким там синтаксисом приправлено? Есть модуль, инкапсулирующий  некий назначенный ему функционал, который прекрасно делает свою работу.  У модуля есть доходчиво прокомментированный интерфейс. И что ещё нужно для того что бы радостно встретить счастливую старость?))

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

#102
21:53, 2 фев. 2012

Rooctor
> Плохо спроектированная система порождает говнокод, да и вообще это сиамские
> близнецы, т.е. одно и тоже, почти как синонимы.

Вообще то, fsmoke своими примером даёт понять, что при грамотно спланированной архитектуре можно запросто плодить говнокод, и не переживать по поводу развития, и сопровождения. Ущерб от него будет минимальный.

#103
22:06, 2 фев. 2012

Kartonagnick
> даёт понять

вот именно, что тема говнокода просто улетучивается, и вообще была ли она?
как выясняется: тема эта просто высосана из не понятно чего, если её не рассматривать  в контексте общей задачи.))
Ну как ты можешь чавото там оценивать, если сам исходник отсутствует???
И даже более того: и как здорово, что он отсутствует. Какая экономия временных затрат для тех, кто будет сопровождать!

#104
22:56, 2 фев. 2012

Rooctor
> тема говнокода просто улетучивается, и вообще была ли она?

Естественно. Даже при хорошей архитектуре говнокод говнокодом быть не перестает.
Это дает о себе знать, когда возникает необходимость читать и поддерживать чужой код. (см пост #93)

Вообще, вот написал человек код. Все работает. Готовый класс, или модуль. Можно пользовать.
Моя полагать, щито затратить аще 5-10 минут на то, что бы облагородить код, сделать его просто визуально более читабельным, сделать красивые комментарии, и тп - от программиста не убудет. Это можно сделать одновременно с документированием модуля.

И потраченные на это лишнее 5-10 минут с лихвой компенсируются выигрышем по времени, когда другой человек будет читать этот код, что бы его сопровождать.
Здесь есть ключевой момент: что бы понять, как работает код, его  можно читать. А можно исследовать.
На придание коду красивости может уйти 5-10 минут, а на исследование кода в будущем (вместо чтения) может уйти в 10-100-1000 раз больше времени.

Страницы: 16 7 8 912 Следующая »
ФлеймФорумПрограммирование

Тема в архиве.