Сохранен 67
https://2ch.hk/pr/res/858854.html
Прошлые домены не функционирует! Используйте адрес ARHIVACH.VC.
24 декабря 2023 г. Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

Говнокод везде, даже на дороге

 Иван 18/10/16 Втр 10:38:49 #1 №858854 
14767763293820.png
История о том, что программного обеспечение всё больше проникает в нашу повседневную жизнь. Вместе с пользой и благами, программный код несёт и новые опасности. Теперь с ошибками программах мы имеем дело, не только сидя за компьютером, но и на дороге.
sage 18/10/16 Втр 11:13:58 #2 №858862 
>>858854 (OP)
>Теперь с ошибками программах
И сидя за партой, как ОП. Зачем это на /pr борде то?
Аноним 18/10/16 Втр 12:21:35 #3 №858911 
>>858854 (OP)
Если бы ты не был школопитеком, то знал бы, что для любого алгоритма, используемого на оборудовании в промышленности и производстве в т.ч. на транспортных средствах, обязательно требуется предоставление математических доказательств устойчивости алгоритма в любых режимах работы (критерии устойчивости по Ляпунову, Попову и т.п). Никто из ответственных лиц даже не подпишет, не говоря о том что не будет внедрять алгоритм, для которого подобное не предоставлено в составе проектной документации.
Аноним 26/10/16 Срд 19:38:08 #4 №864104 
>>858911
наглая ложь.

никто никакие доказательства не проводит и не может проводить, потому как они только для совсем примитивной херни, не связанной с реальностью. Никакого доказательства для сложной программы провести невозможно.

Тесла, вон, сделала шахидом своего хозяина, уебав его о незамеченный автопилотом грузовик, и ничего.

Хорошо, если тесты более-менее расширенные проведут. А могут и не провести.
Аноним 26/10/16 Срд 19:55:19 #5 №864121 
>>864104
>эта проецирующая пидораха
Зато Крым наш, а доллар - грязная бумажка.
Только выиграли.
Аноним 27/10/16 Чтв 12:31:56 #6 №864473 
>>858911
@
ВСЕРАВНО ПРИХОДЯТ ШТРАФЫ ЗА ТЕНЬ ОТ МАШИНЫ НА ВСТРЕЧКЕ
Аноним 27/10/16 Чтв 15:05:38 #7 №864583 
Поддвачну. Говнокод повсюду, вот буквально сегодня глянул что пишет разработка. Вижу - ContainsKey по словарую, если ключа нет, подтягивает ключ\значение из базы, добавляет в словарь... а потом опять делает выборку из словаря только что добавленного значения. И если есть - то также делает выборку из словаря, не смотря на то, что только что уже делал ContainsKey. Написал - мол так и так, предложил нормальный вариант через TryGetValue. Говорит, а ты докажи что твой вариант быстрее. Расписал, объяснил - выполняется два поиска по словарю вместо одного, исходики привел. Не, говорит, твой код нечитаемый, а мой вариант читаемый и работает заебок, и вообще метод редко вызывается. А зачем, говорю, ты словарь-то добавил, если метод редко вызывается, запрос к базе всегда, раз метод редко вызывается. Похуй, все равно делать не буду, и вообще откуда ты знаешь зачем я словарь добавил. И че ты вообще доебался до моих божественных исходников. И Че по исходникам нашим рыскаешь. У тебя нет задачи такой и прочее.
Пиздец, сисярп взростил высокомерных хамовитых мартышек, которым хуй что докажешь, просто потому что они знают сисярп. И это блять ведущий разраб, что там джуниры творят я вообще боюсь подумать.
Аноним 27/10/16 Чтв 15:19:46 #8 №864596 
>>864583
А хули ты по исходникам рыскаешь, крыса? Тем более по исходникам ведущего разраба, щенок. Тот словарь там для дела, нет времени каждому скучающему дебилу объяснять для какого.
Аноним 27/10/16 Чтв 15:32:02 #9 №864616 
>>864583
Доки говорят, что этот ваш TryGetValue не меняет словарь, если элемента там не было, таким образом, придётся его туда дополнительно записывать. Потому как словарь в данном случае скорее кеш, туда попадают данные, которые запрашивали.
При этом словари работают очень быстро, и часто на высоких языках оптимизация не только не ускорит, а иногда даже замедлит работу. Но даже если и ускорит, то в любом случае ни о чём.
Говнокод, это не тот, который работает на микросекунду дольше, а тот, который прямой, наглядный, без багов и поддерживается лучше.
Как говорится, если дрочишь на наносекунды, пиздуй в C/C__ (только STL, а не объекты). А так надо на код смотреть.
Аноним 27/10/16 Чтв 15:43:56 #10 №864626 
>>864616
>TryGetValue не меняет словарь
Само собой не меняет. Но позволяет сразу получить значение по ключу если ключ есть в словаре.
>Потому как словарь в данном случае скорее кеш
Спасибо, кэп.
>Говнокод, это не тот, который работает на микросекунду дольше
if(!dict.ContainsKey(a))
dict.Add(a, db.getIdfromDB(a));
b = dict[a];
ну если это не говнокод, а
>прямой, наглядный, без багов и поддерживается лучше.
тады ой.
Аноним 27/10/16 Чтв 15:53:27 #11 №864639 
>>864626
>if(!dict.ContainsKey(a))
>dict.Add(a, db.getIdfromDB(a));
>b = dict[a];

Норм кеш, всегда так пишу.
Просто ты завистливый неудачник, так-то.
Аноним 27/10/16 Чтв 16:44:09 #12 №864663 
>>864626
А теперь напиши свой, чтобы с TryGetVal, и чтобы после его выполнения значение из базы сохранялось в словаре, если его там не было (очевидное желание), и чтобы при этом не криво и могло работать быстрее, чем тут.

ps: я тоже так пишу, когда мне нужно кеширование. А когда не нужно, использую аналоги TryGetVal, в ряде случаев самопальные, от языка зависит (си-диезом не пользуюсь).
Аноним 27/10/16 Чтв 17:04:07 #13 №864673 
>>864663
if(!dict.TrygetValue(a, out b)) {
b = db.getIdfromDB(a);
dict.Add(a, b);
}
Аноним 27/10/16 Чтв 18:01:50 #14 №864693 
>>864673
И это как бы лучше код?
Во-первых, он нихрена не понятный для того, кто не знает c#, тут какие-то неочевидные операторы "out b", я даже аналогов из других языков не приведу. Я вот не понимаю, к он работает, но я как раз c# не знаю - хрен знает, когда это связывание 'out b' происходит. Или вообще не происходит, а TryGetValue используется не по назначению, по сути как ContainsKey/ А конструкция от ведущего разраба очевидна и наглядна, и одинаково реализуется почти на всех языках.

Конструкцию от ведущего разработчика можно переписать как:
if (!dict.containsKey(a)) {
b = db.getInformDB(a);
dict.add(a, b);
} else {
b = dict[a];
}
Тогда нет лишнего обращения в словать и не используется через жопу TryGetVal, однако так громоздко и обычно нафиг не надо.

короче, ведраб прав. Я бы тоже на его месте послал нахуй. В твоём стиле надо на перле писать, там так модно.
Аноним 27/10/16 Чтв 18:04:11 #15 №864695 
>>864673
А ведь это говно и правда шустрее.
Хотя оба вы дебилы, это да. Но ты - >>864693 - больше.
Аноним 27/10/16 Чтв 18:11:55 #16 №864700 
>>864693
>тут какие-то неочевидные операторы "out b"
Даже для меня очевидно, что это значение будет меняться в ходе выполнения функции.
js-мартышка
Аноним 27/10/16 Чтв 18:13:00 #17 №864701 
>>864583
>>864626
Конкретно в этом случае - похуй, т.к. обращение в память хуйня. А вот если бы было два запроса в базу, то я бы был на твоей стороне.
Аноним 27/10/16 Чтв 18:14:08 #18 №864704 
>>864702
Если ты не понял, то мне тебя даже не жаль.
Аноним 27/10/16 Чтв 18:14:14 #19 №864705 
>>864701
>обращение в память хуйня
Быдло, быдло never change.
Аноним 27/10/16 Чтв 18:14:48 #20 №864706 
>>864704
Зачем тебе жить?
Аноним 27/10/16 Чтв 18:15:22 #21 №864707 
>>864705
Косноязычие это способ сохранять концентрацию на концепте, а не на том, как выразить эту мысль правильнее грамматически.
Аноним 27/10/16 Чтв 18:15:38 #22 №864708 
>>864706
Зачем тебе знать?
Аноним 27/10/16 Чтв 18:16:51 #23 №864709 
>>864702
>>864706
Чет я не понял, какие у тебя претензии к javascript'у? Хейтер молотков, потому что отвертка лучше?
Аноним 27/10/16 Чтв 18:17:33 #24 №864710 
>>864707
>выразить эту мысль
>мысль
Не льсти себе, быдларий.
>>864708
В научных интересах.
Зоонаблюдаю же.
Аноним 27/10/16 Чтв 18:18:49 #25 №864711 
>>864710
Ты пока что не сказал ничего по теме, только пытаешься возвыситься в своих собственных глазах, чмоша, говори по теме или сам быдло.
Аноним 27/10/16 Чтв 18:19:08 #26 №864712 
>>864709
>какие у тебя претензии к javascript
>к javascript
Никаких. Фекалии не виноваты в некоторых особенностях поведения копрофилов.
Аноним 27/10/16 Чтв 18:19:42 #27 №864713 
>>864711
>чмоша
>сам быдло
Все ясно.
Аноним 27/10/16 Чтв 18:20:34 #28 №864714 
>>864710
>Не льсти себе, быдларий.
Мысль следующая: "В случае, когда вычислительные ресурсы стоят дешевле труда разработчика, обращать внимание стоит на читаемость кода". Мысль не нова, конечно.
Аноним 27/10/16 Чтв 18:20:55 #29 №864715 
>>864713
Уебывай в б.
Аноним 27/10/16 Чтв 18:22:10 #30 №864716 
>>864712
Что конкретно тебе не нравится в javascript, алё. Отличный объектный язык, может в функциональщину, может в паттерн-матчинг, асинхронный, свободный, можно апгрейдить до typescript, если есть необходимость.
Аноним 27/10/16 Чтв 18:23:32 #31 №864718 
>>864714
>В случае, когда вычислительные ресурсы стоят дешевле
Таких убогих масштабов и "задач" стоит избегать - как должности кассира в макдаке, например.
Хотя, конечно, кому-то надо и.
На то быдло и есть - >>864715, например.
Аноним 27/10/16 Чтв 18:25:22 #32 №864720 
>>864716
>конкретно тебе не нравится в javascript
Комьюнити, конечно - сплошь неполноценные эмоционально и умственно выродки, вроде тебя.
А комьюнити определяет язык, рано или поздно.
Аноним 27/10/16 Чтв 18:26:57 #33 №864721 
>>864718
Ты дурак что ли?
Есть правило - снижать количество запросов к базе данных, т.к. это очень дорого.
Откуда тебе знать, сколько раз будет вызываться эта функция?
Ты не думаешь, но думаешь, что думаешь.
Аноним 27/10/16 Чтв 18:27:23 #34 №864722 
>>864720
У тебя комплекс неполноценности что ли? Иди обсуждать личности на другую борду, здесь /pr/.
Аноним 27/10/16 Чтв 18:29:02 #35 №864723 
>>864721
Не оправдывайся, быдленыш.
>обращение в память хуйня.
- это все, что следует знать о тебе.
/ты
Аноним 27/10/16 Чтв 18:30:08 #36 №864725 
>>864722
>обсуждать личности
>личности
Не льсти себе, существо.
Какие же вы личности - жсмартышки, не более.
Аноним 27/10/16 Чтв 18:31:12 #37 №864726 
14775822722750.jpg
>>864723
У тебя точно что-то не в порядке, выпей валерьянки, анон, а то повредишься.
Аноним 27/10/16 Чтв 18:32:16 #38 №864729 
>>864726
>эти оправдания
Хотя продолжай, разрешаю - ты забавен :3
Аноним 27/10/16 Чтв 18:33:20 #39 №864731 
>>864729
Я тебя зарепортил за оффтоп.
Аноним 27/10/16 Чтв 18:36:07 #40 №864735 
>>864693
>но я как раз c# не знаю
Я вот тоже практически не знаю, но того что знаю, вполне хватает, чтобы видеть говнокод.
>Тогда нет лишнего обращения в словать
Есть, блять, есть. dict.containsKey(a) - поиск по словарю, и dict[a] - тоже поиск по словарю. Это классика, блять, это знать нужно. Вот только сисярпистомакаки этого не знают, и даже не задумываются, им нахуй похуй. А TryGetVal - такой же метод словаря как и любой другой, и здесь его использование как раз более уместно.
Аноним 27/10/16 Чтв 18:36:31 #41 №864736 
>>864731
>этот говнотред о говне
>Я тебя зарепортил за оффтоп.
Главное чтобы ты учился хорошо, Васенька :3
Аноним 27/10/16 Чтв 18:37:14 #42 №864737 
>>864735
Ты формально прав, анон, но конкретно в этом случае стоимость ошибки крайне низка.
Аноним 27/10/16 Чтв 18:37:17 #43 №864738 
>>864735
Зачем ты разговариваешь с дебилами, ты что - дурачок?
Аноним 27/10/16 Чтв 18:38:38 #44 №864740 
>>864737
>стоимость ошибки
Определять не кодерку из /зк, твое дело - код хуярить и переделывать согласно указаний. Молча, оптимистично улыбаясь уголками губ.
Аноним 27/10/16 Чтв 18:39:40 #45 №864744 
>>864740
Как раз кодеру и определять стоимость ошибки, не кодеру ли считать, сколько алгоритм сожрет ресурсов?
Аноним 27/10/16 Чтв 18:42:42 #46 №864751 
>>864744
>не кодеру ли считать
Нет, конечно - лиду. Все за тебя посчитают и если наговнокодил - переделаешь согласно стандартам. Премию нахуй, естественно.
Аноним 27/10/16 Чтв 18:45:18 #47 №864754 
>>864751
Что за хуйню ты несешь?
Аноним 27/10/16 Чтв 18:47:12 #48 №864756 
>>864754
А ты не слишком умный.
Не переживай, это нормально для быдла вроде тебя
Аноним 27/10/16 Чтв 18:48:52 #49 №864758 
>>864756
Ты думаешь, что на код ревью смотрят на такие мелочи? Скинь-ка свой гитхаб.
Аноним 27/10/16 Чтв 18:50:24 #50 №864761 
>>864737
Скажем так, мне например не придет в голову идея написать код, в котором два раза подряд будет выполняться поиск по коллекции. Даже если метод редко вызывается, и даже если я буду знать, что коллекция небольшая. Вот хуй знает почему, но сознательно и целенаправленно говнокодить не могу. Либо это незнание языка и\или библиотеки, либо откровенная халтура, которая отражает отношение разраба к своей работе.
Аноним 27/10/16 Чтв 18:53:01 #51 №864766 
>>864761
Да не, анон, если думать над каждой строкой, то это будет занимать слишком много времени. Для рефакторинга обычно время выделяют по остаточному принципу, надо закрывать задачи, а проебы по алгоритму обычно вскрываются, если возникает ботлнек конкретно в этом месте. И в этом случае точно никогда не будет ботлнека. Ты, конечно, молодец, что обращаешь внимание на такие мелочи, но бизнес-требования указывают на другие приоритеты.
Аноним 27/10/16 Чтв 18:57:16 #52 №864769 
>>864758
>мелочи
Ясно. Понятно.
>гитхаб
https://github.com/thoughtpolice
Аноним 27/10/16 Чтв 18:58:36 #53 №864771 
>>864769
А теперь пруфани, что это ты.
Аноним 27/10/16 Чтв 18:59:06 #54 №864773 
>>864766
>бизнес-требования
>приоритеты
- совершенно не програмистишки дело. Твое дело - пахать.
Аноним 27/10/16 Чтв 18:59:47 #55 №864774 
14775839880400.png
>>864771
>пруфани
+15
Аноним 27/10/16 Чтв 19:02:18 #56 №864777 
14775841384650.jpg
>>864773
>>864769
>>864756
>>864751
>>864740
>>864738
>>864725
>>864723
>>864720
>>864718
>>864713
>>864712
>>864710
>>864706
>>864705
>>864700
>>864639
>>864121
>>858862
Useless biotrash detected.
Аноним 27/10/16 Чтв 19:17:50 #57 №864797 
>>864766
>если возникает ботлнек конкретно в этом месте.
"Если" - это уже будет поздно. За ботленк на продакшене - заказчик слупит нехилый штраф, а еще потратишь немало времени и опять же денех на поиск причины ботленка, на его исправление, ретест, сборку билда, отгрузку заказчику, развертывание, etc. Уж лучше я минутку-другую потрачу на поиск вменяемого решения, а уж для реализацию подобных мелочей вообще задумываться не надо, все и так на автомате должно быть.
Аноним 27/10/16 Чтв 23:14:58 #58 №864931 
>>864735
Во многих современные языках даже локальные переменные в принципе просто записи в словарях.

Использовать функции, предназначенные для других целей - отстой и дурной стиль. А в зависимости от языка и интерпретатора, система код может даже оптимизировать, и никаких двух обращений там не будет. Причём явное обращения она скорее прооптимизирует, чем хаки с tryGetVal.

Сами словари работают очень быстро обычно, и после первого обращения все элементы, необходимые для доступа, всё равно будут в кеше. В общем ничего на этом не выиграешь.

А если хочется дрочить на наносекунды, надо идти в C/C++. На языках с байт-машинами другая несколько логика действует, в том числе по оптимизации.

Я уж не говорю о том, что логика кода кривая в итоге получается. Нахуй.
Аноним 27/10/16 Чтв 23:17:31 #59 №864932 
>>864761
Это просто абсолютное непонимание того, как работают современные языки и компиляторы, как работают процессоры и в чём вообще смысл программирования.

Так можно и от ООП отказаться, ибо охерхед на вызов виртуальных функций большой.
Аноним 27/10/16 Чтв 23:27:25 #60 №864933 
>>864716
Слабо реализовать этот пример на js/node? Кеширование запроса из БД? С учётом того, что запрос из БД асинхронный и даст колбак?
Аноним 28/10/16 Птн 00:22:26 #61 №864964 
>>864726
Так тут будет обращение в закешированную память. То есть ни о чём.
Аноним 28/10/16 Птн 11:18:13 #62 №865051 
14776426936130.jpg
>>864931
>никаких двух обращений там не будет
>явное обращения она скорее прооптимизирует
>хаки с tryGetVal
>после первого обращения все элементы, необходимые для доступа, всё равно будут в кеше.
>>864964
>обращение в закешированную память.
>>864932
>работают современные языки
Ох, блять, какой пиздец.
Аноним 28/10/16 Птн 11:46:04 #63 №865061 
>>865051
Тебя ебет?
Это говнотред, сру где хочу, мамка не закон.
Аноним 29/10/16 Суб 14:33:34 #64 №865713 
>>864932
>как работают современные языки и компиляторы
а как работают современные языки, если не подразумевать под ними компилятор\интерпритатор?
Аноним 30/10/16 Вск 22:47:25 #65 №866595 
>>858911
> что для любого алгоритма, используемого на оборудовании в промышленности и производстве в т.ч. на транспортных средствах
Хуита. Реально дикая хуита верующего человека
Аноним 31/10/16 Пнд 01:07:06 #66 №866677 
14778652266900.jpg
Аноним 31/10/16 Пнд 17:02:52 #67 №867170 
>>864626
Абсолютно нормальный, корректный и понятный код. Если ты тратишь столько времени на какие-то иллюзорные хуйни, то я бы на месте того сеньора серьезно задумался о пользе, которую ты не приносишь проекту.
comments powered by Disqus