История о том, что программного обеспечение всё больше проникает в нашу повседневную жизнь. Вместе с пользой и благами, программный код несёт и новые опасности. Теперь с ошибками программах мы имеем дело, не только сидя за компьютером, но и на дороге.
>>858854 (OP)>Теперь с ошибками программах И сидя за партой, как ОП. Зачем это на /pr борде то?
>>858854 (OP)Если бы ты не был школопитеком, то знал бы, что для любого алгоритма, используемого на оборудовании в промышленности и производстве в т.ч. на транспортных средствах, обязательно требуется предоставление математических доказательств устойчивости алгоритма в любых режимах работы (критерии устойчивости по Ляпунову, Попову и т.п). Никто из ответственных лиц даже не подпишет, не говоря о том что не будет внедрять алгоритм, для которого подобное не предоставлено в составе проектной документации.
>>858911наглая ложь.никто никакие доказательства не проводит и не может проводить, потому как они только для совсем примитивной херни, не связанной с реальностью. Никакого доказательства для сложной программы провести невозможно. Тесла, вон, сделала шахидом своего хозяина, уебав его о незамеченный автопилотом грузовик, и ничего. Хорошо, если тесты более-менее расширенные проведут. А могут и не провести.
>>864104>эта проецирующая пидорахаЗато Крым наш, а доллар - грязная бумажка.Только выиграли.
>>858911@ВСЕРАВНО ПРИХОДЯТ ШТРАФЫ ЗА ТЕНЬ ОТ МАШИНЫ НА ВСТРЕЧКЕ
Поддвачну. Говнокод повсюду, вот буквально сегодня глянул что пишет разработка. Вижу - ContainsKey по словарую, если ключа нет, подтягивает ключ\значение из базы, добавляет в словарь... а потом опять делает выборку из словаря только что добавленного значения. И если есть - то также делает выборку из словаря, не смотря на то, что только что уже делал ContainsKey. Написал - мол так и так, предложил нормальный вариант через TryGetValue. Говорит, а ты докажи что твой вариант быстрее. Расписал, объяснил - выполняется два поиска по словарю вместо одного, исходики привел. Не, говорит, твой код нечитаемый, а мой вариант читаемый и работает заебок, и вообще метод редко вызывается. А зачем, говорю, ты словарь-то добавил, если метод редко вызывается, запрос к базе всегда, раз метод редко вызывается. Похуй, все равно делать не буду, и вообще откуда ты знаешь зачем я словарь добавил. И че ты вообще доебался до моих божественных исходников. И Че по исходникам нашим рыскаешь. У тебя нет задачи такой и прочее.Пиздец, сисярп взростил высокомерных хамовитых мартышек, которым хуй что докажешь, просто потому что они знают сисярп. И это блять ведущий разраб, что там джуниры творят я вообще боюсь подумать.
>>864583А хули ты по исходникам рыскаешь, крыса? Тем более по исходникам ведущего разраба, щенок. Тот словарь там для дела, нет времени каждому скучающему дебилу объяснять для какого.
>>864583 Доки говорят, что этот ваш TryGetValue не меняет словарь, если элемента там не было, таким образом, придётся его туда дополнительно записывать. Потому как словарь в данном случае скорее кеш, туда попадают данные, которые запрашивали. При этом словари работают очень быстро, и часто на высоких языках оптимизация не только не ускорит, а иногда даже замедлит работу. Но даже если и ускорит, то в любом случае ни о чём. Говнокод, это не тот, который работает на микросекунду дольше, а тот, который прямой, наглядный, без багов и поддерживается лучше. Как говорится, если дрочишь на наносекунды, пиздуй в C/C__ (только STL, а не объекты). А так надо на код смотреть.
>>864616>TryGetValue не меняет словарьСамо собой не меняет. Но позволяет сразу получить значение по ключу если ключ есть в словаре.>Потому как словарь в данном случае скорее кешСпасибо, кэп.>Говнокод, это не тот, который работает на микросекунду дольшеif(!dict.ContainsKey(a)) dict.Add(a, db.getIdfromDB(a));b = dict[a];ну если это не говнокод, а>прямой, наглядный, без багов и поддерживается лучше.тады ой.
>>864626>if(!dict.ContainsKey(a))>dict.Add(a, db.getIdfromDB(a));>b = dict[a];Норм кеш, всегда так пишу.Просто ты завистливый неудачник, так-то.
>>864626А теперь напиши свой, чтобы с TryGetVal, и чтобы после его выполнения значение из базы сохранялось в словаре, если его там не было (очевидное желание), и чтобы при этом не криво и могло работать быстрее, чем тут.ps: я тоже так пишу, когда мне нужно кеширование. А когда не нужно, использую аналоги TryGetVal, в ряде случаев самопальные, от языка зависит (си-диезом не пользуюсь).
>>864663if(!dict.TrygetValue(a, out b)) { b = db.getIdfromDB(a); dict.Add(a, b);}
>>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, однако так громоздко и обычно нафиг не надо. короче, ведраб прав. Я бы тоже на его месте послал нахуй. В твоём стиле надо на перле писать, там так модно.
>>864673А ведь это говно и правда шустрее.Хотя оба вы дебилы, это да. Но ты - >>864693 - больше.
>>864693>тут какие-то неочевидные операторы "out b"Даже для меня очевидно, что это значение будет меняться в ходе выполнения функции. js-мартышка
>>864583>>864626Конкретно в этом случае - похуй, т.к. обращение в память хуйня. А вот если бы было два запроса в базу, то я бы был на твоей стороне.
>>864702Если ты не понял, то мне тебя даже не жаль.
>>864701>обращение в память хуйняБыдло, быдло never change.
>>864704Зачем тебе жить?
>>864705Косноязычие это способ сохранять концентрацию на концепте, а не на том, как выразить эту мысль правильнее грамматически.
>>864706Зачем тебе знать?
>>864702>>864706Чет я не понял, какие у тебя претензии к javascript'у? Хейтер молотков, потому что отвертка лучше?
>>864707>выразить эту мысль>мысльНе льсти себе, быдларий.>>864708В научных интересах.Зоонаблюдаю же.
>>864710Ты пока что не сказал ничего по теме, только пытаешься возвыситься в своих собственных глазах, чмоша, говори по теме или сам быдло.
>>864709>какие у тебя претензии к javascript>к javascriptНикаких. Фекалии не виноваты в некоторых особенностях поведения копрофилов.
>>864711>чмоша>сам быдлоВсе ясно.
>>864710>Не льсти себе, быдларий.Мысль следующая: "В случае, когда вычислительные ресурсы стоят дешевле труда разработчика, обращать внимание стоит на читаемость кода". Мысль не нова, конечно.
>>864713Уебывай в б.
>>864712Что конкретно тебе не нравится в javascript, алё. Отличный объектный язык, может в функциональщину, может в паттерн-матчинг, асинхронный, свободный, можно апгрейдить до typescript, если есть необходимость.
>>864714>В случае, когда вычислительные ресурсы стоят дешевлеТаких убогих масштабов и "задач" стоит избегать - как должности кассира в макдаке, например.Хотя, конечно, кому-то надо и.На то быдло и есть - >>864715, например.
>>864716>конкретно тебе не нравится в javascriptКомьюнити, конечно - сплошь неполноценные эмоционально и умственно выродки, вроде тебя.А комьюнити определяет язык, рано или поздно.
>>864718Ты дурак что ли?Есть правило - снижать количество запросов к базе данных, т.к. это очень дорого. Откуда тебе знать, сколько раз будет вызываться эта функция? Ты не думаешь, но думаешь, что думаешь.
>>864720У тебя комплекс неполноценности что ли? Иди обсуждать личности на другую борду, здесь /pr/.
>>864721Не оправдывайся, быдленыш.>обращение в память хуйня.- это все, что следует знать о тебе./ты
>>864722>обсуждать личности>личностиНе льсти себе, существо.Какие же вы личности - жсмартышки, не более.
>>864723У тебя точно что-то не в порядке, выпей валерьянки, анон, а то повредишься.
>>864726>эти оправданияХотя продолжай, разрешаю - ты забавен :3
>>864729Я тебя зарепортил за оффтоп.
>>864693>но я как раз c# не знаюЯ вот тоже практически не знаю, но того что знаю, вполне хватает, чтобы видеть говнокод.>Тогда нет лишнего обращения в словатьЕсть, блять, есть. dict.containsKey(a) - поиск по словарю, и dict[a] - тоже поиск по словарю. Это классика, блять, это знать нужно. Вот только сисярпистомакаки этого не знают, и даже не задумываются, им нахуй похуй. А TryGetVal - такой же метод словаря как и любой другой, и здесь его использование как раз более уместно.
>>864731>этот говнотред о говне>Я тебя зарепортил за оффтоп. Главное чтобы ты учился хорошо, Васенька :3
>>864735Ты формально прав, анон, но конкретно в этом случае стоимость ошибки крайне низка.
>>864735Зачем ты разговариваешь с дебилами, ты что - дурачок?
>>864737>стоимость ошибкиОпределять не кодерку из /зк, твое дело - код хуярить и переделывать согласно указаний. Молча, оптимистично улыбаясь уголками губ.
>>864740Как раз кодеру и определять стоимость ошибки, не кодеру ли считать, сколько алгоритм сожрет ресурсов?
>>864744>не кодеру ли считатьНет, конечно - лиду. Все за тебя посчитают и если наговнокодил - переделаешь согласно стандартам. Премию нахуй, естественно.
>>864751Что за хуйню ты несешь?
>>864754А ты не слишком умный.Не переживай, это нормально для быдла вроде тебя
>>864756Ты думаешь, что на код ревью смотрят на такие мелочи? Скинь-ка свой гитхаб.
>>864737Скажем так, мне например не придет в голову идея написать код, в котором два раза подряд будет выполняться поиск по коллекции. Даже если метод редко вызывается, и даже если я буду знать, что коллекция небольшая. Вот хуй знает почему, но сознательно и целенаправленно говнокодить не могу. Либо это незнание языка и\или библиотеки, либо откровенная халтура, которая отражает отношение разраба к своей работе.
>>864761Да не, анон, если думать над каждой строкой, то это будет занимать слишком много времени. Для рефакторинга обычно время выделяют по остаточному принципу, надо закрывать задачи, а проебы по алгоритму обычно вскрываются, если возникает ботлнек конкретно в этом месте. И в этом случае точно никогда не будет ботлнека. Ты, конечно, молодец, что обращаешь внимание на такие мелочи, но бизнес-требования указывают на другие приоритеты.
>>864758>мелочиЯсно. Понятно.>гитхабhttps://github.com/thoughtpolice
>>864769А теперь пруфани, что это ты.
>>864766>бизнес-требования >приоритеты- совершенно не програмистишки дело. Твое дело - пахать.
>>864771>пруфани+15
>>864773>>864769>>864756>>864751>>864740>>864738>>864725>>864723>>864720>>864718>>864713>>864712>>864710>>864706>>864705>>864700>>864639>>864121>>858862Useless biotrash detected.
>>864766>если возникает ботлнек конкретно в этом месте."Если" - это уже будет поздно. За ботленк на продакшене - заказчик слупит нехилый штраф, а еще потратишь немало времени и опять же денех на поиск причины ботленка, на его исправление, ретест, сборку билда, отгрузку заказчику, развертывание, etc. Уж лучше я минутку-другую потрачу на поиск вменяемого решения, а уж для реализацию подобных мелочей вообще задумываться не надо, все и так на автомате должно быть.
>>864735Во многих современные языках даже локальные переменные в принципе просто записи в словарях. Использовать функции, предназначенные для других целей - отстой и дурной стиль. А в зависимости от языка и интерпретатора, система код может даже оптимизировать, и никаких двух обращений там не будет. Причём явное обращения она скорее прооптимизирует, чем хаки с tryGetVal. Сами словари работают очень быстро обычно, и после первого обращения все элементы, необходимые для доступа, всё равно будут в кеше. В общем ничего на этом не выиграешь.А если хочется дрочить на наносекунды, надо идти в C/C++. На языках с байт-машинами другая несколько логика действует, в том числе по оптимизации.Я уж не говорю о том, что логика кода кривая в итоге получается. Нахуй.
>>864761Это просто абсолютное непонимание того, как работают современные языки и компиляторы, как работают процессоры и в чём вообще смысл программирования.Так можно и от ООП отказаться, ибо охерхед на вызов виртуальных функций большой.
>>864716Слабо реализовать этот пример на js/node? Кеширование запроса из БД? С учётом того, что запрос из БД асинхронный и даст колбак?
>>864726Так тут будет обращение в закешированную память. То есть ни о чём.
>>864931>никаких двух обращений там не будет>явное обращения она скорее прооптимизирует>хаки с tryGetVal>после первого обращения все элементы, необходимые для доступа, всё равно будут в кеше.>>864964>обращение в закешированную память.>>864932>работают современные языкиОх, блять, какой пиздец.
>>865051Тебя ебет?Это говнотред, сру где хочу, мамка не закон.
>>864932>как работают современные языки и компиляторыа как работают современные языки, если не подразумевать под ними компилятор\интерпритатор?
>>858911> что для любого алгоритма, используемого на оборудовании в промышленности и производстве в т.ч. на транспортных средствахХуита. Реально дикая хуита верующего человека
>>864626Абсолютно нормальный, корректный и понятный код. Если ты тратишь столько времени на какие-то иллюзорные хуйни, то я бы на месте того сеньора серьезно задумался о пользе, которую ты не приносишь проекту.