- 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
- 80
Сижу такой набираю код
program Project6;
{$APPTYPE CONSOLE}
var i,j: integer;
begin
repeat
readln(j);
i := 0;
if (j=0) then
i := 1
else
break;
Writeln(i);
until false;
end.
[Hint] : Value assigned to 'i' never used
Ну ладно, похер, уберу
program Project6;
{$APPTYPE CONSOLE}
var i,j: integer;
begin
repeat
readln(j);
// i := 0;
if (j=0) then
i := 1
else
break;
Writeln(i);
until false;
end.
[Warning] : Variable 'i' might not have been initialized
_________________
g@@@@@44444*********9444@@@@@@@@@@@Mggg__
g@M" _an**"""""""**Vw=G______"%%@@@@@gg_
,@@` a^" __a=~v-vvv~~,___ _____`"*@gg_
a@@ _M" _m*"` _______ `""""""""""` " "9@g_
@@ a" ,m"_ar*"'` -, ,amv****-~, 9@g
@@ .* u" C ,~ "\ @
d@ ' __gg____ ` @y
g@ ,g@@@@@@@@4@@gg_ C ______ 9@g
g@@.>~. __ a@""@@@@@@__ "9@g ,g@@@@**4@@_ "@g_
g@"$-*""" *Y, @@@@*""**4@@@g__$@C ggg@@@@@@@@@@*" "'" ""Mg`8@g
g@",` ,g@@@@@@@g_ _g@ ""@M" `"@@" *n_"C"@@
g@' p@" ,`"@@@ggggg@@" 8] ,_ _gM@@@@g ' 'C8@
@@ j@ 8@_ `"""' 8@g_ 3@g@@@`, `" ][@
@L 8@ _g@@@@@gg_ _gMMy "9@g_ `""' 8L j8@
@k 3@ d@@@@ "@@@gg_ *""""" @"``___ '@@g_ @@C n" Q@
"@C $ 9k @@_ "8@@@@gg_ @g_fM4@@M g@""" "n. a@@@ _m*3@"
"@g N, 9@@gg_ 8@ `""9@@@gg__" 8gg@M _g@@@d@k a@%
"@@g_' "@@@@@@@@g_ `"8@@@@ggg____ ""` ___gg@@@@ 8@@@ @@
"@g_ '@g `"@@@@gg__ @L `"""4@@@@@@@@@@@@@@@@" @C @@@ 3@
9@_ `@g 3@"9@@@@@@g@ [@ @@ 4@y @kg@@@ [@
9@ 8@gd@ '"9@@@@@@@gggggd@gggggd@gggggg@W@@@@@@@@ [@
8g "@@g @""9@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@F [@
@g "@@g_ d@ '""@@@@@@@@@@@@@@@@@@@@@@@$@ 3@
`@g_ "@@@g_j@' @C ``"3@@"""8@""j@'j@g@@ 3@
9@g_ ~__ ~._ `"@@@@g_ @C 8@ g@^ p@^ "@@M @C
"@@g "9m_ "Nq_ "*@@@@ggggg@______@____@@gg@@@@@M" @L
"9@@g_`"Mm_`"Nq_ """"*4@@@@@@@@@@M@@4*"""' 8k
"9@@g_ ""Mm_"*w__ ~~~~ aaa~~ _/ $@
`"@@gg_ "*WG_"*w~.____ ___am*" / [@
"*@@gg `"*-~<.__ ` __M" 3@
"9@gg_ `""'** ------**""` d@
`"@@ggggg__ ,d@
""9@@@@@gg__ __g@"
`""*4@@@@MggggggggM@@@@"
`""""""""""'
TarasB 24.01.2013 16:03 # +4
tirinox 24.01.2013 18:51 # 0
bormand 24.01.2013 19:46 # 0
TarasB 24.01.2013 20:20 # +3
bormand 24.01.2013 20:25 # +4
LispGovno 25.01.2013 20:25 # +3
Ах тыж крестушок! Как ты мог предать свои корни?
defecate-plusplus 25.01.2013 20:26 # +12
krypt 24.01.2013 17:50 # +1
LispGovno 24.01.2013 20:56 # 0
bormand 24.01.2013 19:12 # +8
В первом случае с горем пополам сумел продраться через все ветки ифа и понять, что i:=0 или перебивается i:=1 или вообще не используется из-за break, и выдал вполне корректный хинт.
Во втором случае почему-то он до этой мысли уже не допёр... Видимо за оба ворнинга отвечают два разных алгоритма, написанных разными людьми.
P.S. Напомнило историю с HP1018 и говнококабелем в комплекте:
Включаю в режиме usb 2.0: "неизвестное устройство" и нихрена не работает
Переключаю на usb1.1: "это устройство может работать быстрее *trollface.png*"
TarasB 24.01.2013 19:34 # +1
Я пробовал делать то же самое без цикла с exit вместо break; но тогда одно из предупреждений таки исчезало.
Кстати смотрю я на рейтинг кода, типа что такое, никто не оценивает, потом курсор навёл на цифру, и тут нифига себе.
LispGovno 24.01.2013 19:41 # 0
Дельфиненависники и дельфи любители.
3.14159265 24.01.2013 19:50 # 0
vistefan 24.01.2013 20:08 # 0
TarasB 24.01.2013 20:20 # +6
LispGovno 24.01.2013 21:03 # −2
Тут суть в том, что есть Дельфиненависники. Думаю понятно кто это. Это все, кто не относится ко второй группе. А есть дельфи любители. Они любят дельфи, но они пока лишь любители. Но с ростом профессионализма они переплывут эту реку Cтикс из царства мертвой царевны Дельфии Борл`андской.
LispGovno 24.01.2013 20:54 # 0
Да у тебя же батхерт!
TarasB 25.01.2013 09:37 # +7
3.14159265 24.01.2013 20:57 # +1
TarasB 25.01.2013 15:01 # +1
bormand 24.01.2013 19:23 # +5
Дух делфи... напоминает мне о временах, когда одногруппники просили помочь с лабой/курсовиком... а там вся прога в этих project1, button5, form2... и я матерился, не понимая, как можно страдать таким мазохизмом, когда без подглядки на форму нельзя понять, что за кнопка упоминается в коде...
santa_microbe 25.01.2013 04:36 # 0
Это дух паскаля ))
bormand 25.01.2013 05:20 # +3
А Project6/Button3 это именно фишка дельфиньего IDE, которое генерит имена в таком стиле, и самих дельфинов, которым влом его переименовать...
TarasB 25.01.2013 09:38 # +3
bormand 25.01.2013 10:18 # +1
vistefan 25.01.2013 13:21 # +2
eth0 25.01.2013 19:49 # 0
Вот что значит - разработка меня испортила.
bormand 25.01.2013 19:57 # 0
P.S. А вот все остальное, кроме мелких тестиков (которые я кидаю в /tmp и линукс их оттуда вычищает на следующий день) я стараюсь называть осмысленно, но в сурсконтрол попадает только что-то уж совсем серьезное.
defecate-plusplus 25.01.2013 20:25 # +1
bormand 25.01.2013 20:29 # +1
defecate-plusplus 25.01.2013 20:32 # +6
у меня последние 2 месяца на работе такой завал, что даже код ревью у комсомольцев сделать некогда
отвлекаюсь только на говнокод - последний рубеж, который нельзя сдавать
bormand 25.01.2013 20:38 # 0
3.14159265 24.01.2013 19:54 # +2
Когда
bormand 24.01.2013 19:58 # 0
bormand 24.01.2013 20:05 # +5
3.14159265 24.01.2013 20:17 # 0
TarasB 24.01.2013 20:22 # +3
scriptin 24.01.2013 22:43 # 0
TarasB 24.01.2013 20:23 # 0
bormand 24.01.2013 20:29 # +4
P.S. А если все-таки a=null убрать - будет вот такая ошибка: variable a might not have been initialized.
3.14159265 24.01.2013 20:42 # +4
И если дописать
final A a=null;
То оно тоже не скомпилится. Отака хуня.
bormand 24.01.2013 20:48 # 0
3.14159265 24.01.2013 20:49 # +2
bormand 24.01.2013 21:06 # 0
3.14159265 24.01.2013 21:13 # 0
Собственно я и использую джва варианта
Но обычно всё обернуто известным хаком на unchecked.
Жуткий ужас, короче.
TarasB 25.01.2013 09:42 # +2
Вообще в жабе походу половина умных паттернов - это костыли, связанные с убогостью языка.
Кстати, интересно там происходит связывание интерфейсов, то есть класс, поддерживающий Callable, об этом не соообщает, тогда что же происходит в new Callable<smth>, поиск метода по имени, или всё-таки всё по-крестоблядски разруливается копулятором?
bormand 25.01.2013 10:21 # +1
LispGovno 25.01.2013 11:07 # 0
bormand 25.01.2013 11:17 # +2
3.14159265 25.01.2013 16:25 # +3
Ну да. Я пришел к схожим размышлениям.
Даже хотел объемный пост сделать с их класификацей.
Например паттерны обертки и копипаста: декоратор, адаптер, заместитель, фасад, прокси - это всё суть одно и тоже. Предельно тупой обёрточный код.
Возьмем к примеру мапу. Её надо синхронизировать. То что в других языках делается через макросы или лямбды в убогой джабе высирается через паттерн:
http://www.docjar.com/html/api/java/util/Collections.java.html
bormand 25.01.2013 16:34 # 0
3.14159265 25.01.2013 16:44 # +1
там статический метод. Collections.syncMap(m)
bormand 25.01.2013 16:58 # 0
3.14159265 25.01.2013 17:05 # 0
А самое смешное что высрали кучу говна, а итераторы вроде у них остались дырявыми и несинхронными.
Ну то есть Map->keySet->Iterator (тут дырка).
3.14159265 25.01.2013 17:08 # +2
Вот тебе бабушка Тарас и паттерны.
bormand 25.01.2013 17:27 # +1
Ага, я заметил в этом файле описания и примеры, в которых добавляли синхронайзед на время пробежки по итератору.
Были бы лямбды - можно было бы передать лямбду в какой-нибудь list.doAtomic(), который бы выполнял ее под своим локом. Но поскольку лямбды черезжопные - must be manually synched by user, и костыли костыли костыли...
bormand 25.01.2013 17:32 # +2
3.14159265 25.01.2013 17:33 # +1
>Инкапсуляция, блять, во все поля
Точно!
<<структурный шаблон проектирования, предназначенный для сокрытия деталей реализации, абстракции от реализации>>
guest 25.01.2013 17:59 # 0
bormand 25.01.2013 18:07 # +1
Да, перевели как "Совершенный код": http://www.ozon.ru/context/detail/id/3159814/
guest 25.01.2013 18:48 # 0
3.14159265 25.01.2013 16:34 # +2
Изначально я хотел написать всего одну сраную строку:
а получилось то что у борманда в посте.
TarasB 24.01.2013 20:47 # +3
Что-то получается, что final это какой-то костыль из-за того, что в языке нет конструкции
a = try dosmth(); catch (...) NULL;
roman-kashitsyn 24.01.2013 20:49 # +5
val a = try { dosmth() } catch { _ => null }
3.14159265 24.01.2013 20:49 # +3
vistefan 25.01.2013 18:11 # 0
Ключевое слово такое есть, но только для того, что бы выдавать ошибку, о том, что джава не умеет в него.
3.14159265 25.01.2013 18:34 # +2
Это _не_ костыль. Наоборот с final всё сделано логично и просто.
Минимум ключевых слов. В С# можно и запутаться: sealed, const и readonly. В жабе этот набор заменяет final.
Хоть я Вирта недолюбливаю, но минимализм пришедший из Модулы - это хорошо.
> только для того, что бы выдавать ошибку, о том, что джава не умеет в него.
Как и с goto. Щитаю прально зделали.
LispGovno 25.01.2013 20:28 # 0
3.14159265 25.01.2013 20:49 # +2
LispGovno 25.01.2013 21:20 # 0
Ничего.
http://dlang.org/enum.html
http://dlang.org/const-faq.html
http://dlang.org/const3.html
3.14159265 25.01.2013 22:06 # +4
To make both the return type and the method immutable, you can write:
struct S {
immutable(int[]) bar() immutable
{
}
}
Нигде этого нету, 99% софта написано на языках без этой фичи.
А в js вообще никаких констант нету. И живут люди.
defecate-plusplus 25.01.2013 22:25 # +4
LispGovno 25.01.2013 22:30 # +1
bormand 25.01.2013 22:30 # +2
LispGovno 25.01.2013 22:32 # +2
bormand 25.01.2013 22:35 # +2
3.14159265 25.01.2013 22:42 # +4
Когда дело дойдет до реально полезного кода - вот тут говно и польется обильным потоком.
Закон работает: количество ошибок говна в программе языке пропорционально его полезности.
Следовательно говна не содержат только никому не нужные языки - brainfuck, D, Haskell, Nemerle.
LispGovno 25.01.2013 22:45 # 0
Исключения составляют программы, учавствующие в космических программах.
3.14159265 25.01.2013 22:47 # +5
Ну вот недавно не взлетел марсоход с оборудованием на миллионы долларов.
Ошибка там была или же просто взорвали пустую ракету - никогда не узнает.
Да и обычно о фейлах умалчивают, а говорят обычно в двух случаях: деваться некуда - говно выплыло, бабки отмыть; жить хорошо можно и на земле - не летая в космос.
defecate-plusplus 25.01.2013 23:04 # +7
ах, боюсь, все полимеры в этой области просраны уже до нас
так, что программисты могут ничего не писать - на результат они не влияют
LispGovno 25.01.2013 23:13 # 0
defecate-plusplus 25.01.2013 23:21 # +1
всё, что ты перечислил - пишут люди
с разной степенью упоротости, конечно
но тем не менее - люди
моя деятельность - примерно в твоем списке
никто никого не петушит, премий не лишают, баги существуют
если в идеальной программе нет бага, это значит, что его пока не нашли
LispGovno 25.01.2013 23:35 # 0
Что если не секрет?
LispGovno 25.01.2013 23:36 # 0
Где баг? Его не нашли, но он есть?
defecate-plusplus 25.01.2013 23:53 # +5
1) в середине запятую забыл
2) в многопоточном приложении эта строчка легко может склеиваться с другим выводом: http://liveworkspace.org/code/4G4ORa$0
> Что если не секрет?
деанон? нет пути
от моих багов люди не умрут, и это неплохо
LispGovno 26.01.2013 00:07 # +1
ничего подробнее фразы: учавствую в проекте системы управления и планирования работы светофорного столба. станет понятно что ты человек важный и если ошибешься, то и человека столбом может придавить
vistefan 26.01.2013 14:08 # +3
LispGovno 26.01.2013 15:29 # +2
TarasB 25.01.2013 23:51 # 0
defecate-plusplus 25.01.2013 23:58 # +2
если они поставили подпись на бумажке, что "тестирование проведено, претензий нет", значит их расстреляют первыми
LispGovno 26.01.2013 00:03 # 0
roman-kashitsyn 26.01.2013 00:10 # +2
LispGovno 26.01.2013 00:21 # −1
roman-kashitsyn 26.01.2013 00:11 # +2
А ты используешь модульные тесты, @defecate-plusplus?
defecate-plusplus 26.01.2013 00:22 # +3
мне стыдно, но практически нет
это всё лень
да и не так уж и много у нас ну совсем независимых частей, которые можно так просто взять и обернуть в mock
а те, которые следует обернуть уже сейчас - их вообще следует выпилить, с позором как недостойные пережитки прошлого, и переписать нормально
с тестами и блекджеком
если будут человеческие ресурсы...
извечные отмазки
LispGovno 26.01.2013 00:25 # 0
> мне стыдно, но практически нет
Как? Ты пишешь проект, по твоим словам, где важно не ошибится, но тесты не используешь - ноу вей! Не слышал о таком. Может ты всеже ничего такого не пишешь? Как такое вообще может быть?
defecate-plusplus 26.01.2013 00:51 # +3
нормально обвешанный тестами проект только процентов на 50 будет состоять из реального кода, остальные 50 будут тестами, да и не так просто для некоторых вещей написать эмуляцию всех случаев, сетевые обмены и прочее
кроме того, компиляция - уже полдела, это не какой-нибудь джаваскрипт в браузерной игре
ну и принимать судьбоносные решения по проектам, распределять трудоресурсы я имею право меньше года, так что за тяжелое наследие без модульных тестов на мне только часть вины
вот как то так
на гейдеве есть один персонаж, его контора пишет ПО для авиадиспетчерской, и еще один персонаж, чья контора пишет ПО для ядерных реакторов
спроси их, сколько в штате программистов и всегда ли у них есть время на обвес модульным тестированием
roman-kashitsyn 26.01.2013 10:33 # +4
В крестах я нахожу тесты очень полезными при разработке библиотек, используемых в нескольких независимых проектах. Особенно, если библиотека активно использует шаблоны, т.к. компиляция в таком случае мало что значит, нужно откуда-то инстанциировать шаблон для фактической проверки, и тест - вполне подходящее место. Иначе на косяк наткнутся сразу несколько клиентов, что не есть хорошо.
+ возможность жёсткого рефакторинга нутрей без пробуждения в поту по ночам. Перекурочил, прогнал тесты, сделал коммит, пошёл пить чай.
defecate-plusplus 26.01.2013 10:37 # 0
scriptin 26.01.2013 17:59 # +4
bormand 26.01.2013 18:15 # +2
Почему-то когда я слышу слово покрытие, у меня всплывает ассоциация про подпокрытие покрытия множества и третий семестр матана, который мне когда-то пришлось пересдавать...
LispGovno 26.01.2013 00:20 # 0
суть fear driven development. в первом же месяце попал в топ 3 (второе место). тут и началось. "Твое место возле параши!" перенесли рабочее место к толчку. посадили на табуретку. запретили приходить на работу в любое время. премия сильно упала. расклеили на всех досках фотку прямо с той же табуреткой. меня больше всего расстроила необходимость вставать в одно и тоже время каждый день. думал подать в суд, но те кто так делали - на долго не задерживались. думал уйти, но зная зарплату каллег - не стал.
больше в топ не попадал, хотя на доску с потерей премии регулярно. в топ 3 - туда попадают или новички или распиздяи-неудачники, которым почему то пофиг на все происходящее вокруг и они на окружающих смотрят с принебрежением.
defecate-plusplus 26.01.2013 00:23 # +4
не контора, а мясорубка человеческих судеб
LispGovno 26.01.2013 00:29 # 0
LispGovno 26.01.2013 00:30 # −3
bormand 26.01.2013 10:37 # +2
Ну а что, они приходят на работу, отсиживают свои 8 часов нихуя не делая и не особо стараясь писать нормальный код, дальше табуретки ведь уже не выгонят, и получают достаточную для них зарплату. Есть такие люди.
bormand 26.01.2013 10:52 # +6
А вообще я против FDD. Такого рода методики очень сильно расшатывают отошения в коллективе.
А ведь гораздо лучше и продуктивней работать, когда коллеги в курилке\на кухне смотрят на тебя не как на говно, сидящее на табуретке, и не как на спихнувшего их с насиженого места и тем самым лишившего премии, а просто как на равного человека, с которым приятно пообщаться или посоветоваться.
Имхо ни к чему вся эта тюремная/армейская дисциплина.
LispGovno 26.01.2013 10:55 # 0
bormand 26.01.2013 10:56 # +8
Это какая-то новая версия Borland Developer Studio? Нет, мне и старые не особо нравились.
LispGovno 26.01.2013 10:58 # 0
LispGovno 26.01.2013 00:27 # 0
LispGovno 26.01.2013 00:47 # 0
Ты про шарашки при Сталине вспомнил? Сталин молодец конечно. Здорово придумал
TarasB 25.01.2013 23:49 # +3
bormand 26.01.2013 11:04 # +1
LispGovno 26.01.2013 11:17 # +1
bormand 26.01.2013 11:28 # 0
LispGovno 26.01.2013 11:32 # 0
LispGovno 26.01.2013 11:37 # 0
LispGovno 26.01.2013 11:40 # 0
Для объявления лямбды, игнорирующей свой параметер в хаскеле была даже отельная функция или оператор где-то среди апликативных функторов или близкой теме, но я забыл название
LispGovno 26.01.2013 11:44 # 0
bormand 26.01.2013 11:41 # +1
LispGovno 26.01.2013 11:47 # 0
LispGovno 26.01.2013 15:28 # 0
Жаль что даже с С++14-17 код
не скомилируется. Вот вроде локоть близок, а не укусишь. Это нововведение в кресты, если кто не понял - вывод типа параметра лямбды
LispGovno 26.01.2013 11:24 # +2
Мутабильность без причины - признак дурачины.
LispGovno 26.01.2013 11:27 # 0
Я решительно не понимаю какая связь между мутабильными переменными и говном? Тебе SICP и Learn You a Haskell for Great Good! мозги промыли чтоли?
bormand 26.01.2013 11:32 # +2
Вот в моем примере a должно быть иммутабельной переменной, чтобы дальше я ее случайно не испортил. Если язык будет заставлять меня дописывать к ней mutable только ради того, чтобы я мог присвоить ее в двух ветках ифа - этот язык сраное говно (да, да, кресты, это о вас).
>> мутабельным без причины
Не все мутабельные переменные говно, а только те, которые мутабельные без причины.
defecate-plusplus 26.01.2013 11:52 # +5
?
bormand 26.01.2013 12:56 # +2
Да, для такого примера можно тернарник, но если надо выполнить пару строчек - то или писать через запятую в тернарнике, или выносить в отдельную функцию, или убирать конст... Не всегда удобно в общем.
Мне жабий final чуть больше понравился в этом отношении - если компилятор может доказать, что final переменная присваивается ровно 1 раз - то можно хоть 10 ифов.
LispGovno 26.01.2013 13:06 # +1
LispGovno 26.01.2013 13:13 # +2
bormand 26.01.2013 14:08 # +2
bormand 26.01.2013 14:14 # +1
А с иммутабельностью по дефолту тут и final'ов бы не было.
P.S. Забыл в коде выше типы дописать, а редактирование уже заблокировалось.
LispGovno 26.01.2013 15:22 # +1
С автовыводом типов тут и типов быть не должно.
bormand 24.01.2013 20:17 # 0
defecate-plusplus 25.01.2013 20:45 # +1
bormand 25.01.2013 20:56 # 0
P.S. Пример и на эклипсовом компилере и на javac из JDK 1.6 ведет себя одинаково.
defecate-plusplus 25.01.2013 20:58 # 0
3.14159265 25.01.2013 20:59 # 0
А с чего бы еще этому оказаться на говнокоде?
Ради мелочей отдельный тред создавать желания нет.
Ну раз Тарас начал...
defecate-plusplus 25.01.2013 21:01 # −1
значит, интуиция меня не подвела
3.14159265 25.01.2013 21:02 # 0
http://govnokod.ru/12472#comment167928
http://govnokod.ru/12472#comment168009
defecate-plusplus 25.01.2013 21:07 # +4
но я это поначалу отверг, думал просто какой то анонимный злодей с цифрами вместо имени возводит напраслину на достопочтимую технологию
а теперь гляжу и, право слово, не знаю что делать
TarasB 25.01.2013 21:37 # +1
В общем, ТРАЕБЛЯДСКИЕ ПРОБЛЕМЫ
3.14159265 25.01.2013 21:50 # +2
уже обсуждали.
это жабопроблемы.
Govnocoder#0xFF 05.02.2013 20:19 # 0
roman-kashitsyn 24.01.2013 20:45 # +2
LispGovno 24.01.2013 21:11 # 0
roman-kashitsyn 24.01.2013 23:58 # +2