Основываясь на собственном опыте и опыте моих друзей, я вижу, что у многих компаний есть некоторые странные идеи для разработки собственных фреймворков и фабрик SW (строит скелет приложения для вас). Эти идеи обычно основаны на убеждении, что собственные рамки будут намного лучше, чем все остальное. Как бороться с такими идеями и как объяснить, что это не всегда хороший способ пойти?
Почему я думаю, что внутренние фреймворки/фабрики не очень хороши:
- Бюджет и ресурсы. Обычно для создания фреймворка обычно используется только некоторый первоначальный бюджет. Никто не думает о бюджете, необходимом для поддержания и поддержки рамок. Никто не может даже оценить бюджет и ресурсы, необходимые для обеспечения. Вначале никто не думает о поддержке нескольких версий фреймворка для поддержки уже существующих приложений.
- Недостаток опыта. Рамки обычно создаются людьми без какого-либо такого опыта или с поддержкой "консультантов" - обычно гораздо более дорогих людей с аналогичным набором навыков.
- Архитектура/дизайн - любая архитектурная проблема в структуре влияет на все приложения, созданные с использованием этой структуры. Плохие дизайнерские решения в рамках платформы заставляют разработчиков неправильно кодировать приложения.
- Технический долг - плохой код в фреймворке - это технический долг.
- Ложная вера в серебряную пулю - менеджеры считают, что собственный рамок / factory является серебряной пулей. Все приложения будут написаны таким же образом, и они будут легко поддерживаться. Мой опыт в том, что это просто не правда. Даже с SW factory каждое приложение является конкретным.
- Недостаточная документация - документация в первую очередь зависит от низкого бюджета. Рамки без документации бесполезны. Reflector (.NET) - мой лучший друг.
- Недостаточная группа пользователей - внутренняя структура имеет только небольшую группу пользователей. Небольшая группа пользователей означает небольшой опыт. Если я использую общедоступный инструмент/фреймворк, и у меня есть проблема, я могу задать вопрос о SO (или аналогичной сети) или просто попытаться найти ответ на google. С внутренней структурой это невозможно.
- Политика - политика компании заставляет вас использовать структуру, чтобы оправдать затраты на инфраструктуру. Это до сих пор, что структура выбрана до того, как будет собрано первое требование.
- Жалобы на рамки запрещены.
- Запрещается использование других фреймворков.
Почему я думаю, что компании делают это:
- Высокомерие и эгоизм - кто-то в компании считает, что он может сделать это лучше.
- Незнание - игнорирование существующих инфраструктур/решений и тот факт, что только хорошие рамки выжили достаточно долго, чтобы быть популярными. Игнорирование группы пользователей и уже доступная информация в Интернете.
- Неудача руководства и некомпетентность - не понимание влияния (особенно долгосрочного) этого деления. Деление основано на неправильной информации. Управление без фона разработки SW.
Я понимаю, что иногда требуется собственное решение или инфраструктура для специализированного сценария, но я устал от всех этих "больших внутренних фреймворков" для создания веб-приложений или настольных приложений. Я ошибаюсь? Нужны ли эти фреймворки (мир .NET и Java)? Можете ли вы предоставить мне пример или причину, почему хорошо иметь внутреннюю структуру / factory?
Edit:
Спасибо за ответы, но я ожидал некоторых советов, как решать проблему как разработчика (кроме смены задания) не как менеджера.