Категория: Создание ПО
Просмотров: 6011
Существует много различных способов, узнать о том что ваш код низкого качества. Можно воспользоваться чьей-нибудь экспертной оценкой. Например позвать программиста из соседнего отдела. Или выложить код на каком-нибудь форуме. Правда глубины анализа в обоих случаях ждать не нужно, ни программист из соседнего отдела ни коммьюнити не горят желанием тратить пол жизни на вас. Можно посчитать количество функциональных точек и вычислить зависимость их количества от числа строчек кода, обеспечив тем самым себе бюрократический геморрой на ближайшие несколько месяцев. Можно проверить код на наличие-отсутствие паттернов/антипаттернов проектирования и программирования. Можно. А можно поступить иначе.

Хорошей проверкой на качество будет смена чего-нибудь важного в вашей программе. Смена фреймворка или платформы, например. И то и другое очень стрессовая ситуация для любого проекта, поэтому все косяки и огрехи сразу вылезут наружу. Не обязательно экспериментировать на всем проекте, достаточно взять какую-то одну подсистему, чей код вы подозреваете в низком качестве. Смена платформы во-первых скорее всего приведет к смене компилятора, который будет не в восторге от ваших compiler-specific хаков. Плюс вы узнаете сильно ли разбросаны по системе platform-dependent код. Если он локализован и закрыт pimpl'ами, то можно уверенно сказать что ведущий программист не зря получает свою зарплату. Если нет, то чтож, это хороший повод узнать, что такое pimpl (и найти нового ведущего хе-хе). Помнится на предыдущей работе в один прекрасный день прошел слух что партнеры хотят мою софтину запускать под Линуксом. У меня от этого известия натурально мех на жопе поседел @_@, настолько суровый код был )). Менять в общем-то можно что угодно, boost на ACE, Qt на wxWidgets (кстати был у меня кусочек кода, который позволял менять либы для GUI как перчатки, если будет время, то доведу его до ума и выложу), ну и так далее. Если смена прошла безболезненно, то попробуйте сделать программу кросс-<чего-нибудь>. Кросс-браузерную, кросс-платформенную и т.д. После таких выкрутасов программа либо захрипит и сдохнет, либо преобразится в лучшую сторону. Третьего не дано.

PS Ссылки по теме:
Исключения
Организация кода
Open source убьёт мир
Фокусы с наследованием
Стандарты кодирования
Старые парадигмы о главном