- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
int tries = 0;
while (true)
{
try
{
DoSomething();
}
catch
{
if (++tries > 3)
throw;
}
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+5
int tries = 0;
while (true)
{
try
{
DoSomething();
}
catch
{
if (++tries > 3)
throw;
}
}
Оригинальный способ попытаться выполнить некий код, давая ему на это N попыток , а только потом упасть с ошибкой.
−99
КолонкаTMCID=ТаблицаСЗаказ.колонки.TMCID;
КолонкаTMCID.ТекстШапки = "№ тов.";
КолонкаTMCID.толькоПросмотр = Истина;
КолонкаTMCID.Ширина = Окр(ШиринаТаблицы * 0.08, 0);
КолонкаType=ТаблицаСЗаказ.колонки.Type;
КолонкаType.ТекстШапки = "Тип этикетки";
КолонкаType.толькоПросмотр = Истина;
КолонкаType.Ширина = Окр(ШиринаТаблицы * 0.08, 0);
КолонкаName=ТаблицаСЗаказ.колонки.Name;
КолонкаName.ТекстШапки = "Наименование";
КолонкаName.толькоПросмотр = Истина;
КолонкаName.Ширина = Окр(ШиринаТаблицы * 0.3, 0);
КолонкаКод=ТаблицаСЗаказ.колонки.Kod_et;
КолонкаКод.ТекстШапки = "Код этикетки";
КолонкаКод.толькоПросмотр = Истина;
КолонкаКод.Ширина = Окр(ШиринаТаблицы * 0.08, 0);
//КолонкаSpecif=ТаблицаСЗаказ.колонки.Specif;
//КолонкаSpecif.ТекстШапки = "Спецификация заказа";
//КолонкаSpecif.толькоПросмотр = Истина;
//КолонкаSpecif.Ширина = Окр(ШиринаТаблицы * 0.11, 0);
КолонкаUnit=ТаблицаСЗаказ.колонки.Unit;
КолонкаUnit.ТекстШапки = "Ед.изм";
КолонкаUnit.толькоПросмотр = Истина;
КолонкаUnit.Ширина = Окр(ШиринаТаблицы * 0.08, 0);
КолонкаГород = ТаблицаСЗаказ.колонки.НаправлениеНамоткиГород;
КолонкаГород.ТекстШапки = "Город";
КолонкаГород.толькоПросмотр = Истина;
КолонкаГород.Ширина = Окр(ШиринаТаблицы * 0.12, 0);
КолонкаАдрес = ТаблицаСЗаказ.Колонки.АдресДоставки;
КолонкаАдрес.ТекстШапки = "Адрес Доставки";
КолонкаАдрес.толькоПросмотр = Истина;
КолонкаАдрес.Ширина = Окр(ШиринаТаблицы * 0.12, 0);
Ну вот не в падлу людям такой код писать... Подумаешь +-10 ненужных переменных. Какой-там нахрен рефакторинг?! Делать больше нечего рефакторингом всяким занниматься. Про повторное использование кода слышали? Так вот взяли код, скопировали, вставили - там самым повторно использовали. Горите в аду, копипастеры!
−2
[HttpPost]
[Route("api/Pateikimai/SaveList")]
public OperacijosRezultatas SaveList(List<PateikimasEditItem> models)
{
var atsakymas = new OperacijosRezultatas();
int failCounter = 0;
foreach (var model in models) {
try {
PateikimaiBll.SaveOrUpdate(model);
}
catch (Exception ex) {
failCounter++;
}
}
if (failCounter > 0)
{
atsakymas.SekmingaOperacija = false;
atsakymas.PridetiKlaida("Ne visi įrašai buvo išsaugoti");
}
else {
atsakymas.PridetiSekme("Pateikimų įrašas sėkmingai išsaugotas");
}
return atsakymas;
}
Смесь литовского с английским. Try/catch, который не записывает в лог и юзается для того, чтобы в front-end'e не запариватся с масивами (повторяющееся элементы). Уже не говорю об отсутсвии транзакций и foreach'e в контроллере.
0
#if !defined LOG_PRINT_FNAME && !defined LOG_PRINT_LVL && \
!defined LOG_PRINT_DATE && !defined LOG_PRINT_TIME && \
!defined LOG_TIME_FMT && !defined LOG_DATETIME_SEP && \
!defined LOG_PRINT_TIMER && !defined LOG_VERB
#warning No logging options specified, default config will be used
#endif
// Initialize unitialized values
#ifndef LOG_PRINT_FNAME
#define LOG_PRINT_FNAME true
#endif
#ifndef LOG_PRINT_LVL
#define LOG_PRINT_LVL false
#endif
#ifndef LOG_PRINT_DATE
#define LOG_PRINT_DATE false
#endif
#ifndef LOG_PRINT_TIME
#define LOG_PRINT_TIME false
#endif
#ifndef LOG_DATE_FMT
#define LOG_DATE_FMT "%D"
#endif
#ifndef LOG_TIME_FMT
#define LOG_TIME_FMT "%T"
#endif
#ifndef LOG_DATETIME_SEP
#define LOG_DATETIME_SEP ""
#endif
#ifndef LOG_PRINT_TIMER
#define LOG_PRINT_TIMER true
#endif
#ifndef LOG_VERB
#define LOG_VERB 1
#endif
#if LOG_PRINT_TIMER == true && (LOG_PRINT_DATE == true || LOG_PRINT_TIME == true)
#warning Printing timer and datetime both is not possible, datetime will be discarded
#define LOG_PRINT_DATE false
#define LOG_PRINT_TIME false
#endif
enum LogLevel_t {
INFO = 3,
WARNING = 2,
ERROR = 0,
TRACE = 7
};
#define TIMER
#define DATE
#define TIME
#define SEPARATOR
#define FNAME
#define LVL(lvl)
#define STREAM(lvl) \
((lvl) == TRACE || (lvl) == ERROR) ? std::cerr : std::cout
#if LOG_PRINT_TIMER == true
#define TIMER << "[" << std::fixed << Log::getTimer() << "] "
#endif
#if LOG_PRINT_DATE == true
#define DATE << Log::getTimeFmt(LOG_DATE_FMT) << " "
#endif
#if LOG_PRINT_TIME == true
#define TIME << Log::getTimeFmt(LOG_TIME_FMT) << " "
#endif
#if LOG_PRINT_DATE == true && LOG_PRINT_TIME == true
#define SEPARATOR << LOG_DATETIME_SEP
#endif
#if LOG_PRINT_FNAME == true
#define FNAME << __FUNCTION__ << ": "
#endif
#if LOG_PRINT_LVL == true
#define LVL(lvl) << #lvl << ": "
#endif
#define LOG(lvl) \
std::cout.precision(5); \
STREAM(lvl) TIMER DATE SEPARATOR TIME LVL(lvl) FNAME
xxx: Бля, я написал какое-то говно
yyy: Я видел некоторое дерьмо
xxx: Пиздец просто
zzz: Действительно говно.
xxx: Я не знаю даже нахуя я это делал
xxx: Почему-то, когда начинал, мне не пришло в голову, что логгирование на макросах, конфигурируемое в компилтайме — это пиздец
−1
if(Checksquare()){
if(Checksquare()){
if(Checksquare()){
if(Checksquare()){
if(Checksquare()){
if(Checksquare()){
if(Checksquare()){
if(Checksquare()){
if(Checksquare()){
if(Checksquare()){
if(Checksquare()){
if(Checksquare()){
if(Checksquare()){
if(Checksquare()){
if(Checksquare()){
if(Checksquare()){
if(Checksquare()){
if(Checksquare()){
if(Checksquare()){
if(Checksquare()){
if(Checksquare()){
if(Checksquare()){
if(Checksquare()){
if(Checksquare()){
if(Checksquare()){
if(Checksquare()){
if(Checksquare()){
if(Checksquare()){
if(Checksquare()){
if(Checksquare()){
if(Checksquare()){
Cut(_point(x, y), true);
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
Здесь уместно вспомнить пословицу "Семь раз отмерь,(в данном случае 32 раза) один раз отрежь"
+3
std::string sql = "INSERT INTO digest_test_record (set_id, ref_digest, cand_digest, vdt_cfg_warn, digest_cfg_warn, "
"ref_duration, ref_cardinality, ref_dispersion, "
"cand_duration, cand_cardinality, cand_dispersion, "
"cardinality, difference, red_difference, ext_difference, "
"inv_cardinality, inv_difference, inv_red_difference, inv_ext_difference,
"timing, lib_version) SELECT 0, "
"ROW($1, $2, $3, $4, $5, $6, $7, $8)::digest_info, "
"ROW($9, $10, $11, $12, $13, $14, $15, $16)::digest_info,"
"$17, $18, ",
"$19, $20, $21, "
"$22, $23, $24, "
"$25, $26, $27, $28, "
"$29, $30, $31, $32, "
"$33, ROW($34, $35, $36, make_date($37, $38, $39), $40)::lib_version_info";
cn.prepare("insert", sql);
xact.prepared("insert")
(ref_digest_info.src_width)(ref_digest_info.src_height)(ref_digest_info.src_fps)(ref_digest_info.src_duration)
(ref_digest_info.vdt_duration)(ref_digest_info.cardinality)(ref_digest_info.has_flags)(ref_digest_info.src_filename)
(cand_digest_info.src_width)(cand_digest_info.src_height)(cand_digest_info.src_fps)(cand_digest_info.src_duration)
(cand_digest_info.vdt_duration)(cand_digest_info.cardinality)(cand_digest_info.has_flags)(cand_digest_info.src_filename)
(results.vdt_cfg_warn)(results.digest_cfg_warn)
(results.ref_duration)(results.ref_cardinality)(results.ref_dispersion)
(results.cand_duration)(results.cand_cardinality)(results.cand_dispersion)
(results.cardinality)(results.difference)(results.red_difference)(results.ext_difference)
(results.inv_cardinality)(results.inv_difference)(results.inv_red_difference)(results.inv_ext_difference)
((double)timing / CLOCKS_PER_SEC)(li.main_ver)(li.sub_ver)(li.revision)(li.year)(li.month)(li.day)(li.platform).exec();
Мои глаза.... Яркий пример использования нативного pqxx
−97
tmpDt = ДобавитьМесяц(СсылкаНаОбъект.Дата, -3);
Если Месяц(СсылкаНаОбъект.Дата)<4 Тогда
txt = "Д.в. "+Месяц(tmpDt)+"/"+Год(tmpDt)+"-"+ "0"+Месяц(СсылкаНаОбъект.Дата)+"/"+Формат(Год(СсылкаНаОбъект.Дата),"ЧГ=0");
Иначе
Если Месяц(СсылкаНаОбъект.Дата)<10 Тогда
txt="Д.в. "+"0"+Месяц(tmpDt)+"-"+"0"+Месяц(СсылкаНаОбъект.Дата)+"/"+Формат(Год(СсылкаНаОбъект.Дата),"ЧГ=0");
Иначе
txt="Д.в. "+"0"+Месяц(tmpDt)+"-"+Месяц(СсылкаНаОбъект.Дата)+"/"+Формат(Год(СсылкаНаОбъект.Дата),"ЧГ=0");
КонецЕсли;
КонецЕсли;
Неумение пользоваться форматной строкой приводит к перлам наподобие "если месяц меньше 10, то добавить к месяцу нолик слева".
Это не считая разборки в числа и сборки назад в строку.
−3
>ipconfig | find "IP"
═рёЄЁющър яЁюЄюъюыр IP фы Windows
IP-рфЁхё . . . . . . . . . . . . : 192.168.1.60
ЧЗХ (кодировка)?
−3
_sock = new Socket(SocketType.Stream, ProtocolType.Tcp);
var saea = new SocketAsyncEventArgs {RemoteEndPoint = new IPEndPoint(0x0100007f, 1338)};
var mre = new ManualResetEventSlim(false);
saea.Completed += (o, e2) => mre.Set();
_sock.ConnectAsync(saea);
mre.Wait();
mre.Reset();
var idBuf = new byte[8];
var idSeg = new ArraySegment<byte>(idBuf);
saea = new SocketAsyncEventArgs { BufferList = new[] { idSeg } };
saea.Completed += (o, e2) => mre.Set();
_sock.ReceiveAsync(saea);
mre.Wait();
Task.Run((Action) ReceivingLoop);
mre.Dispose();
Блядские сокеты в UWP. Майки лучше не смогли ничего придумать, как добавлять в язык с нормальной асинхронностью сокеты на КОЛЛБЕКАХ блять. В 2016. Коллбеки. Да они там ебанулись к хуям
+4
// Итальянский код
if (...) {
...
} else {
...
} elsinio {
...
}