- 1
- 2
- 3
- 4
- 5
- 6
- 7
private function fürDieLuLz(event:String, params:StringHash):void
{
if (ExternalInterface.available)
ExternalInterface.call(
"function(){window.fireEvent('" + event +
"',JSON.stringify(" + params + "));}");
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−241
private function fürDieLuLz(event:String, params:StringHash):void
{
if (ExternalInterface.available)
ExternalInterface.call(
"function(){window.fireEvent('" + event +
"',JSON.stringify(" + params + "));}");
}
Я долго пытался объяснить человеку пишущему JS часть проекта, что не нужно перекодировать объекты каждый раз из JSON и обратно при общении с Флешем, если они все равно проходят через eval(). Но у человека ЧСВ победил все. В итоге пришел "главный инженер" и "решил", что "если мы раньше так делали, то мы будем так делать и дальше, и не волнует". В итоге родился этот шедевр. Я сегодня с утра для поднятия настроения показал этот код JS кодеру. Долго объяснял, что он делает. После чего он сказал, что больше не будет со мной разговаривать :)
Я счастлив
+122
catch (TargetInvocationException ex) {
try {
throw ex.InnerException;
}
catch (EndpointNotFoundException innerEx) {
factory.Abort();
throw new InvalidOperationException("Service unreachable", innerEx);
}
}
Обработчик исключений %)
+163
<?php
if($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') {
sleep(3);
if($_POST[parent_id]) $parent_id = preg_replace('/\D+/i','', $_POST[parent_id]);
else $parent_id = 0;
$author = trim($_POST[author]);
$comment = trim($_POST[comment]);
if(!$author) $error[author] = 'Введите имя!';
if(!$comment) $error[comment] = 'Напишите комментарий!';
if($error)
exit(json_encode($error));
require_once 'blocks/bd.php';
$sql = "INSERT INTO comments (parent_id, name, comment, date_add) VALUES ($parent_id, '$author', '$comment', NOW())";
$result = mysql_query($sql);
if(!$result)
{
$error[] = 'Произошла ошибка, комментарий не сохранен';
exit(json_encode($error));
}
exit();
}
?>
+175
$("input[id='yearB']")
+158
public function search() {
$ret = array();
foreach($this->dir() as $file)
if($file->folder())
$ret = array_merge($ret,$file->search()->asArray());
else
$ret[] = $file;
return new mod_file_list($ret);
}
Красота, в результате работы функции мы получаем объект, состоящий из массива объектов класса file (этот метод в этом классе)... "чудо-поиска" (хотя это вовсе и не поиск, а банальный список файлов всех дочерних папок), особенно будет забавно, если в списке будет несколько тысяч файлов...
В этом классе в принципе много мест, которые наровят насоздавать кучу экземпляров этого же класса, вместо замены одной приватной переменной...
+162
public static function perform($table, $data, $action = 'insert', $parameters = '') {
reset($data);
if ($action == 'insert') {
$query = 'INSERT INTO ' . $table . ' (';
while (list($columns, ) = each($data)) {
$query .= $columns . ', ';
}
$query = substr($query, 0, -2) . ') values (';
reset($data);
while (list(, $value) = each($data)) {
switch ((string)$value) {
case 'now()':
$query .= 'NOW(), ';
break;
case 'null':
$query .= 'NULL, ';
break;
default:
$query .= '\'' . mysql_escape_string($value) . '\', ';
break;
}
}
$query = substr($query, 0, -2) . ')';
} elseif ($action == 'update') {
$query = 'UPDATE ' . $table . ' SET ';
while (list($columns, $value) = each($data)) {
switch ((string)$value) {
case 'now()':
$query .= $columns . ' = NOW(), ';
break;
case 'null':
$query .= $columns .= ' = NULL, ';
break;
default:
$query .= $columns . ' = \'' . mysql_escape_string($value) . '\', ';
break;
}
}
$query = substr($query, 0, -2) . ' WHERE ' . $parameters;
}
self::request($query);
}
Вот так у нас вставляют в базу :)
+157
struct Event
{
int priority;
bool operator<(Event e) const
{
return e.priority>priority;
}
virtual void operator() () = 0;
};
priority_queue<Event*, deque<Event*> > eventQueue;
template <typename T, void (T::*g)()>
struct TEvent : Event
{
T* parent;
virtual void operator() ()
{
(parent->*g)();
}
TEvent (T* _parent) : parent(_parent){}
};
struct Entity
{
int foo;
void AFunc()
{
cout<<foo;
}
void BFunc()
{
cout<<"Ololo";
}
typedef TEvent<Entity,&Entity::AFunc> someEvent;
Entity(int _foo): foo(_foo){}
void addEvent()
{
eventQueue.push(new someEvent(this));
}
};
int main()
{
Entity foo(10);
foo.addEvent();
(*eventQueue.top())();
return 0;
}
Один из самых сложных и неочевидных способов вывести в консоль число 10.
(Этот код - проверка, будет ли работать прототип велосипедного делегата)
+159
$this->setLayout('empty');
$this->setTemplate('step3');
if ($this->getBrokerId() == 19 || $this->getBrokerId() == 29)
{
$this->setLayout('empty');
$this->setTemplate('step3');
$this->brokerId = $this->getBrokerId();
}
Нашел в чужом проекте. При этом $this->getBrokerId() не просто возвращает переменную, а производит сравнение строк (то есть вызывать этот метод 3 раза - явный перебор).
+123
string callPage = CallPage;
if (callPage != "Checkout.aspx")
{
callPage = "Checkout.aspx";
}
ServerTransfer(callPage + "?makerefresh=true", Server, Request);
Найди лишнее
+159
$ar=$arFields['GROUP_ID'];
$arFields['GROUP_ID']=array();
foreach($ar as $a) $arFields['GROUP_ID'][]=$a;
Смысл данной конструкции не ясен, если так нужно обнулить ключи для массива то array_values() в помощь.