Как переубедить одскул программистов, что лучше использовать компоненты, чем писать код самим?
Собственно, сабж. Нужны статьи, книги, что-то авторитетное, чем можно аппелировать людям которые 20 лет работали в банках.
Да, я понимаю что слишком увлекаться фреймворками тоже нельзя, но, в данном случае, есть огромный программный проект, где девелоперы не доверяют системным функциям парсинга ini файлов и пишут свои, не говоря уже о более высокоуровневом коде. Есть даже самописный аналог vsprintf (), свои валидаторы, все свое, любая попытка посмотреть на сторонние компоненты с узкой специализацией сталкивается с "нам это не надо, мы это сами напишем".
в проекте свежей крови не было лет 6. Нужная тяжелая артиллерия^Wлитература на тему... я даже не знаю как это сформулировать.
"Передайте системные функции стандартным библиотекам и сконцентрируйтесь на бизнес-логике", наверное, потому что функции продукта не двигаются с места уже пару лет.
Вопрос на самом деле тонкий.
Не берусь рассуждать по поводу переписывания системных функций, а вот недопустимость использования тяжелых (пусть и узко специализированных) компонент мне лично понятна.
В банковских проектах никто не позволит вам использовать сторонний компонент взятый "потому что захотелось". Просто потому что цена ошибки много больше зарплаты всего вашего IT вместе взятого за годы вперед. Поэтому используются только глубоко протестированные компоненты, с известным, прогнозируемым поведением.
Любой сторонний компонент является новой потенциальной точкой отказа, т.к для вашего IT это black box (никто не знает как именно это работает) + по любому будет иметь какое то количество функционала который вашему проекту не нужен. Да, можно разобраться в том как он работает, покрыть его внутри и снаружи тестами. Но на это уйдет время превышающее написание с нуля нужного функционала.
Речь о легких компонентах - раз.
Проект уже влетал из-за багов (потери данных из-за собственного DBAL итп) на деньги - это два.
Пара клиентов отказались от интеграции потому что API из-за самописных валидаторов возвращает либо OK, либо INVALID_PARAMS - это три (другие сообщения не предусмотрены, а на API из 50 полей в запросе... сами понимаете, интегрироваться с таким дорого).
На тему покрытия тестами - покрытие 2.5%, некотоыре методы имеют цикломатичекую сложность до 800. Nuff said )