Тоже около 15 лет в IT-индустрии. И скажу, что таких ошибок как в двух приведённых примерах в коммерческом коде опытным разработчикам не прощают.
У меня 25+ дет в IT-индустрии, и мой опыт говорит о том, что любой программист может совершить любую глупую ошибку. Хотя бы потому, что код не пишется линейно и сразу. Допустим была старая версия функции. Потом пришла идея что-то улучшить, добавить новые возможности, для чего надо сделать, скажем пять изменений. А программист внёс четыре, а пятое забыл. И да, может выглядеть очень глупо, то даже пройти какие-то тесты :) И это не говоря о том, что во многих местах (
&= вместо tt]&&=[/tt]) это может быть банальной опечаткой. Не да, такие уж языки C/C++, что случайное удаление/замена/вставка одного символа может привести к неверной программе без каких-либо предупреждений. Уже в Pascal/Ada этого добиться сложнее, но это немного другой разговор. И это всё выглядит как скрытая реклама какого-то статистического чекера, ибо на другом форуме он же использовался для того, чтобы ругать OpenSource с аналогичными аргументами: люди ошибаются. Да, ошибаются.
-- 12.01.2022, 09:56 --Хороший код определить сложнее. Есть книга «Совершенный код». То что соответствует всем требованиям из неё можно считать хорошим кодом.
Ну.... Я рассматриваю эту книгу больше как рекомендации одного человека с экспертизой в достаточно узкой области (заимоствованное из Симулы ООП с небольшими методами, для решения бизнес задач), где-то выражающей личные вкусы автора. В каком-нить embedded на Си многие рекомендации будут выглядеть откровенно говоря вредными. Или для алгоритмических расчётов. Например, не использовать сокращения в мире, где как-то точно назвать сущность может быть весьма проблематичным. Нет, я видел, конечно, небольшие рассказы я именах методов (более 50-ти символов) в коммерческом, кстати, коде, но не считаю это хорошей практикой. Ну а так я даже встречал развитие этой идеи и даже требование переписать все учебники по математики и по физике с внятными именами идентификаторов :)
-- 12.01.2022, 10:06 --Хороший код - это такой код, при прочтении которого в общем и среднем некая референсная группа "нормальных программиздов" сможет наиболее быстро ответить на три вопроса:
Интересно, как набирать референсную группу? Если мне показать какой-нить код из мира Java с равиоли из классов, я буду ругать его на чём свет стоит, и взяд ли смогу ответить на большую часть вопросов за вменяеое время. Зато если мне дать код какого-нить модуля ядра Linux, где будут методы 500+ строчек, я в нём буду ориентироваться намного лучше и комфортнее. С другой стороны, для какого-нить разработчика .NET ситуация может быть ровно наоборот. Само определение «нормальности» оно субъективно, и часто это «я и все кто разделяет мою точку зрения, нормальны» :)
-- 12.01.2022, 10:20 --Я не могу понять одну вещь касательно JS-опенсорса. Зачем вообще ССЫЛАТЬСЯ на чужой репозиторий, непонятно кем разработанный, и который непонятно в какой (т.е. в любой) момент может непонятно кто сломать??? Какая такая религия запрещает просто СКОПИРОВАТЬ код себе? (при необходимости — периодически копировать изменения из апстрима, разумеется, если они успешно пройдут тестирование).
Потому что это делает менеджер пакетов, и в том числе управляет зависимостями. Очень может быть, что этот пакет используешь не напрямую, а какой-то другой пакет, который тоже использует не напрямую. Можно, конечно, следить за всеми версиями пакетов и зависимостями руками, но тогда увеличивается шансы отстать и привязаться до конкретной версии (аврал какой-нить). И если в зависимостях сотни пакетов, то тестирование каждого тоже куча труда. Ну а так мейнтейнеры менеджера пакетов следят за тестами сами, чтобы пакеты были минимально совместимы. Ну а проблема была в том, что спамилось куча сообщений в логи, на тесты она врядли сильно повлияла.