Причина этого заключается в следующем. Друг с планеты пригласил Сун Гэ ответить на вопрос о Чжиху. Первоначальный вопрос был таким:
- В эпоху разделения клиентской и серверной частей, технические советы для программистов, работающих на Java?
Сун Гэ серьезно рассмотрел этот вопрос и почувствовал, что могут быть такие сомнения для маленьких партнеров, которые впервые отделены от фронта и бэкенда, поэтому он решил поговорить с вами на эту тему в этой статье.
Я все же попытаюсь рассказать об этой проблеме с точки зрения Java-программиста, чтобы все могли лучше ее понять.
Начните с отступления
Многие друзья могут знать, что Сун Гэ получил степень бакалавра в Школе экономики и менеджмента, а «Богатство народов» Адама Смита более или менее знакомо. В книге упоминается, что сущностью человеческого общества является разделение труда и сотрудничество. Адам Смит считал, что профессиональное разделение труда между людьми может значительно повысить производительность и создать богатство. Профессиональное разделение труда также является основой промышленной революции. . Процесс развития человеческого общества есть процесс непрерывного уточнения и углубления разделения труда, от самого раннего разделения земледелия и скотоводства к разделу ремесел и земледелия и к появлению дельцов, он есть на самом деле проявление непрерывного уточнение и углубление разделения труда.
Наш мир разработки также представляет собой маленькую вселенную, и постоянное совершенствование профессионального разделения труда также является тенденцией.
В последние годы метод разработки с разделением интерфейса и сервера внезапно стал популярным, и Сонг Гэ считает, что на это есть две причины:
- Фронтенд разработка. После развития фронтенда в последние годы, это уже не то, что мы традиционно называем HTML + отрисовка, бесконечным потоком возникают разные концепты, такие как webpack, RxJs, Node, Redux, ssr, NuxtJs и т.д. -end уже может быть компетентен во многих вещах, а также может выполнять более насыщенное взаимодействие с пользователем.
- Развитие мобильного интернета. За последние два года популярность мобильного Интернета привела к тому, что продукты многих компаний были запущены на нескольких платформах, таких как Android, iOS, апплет, официальный аккаунт, ПК и др. Невозможно разработать набор бэкендов. для разных устройств. , должно быть так, что несколько интерфейсов используют один и тот же сервер, а это означает, что внутренние программы нельзя разрабатывать традиционным способом, когда интерфейс и сервер неразличимы. Именно это бизнес-требование способствует развитию разделения между интерфейсом и сервером.
меняй и меняй
Изменился способ разделения труда и сотрудничества между программистами, а вместе с ним, конечно, изменится и способ разработки. Но это изменение на самом деле очень тонкое, и с ним легко начать.
Изменять
- Изменения содержания работы
Честно говоря, после разделения фронтенда и бэкенда требования к Java-программистам стали ниже, раньше все ходили на собеседования с Java-инженерами, если не разделить фронтенд и бэкенд, фронтенд в принципе обязателен.Распространенный вопрос подбор различных элементов.Это тоже очень понятно,потому что в методе разработки где фронт и бэкенд не разделены,бэкенд инженерам приходится писать немного front-end кода, и вам сложно полностью написать только Java-код. Но в этом случае интерфейсный код, который вы хотите написать, на самом деле очень прост, не особенно сложен.
После того, как внешний и внутренний интерфейсы разделены, Java-программистам нужно сосредоточиться только на внутренней бизнес-логике, получать параметры от внешнего интерфейса и давать разные ответы в соответствии с параметрами. для написания внешнего кода. Поскольку интерфейс в настоящее время отличается от интерфейса, в котором интерфейс и серверная часть не разделены в любое время, после того, как интерфейс и серверная часть разделены, интерфейс по-прежнему имеет определенные трудности.Более распространенными являются приложения SPA, включающие NodeJS, Webpack и т. д. В настоящее время, если вы хотите, чтобы back-end инженеры Написание кода front-end требует более высоких технических требований к back-end инженерам.
Но, сказав это, после того, как фронтенд и бэкенд разделены, если вы можете написать и фронтенд и бэкэнд, вы можете получить повышение своему боссу.
- изменение интерфейса
Когда передняя и задняя части не разделены, дизайн интерфейса редко используется.Возьмем SpringMVC в качестве примера, вы всегда можете вернуть что-то вроде ModelAndView.После того, как передняя и задняя части разделены, нам в принципе не нужно возвращаться на страницу. Серверная часть в основном возвращает данные JSON, поэтому ключом является разработка различных интерфейсов.
Лучшим практическим решением является разработка интерфейса, который соответствует спецификации RESTful, с четкой семантикой, кратким и понятным, и вы можете видеть то, что хотите, когда видите URL-адрес!
- Изменения процесса разработки
После того, как фронтенд и бэкенд разделены, фронтенд не может ждать, пока бэкэнд разработает интерфейс, прежде чем разрабатывать его.Если это так, проект, который изначально был завершен за два месяца, может занять четыре месяцев для завершения.
Как правило, перед разработкой всей проектной группе необходимо разработать интерфейсный документ.Как правило, в качестве интерфейсного документа можно использовать Swagger (SpringBoot интегрирует Swagger2 и больше не должен вести документацию по интерфейсу!), подробная информация об интерфейсе оговаривается в документе. Фронтенд и бэкенд разрабатываются в соответствии с установленными спецификациями интерфейса. До завершения разработки можно использовать Mock для тестирования.
Внешний интерфейс также тестируется с использованием смоделированных данных.После завершения разработки внешний и внутренний интерфейсы совместно отлаживаются для завершения теста.
постоянный
По сути, кроме изменения способов взаимодействия с интерфейсом и сервером, все остальное осталось прежним.
Разделение front-end и back-end в целом не влияет на техническую архитектуру back-end.Вы используете SSM или Spring Boot или Dubbo или микросервисы, неважно какие, эти технические архитектуры могут не только поддерживать ваши проекты, которые не разделяют front-end и back-end, а также поддерживать ваши отдельные front-end и back-end проекты.
Поэтому я говорю, что на технологическую архитектуру back-end разделение front-end и back-end не влияет.
С другой стороны, основы технологии остаются прежними: например, если вы занимаетесь разработкой Java, вам необходимо знать SSM/SpringBoot/Redis/Nginx/Dubbo/SpringCloud/MySQL/MyCat/ELK/... и т.п.
Итак, давайте кодить честно!
Эпилог
Хотя бы с точки зрения Java-программиста, разделение фронтенд- и бэкэнд-разработки на самом деле освобождает программистов Java, позволяя нам сосредоточиться на бэкэнд-работе вместо того, чтобы писать интерфейсный код. Но, сказав это, если вы хотите поддерживать хорошую конкурентоспособность, все равно необходимо понимать популярные в настоящее время методы разработки интерфейса.
Передняя и задняя части не являются конечной точкой, но метод разработки программного обеспечения эволюционировал в точку, путь в будущее еще очень долог, есть много вещей, которые нам нужно изучить, это лишь одна из них.
Наконец, дайте переднюю и заднюю части разделения статьи, которую мы написали, прежде чем рекомендовать несколько Song Ge:
- Разделение front-end и back-end глазами Java-программиста и начало работы с Vue.js
- Разделение внешнего и внутреннего интерфейса Spring Boot + Vue, сводка двух методов загрузки файлов!
- Spring Boot + Vue раздельная разработка внешнего и внутреннего интерфейса, инкапсуляция и настройка сетевых запросов внешнего интерфейса.
- Spring Boot + Vue раздельная фронтенд и бэкенд разработка, небольшая идея управления разрешениями
Рекомендуются еще два вводных проекта:
Ну вот и все в этой статье.Если у вас есть какие-либо вопросы, пожалуйста, оставьте сообщение для обсуждения.
Обратите внимание на общедоступную учетную запись [Jiangnan A Little Rain], сосредоточьтесь на технологиях с полным стеком, таких как Spring Boot + микросервисы и разделение интерфейса и сервера, делитесь регулярными видеоуроками, отвечайте на Java после того, как уделите внимание, и получайте Сухие товары Java тщательно приготовлены Songge для вас!