- 1
items.map! {|i| i.count = 0; i }
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
Всего: 21
−32
items.map! {|i| i.count = 0; i }
Рубрика: "Шоколадные говнострочники".
Есть коллекция с объектами. Надо объектам выставить атрибут count равным нулю. Как это сделать? Да вот пожалуйста.
+159
// выбираем случайные категории
$sql="
SELECT `id`
FROM `category`
WHERE id>=(SELECT ROUND(RAND()*(SELECT COUNT(*) FROM `stat`)))
limit ".$this->limit;
$arr=Yii::app()->db->createCommand($sql)->query();
// в nn будем хранить строку вида a,b,...,e где abc -цифры
// позже мы скормим это в условие для sql запроса, это самый простой способ
$nn='';
foreach ($arr as $val){
$nn.=$val['id'].',';
}
//добавим в конце строки "end", чтобы избавиться от лишней запятой
$nn.='END';
// выбираем пользователей из случайных категории, сгенерированных ранее
$sql="
SELECT name, category_id, COUNT(category_id) AS total
FROM `stat`
JOIN `category` as C
WHERE C.id=category_id AND C.id in (".str_replace(',END','',$nn).")
GROUP BY category_id
limit ".$this->limit;
$arr=Yii::app()->db->createCommand($sql)->query();
Сказочный говнокод. Сохранены авторские комментарии.
−166
IFNULL(sum(r.value), 0)/ IF(count(r.value) <> 0, count(r.value), 1) as rating
А как вы считаете среднее арифметическое?
+67
class IntegerUtils
{
public static function isInteger($value)
{
return preg_match('/[0-9]+/', $value);
}
}
Must have класс, который должен быть у каждого в его библиотеке "велоприседов". Поистине краткий, лаконичный, гениальный. Даешь 100% говнокод!
+66
// генрация паролей
function generatePassword($l = 8) {
function make_seed() {
list($usec, $sec) = explode(' ', microtime());
return (float) $sec + ((float) $usec * 100000);
}
$le = split('-', 'q-w-e-r-t-y-u-i-o-p-a-s-d-f-g-h-j-k-l-z-x-c-v-b-n-m-q-W-E-R-T-Y-U-I-O-P-A-S-D-F-G-H-J-K-L-Z-X-C-V-B-N-M-7-2-1-8-6-3-8-7-2-1-6-0-9-g-s-a-d-f-k-a-k-j-w-q-h-2-7-8-1-6-3-g-d-h-m-H-U-F-G-K-J-H-A-S-G-J-G');
$password = '';
while (strlen($password)<$l) {
srand(make_seed());
$rnd = rand(0, count($le)-1);
$password.=$le[$rnd];
}
return $password;
}
Крайне хардкорный генератор случайных паролей заданной длины. Особенно гениальна строчка №7. Всем говнокоду за мой счет!
+51
function striptags($variables_for_function=array()) {
if (!isset($variables_for_function[1])) {$variables_for_function[1]='';}
return strip_tags($variables_for_function[0], $variables_for_function[1]);
}
Только сегодня и только для вас, безопасный strip_tags. Теперь с заSHITой от говнокодеров.
PHP Innovations.
+69
//А теперь я научу вас как правильно определять тип картинки
$type = '';
# JPEG:
$src = @imagecreatefromjpeg("./js/ajax_drag_drop_upload/php/files/".$f);
if ($src !== false)
{
$type = 'jpg';
}
else {
# GIF:
$src = @imagecreatefromgif("./js/ajax_drag_drop_upload/php/files/".$f);
if ($src !== false)
{
$type = 'gif';
}
else {
# PNG:
$src = @imagecreatefrompng("./js/ajax_drag_drop_upload/php/files/".$f);
if ($src !== false)
{
$type = 'png';
}
}
// А что делать с BMP? Та ну нафиг, BMP - это миф...
}
// Вот и все. Теперь вы знаете с каким типом картинки работаете
// Ну а здесь уже можете писать ваш говнокод
Очень эпичный code snippet. Посмотрите как автор ловко владеет возможностями языка PHP. В закладки!
+58
private function _getOrderBy($orderField)
{
switch ($orderField)
{
case 'ProductID':
return 'ProductID';
case 'ProductName':
return 'ProductName';
case 'Per':
return 'Per';
case 'Start':
return 'Start';
case 'Qty':
return 'Qty';
case 'OrderDetailsID':
return 'OrderDetailsID';
case 'FIOUr':
return 'FIOUr';
case 'AddressUr':
return 'AddressUr';
case 'ZipCodeUr':
return 'ZipCodeUr';
case 'OrderRealSupID':
return 'OrderRealSupID';
case 'PayDate':
return 'PayDate';
case 'SumPay':
return 'SumPay';
case 'NumPlPor':
return 'NumPlPor';
default:
return 'OrderID';
}
}
//Вот еще чуть-чуть:
private function _getOrderType($orderType)
{
switch ($orderType)
{
case 'asc':
return 'asc';
default:
return 'desc';
}
}
Ну в общем, привожу пару этюдов из "коричневой" симфонии, которые используются для формирования SQL запроса. Код - прост, но говнист.
−109
#Кусок красивого кода контроллера сайта на Ruby On Rails
class QuestionsController < ApplicationController
#Извлекаем отвеченные вопросы методом говнокода
def answered
@subtitle = "Отвеченные"
#Нам нужны все-все-все вопросы и даже не отвеченные. Скрестим пальцы на случай если их будет много
@questions = Question.all
#Обязательно преобразуем все в массив, сделаем N+1 запрос и успешно отфильтруем вопросы без ответа
@questions.to_a.delete_if { |q| q.answer.nil? }
#Чуть не забыл, нам же нужно извлечь 10 вопросов для 2-й страницы, а не все что есть
paginate(@questions)
#PROFIT
render "index"
end
end
Ну в общем, код хорошо прокоментирован, думаю все и так ясно. =)
+53
protected function CreateClass($className, $params) {
switch (count($params)) {
case 0:
return new $className();
break;
case 1:
return new $className($params[0]);
break;
case 2:
return new $className($params[0], $params[1]);
break;
case 3:
return new $className($params[0], $params[1], $params[2]);
break;
case 4:
return new $className($params[0], $params[1], $params[2], $params[3]);
break;
case 5:
return new $className($params[0], $params[1], $params[2], $params[3], $params[4]);
break;
case 6:
return new $className($params[0], $params[1], $params[2], $params[3], $params[4], $params[5]);
break;
case 7:
return new $className($params[0], $params[1], $params[2], $params[3], $params[4], $params[5], $params[6]);
break;
case 8:
return new $className($params[0], $params[1], $params[2], $params[3], $params[4], $params[5], $params[6], $params[7]);
break;
case 9:
return new $className($params[0], $params[1], $params[2], $params[3], $params[4], $params[5], $params[6], $params[7], $params[8]);
break;
case 10:
return new $className($params[0], $params[1], $params[2], $params[3], $params[4], $params[5], $params[6], $params[7], $params[8], $params[9]);
break;
default:
echo "Too many arguments";
return null;
break;
}
}
Продолжение одного нашумевшего блокбастера: Радж и "шоколадная" фабрика.
Исходники взяты из компонента JEvents для Joomla. Файл из папки "icalevent". Думаю что стоит сделать акцент на iCAL, есть в этом что-то особенное.