Итак, при чтении этого сайта мне кажется, что магазин, в котором я работаю, делает много вещей неправильно, а некоторые - правильно. Как я могу улучшить код, с которым я работаю, от моих коллег? Единственное, о чем я могу думать, это подавать пример - начать использовать Boost и т. д. Есть другие мысли?
Чем руководить на собственном примере? Есть какие-нибудь примеры, которые вы бы привели?
+1 за «показывать пример»





Подавать примером - это всегда хорошо, хотя убедить других в том, что ваш пример лучше, чем то, что они делают сейчас, не так-то просто. Конструктивная критика посредством анализа кода, вероятно, лучше всего подходит для мягкого предложения альтернативных подходов к работе ваших коллег. Ключевой момент - убедить других в том, что то, что вы предлагаете, действительно лучше, и они могут это оценить.
Вероятно, вам придется более внимательно изучить, что ваш магазин делает неправильно, а что - правильно. Что на самом деле можно там изменить? Что вы можете изменить в своей практике, чтобы улучшить свои навыки или навыки вашей команды? Может быть трудно осуществить изменения в укоренившемся магазине. Попробуйте предложить обзоры кода (сначала по вашему коду), которые могут привести к обсуждению.
Что касается материальных предметов, я бы посмотрел на Скотт Мейерс «Эффективный C++» и т. д. Развивайте свой набор навыков, и вы либо поможете улучшить других вокруг себя, либо перейдете в магазин, который поможет. Также посмотрите книгу Шаблоны проектирования из «Банды четырех».
Отмечу также, что ответ был быстрым и мог продолжаться бесконечно, учитывая широту вопроса. Я предполагаю, что это кто-то без особого опыта работы в разных магазинах.
Иногда людям нужно видеть, что ваш способ работает лучше, чем их. Часто бывает трудно заставить людей измениться.
Думали ли вы о написании модульных тестов, если вы этого еще не сделали? Я обнаружил, что это действительно улучшает мой производственный код и дает мне больше уверенности в том, что то, что я пишу, - это то, что я должен писать.
Мне нравится идея Джейсона о проверке кода. Они может могут быть полезны или могут быть местом для споров - это действительно зависит от того, как вы задаете тон.
Хорошо спроектируйте и спроектируйте проект, чтобы ни один из разработчиков не смог пойти другим путем и нарушить качество. Если вы установите отличный дизайн, люди будут просто следовать по маршруту и автоматически узнают
Еще можно попробовать добавить Ед. измтесты и документация.
Хотя это, вероятно, не такой прямой ответ, я рекомендую вам взять книгу Код завершен. Я считаю, что это лучший ресурс для обучения тому, как стать лучшим программистом. Если вы прочитаете всю книгу и поймете, о чем в ней говорится, вы действительно узнаете, как улучшить себя и свой код.
Обзор кода - лучший способ улучшить качество кода в целом. Анализ кода от разных людей, помогающих друг другу, повышает общую осведомленность о различных методах и помогает распространять передовой опыт. Нанять человека более опытного, чем вы, тоже хороший инструмент, но его немного сложнее реализовать.
Я считаю, что написание модульных тестов очень помогает качеству кода - это означает, что вы должны думать о том, как ваш код будет взаимодействовать с тестами и другими частями кода.
Партнерская проверка кода: проверка качества кода также заставит программистов задуматься о том, как они пишут код.
Здорово, что вы признаете, что есть возможности для улучшения, и у вас есть желание попытаться внести какие-то изменения. Я предлагаю прочитать 19-недельный дневник Джеймса Шора, где он документирует шаги, которые он предпринял, чтобы внедрить гибкую разработку в своей компании. Это тяжелый бой, но его опыт показывает, что вы можете что-то изменить.
Просто задать вопрос - хорошее начало.
В частности, вы можете:
Изменяться сложно, и вы должны быть тем, кто изменится первым.
Если вы работаете в среде, где другие счастливы, вам придется нелегко. Будьте настойчивы в стремлении улучшить качество кода.
Я предвзят (в результате моей работы), но в зависимости от вашего бюджета (если он есть) возможен статический анализ. Существует множество различных типов инструментов, некоторые из которых также включают проверку соблюдения стандартов кодирования.
Если вы используете g ++, вы можете получить базовую помощь от параметра -WeffC++.
Возможно, вы захотите сузить круг вопросов. На эту тему написаны тысячи книг. :)