-
Лучший говнокод
- В номинации:
-
- За время:
-
-
+114.3
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
public static MapObjectConfig[] CollectInfoAboutClassesInProgram()
{
List<MapObjectConfig> result = new List<MapObjectConfig>();
foreach (Assembly assem in AppDomain.CurrentDomain.GetAssemblies())
foreach (Module module in assem.GetModules())
try
{
foreach (Type type in module.GetTypes())
if (type.IsSubclassOf(typeof(BaseMapObject)))
{
MethodInfo method = type.GetMethod("GetCommentDescription", BindingFlags.Static | BindingFlags.Public);
if (method != null)
{
object res = method.Invoke(null, null);
if (res is MapObjectConfig)
{
MapObjectConfig desc = (MapObjectConfig)res;
result.Add(desc);
}
}
}
}
catch (ReflectionTypeLoadException ex)
{
//иногда отказывается загружать типы...
}
return result.ToArray();
}
Метод являет собой пожалуй самую проктологическую реализацию хранения дефолтных настроек, которую когда-либо видел. Просмотр всех сборок загруженых в домен приложения, поиск в них классов наследованных от BaseMapObject и вызов их метода GetCommentDescription, который и вернет объект с настройками... Нельзя обезьянам давать гранаты товарищи.
svist,
27 Февраля 2010
-
−104.3
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
# (S) (рекурсивного вызова) Генерирует контент слота рекурсивного дерева (с плюсиками). Возвращает ('RecursiveSlot'=>$textbuf) или ()
sub PlusTreeSlot {
# (P) Путь к шаблону контентной ячейки
# (P) ghm
# (P) pid
# (P) treename
# (P) Уровень
# (P) функция
# (P) $ret
return () if !exists($_[1]->{$_[2]}); # Не вкладываем ничего в слот если там ничего нет
my $textbuf;
foreach (@{$_[1]->{$_[2]}}){
my $ret=&{$_[5]}($_,$_[4],ref($_[6])?dclone($_[6]):$_[6]) if $_[5];
$textbuf.=${tmpl_prepare($_[0],{
PlusTreeSlot($_[0],$_[1],$_->{'id'},$_[3],($_[4]+1),$_[5],$ret),
%{$_},
'trname'=>$_[3],
})};
};
return ('RecursiveSlot'=>$textbuf);
};
А вам тоже нравятся безымянные параметры?
А писать код без пробелов?
Кроме того, эта функция, вызывая себя рекурсивно, каждый раз заново открывает, читает, парсит и закрывает один и тот же файл шаблона.
ichesnokov,
25 Февраля 2010
-
+144.8
- 1
- 2
- 3
- 4
$div = ($account->typeID == 1) ? true : false;
if ($div == true) {
// blablabla
}
И ведь не индус, а всё туда же.
newmindcore,
15 Февраля 2010
-
+137.5
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
void TWindowTID::SetStyle(GtkWidget* widget, const char *form, gint Red_, gint Green_, gint Blue_)
{
struct _GtkStyle *style;
GdkColor bg;
style=gtk_style_new();
bg.red = Red_;
bg.blue = Blue_;
bg.green = Green_;
if (form=="TEXT")
{
style->fg[GTK_STATE_NORMAL]=bg; //TEXT
}
else
if (form=="BORDER")
{
style->base[GTK_STATE_NORMAL]=bg; //BORDER
}
else
if (form=="ALL")
{
style->bg[GTK_STATE_NORMAL]=bg;
style->base[GTK_STATE_NORMAL]=bg; //BORDER
style->fg[GTK_STATE_NORMAL]=bg; //TEXT
}
else
if (form=="button")
{
style->bg[GTK_STATE_PRELIGHT]=bg;
style->base[GTK_STATE_PRELIGHT]=bg; //BORDER
style->bg[GTK_STATE_SELECTED]=bg;
style->base[GTK_STATE_SELECTED]=bg; //BORDER
}
else
{
style->bg[GTK_STATE_NORMAL]=bg;
}
style->font = gdk_font_load("-adobe-helvetica-*-r-*-*-12-*-*-*-*-*-*-*");
if ((GtkWidget *)widget!=NULL) gtk_widget_set_style((GtkWidget *)widget, style);
}
Сравнение строк умиляет
mutanabbi,
12 Февраля 2010
-
+131.8
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
def ad30 // Все понятно из названия, да?
vgl start_naht 3
baw gr
spg ad40
aktuelle_naht = 3 ;
lad vsp 53 aktuelle_naht ;
spg up setze_npk_abs ;
vgl start_naht 3
baw gl
PPZ # R100 Z1 z1_start Z2 P8 Z3 P9 ;
z1_start = -1590
z1_ziel = -2985
vgl tisch_nr 2
baw gl
spg ad31
z1_start = z1_start + tisch_abstand ;
z1_ziel = z1_ziel + tisch_abstand ;
def ad31
z1_soll = z1_start
lad r1 R65
lad r2 R66
R1.C = c3_soll ;
R2.C = c3_soll ;
R1.B = 0;
R2.B = 0;
spg up verschiebe_nahtanfang ;
spg up fahre_z1 ;
PPZ # A1 -12.13 A2 -15.73 A3 114.05 A4 24 A5 40 A6 -208 Z1 z1_start Z2 P8 Z3 P9
pnd_amp = pnd_amp_laengs ;
pnd_len = pnd_amp * 0.8
dx = -delta_x_npk
ges_schweiss = ges_schweiss_orig * 0.85
npk 4 rel x dx y 0 z delta_z_npk a 0 b 0 c 0
spg up laengsnaht_ohne_messen ;
; ------- Veraenderte Punkte speichern
vgl za_soll 90
baw kl
spg ad35
; ------- Oberseite -----------------------
lad r605 r1
lad r606 r2
spg ad36
; ------- Unterseite ----------------------
def ad35
lad r625 r1
lad r626 r2
def ad36
lad p1 pos
spg up freifahren
spg up anfahr_ges ;
p2 = p2 - ( z1_start - z1_ziel )
liz x p1 y p2 z p3 a p4 b p5 c p6 z1 z1_start z2 p8 z3 p9
spg up grundstellung
spg up brenner_reinigen ;
; --------------------------------------------------------------
; Schweissnaht 4 (Roboterseite)
; --------------------------------------------------------------
def ad40
vgl start_naht 4
baw gr
spg ad50
aktuelle_naht = 4 ;
lad vsp 53 aktuelle_naht ;
spg up brenner_reinigen ;
z1_start = -1590
z1_ziel = -2985
vgl tisch_nr 2
baw gl
spg ad41
z1_start = z1_start + tisch_abstand ;
z1_ziel = z1_ziel + tisch_abstand ;
def ad41
z1_soll = z1_start ;
lad r1 R67
lad r2 R68
Это язык SRCL, используется на некоторых роботах, зовется высокоуровневым. Однако не умеет даже передавать параметры в функции.
Особенно умиляют команды типа PPZ и LIZ и названия типа aktuelle_naht - писал немец :)
В конце концов, чтобы запрограммировать этого робота пришлось писать свой конструктор программ, который выдавал эту лажу мегатоннами (а в чем еще измерять разрушительную силу этой хрени??).
karevn,
11 Февраля 2010
-
+165.3
- 1
- 2
- 3
$articles = ServiceArticles::getArticlesList($page->pageID, ARTICLE_TYPE_ARTICLE, 0, 1);
foreach ($articles as $article) $articleID = $article;
$article = new ServiceArticles($articleID);
Обнаружено во время рефизии кода. Блок показа одной новости. Возвращается обычный неассоциативный массив. Нахера foreach вместо $articles[0], даже автор толком объяснить не смог.
newmindcore,
11 Февраля 2010
-
+102.3
- 1
- 2
- 3
- 4
string statStr = string.Format("execution statistics:" + Environment.NewLine
+ "\t{0}" + Environment.NewLine + "\t{1}",
_requestUrl,
execStat);
plsc_rover,
05 Февраля 2010
-
+162.7
- 1
- 2
- 3
- 4
while (1<2) {
document.body.innerHTML = document.body.innerHTML.replace('[offtop]', '<font color=red>')
document.body.innerHTML = document.body.innerHTML.replace('[/offtop]', '</font>')
}
bb-коды на индусском сайте, ver. 2
fuckyounoob,
02 Февраля 2010
-
+159.8
- 1
- 2
- 3
- 4
- 5
- 6
document.getElementById('f1').style.display = ((document.getElementById('f1').style.display=='none'&&id==1)?'block':'none');
document.getElementById('t1').style.display = ((document.getElementById('f1').style.display=='block')?'none':'block');
document.getElementById('f2').style.display = ((document.getElementById('f2').style.display=='none'&&id==2)?'block':'none');
document.getElementById('t2').style.display = ((document.getElementById('f2').style.display=='block')?'none':'block');
document.getElementById('f3').style.display = ((document.getElementById('f3').style.display=='none'&&id==3)?'block':'none');
document.getElementById('t3').style.display = ((document.getElementById('f3').style.display=='block')?'none':'block');
Есть три формы, нужно показывать только одну. При клике на заголовок форма разворачивается, а вместо остальных появляются подсказки.
erfen,
31 Января 2010
-
+162.9
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
$results = $_POST['result'];
foreach ($results as $key => $result)
{
$has_results = true;
if ( ! $result['text'] OR ! $result['description'])
{
if ( ! $result['text'] AND ! $result['description'])
{
$has_results = false;
unset($results[$key]);
}
else
{
$post->add_error('result', 'required');
}
}
}
if ( ! $has_results)
{
$post->add_error('result', 'required');
}
Верификация $_POST
Говноговно,
29 Января 2010