Комментарии 30
Хороший хитрый план: зачем исправлять ошибки, выложим код на Github, пусть сообщество правит. Ну тут хоть открыты проект, а игры, которые выпускают до ужаса забагованными — это просто бич отрасли
Да, переписку ведут :) Нет бы, чтобы сразу написать, в чём был затык и для чего сделан хак — везде только «ask somehow for details».
Ваше утветржение очень глупое и показывает ваш узкой кругозор и узкое мышление.
1) Этот код может вообще не вызываться и висеть рудиментом.
2) Фиксить баги сложнее, чем писать функционал. И никто в опсосных проектах не будет фиксить баги просто так.
3) Выложили в опенсорс для того, чтобы люди могли изучить код и посмотреть что-нибудь. Всё равно такого зверя писать с ходу никто не будет.
4) Чем больше проект, тем больше в нем приколов и недоумений.
Есть подозрение, что здесь не ошибка, а поиск конца списка. Очевидно, что для большей прозрачности и защиты от случайных ошибок нужно было бы применить while вместо вырожденного варианта for.
for(pmd0=m_pMeshUpdate; pmd0->next; pmd0=pmd0->next); // <=
pmd0->next = pmd;
Нет, я не против Code Review, но посчитайте сами, сколько времени понадобится руководителю, чтобы сделать обзор кода 10 человек? А на следующий день? А большего числа людей? В таких условиях Code Review необходим при изменении только ключевых компонентов продукта. В больших объёмах такой подход уже крайне неэффективен.
Внезапно, код может ревьювить не только руководитель и ревью масштабируется для любого количества людей (доказано Google).
Внезапно, код может ревьювить не только руководитель и ревью масштабируется для любого количества людей (доказано Google).
Под руководителями понимаются и ведущие разработчики какого-нибудь подразделения, их может быть достаточно много, но мой вывод всё равно актуален. А вообще я просто хотел оставить ссылки на 5 статей о проверке Google Chromium (1, 2, 3, 4, 5, ...,), так сказать, в качестве опровержения)
Я у себя на проекте если пробел после запятой не поставлю, мне линтер из монитора в лицо плюнет и выдаст ошибку на весь экран вместо вебсайта. А уж задетектить сравнение переменной с самой собой, ну это же вообще детский сад, мне кажется все эти навороченные ИДЕ, которые грузятся пару лет, должны уметь делать такое по умолчанию (в то время как я сижу с Sublime Text и парочкой плагинов сверху, и весь линтинг динамически происходит там же не отходя от кассы).
В общем моя не понимать, как такой код попадает в продакшен (я уж молчу про тесты и все такое).
могут находиться столь примитивные ошибки
Не соглашусь насчёт примитивных. Это они сейчас выглядят простыми и смешными, в дебрях кода это вполне себе потенциальные проблемы. Характер возникновения некоторых ошибок действительно примитивен.
Если Вы взгляните на наш обновляемый список статьей, то ещё больше ужаснётесь. Ошибки далеко не только прерогатива студентов, но и всех подряд в этой сфере.
навороченные ИДЕ, которые грузятся пару лет, должны уметь делать такое по умолчанию
Статический анализ прибавит ещё десяток лет к загрузке, поэтому эта ниша не для них, а для специальных инструментов. Современным IDE ещё шаблоны C++ разбирать учиться и учиться.
предполагаю основная причина — анализатору плюсового кода «на лету» тяжело быть эфективным. Полноценный анализ возможен только при составлении AST, это фактически компиляция, и она занимает время, как пример — можно посмотреть на clang-плагин в QtCreator.
Но, как я уже говорил, Clang делает успехи в этом направлении.
-Wall -Wextra
) сходу ругается и на V547, и местами на V501. И многое другое, что в статьях про PVS говорится. А clang-4 покрывает чуть ли не половину перечисленного.Магические числа с комментариями вместо именованных констан, ай-яй-яй!
У вас ругани на такое в диагностиках разве нет?
Серьёзные ошибки в коде CryEngine V