[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Что такое говнокод?
Страницы: 1, 2, 3, 4, 5
Миша
Комментарии, функции, ошибки, пробелы или что.

_____________
Принимаю заказы, писать в ЛС
brevis
Это код, который написал не ты.

_____________
Чатик в телеге
chee
Медведь,
1. Отсутствие нормальных алгоритмов;
2. Отсутствие нормального оформления.

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
sergeiss
Цитата (Медведь @ 22.02.2015 - 15:20)
Комментарии, функции, ошибки, пробелы или что.

Анекдот в тему...

Мама с мелкой дочкой собрались гулять. Дочка в последний момент говорит, что только возьмет свою новую куклу, которую "на улице нашла вчера". Убегает, прибегает с куклой. Кукла вся грязная, нога оторвана, глаза нет, волосы всклоченные... Мама увидела куклу, не сдержалась: "Фубля!!!". Дочка: "Вот-вот, и папа ее также назвал!" wink.gif

Говнокод - это когда сделано заведомо неоптимально. Это если кратко.

Примеры говнокодов (в работающих скриптах), что я видел и что приходилось переделывать по-нормальному.

1. Есть файл ПХП. Объемом порядка 2000 строк. Внутри формируется код JS, в виде символьной строки. Объем порядка 900-1000 строк скрипта. В то же время, для передачи данных из ПХП в JS надо прописать всего 5-10 переменных, а остальное легко и просто перемещается в отдельный файл JS. И так сделано штук 10 скриптов...
Да еще, там в каждом скрипте прописано много идентичных функций.

2. Используется аякс. Имеется файл с функциями, которые используются аяксом. Где-то 20-30 функций, из которых за один заход используется только одна. Общий объем файла порядка 200К... Там пришлось переделывать всю систему, в т.ч. раскидывать функции по отдельным файлам.

3. Имеется множество функций ПХП, находящихся в одном большом файле. Практически каждая функция - отклик системы на определенный запрос с определенным GET-параметром. И КАЖДАЯ из функций формирует целиком всю веб-страницу, включая все заголовки, подключение JS и т.д.

4. Смесь ин-лайн стилей и нормальных стилей...

Список можно продолжать долго smile.gif И кстати, все эти пп.1-4 - это всё в рамках одного и того же проекта, который мне достался "по наследству". И это далеко не полный перечень говнокода, который пришлось там переделывать.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
YVSIK
Цитата (Медведь @ 22.02.2015 - 15:20)
Что такое говнокод?

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

_____________
«Гнусное свойство карликовых умов приписывать
________________!свое духовное убожество другим!»
___
О) как-же он прав=>__________________ © Оноре де Бальзак.

отличный хост(рекомендую !! )
My MVC-CMV
vagrand
Вот ссыл на ленту говнокодов, которые мне самому доводилось видеть:
http://govnokod.ru/user/5549/codes

_____________
Senior PHP developer: PHP5, MySQL, JavaScript, CakePHP, Yii/Yii2, Zend Framework, Smarty, XML/Xslt, JQuery, Jquery Mobile, Bootstrap, ExtJS, HTML, HTML5, CSS, Linux, SVN, Git, Memcached, Redis, MongoDB, Zend Guard, Ioncube, FFMpeg, PayPal, Webmoney, Qiwi, Facebook API, Vkontakte Api, Google API, Twitter Api, Steam Api.
Junior Android Developer: Android SDK, многопоточность, работа с HTTP запросами, JSON, SQLite, фрагменты.
FatCat
Пример говнокода, который был в движке нашего форума:
	function show_gif_img($this_number="")
{
global $ibforums, $DB;

$numbers = array( 0 => 'R0lGODlhCAANAJEAAAAAAP////4BAgAAACH5BAQUAP8ALAAAAAAIAA0AAAIUDH5hiKsOnmqSPjtT1ZdnnjCUqBQAOw==',
1 => 'R0lGODlhCAANAJEAAAAAAP////4BAgAAACH5BAQUAP8ALAAAAAAIAA0AAAIUjAEWyMqoXIprRkjxtZJWrz3iCBQAOw==',
2 => 'R0lGODlhCAANAJEAAAAAAP////4BAgAAACH5BAQUAP8ALAAAAAAIAA0AAAIUDH5hiKubnpPzRQvoVbvyrDHiWAAAOw==',
3 => 'R0lGODlhCAANAJEAAAAAAP////4BAgAAACH5BAQUAP8ALAAAAAAIAA0AAAIVDH5hiKbaHgRyUZtmlPtlfnnMiGUFADs=',
4 => 'R0lGODlhCAANAJEAAAAAAP////4BAgAAACH5BAQUAP8ALAAAAAAIAA0AAAIVjAN5mLDtjFJMRjpj1Rv6v1SHN0IFADs=',
5 => 'R0lGODlhCAANAJEAAAAAAP////4BAgAAACH5BAQUAP8ALAAAAAAIAA0AAAIUhA+Bpxn/DITL1SRjnps63l1M9RQAOw==',
6 => 'R0lGODlhCAANAJEAAAAAAP////4BAgAAACH5BAQUAP8ALAAAAAAIAA0AAAIVjIEYyWwH3lNyrQTbnVh2Tl3N5wQFADs=',
7 => 'R0lGODlhCAANAJEAAAAAAP////4BAgAAACH5BAQUAP8ALAAAAAAIAA0AAAIUhI9pwbztAAwP1napnFnzbYEYWAAAOw==',
8 => 'R0lGODlhCAANAJEAAAAAAP////4BAgAAACH5BAQUAP8ALAAAAAAIAA0AAAIVDH5hiKubHgSPWXoxVUxC33FZZCkFADs=',
9 => 'R0lGODlhCAANAJEAAAAAAP////4BAgAAACH5BAQUAP8ALAAAAAAIAA0AAAIVDA6hyJabnnISnsnybXdS73hcZlUFADs=',
);


flush();
@header("Content-type: image/gif");
echo base64_decode($numbers[ $this_number ]);
exit();


}

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

_____________
Бесплатному сыру в дырки не заглядывают...
stump
Говнокод - вид троллинга!

_____________
Трус не играет в хокей
paul85
Вот тут ГОВНОКОДИЩЕ!

https://github.com/2b3ez/FileManager4TinyMC...ins/filemanager

Только вчера с ним бился. Но там бестолку... Надо свой файлменеджер писать. Да времени нет разбираться с tinyMCE API.
stump
Фрагмент кода стиль написания которого не вписывается в мировозрение код читающего еще не является основанием говорить про г...код. Правильно рассудив не существует такого фрагмента кода который можно было бы назвать говнокод т.к. чисто субъективное мировозрение о том как должен быть оформлен что в нем должно быть, а чего не должно быть никого не интересует.

Также стоит отметить что существует хард-код (хард - от англ тяжелый) такой код который тяжело читается и тяжело воспринимается, имеет тяжелую для стилистику и т.п.

Также стоит отметить что есть понятие как профессиональный код. Проф. код это такой код который принят в системах над которыми работают профессионалы уровня мидл+. Это уровень использования паттернов, использования абстракций, стиль работы с переменными и т.п.

Возможно также существуют и другие разновидности стилистики которые также можно как-то характеризовать.

_____________
Трус не играет в хокей
sergeiss
Цитата (stump @ 22.02.2015 - 23:04)
Фрагмент кода стиль написания которого не вписывается в мировозрение код читающего еще не является основанием говорить про г...код. Правильно рассудив не существует такого фрагмента кода который можно было бы назвать говнокод т.к. чисто субъективное мировозрение о том как должен быть оформлен что в нем должно быть, а чего не должно быть никого не интересует.

Если говорить только про стиль написания кода, то ты отчасти прав.
Но говнокод определяется не только стилем. Я вон выше привел 4 примера говнокода. Подчерну еще раз, что все они из одного и того же проекта, который я очень и очень основательно "причесывал". Потому что просто не мог что-либо улучшать в коде в том виде, как он существовал изначально, т.е. когда достался мне.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
stump
sergeiss
Говнокода не существует! Назвать что либо говнокодом это либо попытка затроллить код который не вписался в мировозрение другого программиста, либо выражение невежества по отношению к программному коду. Называть программный продукт таким словом это не что иное как дурная привычка которая до добра не доводит.

Приведенные 4 пункта я назову неудачным архитектурным решением которое было применено автором!
Рассмотреть детальнее JS файлы. Конечно есть системы в которых формируются JS интерпритатором php в том смысле что значение переменных формируется из php и там хоть 4 переменных хоть весь файл - одинаково не best practice потому что сегодня существует json который одинаково интерпритируется как php так и js в который можно погрузить переменные, но это не повод кричать что код в котором файлы js формируются интерпритируясь php. Например еще года 3-4 назад никто не слыхал про json и все делали по другому но это не значит что делали плохо и кодили с дурным запахом - все было отлично. На этой почве конечно существуют конфликты потому что код не из категории best practice время от времени вызывает раздражение, и часто за рефакторинг и модернизацию кода не из категории best practice никто не платит потому что договор напимер был заключен на доработку некоторых функций и тут может происходить все что угодно.

Опираясь на подобные факты я пришел к утверждению что кода говнокод не существует. Если такое слово появилось на языке значит перед глазами то, что не вписывается в мировозрение программиста о практиках написания программного кода.

_____________
Трус не играет в хокей
sergeiss
Цитата (stump @ 23.02.2015 - 01:09)
Говнокода не существует!

"Ты видишь суслика? - Нет - И я не вижу. А он есть!" (с) wink.gif

http://www.youtube.com/watch?v=EHX7NZS8zAI

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
chee
stump, ну естественно, для вас не существует говнокода, если вы признаете, что он существует, то в итоге вам придется согласиться, что вы говнокодер. Шучу. Неверное.


_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Invis1ble-temp
говнокод, в более общем смысле, - это склад мышления (точнее, немышления)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.