- 1
- 2
- 3
- 4
- 5
- 6
for(i = 0; i < strlen(line); i++)
{
...
doSomethingWith(line);
...
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+31
for(i = 0; i < strlen(line); i++)
{
...
doSomethingWith(line);
...
}
Пишет на С++, так как в нем (цитирую) больше возможностей, но std::string он не использует по причине (цитирую) его несовместимости с си компиляторами.
Автор намекнул мне, что я не умею в многопоточность и что этот код лучше любого другого подходит для исполнения в многопоточной среде на тот случай, если переменная line bump изменится ("англици́зм" цитирую дословно, видимо вставленный для понтов и переводимое как наречие внезапно).
Имеет ли смысл доказывать, что он не прав, если я с ним не работаю?
0
# Python 2.7
import cgi
print(cgi.parse_qs('a=bagor;+kakoi'))
# {'a': ['bagor']}
# Python 3.7.3
import urllib.parse
print(urllib.parse.parse_qs('a=bagor;+kakoi'))
# {'a': ['bagor']}
# Python 3.9.10
import urllib.parse
print(urllib.parse.parse_qs('a=bagor;+kakoi'))
# {'a': ['bagor; kakoi']}
Что, блядь, это за хуета???
Переводил программу на Python3 и пол дня потратил в попытках понять почему блядь тесты сломались.
Какой-то петух завязался, на ';' сепаратор, который обрезается.
https://docs.python.org/3/library/urllib.parse.html
Changed in version 3.10: Added separator parameter with the default value of &. Python versions earlier than Python 3.10 allowed using both ; and & as query parameter separator. This has been changed to allow only a single separator key, with & as the default separator.
И у меня не 3.10, но да похуй.
Как мне теперь закостылять это говно, не меняя данные?
+136
int file_exist (char *filename)
{
char s[200];
sprintf(s, "test -e %s", filename);
if (system(s) == 0){
return 1;
}else{
return 0;
}
}
http://stackoverflow.com/questions/3828192/checking-if-a-directory-exists-in-unix-system-call
−29
calculateSomething(int n){
float* x = new float[n];
/*do smth*/
if ( /*validation*/ ) {
delete[] x;
return;
}
float* y = new float[n];
/*do smth*/
if ( /*validation*/ ) {
delete[] x;
delete[] y;
return;
}
float* z = new float[n];
/*next step*/
if ( /*smth goes wrong*/ ) {
delete[] x;
delete[] y;
delete[] z;
return;
}
/*more calculations with validation*/
delete[] x;
delete[] y;
...
/*more delete[]*/
return;
}
Принципиальная схема говногода, найденного на просторах сети.
+66
$pr = array();
foreach ($params as $k => $v)
$pr[] .= urlencode($k).'='.urldecode($v);
$data = join('&', $pr);
http_build_query() для слабаков! Только велосипеды, только выстрел себе в ногу.
/netcat/admin/nc_adminnotice.class.php
+148
<?
$optSelect['10'] = ($_REQUEST['sort_count']=='10') ? 'selected' : '';
$optSelect['20'] = ($_REQUEST['sort_count']=='20') ? 'selected' : '';
$optSelect['50'] = ($_REQUEST['sort_count']=='50') ? 'selected' : '';
$optSelect['all'] = ($_REQUEST['sort_count']=='all') ? 'selected' : '';
$remParams = array('sort_count');
//функция GetCurPageParam в битрикс возвращает путь к текущей странице с добавлением/удалением параметров (автор поста)
$optValueURI['10'] = $APPLICATION->GetCurPageParam('sort_count=10', $remParams);
$optValueURI['20'] = $APPLICATION->GetCurPageParam('sort_count=20', $remParams);
$optValueURI['50'] = $APPLICATION->GetCurPageParam('sort_count=50', $remParams);
$optValueURI['all'] = $APPLICATION->GetCurPageParam('sort_count=all', $remParams);
$optValue['10'] = $siteURL . $optValueURI['10'];
$optValue['20'] = $siteURL . $optValueURI['20'];
$optValue['50'] = $siteURL . $optValueURI['50'];
$optValue['all'] = $siteURL . $optValueURI['all'];
?>
<select onChange="location=this.value">
<option <?=$optSelect['10']?> value="<?=$optValue['10']?>">10</option>
<option <?=$optSelect['20']?> value="<?=$optValue['20']?>">20</option>
<option <?=$optSelect['50']?> value="<?=$optValue['50']?>">50</option>
<option <?=$optSelect['all']?> value="<?=$optValue['all']?>">Все</option>
</select>
Реализация Селекта количества выводимых элементов на странице. Сайт делал топовый партнёр 1c-Bitrix.
Я думаю, что разумнее было бы сделать так:
$arPages = array(10, 20, 50, 'all');
foreach ($arPages as $page) {?>
<option <?if($page == $_REQUEST['sort_count']){?>selected<?}?>>$page</option>
<?}?>
Ну и для сабмита можно какую нибудь нормальную функцию в JS написать.
−3
https://habr.com/ru/post/465553/
А правда, почему компилятор C++ позволяет писать такую хуету
x+= x++ + ++x;
x^=y^=x^=y;
?
−1
class Govno {
virtual void govno() = 0;
};
Откуда такой дурацкий синтаксис? ))
Прочитал у страуса, джва дня смеюсь.
Может кто-то знает причину?
+159
...
$ORDER_ID = urldecode(urldecode($_REQUEST["ORDER_ID"]));
...
битрикс :)
+78
public void initializeMap() {
for(Point p: getPoints()) {
{
Address address = p.getAddress();
LatLng position = new LatLng(address.getLatitude(), address.getLongitude());
//...
} // (2)
for (Item item : items) {
Address address = item.getAddress();
LatLng position = new LatLng(address.getLatitude(), address.getLongitude());
//...
}
}
}
автору лень придумывать вменяемые имена переменных, для кода ниже. по сему, он просто оборачивает верний код в новый блок и вуаля - можно реюзать те самые имена.
не совсем уверен говнокод ли это, но как минимум это - глупо.