- 1
- 2
- 3
% if ($ARGS{standalone_bhv}) {} else {
%# Что-то делаем
% }
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
Всего: 116
−88
% if ($ARGS{standalone_bhv}) {} else {
%# Что-то делаем
% }
Mason. Автор явно знает толк..
+160
for(var i = 0, l = requestParams.length; i < l; i++) {
var param_pair = requestParams[i];
key = encodeURIComponent(param_pair[0]);
val = param_pair[1];
if ( val && val.constructor.toString().match(/array/i) ) {
val = val.join('+');
}
// ...
}
Кусочек велосипеда, который заменяет функционал jQuery.ajax
Если вдруг наш параметр оказался массивом ... ну что ж еще с ним сделать кроме как соединить через "+". Обратите внимание на саму проверку.
+6
template <typename T, size_t rows, size_t cols>
class Matrix {
public:
Matrix() :
m_matrix(reinterpret_cast<T*>(new char[sizeof(T) * rows * cols]))
{
memset(m_matrix, 0, sizeof(T) * rows * cols);
new (m_matrix) T[rows * cols];
if ( rows == cols ) {
for ( size_t i = 0; i < rows; i++ )
m_matrix[i * cols + i] = 1; // FIXME: this is hack
}
}
// ...
private:
T *m_matrix;
};
Из прошлого куска.
Инициализируем память нулями. А вдруг тип скалярный? :)
+10
template <typename T, size_t rows, size_t cols>
class Matrix {
public:
Matrix() :
m_matrix(new T[rows * cols])
{
// Make identity matrix, if possible
if ( rows == cols ) {
for ( size_t i = 0; i < rows; i++ )
m_matrix[i * cols + i] = 1; // FIXME: this is hack
}
}
// ...
Matrix<T, rows, cols>& operator =(Matrix<T, rows, cols> &&other) {
if ( this != &other ) {
delete [] m_matrix;
m_matrix = other.m_matrix;
other.m_matrix = new T[cols * rows];
other = static_cast<const Matrix&>(Matrix());
}
return *this;
}
// ...
};
Издержки move construtor :)
Прошу внимания к строчкам 19-23
−124
#!/bin/sh
for last ; do true ; done
echo "last argument: $last"
And you can't explain that.
Оригинал: http://stackoverflow.com/questions/1853946/getting-the-last-argument-passed-to-a-shell-script
−86
sub change_credit_limit {
my ($self, $new_limit) = @_;
return 0 if ( !validate_credit_limit($new_limit) );
my $credit_limit = $self->get_credit_limit();
if ( sprintf('%.5f', $new_limit) eq sprintf('%.5f', $credit_limit) ) {
return 1;
}
return $self->update({ 'credit_limit' => $new_limit });
}
Оптимизация, такая оптимизация. Не совсем говнокод, но подход оригинален :)
P.S. Немного поменял оригинальные имена
−166
for ( my $i = 0 ; $i < $pmcount ; $i ++ ) {
$_ = $array_ref->[$i];
# workin' hard
}
if ( $perl eq 'C' ) { print "govnokod повсеместно" }
−148
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
sub get0 { print("get0\n"); return 0; }
sub get2 { print("get2\n"); return 2; }
my ($a, $b) = (1, 1);
$a ? $b = get0() : $b = get2();
print Dumper({
'a' => $a,
'b' => $b,
});
Результат несколько обескураживает :)
http://ideone.com/V60Y1L
−108
push @sqls, defined($result->{sql}) ? $result->{sql} : return;
Не знаю, что тут написать. Сегодня это встретил в коде.
+31
#include <iostream>
using namespace std;
struct RefStruct {
RefStruct(int &ref) :
m_ref(ref)
{}
int getRefValue() const {
return m_ref;
}
private:
int &m_ref;
};
int main(int argc, char *argv[]) {
int a = 0xa;
int b = 0xb;
RefStruct s(a);
RefStruct *p = &s;
*(reinterpret_cast<int **>(p)) = &b;
cout << "RefValue: " << hex << s.getRefValue() << endl;
return 0;
}
С другом разговаривали - как бы получить указатель на ссылку.
Как вы думаете, что будет на выхлопе?