-
Лучший говнокод
- В номинации:
-
- За время:
-
-
+122
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
var product=dataContext.Products.Where(p=>p.Name == "SomeProductName")
if (products.Count() != 0)
{
return new Product
{
ProductId = products.First().AM_PRODUCT_ID,
ProductName = products.First().PRODUCT_NAME,
IsActive = products.First().IS_ACTIVE
};
}
this way of selecting product from table by its name generate 4 queries instead 1 ...
O_O,
28 Февраля 2011
-
+102
- 1
while dlg_SmplSpk.ShowModal = mrOk do ;
Узрел такое! Срочно к себе в рецепты прогрессивного программирования!
Сделано это для того, чтобы окно не закрывалось при подтверждении всех сделанных действий.
Закрываться должно только при нажатии кнопочки "Закрыть".
Отсюда непонятен ход мыслей автора сия творения.
Grizzly,
11 Февраля 2011
-
+161
- 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
/**
* Standard QWidget Constructor
*/
SeismicSelectionDG::SeismicSelectionDG(QWidget *parent)
: QDialog(parent), ui(new Ui::SeismicSelectionDG)
{
...
}
/**
* Destructor
*/
SeismicSelectionDG::~SeismicSelectionDG()
{
if(ui) delete ui;
}
/**
* Set title to dialog box
* @param title The title for dialog box
*/
void SeismicSelectionDG::setDialogTitle(const QString& title)
{
QDialog::setWindowTitle(title);
}
Обратим внимание как мой коллега китаец тщательно документирует код. метод setDialogTitle - в особенности. А учитывая что QDialog::setWindowTitle - библиотечный метод, необходимость оборачивать его в свой метод полностью отсутствует. Также глупость в деструкторе - для delete необязательно проверять указатель на 0.
kitaec,
09 Февраля 2011
-
−133
- 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
Процедура БазоваяПриИзменении(Элемент)
Если ЭтаФорма.ЕдОтчетов = Истина Тогда
ЭтаФорма.ВДаллах = Ложь;
ЭтаФорма.ВРублях = Ложь;
ЭтаФорма.Ед_храненияОст = Ложь;
Иначе
ЭтаФорма.ВДаллах = Ложь;
ЭтаФорма.ВРублях = Истина;
ЭтаФорма.Ед_храненияОст = Ложь;
КонецЕсли;
КонецПроцедуры
Процедура ВДаллахПриИзменении(Элемент)
Если ЭтаФорма.ВДаллах = Истина Тогда
ЭтаФорма.ЕдОтчетов = Ложь;
ЭтаФорма.ВРублях = Ложь;
ЭтаФорма.Ед_храненияОст = Ложь;
Иначе
ЭтаФорма.ЕдОтчетов = Ложь;
ЭтаФорма.ВРублях = Истина;
ЭтаФорма.Ед_храненияОст = Ложь;
КонецЕсли;
КонецПроцедуры
Процедура Ед_храненияОстПриИзменении(Элемент)
Если ЭтаФорма.Ед_храненияОст = Истина Тогда
ЭтаФорма.ЕдОтчетов = Ложь;
ЭтаФорма.ВРублях = Ложь;
ЭтаФорма.ВДаллах = Ложь;
Иначе
ЭтаФорма.ЕдОтчетов = Ложь;
ЭтаФорма.ВРублях = Истина;
ЭтаФорма.ВДаллах = Ложь;
КонецЕсли;
КонецПроцедуры
Процедура ВРубляхПриИзменении(Элемент)
Если ЭтаФорма.ВРублях = Истина Тогда
ЭтаФорма.ЕдОтчетов = Ложь;
ЭтаФорма.Ед_храненияОст = Ложь;
ЭтаФорма.ВДаллах = Ложь;
Иначе
ЭтаФорма.ЕдОтчетов = Ложь;
ЭтаФорма.ВРублях = Истина;
ЭтаФорма.ВДаллах = Ложь;
КонецЕсли;
КонецПроцедуры
Замечательная реализация радиобаттонов через флажки
ingenuus,
16 Декабря 2010
-
+145
- 1
- 2
- 3
- 4
- 5
- 6
- 7
int i=0;
for (i=0;i<2;)
{cout<<"Enter M takoe 4to Bbl -> m>0 .\n ";
cin>>M;
if (M>0)
i=76;
}
Из лабы однокурсника по C++.
SemenBooxy,
29 Ноября 2010
-
+163
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
std::vector<double> WBuffer;
std::vector<double> CleanWBuffer;
std::vector<Color> PixelBuffer;
std::vector<Color> CleanPixelBuffer;
void Scene3D::ClearBuffers()
{
const size_t n = static_cast<size_t>(ScreenSize[0] * ScreenSize[1]);
memcpy(&*(WBuffer.begin()), &*(CleanWBuffer.begin()), n * sizeof(*(WBuffer.begin())));
memcpy(&*(PixelBuffer.begin()), &*(CleanPixelBuffer.begin()), n * sizeof(*(PixelBuffer.begin())));
}
Быстрая очистка буферов.
CleanWBuffer предварительно заполнен 0.0, CleanPixelBuffer предварительно заполнен нужным цветом.
Можно было воспользоваться std::fill, но оно работает в несколько раз дольше.
Пришлось так вот лезть в потроха std::vector. Доставляют подряд идущие & и *.
burdakovd,
12 Ноября 2010
-
+155
- 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
/**
* Обновление информации о пользователе
*
* @param integer $user_id
* @param array $data
* @return Zend_Db_Statement_Pdo
*/
public function updateProfile($user_id, $data)
{
// TODO: сделать человеческую валидацию
$params = $keys = array();
if ($data['login'] !== NULL) {
$keys[] = 'u_login = ?';
$params[] = $data['login'];
}
if (Zend_Validate::is($data['email'], 'EmailAddress')) {
$keys[] = 'u_email = ?';
$params[] = $data['email'];
}
if ($data['sname'] !== NULL) {
$keys[] = 'u_sname = ?';
$params[] = $data['sname'];
}
if ($data['name'] !== NULL) {
$keys[] = 'u_name = ?';
$params[] = $data['name'];
}
if ($data['fname'] !== NULL) {
$keys[] = 'u_fname = ?';
$params[] = $data['fname'];
}
if ($data['birthdate'] !== NULL) {
$keys[] = 'u_birthdate = ?';
$params[] = $data['birthdate'];
} else {
$keys[] = 'u_birthdate = NULL';
}
if ($data['city'] !== NULL) {
$keys[] = 'u_c_id = ?';
$params[] = (int) $data['city'];
}
if ($data['info'] !== NULL) {
$keys[] = 'u_info = ?';
$params[] = $data['info'];
}
if ($data['sign'] !== NULL) {
$keys[] = 'u_sign = ?';
$params[] = $data['sign'];
}
if ($data['sex'] === 'M' OR $data['sex'] === 'F') {
$keys[] = 'u_sex = ?';
$params[] = $data['sex'];
}
if ($data['subscribe'] === 'on' AND ($data['subtype'] === 'T' OR $data['subtype'] === 'H')) {
$keys[] = 'u_subscribed = ?';
$params[] = $data['subtype'] === 'T' ? 1 : 2;
} else {
$keys[] = 'u_subscribed = ?';
$params[] = 0;
}
$sql = 'UPDATE users SET ' . implode(', ', $keys) . ' WHERE u_id = ' . (int) $user_id;
$query = $this->db->query($sql, $params);
$this->clearUserCache($user_id);
return $query;
}
nergal,
26 Августа 2010
-
+115
- 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
static final class Single extends Node {
Node dup(boolean not) {
if (not)
return new NotSingle(ch);
else
return new Single(ch);
}
boolean study(TreeInfo info) {
info.minLength++;
info.maxLength++;
return next.study(info);
}
static final class NotSingle extends Node {
Node dup(boolean not) {
if (not)
return new Single(ch);
else
return new NotSingle(ch);
}
boolean study(TreeInfo info) {
info.minLength++;
info.maxLength++;
return next.study(info);
}
}
static final class SingleA extends Node {
Node dup(boolean not) {
if (not)
return new NotSingleA(ch);
else
return new SingleA(ch);
}
boolean study(TreeInfo info) {
info.minLength++;
info.maxLength++;
return next.study(info);
}
}
static final class NotSingleA extends Node {
int ch;
NotSingleA(int n) {
ch = ASCII.toLower(n);
}
Node dup(boolean not) {
if (not)
return new SingleA(ch);
else
return new NotSingleA(ch);
}
boolean study(TreeInfo info) {
info.minLength++;
info.maxLength++;
return next.study(info);
}
}
static final class Ctype extends Node
Node dup(boolean not) {
if (not) {
return new NotCtype(ctype);
} else {
return new Ctype(ctype);
}
}
boolean study(TreeInfo info) {
info.minLength++;
info.maxLength++;
return next.study(info);
}
}
далее идут
static final class SingleU extends Node {
static final class NotCtype extends Node {
static final class NotSingleU extends Node {
c очевидно какими методами внутри
суровое ООП, главное что это не школьная поделка, а серъезнейший продукт
продолжение #3976 #3975 #3940
3.14159265,
16 Августа 2010
-
+170
- 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
//Файл teamWorkFile.h:
static int teamWork(int e)
{
#if N==0
return 0;
#elif N==1
return Work52(e+1);
#elif
return WorkN(N);
#endif
};
//Файл teamWork.h:
//...
#define MaxProc 6
typedef int (*ProcTypeTeamWork)(int e);
ProcTypeTeamWork Proc[MaxProc];
#define N 0
#define teamWork ProcName0
#include "teamWorkFile.h"
#undef teamWork
#undef N
#define N 1
#define teamWork ProcName1
#include "teamWorkFile.h"
#undef teamWork
#undef N
int InitMultiProc()
{
Proc[0]=ProcName0;
Proc[1]=ProcName1;
Proc[2]=ProcName1;
Proc[4]=ProcName0;
Proc[5]=ProcName1;
return 0;
};
//Файл teamWorkLib.cpp:
#include "teamWork.h"
//...
InitMultiProc();
ProcTypeTeamWork SuperProc=Proc[5];
//Дальше в этом файле вызовы в стиле Proc[i](e);, SuperProc(255); и тд...
Удивительный код состоит из 3х файлов(teamWorkLib.cpp, teamWork.h, teamWorkFile.h), но он того стоит.
Говногость,
23 Июня 2010
-
+113
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
//java.io.Bits
static void putDouble(byte[] b, int off, double val) {
long j = Double.doubleToLongBits(val);
b[off + 7] = (byte) (j >>> 0);
b[off + 6] = (byte) (j >>> 8);
b[off + 5] = (byte) (j >>> 16);
b[off + 4] = (byte) (j >>> 24);
b[off + 3] = (byte) (j >>> 32);
b[off + 2] = (byte) (j >>> 40);
b[off + 1] = (byte) (j >>> 48);
b[off + 0] = (byte) (j >>> 56);
}
остальное содержимое класса в таком же стиле
3.14159265,
21 Июня 2010