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

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

Страницы: 14 5 6 712 Следующая »
#60
0:01, 26 янв. 2012

еще не постили? )
Изображение


#61
7:51, 26 янв. 2012

Идеальный код должен легко читаться, максимально просто меняться, требовать минимума времени на первичное написание и при всём при этом ещё и никогда не глючить при исполнении. Если хоть одним свойством код не обладает, то он как минимум не идеален. Не можешь достичь идеала на большом сложном проекте? Эйси. Хотя бы стремись к идеалу, чем ближе твой код к нему будет, тем, соответственно, он будет дальше от дряни. Ну а проекты уровня

10 INPUT "x=";x
20 LET y=SIN(x)
30 PRINT "y=";y
40 GOTO 10
должны быть идеальны, чтоб просто зваться даже начинающим программистом.

#62
8:44, 26 янв. 2012

Kartonagnick
> А вот если бы вы разрабатывали его полностью с нуля
Наверное да

Дык в этом и прикол - не был бы я директором и не стоила бы ничего наша команда - если б у меня не было коллосального опыта в системах безопасности :)).

Моя идея проста:
1) разрабатываем общую арх. приложения.
2) декомпозируем задачу на мелкие
3) раздаем народу по задачке
4) все начинают писать - причем чем быстрее тем лучше(пофиг на говнокод)
5) как основные вещи готовы - пытаемся собрать лего
6) тестирование внутри отдела разработки
7) отдаем тестировщикам
8) правим критичные баги - на некритичные забиваем
9) тестируем ещё раз
10) сборка дистрибутива
11) документация (паралельно со свеми пунктами - например пишут тестировщики в свободное от тестов время)
12) релиз 1.0
13) продажи :))
14) делим команду на багеров и фичеров
15) фичеры дальше говнокодят новые задачи
16) багеры на тех поддержку - и в фоне рефакторят говнокод....
....
....
....
N) Релиз 2.0 или хотябы 1.1
....
....
....
N+100500) Утопия, светлое будущее и свет в конце тоннеля - продукт хорошо продается и совсем без говнокода :)))))))))))))))

это конечно оочень грубо и многие моменты пропущены - но как-то так.

#63
9:51, 26 янв. 2012

Xunter
> еще не постили? )

Во! Вотафаки-в-минуту - самое оно для измерения говнистости кода!

#64
23:38, 26 янв. 2012

killbot [Mike P]
> Вотафаки-в-минуту - самое оно для измерения говнистости кода
Кармаковский глядел?
там даже в комментах не редкость : )

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

#65
0:24, 27 янв. 2012

fsmoke испортил мне настроение.
Кажется придётся всю жизнь ездить на триальном моде вместо спорткара и писать говно.

#66
13:41, 27 янв. 2012

Division
> Кажется придётся всю жизнь ездить на триальном моде вместо спорткара и писать
> говно.

«Тебе нужно бежать изо всех сил, чтобы оставаться на том же месте. Если ты хочешь получить что-нибудь еще, то ты должна бежать в два раза быстрее»

Л. Кэрролл «Алиса в стране чудес»

#67
14:28, 29 янв. 2012

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

Самый простой пример функции InsertBefore/InsertAfter. Каждую можно сделать разными способами, но фишка в том, чтобы сделать обе идентичными между собой, а вариантами только в значениях выражений, а структура (топология) кода была одинакова. Но это очевидный пример, а есть множество других, где симметрия не так очевидна, ее сложно найти, но если нашел, то код становится намного проще и читабельней. Менее очевидным примером является оператор switch. В чем там симметрий ? В том, что условие case всегда - const int, а в if может быть все что угодно. Соот-но case-блоки обладают большей симметрией, более аналогичны и потому легче читаются.

#68
19:17, 29 янв. 2012

Маг
> а вариантами только в значениях выражений, а структура (топология) кода была
> одинакова
это следствие ограниченности языка, в котором нельзя выделить "топологию кода" для повторного использования.
в идеале любые "симметрии" и подобия должны выражаться в чистом виде в терминах языка.
вообще http://en.wikipedia.org/wiki/Don't_repeat_yourself
- а самоповторения - это либо ограниченность средств языка, либо как раз признак говнокода.
идеальный код - "несжимаемый".

#69
21:34, 29 янв. 2012

Barabus
У меня аналогичная ситуация - конвертер форматов моделей. Нагородил крутой ООП а потом стало понятно, что это притянуто за уши.
Программа слишком мала, достаточно языка С.

#70
1:47, 30 янв. 2012

Гавнокод - код, который работает.
Хороший код - код, который вы собираетесь написать.

#71
3:59, 30 янв. 2012

Pokimon
Любой код работает. Говнокодистость проявляется при попытке развивать или сопровождать код.

#72
12:58, 30 янв. 2012

fsmoke
> 4 года назад группа гуру из бауманки пыталась повторить успех
"Cемён-на, мне вчера дед секис показывал под забором, так фигня он, секис этот."

#73
15:16, 30 янв. 2012

Xunter
> это следствие ограниченности языка, в котором нельзя выделить "топологию кода" для повторного использования.
Извини, но ты, видимо, не совсем понял идею. Вот тебе пример кода, который я на днях написал:

+ Показать

Две симметричные части. Чего там выделять для "повторного использования" ? И главное - зачем ???
Это просто код, но обе части, верхняя и нижняя, приведены к подобию. И чтобы выявить эту симметрию, мне пришлось подумать.
Зато в итоге мне это помогло ошибку, так как вы одном из блоков сразу в глаза бросился лишний элемент.
#74
18:45, 30 янв. 2012

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

Сразу чувствуется богомерзкое сишное наследние: фигурные скобки через жёпу, так, что бы без 100 грамм было не ясно, где блок начинается, а где заканчивается.
На что должны реагировать блоки, код - не документирует.

Вот тебе пример хорошего кода:

+ Показать
Страницы: 14 5 6 712 Следующая »
ФлеймФорумПрограммирование

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