Фреймворки являются важнейшими инструментами для создания современных масштабируемых приложений. Они предоставляют набор функций и программных паттернов, которые облегчают разработку, позволяя разработчикам не беспокоиться о структуре кода. Кроме того, фреймворки часто обновляются с учетом последних тенденций и технологий, а это значит, что приложения, созданные с использованием инструментов, более устойчивы к самым надежным и безопасным.
Программирование приложения сегодня без использования одного из этих фреймворков было бы похоже на строительство дома без использования стропильной системы. Вы можете это сделать, но это гораздо сложнее и рискованнее, и дом, скорее всего, не будет построен в соответствии со стандартами и возможностями каркаса.
Все основные языки разработки имеют набор фреймворков, каждый из которых имеет свои особенности. Самым популярным фреймворком для Python является, например, Django, а о самой известной библиотеке JavaScript React вы наверняка слышали. Каждый из них создан для решения более или менее одной и той же проблемы: как использовать этот удивительный язык, не повторяясь, или, как мы, разработчики, любим говорить, разрабатывать без DRY («Don’t Repeat Yourself»).
Но прежде чем я продолжу обычный ход этого текста, я хочу сделать паузу и использовать вопрос для отвлечения внимания: Итак, однажды друг из другой области работы спросил меня примерно так: «Хорошо, Марсель, я понимаю, зачем использовать фреймворк, но если я не хочу его использовать? Если я хочу разработать приложение для выполнения некоторых действий X, Y, Z, используя только родной язык?».
Короткий ответ: можете. Долгий ответ: скорее всего, не стоит. Я объясню почему:
Если вы не хотите использовать рамки, вам нужно начать думать о том, как вы будете решать проблему, не повторяясь. Например, если ваше приложение будет использовать базу данных, как и электронная таблица, вам нужно создать соединение с базой данных, выполнить некоторый запрос и показать результат пользователю. Если вы не хотите использовать фреймворк, вам придется написать этот код самостоятельно. Но подождите, это еще не все: при создании этого соединения необходимо подумать о безопасности, потому что в противном случае данные пользователя будут раскрыты. И если вы думаете, что это проблема только базы данных, вы ошибаетесь: эта проблема будет с вами на протяжении всего приложения, потому что вам нужно думать о безопасности в каждом запросе, в каждом ответе и на каждом шаге пользовательского потока.
Поэтому, если вы не хотите использовать фреймворк, вам нужно думать о проблеме по-другому, потому что в противном случае вам придется буквально изобретать колесо.
Используя структуру, вы используете набор лучших практик и стандартов, уже определенных и доработанных сообществом. Правильно! Кто-то уже изобрел колесо, запросы к базе данных, такие как поиск, стандарты безопасности и многое другое. И это здорово, потому что вам не нужно думать об этом, просто сосредоточьтесь на своем коде, а еще лучше на проблеме, которую вы пришли решать в первую очередь.
Если вы используете фреймворк, у вас будет лучшая организация кода, а это важно, потому что хорошая организация кода означает лучшее обслуживание и лучшую масштабируемость. Когда у вас нет хорошей организации кода, ваш код будет беспорядочным, а это не очень хорошо, потому что беспорядочный код — это код, который трудно понять и трудно изменить. И поверь мне, девочка, ты многое там изменишь.
Кроме того, фреймворки следуют принципу конвенции над конфигурацией, что означает, что скорость разработки будет выше, потому что вам нужно будет писать меньше кода для выполнения одних и тех же действий.
Так что… Короче говоря, вам нужно использовать фреймворк главным образом потому, что:
- При использовании фреймворка легче поддерживать и масштабировать приложение (дополните это для меня: не если…);
- Фреймворк определяет набор лучших практик и стандартов, которые облегчат вам жизнь (Кто-то уже изобрел колесо!!!);
- Фреймворк следует принципу конвенции над конфигурацией, что означает, что вам придется писать меньше кода (опять же, меньше повторений: больше решения проблем);
- И, наконец, потому что фреймворк сделает ваш код более организованным (а хорошая организация кода означает лучшее обслуживание).
«Я понял Марсель… Но просто ради интереса, есть ли в этом какие-то минусы? Это не может быть так хорошо… Где эта система дает сбой?»
«Хорошая мысль, мой друг! Как и за все в жизни, за этот опыт, который заключается в использовании рамок, приходится платить. Эта цена — кривая обучения. Когда вы только начинаете использовать фреймворк, вам придется изучать новый набор инструментов, а это может быть сложно и отнимать много времени. Но поверьте мне: цена того стоит».
Я помню, как впервые начал понимать Redux и VueX. Боже мой! Мне потребовалось много времени, чтобы поднять их за хвост, но когда я наконец увидел проблему, которую они могут решить всего за 5 или 10 строк кода, я понял, что фреймворки — это круто, даже несмотря на их недостаток — необходимость учить почти другой язык для написания кода.