Re[2]: Говнокод
От: De-Bill  
Дата: 16.01.18 11:09
Оценка:
R>признак сложности это отсутствие SOLID

Засилье SOLID в конторе зачастую говорит о том, что там работают свидетели определённой секты, которые пишут тот ещё говнокод, хоть и по определённым принципам. Думаю, не далеко то время, когда от SOLID останется одна только первая буква S, а остальные буквы будут выкинуты на помойку.
Re[3]: Говнокод
От: mgu  
Дата: 16.01.18 23:46
Оценка:
Здравствуйте, De-Bill, Вы писали:

R>>признак сложности это отсутствие SOLID


DB>Засилье SOLID в конторе зачастую говорит о том, что там работают свидетели определённой секты, которые пишут тот ещё говнокод, хоть и по определённым принципам. Думаю, не далеко то время, когда от SOLID останется одна только первая буква S, а остальные буквы будут выкинуты на помойку.


А жаль, хорошая аббревиатура, говорящая, позволяет отличить твёрдый от жидкого.
Re: Говнокод
От: Iron Monkey  
Дата: 17.01.18 09:32
Оценка:
Роман, тебя же вроде за говнокод и уволили?
Re[2]: Говнокод
От: RussianFellow Россия http://russianfellow.livejournal.com
Дата: 17.01.18 10:20
Оценка:
Здравствуйте, Iron Monkey, Вы писали:

IM>Роман, тебя же вроде за говнокод и уволили?


Нет, за говнокод меня никогда не увольняли.
Но меня просто интересует эта тема.
1613 г. = 2024 г.
Re[3]: Говнокод
От: Amon_RA Россия  
Дата: 17.01.18 10:28
Оценка: +1
Здравствуйте, RussianFellow, Вы писали:

RF>Но меня просто интересует эта тема.


Интересоваться надо не говнокодом, а хорошим кодом. Писать говнокод усилий не нужно, оно по дефолту есть в любом программисте. А вот писать хороший код — это надо учиться и заставлять себя. «Отстранитесь от зла, научитесь добру» — злу учиться не надо, оно и так в нас. А вот доброму коду надо учиться.
Re: Говнокод
От: Lepsik Индия figvam.ca
Дата: 17.01.18 13:56
Оценка:
RF>Что является говнокодом? Каковы его критерии?

int k =1;
if( k.ToString() == "1" )
{
......
}

RF>И как исправлять говнокод на нормально смотрящийся код?


Полное покрытие unit тестами дисциплинирует в написании качественного — хорошо смотрящего кода.
Re: Говнокод
От: Vladek Россия Github
Дата: 18.01.18 08:27
Оценка:
Здравствуйте, RussianFellow, Вы писали:

RF>Что является говнокодом? Каковы его критерии?

Любой код, только что написанный.
RF>Как часто встречается говнокод в вашей практике? Много ли говнокодеров вы встречали?
Много.
RF>Что делают на работе с говнокодом и говнокодерами? Увольняют ли говнокодеров? Если да, то как часто такое встречается?
Им платят зарплату.
RF>И как исправлять говнокод на нормально смотрящийся код?
Перечитывать, думать о нём, переписывать. Если код писать только один раз и потом к нему не возвращаться, он будет говно-кодом по определению.
Re: Запахи кода
От: SaZ  
Дата: 18.01.18 10:25
Оценка: 7 (2)
Здравствуйте, RussianFellow, Вы писали:

RF>В этой теме, уважаемые коллеги. я хотел бы обсудить такое понятие, как говнокод.


RF>Что является говнокодом? Каковы его критерии?

RF>Как часто встречается говнокод в вашей практике? Много ли говнокодеров вы встречали?
RF>Что делают на работе с говнокодом и говнокодерами? Увольняют ли говнокодеров? Если да, то как часто такое встречается?

RF>И как исправлять говнокод на нормально смотрящийся код?


Ответы есть тут — Запахи кода
Re[2]: Говнокод
От: GarryIV  
Дата: 18.01.18 10:48
Оценка: +1
Здравствуйте, Lepsik, Вы писали:

L>Полное покрытие unit тестами дисциплинирует в написании качественного — хорошо смотрящего кода.


Оно зачастую приводит к удвоению говнокода.
WBR, Igor Evgrafov
Re[2]: Говнокод
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 18.01.18 14:08
Оценка:
Здравствуйте, Amon_RA, Вы писали:

A_R>Это когда открыв один единственный файл из проекта не в IDE, а в блокноте, ты не можешь понять, что это вообще такое и зачем это надо


Например ffplay.
Что делает? Проигрывает видео, аудио и показывает субтитры из файлов или по сети. Практически образец использования практически самой популярной в мире библиотеки (ffmpeg). Кроссплатформенная.
Что там есть? Там есть многопоточность, потокобезовасные очереди, C-style ООП. Вроде как всё круто. По описанию на говнокод не похоже.

Можно ли понять, что делает программа по листингу? Мне кажется что да, всё неплохо структурировано.
Оно работает? Да, безусловно. Причём на куче различных платформ.

По данному критерию, это не говнокод.

Но!
Но 62 goto в одном файле, некоторые из них служат для обработки ошибок. Но есть несколько и для реализации логики.
Но 3743 строк в одном файле.
Но около 50 глобальных переменных (по факту больше, ещё в cmdutils несколько).
Разобраться в деталях логики бывает ну очень сложно.

Получается всё таки говнокод.

Или нет? Думаю, что твой критерий неверен.

A_R>Исправлять? Думается, что никак. Переименовать классы и переменные и привести к единому стилю — этого мало. В говнокоде зависимости и сама архитектура тоже говенные. А это уже просто так не исправить.

A_R>Аккуратность надо в себе воспитывать с самого начала.

Тут тоже не согласен. Возьмём этот же пример с ffplay. Очевидно, что можно разнести классы с методами (по факту структуры с функциями, принимающими первыми параметрами указатель на себя) по разным файлам, убрать глобальные переменные, убрать goto-логику и получится отличный код. Повторюсь, что он отлично структурирован логически, простейшее ООП в самописном виде тут помогает.
Так что исправлять можно и нужно.
Re[2]: Говнокод
От: Слава  
Дата: 18.01.18 14:25
Оценка:
Здравствуйте, Iron Monkey, Вы писали:

IM>Роман, тебя же вроде за говнокод и уволили?


Обобщая — за говнокод еще никого и никогда не увольняли.
Re[3]: Говнокод
От: koenig  
Дата: 18.01.18 15:05
Оценка:
Здравствуйте, Слава, Вы писали:

С>Здравствуйте, Iron Monkey, Вы писали:


IM>>Роман, тебя же вроде за говнокод и уволили?


С>Обобщая — за говнокод еще никого и никогда не увольняли.


знаю исключения
Re[4]: Говнокод
От: RussianFellow Россия http://russianfellow.livejournal.com
Дата: 24.01.18 13:15
Оценка:
Здравствуйте, koenig, Вы писали:

С>>Обобщая — за говнокод еще никого и никогда не увольняли.


K>знаю исключения


Не могли бы Вы рассказать про эти случаи?
1613 г. = 2024 г.
Re[5]: Говнокод
От: koenig  
Дата: 24.01.18 13:20
Оценка:
Здравствуйте, RussianFellow, Вы писали:

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


С>>>Обобщая — за говнокод еще никого и никогда не увольняли.


K>>знаю исключения


RF>Не могли бы Вы рассказать про эти случаи?


считаю, это было бы неэтично с моей стороны
Re[6]: Говнокод
От: RussianFellow Россия http://russianfellow.livejournal.com
Дата: 25.01.18 07:57
Оценка:
Здравствуйте, koenig, Вы писали:

RF>>Не могли бы Вы рассказать про эти случаи?


K>считаю, это было бы неэтично с моей стороны


А в личку не могли бы сбросить мне рассказ об этом?
1613 г. = 2024 г.
Re[7]: Говнокод
От: koenig  
Дата: 25.01.18 08:21
Оценка:
Здравствуйте, RussianFellow, Вы писали:

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


RF>>>Не могли бы Вы рассказать про эти случаи?


K>>считаю, это было бы неэтично с моей стороны


RF>А в личку не могли бы сбросить мне рассказ об этом?


я бы и при личной встрече деталей не выдал бы
нехорошо так с коллегами поступать
Re[8]: Говнокод
От: RussianFellow Россия http://russianfellow.livejournal.com
Дата: 25.01.18 08:48
Оценка:
Здравствуйте, koenig, Вы писали:

RF>>А в личку не могли бы сбросить мне рассказ об этом?


K>я бы и при личной встрече деталей не выдал бы

K>нехорошо так с коллегами поступать

Ладно, тогда не надо.
1613 г. = 2024 г.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.