- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
// Статическая типизация для PHP < 7.0
set_error_handler(function(){});
function foo(int $bar)
{
var_dump($bar);
}
foo(1); // Работает и выводит int(1)
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+2
// Статическая типизация для PHP < 7.0
set_error_handler(function(){});
function foo(int $bar)
{
var_dump($bar);
}
foo(1); // Работает и выводит int(1)
Недавно разгребал легасикод доставшийся по наследству. Увидел статическую типизацию там где ее не должно было быть. Проект крутится на 5.3.
+3
/**
* Validate natural number (0,1,2,3,...)
*
* @param string $value number
* @return string
*/
public function natural($value)
{
$response = '';
if (!preg_match('/^[0-9]+$/', $value)) {
$response = $this->lang->get_str('system_invalid_neutral');
}
return $response;
}
/**
* Validate natural number, but not a zero (1,2,3,...)
*
* @param string $value number
* @return string
*/
public function natural_no_zero($value)
{
$response = '';
if (!preg_match('/^[0-9]+$/', $value)) {
$response = $this->lang->get_str('system_invalid_neutral_no_zero');
}
if ($value == 0) {
$response = $this->lang->get_str('system_invalid_neutral_no_zero');
}
return $response;
}
+4
program Project2;
procedure test1;
var
arr:array[0..32] of char;
begin
fillchar(arr,sizeof(arr),'A');
end;
procedure test2;
var
arr:array[0..32] of char;
begin
fillchar(arr,sizeof(arr) div 2,'B');
writeln(arr);
end;
begin
test1;
test2;
//BBBBBBBBBBBBBBBBAAAAAAAAAAAAAAA
readln;
end.
http://ideone.com/qJajnb
+1
void g()
{
int sum;
auto rec = [&sum](int i) -> int
{
static int (*inner)(int&, int) = [](int& _sum, int i)->int
{
_sum += i;
return i>0 ? inner(_sum, i-1)*i : 1;
};
return inner(sum, i);
};
}
0
private AnimatedPanel GetPanelForPage(int page)
{
switch(page)
{
case 1:
return apnInitial;
case 2:
if(ShowExtraInfoPage)
{
DidShowExtraInfo = true;
return apnCustomerInfo;
}
DidShowExtraInfo = false;
break;
case 3:
return apnDeploy;
case 4:
return apnMetrics;
case 5:
return apnSecurity;
case 6:
//if(Static.IsFeatureLicenced((int)Features.PowerManagement, UserMgmt.CustomerGuid))
//{
// return apnPowerCosts;
//}
break;
case 7:
//if(Static.IsFeatureLicenced((int)Features.PowerManagement, UserMgmt.CustomerGuid))
//{
// return apnBaseline;
//}
break;
case 8:
//if(Static.IsFeatureLicenced((int)Features.PowerManagement, UserMgmt.CustomerGuid))
//{
// return apnPowerPolicy;
//}
break;
case 9:
return apnDiscoverTask;
case 10:
return apnWaitForRep;
case 11:
return apnClientEndpoints;
case 12:
return apnWaitForDiscovery;
case 13:
return apnFinished;
default:
break;
}
return null;
}
Перемещаемся по страницам: 1->3->4->5->9
0
QMutableListIterator<AISObjectQML *> it(m_visibleList);
if (it.hasNext()) {
AISObjectQML *v = it.next();
if (v) { // здесь должен быть while, но, признаться, на это уже посрать
delete v;
}
}
m_visibleList.clear();
Есть люди, которые придумали концепцию итераторов для реализации generic алгоритмов. А есть люди, которые любят итераторы, но не любят generic алгоритмы. Ведь с ними код не внушает ужаса и рвотных позывов
+3
JSON объект:
{
"Tickets":[100999,100998,100997],
"Price":[5,5,5],
"TicketCount":3
}
Вместо положенных:
{"Tickets":[ ["100999","5"],["100998","5"],["100997","5"]]}
Разработчик высылает JSON объект где описывает массив, вместо того чтобы просто выслать массив)))))
+3
var listModuleId = dbContext.MODULES.Where(n => n.IFDELETE == 0 && n.DEVICETYPE == 1).Select(m => m.IDMODULE).ToList();
var ListMeasure = dbContext.MEASURE.Where(n => listModuleId.Contains(n.IDMODULES)).GroupBy(m => m.IDMODULES).ToList();
Если в MODULES несколько сотен датчиков, то вторая строка разворачивается в sql-запрос на 22 килобайта, а если в MEASURE 13 тысяч записей, то этот запрос выполняется полторы минуты.
Молчу уже о том, что listModuleId нигде, кроме второй строки, не используется.
0
static void Main(string[] args)
{
try
{
watcher.Path = TargetPath;
watcher.Created += Watcher_Created;
watcher.Renamed += Watcher_Created;
watcher.EnableRaisingEvents = true;
logger.Info("Сервис запущен.");
System.Threading.Thread.Sleep(System.Threading.Timeout.Infinite);
}
catch(Exception ex)
{
logger.Error(ex, "Global error", null);
Main(null);
}
}
−1
private static async Task<DataTable> GetWaitingBetsHandlingHistory(int customerID, int betID, DateTime date)
{
// copied from: CBets.GetWaitingBetsHandlingHistory
string connectionString = AppConfig.MachineAppSettings("connectionString");
SqlConnection conn = new SqlConnection(connectionString);
...
Copy-paste-driven development confession