Засилье SOLID в конторе зачастую говорит о том, что там работают свидетели определённой секты, которые пишут тот ещё говнокод, хоть и по определённым принципам. Думаю, не далеко то время, когда от SOLID останется одна только первая буква S, а остальные буквы будут выкинуты на помойку.
Здравствуйте, De-Bill, Вы писали:
R>>признак сложности это отсутствие SOLID
DB>Засилье SOLID в конторе зачастую говорит о том, что там работают свидетели определённой секты, которые пишут тот ещё говнокод, хоть и по определённым принципам. Думаю, не далеко то время, когда от SOLID останется одна только первая буква S, а остальные буквы будут выкинуты на помойку.
А жаль, хорошая аббревиатура, говорящая, позволяет отличить твёрдый от жидкого.
Здравствуйте, RussianFellow, Вы писали:
RF>Но меня просто интересует эта тема.
Интересоваться надо не говнокодом, а хорошим кодом. Писать говнокод усилий не нужно, оно по дефолту есть в любом программисте. А вот писать хороший код — это надо учиться и заставлять себя. «Отстранитесь от зла, научитесь добру» — злу учиться не надо, оно и так в нас. А вот доброму коду надо учиться.
Здравствуйте, RussianFellow, Вы писали:
RF>Что является говнокодом? Каковы его критерии?
Любой код, только что написанный. RF>Как часто встречается говнокод в вашей практике? Много ли говнокодеров вы встречали?
Много. RF>Что делают на работе с говнокодом и говнокодерами? Увольняют ли говнокодеров? Если да, то как часто такое встречается?
Им платят зарплату. RF>И как исправлять говнокод на нормально смотрящийся код?
Перечитывать, думать о нём, переписывать. Если код писать только один раз и потом к нему не возвращаться, он будет говно-кодом по определению.
Здравствуйте, RussianFellow, Вы писали:
RF>В этой теме, уважаемые коллеги. я хотел бы обсудить такое понятие, как говнокод.
RF>Что является говнокодом? Каковы его критерии? RF>Как часто встречается говнокод в вашей практике? Много ли говнокодеров вы встречали? RF>Что делают на работе с говнокодом и говнокодерами? Увольняют ли говнокодеров? Если да, то как часто такое встречается?
RF>И как исправлять говнокод на нормально смотрящийся код?
Здравствуйте, Amon_RA, Вы писали:
A_R>Это когда открыв один единственный файл из проекта не в IDE, а в блокноте, ты не можешь понять, что это вообще такое и зачем это надо
Например ffplay.
Что делает? Проигрывает видео, аудио и показывает субтитры из файлов или по сети. Практически образец использования практически самой популярной в мире библиотеки (ffmpeg). Кроссплатформенная.
Что там есть? Там есть многопоточность, потокобезовасные очереди, C-style ООП. Вроде как всё круто. По описанию на говнокод не похоже.
Можно ли понять, что делает программа по листингу? Мне кажется что да, всё неплохо структурировано.
Оно работает? Да, безусловно. Причём на куче различных платформ.
По данному критерию, это не говнокод.
Но!
Но 62 goto в одном файле, некоторые из них служат для обработки ошибок. Но есть несколько и для реализации логики.
Но 3743 строк в одном файле.
Но около 50 глобальных переменных (по факту больше, ещё в cmdutils несколько).
Разобраться в деталях логики бывает ну очень сложно.
Получается всё таки говнокод.
Или нет? Думаю, что твой критерий неверен.
A_R>Исправлять? Думается, что никак. Переименовать классы и переменные и привести к единому стилю — этого мало. В говнокоде зависимости и сама архитектура тоже говенные. А это уже просто так не исправить. A_R>Аккуратность надо в себе воспитывать с самого начала.
Тут тоже не согласен. Возьмём этот же пример с ffplay. Очевидно, что можно разнести классы с методами (по факту структуры с функциями, принимающими первыми параметрами указатель на себя) по разным файлам, убрать глобальные переменные, убрать goto-логику и получится отличный код. Повторюсь, что он отлично структурирован логически, простейшее ООП в самописном виде тут помогает.
Так что исправлять можно и нужно.
Здравствуйте, Слава, Вы писали:
С>Здравствуйте, Iron Monkey, Вы писали:
IM>>Роман, тебя же вроде за говнокод и уволили?
С>Обобщая — за говнокод еще никого и никогда не увольняли.
Здравствуйте, RussianFellow, Вы писали:
RF>Здравствуйте, koenig, Вы писали:
С>>>Обобщая — за говнокод еще никого и никогда не увольняли.
K>>знаю исключения
RF>Не могли бы Вы рассказать про эти случаи?
Здравствуйте, RussianFellow, Вы писали:
RF>Здравствуйте, koenig, Вы писали:
RF>>>Не могли бы Вы рассказать про эти случаи?
K>>считаю, это было бы неэтично с моей стороны
RF>А в личку не могли бы сбросить мне рассказ об этом?
я бы и при личной встрече деталей не выдал бы
нехорошо так с коллегами поступать
Здравствуйте, koenig, Вы писали:
RF>>А в личку не могли бы сбросить мне рассказ об этом?
K>я бы и при личной встрече деталей не выдал бы K>нехорошо так с коллегами поступать