- 1
- 2
- 3
- 4
- 5
- 6
function FileExists($file) {
if(file_exists($file))
return true;
else
return false;
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+168
function FileExists($file) {
if(file_exists($file))
return true;
else
return false;
}
Гениальная функция, используемая в одном из расширений Джумлы.
+141
public class SimpleTest {
class A {}
class B extends A {};
class C extends B {};
public void doIt() {
A a = new A();
B b = new B();
C c = new C();
List<B> lst = new ArrayList<B>();
lst.add(a);
lst.add(b);
lst.add(c);
a = lst.get(0);
b = lst.get(0);
c = lst.get(0);
List<? extends B> lstExtends = lst;
lstExtends.add(a);
lstExtends.add(b);
lstExtends.add(c);
a = lstExtends.get(0);
b = lstExtends.get(0);
c = lstExtends.get(0);
List<? super B> lstSuper = lst;
lstSuper.add(a);
lstSuper.add(b);
lstSuper.add(c);
a = lstSuper.get(0);
b = lstSuper.get(0);
c = lstSuper.get(0);
}
}
Какие строки вызовут ошибку компиляции?
+70
// there is class PlayerExt, which extends class Player...
// min >= 0
// max <= players.size()
List<PlayerExt> players = playerManager.getPlayers(contestId);
Player[] response = new Player[players.size()];
for (int i = min; i < max; i++) {
response[i] = players.get(i);
if (!players.get(i).isQualified()) {
response[i].setChipStack(BigDecimal.valueOf(-1));
}
response[i].setPosition(i + 1);
response[i].setCustomerId(players.get(i).getCustomerId());
}
Для таких начальных условий, как обозначено в комментарии в начале кода, формируем список игроков.
Особенно вдохновляет самая последняя инструкция в теле цикла.
+8
const Registry & Registry::getInstance()
{
Registry *instance = RegistrySingleton::instance();
if (!instance->mRootNode) {
instance->load();
}
return *instance;
}
void Registry::load()
{
try {
// ...
if (!mReader) {
mReader = XMLReaderFactory::createXMLReader();
}
// ...
mReader->parse( ... );
} catch (...) {
// ...
throw; // удачи всем пользователям обрабатывать исключения xerces...
}
}
боян синглтонно-абстрактный для чтения xml конфигурации с помощью xerces.
и не только ошибки не обрабатаешь (потому что getInstance() их бросает, угадай какой именно вызов из сотен загружает конфигурацию), но и в добавок народ не впечатал как многопоточность сделать правильно (RegistrySingleton это специализация шаблона который синхронизирует инициализацию mInstance переменной, и только).
+159
try{while(confirm("The result is "+(1/prompt("a*x=b\n\nEnter a").split().join()*prompt("a*x=b\n\nEnter b").split().join())+"\n\nOnce again?"));}catch(e){}
+120
Раз уж у нас пошла мода на анальные уроки - выложу, пожалуй, еще одну ссылку:
http://avtuh.ru/2010/04/09/delphi-dopolnitelnyj-potok-v-programme.html
На видео анальный учитель с сайта avpetuh.r доходчиво объясняет, как нужно обращаться из потока к компонентам формы.
Долой синхронизацию!!!
+68
if (!(taxOrgsFilter.getTaxOrgs() == null)) {
....
}
+158
<?php
class Digits {
//Convert digits to negative
public static function toNegative($num) {
return '-' . $num;
}
}
CRM система, очень дорогая
ПХП хоть само по себе стремное, но я бы даже до такого не додумался
Основная функция системы: анализ и рассчеты
Они еще жалуются что оно плохо считает
Интересно а что же будет если ему передать -10 например ? --10 :)
Чем не устраивает:
function toNegative($num) {
return ($num > 0) ? -1 * $num : $num;
}
−89
amount_in_cents = int(100 * amount)
Поскольку все знают, что float нельзя использовать при работе с деньгами (ну там, ошибки округления), чуваки решили хранить все суммы в центах. Тогда они будут целыми числами.
По такой формуле вычисляется сумма в центах, которую клиент должен заплатить за товар.
Прикол в том, что если товар стоит 36.91 евро, то
* amount = 36.91
* 100 * amount = 3690.9999999999995
* int(100 * amount) = 3690
И клиент платит всего лишь 36.90!
+97
{$APPTYPE CONSOLE} {$IFDEF FPC}{$MODE DELPHI}{$ENDIF}
uses SysUtils, Classes, IniFiles, Variants;
type TGetToken = function(var p: pointer): LongInt;
procedure ParseData(var p: pointer; isKey: boolean); forward;
procedure AdvanceIndex(var i: LongInt); forward;
function GetIntegerToken(var p: pointer): LongInt;
var value: LongInt = 0;
negative: boolean;
begin
Inc(p);
negative := PByte(p)^ = ord('-');
if negative then Inc(p);
repeat
value := value * 10 + LongInt(PByte(p)^ - $30);
Inc(p)
until PChar(p)^ = 'e';
Inc(p);
if negative then value := - value;
Result := value
end;
function GetListToken(var p: pointer): LongInt;
var index: Integer = 0;
begin
Inc(p);
while PChar(p)^ <> 'e' do begin
AdvanceIndex(index);
ParseData(p, false);
end;
Inc(p);
Result := -1
end;
function GetDictToken(var p: pointer): LongInt;
begin
Inc(p);
while PChar(p)^ <> 'e' do begin
ParseData(p, true);
ParseData(p, false);
end;
Inc(p);
Result := -1
end;
function ParseError(var p: pointer): LongInt;
begin
Writeln('TYIIINTE CBET');
Result := -1;
Halt(Result)
end;
const FuncTable: array[0..3] of TGetToken = (ParseError, GetDictToken, GetIntegerToken, GetListToken);
function GetStringToken(var p: pointer): string;
var value: ShortString;
length: LongInt = 0;
begin
repeat
length := length * 10 + LongInt(PByte(p)^ - $30);
Inc(p)
until PChar(p)^ = ':';
if length in [1..255] then begin
PByte(p)^ := length;
Move(p^, value, length+1);
Result := value;
end else Result := 'BINARY DATA';
Inc(p, length + 1);
end;
var sl: TStringList;
outf: TIniFile;
procedure AdvanceIndex(var i: LongInt);
begin
sl.Add(IntToStr(i));
Inc(i);
end;
type TSaveData = procedure(value: Variant);
procedure SaveData(value: Variant);
var
key: string = '';
i: LongInt;
begin
for i := 0 to sl.Count - 1 do key := key + '.' + sl[i];
Delete(key, 1, 1);
outf.WriteString('Torrent', key, VarToStr(value));
if sl.Count > 0 then sl.Delete(sl.Count - 1);
end;
procedure PushKey(value: Variant);
begin
sl.Add(value)
end;
procedure PopKey(value: Variant);
begin
if sl.Count > 0 then sl.Delete(sl.Count - 1);
end;
procedure NOP(value: Variant);
begin
end;
const SaveDataTable: array[0..3] of TSaveData = (SaveData, PushKey, PopKey, NOP);
procedure ParseData(var p: pointer; isKey: boolean);
var
OpCode: ShortInt;
value: Variant;
begin
OpCode := PByte(p)^;
if OpCode >= $60 then value := FuncTable[OpCode shr 2 and 3](p)
else if Opcode in [$30..$39] then value := GetStringToken(p)
else ParseError(p);
SaveDataTable[ord(isKey) + 2*ord(chr(OpCode) in ['d', 'l'])](value);
end;
var f: TFileStream;
s: LongInt;
p, cp: pointer;
begin
if ParamCount <> 1 then Writeln('Usage: ', ParamStr(0), ' filename.torrent')
else
try
f := TFileStream.Create(ParamStr(1), fmOpenRead);
s:= f.Size;
GetMem(p, s + 1);
f.ReadBuffer(p^, s);
cp := p;
outf := TIniFile.Create(ChangeFileExt(ParamStr(1), '.ini'));
sl := TStringList.Create;
ParseData(cp, false);
finally
if sl <> nil then sl.Destroy();
if outf <> nil then outf.Destroy();
if p <> nil then FreeMem(p);
if f <> nil then f.Destroy()
end
end.