LINUX.ORG.RU
ФорумTalks

[жж][башорк] Говнокод

 


0

0

http://govnokod.ru/

для Ъ:

Говнокод.ру
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить — запостите его на говнокод.ру, посмеемся вместе!

PHP (11)
JavaScript (2)
MySQL (1)
PERL (0)
Python (1)

не смешно. Вот раньше, когда программированием щанимались только системные программистыы, коды были смешными.

soomrack ★★★★★
()
Ответ на: комментарий от soomrack

Наоборот, полезно посмотреть на чужие творения и больше так не делать.

Ну и все равно, мимо return(!true && !false) я пройти без смеха не могу.

EmStudio
() автор топика

как вебдванольно и гламурно, пыщьпыщь!

volh ★★
()


а вам можно заливать код целыми проектами? какое у вас ограничение на объёмы по заливке? принимаете ли вы OSS код? к примеру, можно к вам целиком закачать samba-3.0.28.tar.gz? и если да, то опубликуете ли вы его в полном объёме?

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от phasma

Или вот:

http://govnokod.ru/19

> (function CountId($name, $id, & $db)

> {

> $selection = $db->Execute('SELECT MAX('.$id.') as id

> FROM '.$name);

> if ($selection) {

> return ($selection->fields['id'] + 1);

> } else {

> return false;

> }

> }


> В каком-то древненьком проекте решили отказаться от автоинкремента. :-) Накалякали функцию для его замены.


А что здесь не так? Неужели автор не знает, что не везде существует автоинкремент?

anonymous_num_0
()

Верстальщика их тоже запишите, а то он 100% блочный дизайн на таблицах сваял.

Deleted
()

Шаловливые ручки не дают покоя:

http://govnokod.ru/admin/index.php

Выполнение прервано из-за непредвиденной ситуации.

Runtime Exception. Thrown in file /home/u66182/govnokod.ru/www/filters/contentFilter.php (Line: 108) with message:
Не найден активный шаблон: /home/u66182/govnokod.ru/www/templates/act/admin/index.php.tpl

Показать/скрыть весь trace
14. /home/u66182/govnokod.ru/www/filters/contentFilter.php:50, In: contentFilter->getTemplateName(object 'httpRequest', '/home/u66182/govnokod.ru/www/templates')
13. /home/u66182/mzz/system/filters/filterChain.php:85, In: contentFilter->run(object 'filterChain', object 'httpResponse', object 'httpRequest')
12. /home/u66182/mzz/system/filters/userPreferencesFilter.php:108, In: filterChain->next()
11. /home/u66182/mzz/system/filters/filterChain.php:85, In: userPreferencesFilter->run(object 'filterChain', object 'httpResponse', object 'httpRequest')
10. /home/u66182/mzz/system/filters/userFilter.php:59, In: filterChain->next()
9. /home/u66182/mzz/system/filters/filterChain.php:85, In: userFilter->run(object 'filterChain', object 'httpResponse', object 'httpRequest')
8. /home/u66182/mzz/system/filters/routingFilter.php:47, In: filterChain->next()
7. /home/u66182/mzz/system/filters/filterChain.php:85, In: routingFilter->run(object 'filterChain', object 'httpResponse', object 'httpRequest')
6. /home/u66182/mzz/system/filters/sessionFilter.php:40, In: filterChain->next()
5. /home/u66182/mzz/system/filters/filterChain.php:85, In: sessionFilter->run(object 'filterChain', object 'httpResponse', object 'httpRequest')
4. /home/u66182/mzz/system/filters/timingFilter.php:41, In: filterChain->next()
3. /home/u66182/mzz/system/filters/filterChain.php:85, In: timingFilter->run(object 'filterChain', object 'httpResponse', object 'httpRequest')
2. /home/u66182/mzz/system/filters/filterChain.php:95, In: filterChain->next()
1. /home/u66182/mzz/system/core/core.php:56, In: filterChain->process()
0. /home/u66182/govnokod.ru/www/index.php:10, In: core->run()

SAPI: cgi, Software: Apache, PHP: 5.2.1 on FreeBSD, Версия mzz: 0.2.0-dev (Rev. release).

anonymous_num_0
()
Ответ на: комментарий от anonymous_num_0

http://mzz.ru/

mzz — современная платформа для разработки веб-приложений, основанная на классической идее разделения бизнес логики и представления — MVC.

Неинтересно.

anonymous_num_0
()
Ответ на: комментарий от anonymous_num_0

При чём тут не модно? Там в самом дизайне только блоки. На кой там таблица?

Deleted
()

17 - нормально, в пхп ( или какой-либо версий ) вроде было что если нет mb_string модуля (или что-то там, не помню), то аппер не работал :), естественно для нац символов.

zJes ★★
()

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

Terrens
()
Ответ на: комментарий от klalafuda

> какое у вас ограничение на объёмы по заливке? принимаете ли вы OSS код? к примеру, можно к вам целиком закачать samba-3.0.28.tar.gz?

А отчего такая нелюбовь к samba? Какой раз подряд уже. В каком то OpenSource проекте лучше?

anonymous_num_0
()
Ответ на: комментарий от Terrens

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

Ошибка в отсутствии комментариев. То, что понятно автору и так, может быть не понятно остальным. Исходный код - не комментарии, и уж тем более не документация. Прописные истины? Лошадь кушает овес? А поди ж - доли промилле следует этому.

anonymous_num_0
()

уже постил в теме про mc:

if (strcmp(mountpoint, strdup(hd->text)))
    if (!strncmp(mountpoint, strdup(hd->text), strlen(mountpoint)))
       return hd->text;

alex_custov ★★★★★
()
Ответ на: комментарий от alex_custov

> почему ты так не любишь самбу? Уже не первое сообщение вижу.

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

ps: впрочем, если кого то это задевает, я приношу свои извинения и постараюсь быть более сдержанным.

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от alex_custov

> a... ну запости несколько примеров :)

ни малейшего желания, честное пионерское. у меня уже и так глаз начинает дёргаться при одном только её упоминании :-/

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от EmStudio

>Ну и все равно, мимо return(!true && !false) я пройти без смеха не могу.

В микропроцессорных программах такие выражения (при желании) можно интерпретировать как переключение выхода в третье состояние (высокоимпендансное).

quickquest ★★★★★
()

Чой-то я не понял, а что им в этом не понравилось?

Python / Говнокод#21

temp = a
a = b
b = temp

gaa ★★
()
Ответ на: комментарий от gaa

> Чой-то я не понял, а что им в этом не понравилось?

Возможно, сочли безусловно лучшим вариант без переменной temp:

a = a + b
b = a - b
a = a - b

dexpl ★★★★★
()
Ответ на: комментарий от dexpl

> Возможно, сочли безусловно лучшим вариант без переменной temp:
> a = a + b
> b = a - b
> a = a - b

забыв при этом про возможное переполнение, которое в "говноверсии" отсутствует как класс.

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от dexpl

>> Чой-то я не понял, а что им в этом не понравилось?

> Возможно, сочли безусловно лучшим вариант без переменной temp:


Если для целых, то лучше там делать исключающее или, дабы не словить переполнение, а для прочих типов это или не работает(строки), либо даёт не то, что хотелось(double).

gaa ★★
()
Ответ на: комментарий от gaa

> Если для целых, то лучше там делать исключающее или, дабы не словить переполнение, а для прочих типов это или не работает(строки), либо даёт не то, что хотелось(double)

Мне-то это понятно, а вот тем, кому не понравилось, возможно, нет. Впрочем, я не телепат, увы

dexpl ★★★★★
()

[итог] Говносайт

subj

anonymous
()

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

void sapphiraSDRAMBrutalInit()
{
	sleep(0x00f00000);
	//AT91_REG TR=0x800;
	DBG("HINT: Normally you would want to have a look at the datasheet.\n\r ");
	int TWR; int TRP; int TRC; int TRCD; int TRAS; int TXSR;
	for( TWR=1; TWR<=4 ; TWR++){
		for( TRC=0;TRC<4 ;TRC++ ){
			for( TRP=1;TRP<=4 ;TRP++ ){
				for( TRCD=1;TRCD<=4 ;TRCD++ ){
					for( TRAS=1; TRAS<=3;TRAS++ ){
						for( TXSR=1; TXSR<=3; TXSR++ ){
							DBG("Trying timings: TWR:");
							nmb(TWR,10);
							DBG(" TRP:");
							nmb(TRP,10);
							DBG(" TRCD:");
							nmb(TRCD,10);
							DBG(" TRAS:");
							nmb(TRAS,10);
							DBG(" TXSR:");
							nmb(TXSR,10);
							DBG(" TWR:");
							nmb(TWR,10);
							DBG(" TRC:");
							nmb(TRC,10);
							DBG("\n\r");
							if (sapphiraSDRAMInit(TWR, TRP, TRCD, TRAS, TXSR, TRC))
							{
								DBG("Works!111\n\r");
							}


						}
					}
				}
			}
		}
	}
}

AiFiLTr0 ★★★★★
()
Ответ на: комментарий от anonymous_num_0

> А что здесь не так? Неужели автор не знает, что не везде существует автоинкремент?

наиболее типичная проблема - LOCK TABLE там не сделан, и это значит что полученное значение может другой клиент занять.

gods-little-toy ★★★
()
Ответ на: комментарий от klalafuda

>> почему ты так не любишь самбу? Уже не первое сообщение вижу.

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

ну, я думаю они патчи принимают, можешь закоммитить получше to set a shining example :-)

интересно как родной код от MSFT выглядит...

gods-little-toy ★★★
()
Ответ на: комментарий от gods-little-toy

> ну, я думаю они патчи принимают, можешь закоммитить получше to set a shining example :-)

broken by design патчами, к сожалению, не исправить :-/
все, умолкаю. тем более, что эпопея с самбой по крайней мере для меня уже практически завершилась, а дальше у них хоть трава не расти.

> интересно как родной код от MSFT выглядит...

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

// wbr

klalafuda ★☆☆
()

Internal Server Error

лор-эффект чтоле?

polachok
()
Ответ на: комментарий от gaa

Видимо, тем, что в Питоне это делается так:

a, b = b, a

MYMUR ★★★★
()

Предлагаю флешмоб. Юзать вместо paste.org.ru

PolarFox ★★★★★
()

а что это значит?


* PHP (176)
* JavaScript (213)
* MySQL (134)
* PERL (142)
* Python (2)

fMad ★★★
()

Сайт похоже тоже говнокодом написан:

# HP (176)
# JavaScript (213)
# MySQL (134)
# PERL (142)
# Python (2)

Rubystar ★★
()
Ответ на: комментарий от mint

> a ^= b ^= a ^= b;
> На С работает

да и на С++ наверное тоже. особенно хорошо это будет смотреться в шаблоне a'la swap<T>. пипл будет в восторге.

// wnr

klalafuda ★☆☆
()

проект чуть более уныл чем полностью

vahvarh ★★★
()
Ответ на: комментарий от klalafuda

>> Возможно, сочли безусловно лучшим вариант без переменной temp: >> a = a + b >> b = a - b >> a = a - b

> забыв при этом про возможное переполнение, которое в "говноверсии" отсутствует как класс.

Думаю, что им хотелось вынесения этого в отдельную функцию (или использование стандартной функции).

Глядя на этот говнопроект видно, что среди его создателей нет никого кто умеет программировать.

Подавляющее большинство задач на сегодняшний день предъявляют к коду след требования (не полный список, а только то, что проскакивало в это треде):

1. Код должен легко читаться, т.е. переменные, функции, комментарии и т.д. должны соотв. логике задачи, которую решает код.

2. Код должен быть прозрачным.

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

4. Оптимизация только на уровне алгоритмов, на уровне присваивания переменных, выборе оператора ++k или k++ не должна менять стиль написания кода: т.е. если вы обычно пишете в циклах k++, то не надо в отдельных кусках "для оптимизации" переходить на ++k. Вообще в большинстве подобных случаев компилятор сам позаботится об этом.

ну и т.д. Большинство отписавших в этом треде, судя по всему, могут продолжить этот список.

soomrack ★★★★★
()
Ответ на: комментарий от gods-little-toy

> наиболее типичная проблема - LOCK TABLE там не сделан, и это значит что полученное значение может другой клиент занять.

И это логично делать в функции нахождения максимального элемента, а не в функции собственно вставки? Нет, я серьезно.

anonymous_num_0
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.