Существует множество способов реализации REST-API. Большой популярностью пользуется Spring MVC на основе блокирующих вызовов, но все чаще попадаются проекты, использующие WebFlux на неблокирующих вызовах. В этой статье разберемся, какой из этих двух фреймворков работает лучше.
Михаил @krasburger
Java Backend Developer
Обработка распределенных транзакций в микросервисной архитектуре
7 мин
46KПеревод
Привет, Хабр!
Сегодня мы предлагаем вашему вниманию небольшой материал о микросервисах и распределенной архитектуре. Он, в частности, затрагивает идею Мартина Фаулера о том, что новая система должна начинаться с монолита, а даже в развитой микросервисной архитектуре целесообразно оставлять большое монолитное ядро.
Приятного чтения!
Сегодня мы предлагаем вашему вниманию небольшой материал о микросервисах и распределенной архитектуре. Он, в частности, затрагивает идею Мартина Фаулера о том, что новая система должна начинаться с монолита, а даже в развитой микросервисной архитектуре целесообразно оставлять большое монолитное ядро.
Приятного чтения!
+17
Что такое Spring Framework? От внедрения зависимостей до Web MVC
41 мин
512KТуториал
Перевод
Вы можете использовать это руководство для различных целей:
- Чтобы понять, что такое Spring Framework
- Как работают ее основные фичи: такие как внедрение зависимостей или Web MVC
- Это также исчерпывающий FAQ (Перечень часто задаваемых вопросов)
Примечание: Статья ~ 9000 слов, вероятно, не стоит читать ее на мобильном устройстве. Добавьте ее в закладки и вернитесь позже. И даже на компьютере ешь читай этого слона по одному кусочку за раз :-)
Содержание
- Введение
- Основы внедрения зависимостей
- Контейнер Spring IOC / Dependency Injection
- Spring AOP (Аспектно-ориентированное программирование) и прокси
- Управление ресурсами Spring
- Spring Web MVC
- Дополнительные модули Spring Framework
- Spring Framework: часто задаваемые вопросы
- Заключение
+17
Внутренности JVM, Часть 1 — Загрузчик классов
5 мин
40KПеревод
Перевод статьи подготовлен специально для студентов курса «Разработчик Java».
В этой серии статей я расскажу о том, как работает Java Virtual Machine. Сегодня мы рассмотрим механизм загрузки классов в JVM.
В этой серии статей я расскажу о том, как работает Java Virtual Machine. Сегодня мы рассмотрим механизм загрузки классов в JVM.
+16
Как воскресить раннюю электронную музыку с помощью Arduino?
7 мин
6.2KПеревод
Этот проект вдохновлён ранней электронной музыкой и звуковыми эффектами, созданными радиофонической мастерской BBC в 1960-х годах. До того как синтезаторы стали обычным делом, чтобы услышать невиданные звуки, использовали сочетание промышленного испытательного оборудования и фокусов с магнитной лентой. Тестовые генераторы и «найденные звуки» давали сырой аудиоматериал, который зацикливался, реверсировался, ускорялся и замедлялся с помощью нескольких магнитофонов, чтобы получить жуткие, неестественные звуки, сопровождающие радио- и телепрограммы того времени.
В своём проекте с помощью микроконтроллера Arduino я смоделировал три винтажных тестовых генератора; весь проект можно собрать меньше чем за 15 фунтов стерлингов [около полутора тысяч рублей]. Исполнению не хватает эстетического очарования и аналогового звука реальных вещей, но я сохранил тактильное управление руками, которого нет в программных плагинах, и по самой его сути все потроха проекта можно хакнуть, отремонтировать и обновить.
+11
Внедрение предметно-ориентированного проектирования в PHP
15 мин
24KПеревод
И снова здравствуйте!
Что ж очередной «новый» курс, который стартовал в конце декабря, подходит к концу — «Backend разработчик на PHP». Учли разные мелкие шероховатости и запускаем новый. Осталось только посмотреть на выпуск и всё, поставим очередную галочку.
А счас пока давайте посмотрим на одну интересную статью.
Поехали.
В этой статье вы узнаете, как использовать PHP для управления следующим DDD-проектом вашей компании и эффективно моделировать реальные ситуации, чтобы помочь определить вашу бизнес-логику.
Предметно-ориентированное проектирование (Domain-Driven Design, в дальнейшем — DDD) — это методология разработки программного обеспечения для проектирования сложных программных проектов с целью доставки конечного продукта, который отвечает задачам организации. Фактически, DDD способствует фокусированию проекта на развивающейся базовой модели.
DDD научит вас эффективно моделировать реальный мир в вашем приложении и использовать ООП для инкапсуляции бизнес-логики организации.
Что ж очередной «новый» курс, который стартовал в конце декабря, подходит к концу — «Backend разработчик на PHP». Учли разные мелкие шероховатости и запускаем новый. Осталось только посмотреть на выпуск и всё, поставим очередную галочку.
А счас пока давайте посмотрим на одну интересную статью.
Поехали.
В этой статье вы узнаете, как использовать PHP для управления следующим DDD-проектом вашей компании и эффективно моделировать реальные ситуации, чтобы помочь определить вашу бизнес-логику.
Предметно-ориентированное проектирование (Domain-Driven Design, в дальнейшем — DDD) — это методология разработки программного обеспечения для проектирования сложных программных проектов с целью доставки конечного продукта, который отвечает задачам организации. Фактически, DDD способствует фокусированию проекта на развивающейся базовой модели.
DDD научит вас эффективно моделировать реальный мир в вашем приложении и использовать ООП для инкапсуляции бизнес-логики организации.
+12
Геттеры/сеттеры и проблема с инкапсуляцией в Symfony проектах
6 мин
18KСравнительно недавно работаю с Symfony (чуть более года) и во всех проектах, что довелось поработать — сущности всегда создавались таким образом, что они содержали только приватные поля и голые сеттеры/геттеры к ним.
В статьи будут рассуждения и примеры, почему такой подход опасный, а именно: нарушает нашу старую добрую инкапсуляцию, провоцирует писать код с багами и повышать сложность системы.
В статье будет опущена тема сеттеров в разного рода билдерах и тема инъекции зависимостей через сеттеры (скажу только, что не одобряем). Не будет ничего про сложные темы вроде DDD, Rich Model, про coupling/cohesion и другие умные слова — просто поговорим про инкапсуляцию. Добро пожаловать под кат.
В статьи будут рассуждения и примеры, почему такой подход опасный, а именно: нарушает нашу старую добрую инкапсуляцию, провоцирует писать код с багами и повышать сложность системы.
В статье будет опущена тема сеттеров в разного рода билдерах и тема инъекции зависимостей через сеттеры (скажу только, что не одобряем). Не будет ничего про сложные темы вроде DDD, Rich Model, про coupling/cohesion и другие умные слова — просто поговорим про инкапсуляцию. Добро пожаловать под кат.
+27
Как подсидеть тимлида
5 мин
110KПятница – самый подходящий день для того, чтобы наконец-то свергнуть власть своего тимлида. Он никогда не решит уволиться по своей воле, потому что это не работа, а сказка. Его нужно сломать и не оставить ему другого выхода. Давайте разберемся, как сделать так, чтобы он пришел к этой мысли самостоятельно!
+183
AI для людей: простыми словами о технологиях
9 мин
101KПредставляем исчерпывающую шпаргалку, где мы простыми словами рассказываем, из чего «делают» искусственный интеллект и как это все работает.
Разграничение понятий в области искусственного интеллекта и анализа данных.
В чем разница между Artificial Intelligence, Machine Learning и Data Science?
Разграничение понятий в области искусственного интеллекта и анализа данных.
+29
Пробуем preload (PHP 7.4) и RoadRunner
14 мин
32KПривет, Хабр!
Мы часто пишем и говорим о производительности PHP: как мы ей занимаемся в целом, как мы сэкономили 1 млн долларов при переходе на PHP 7.0, а также переводим разные материалы на эту тему. Это вызвано тем, что аудитория наших продуктов растёт, а масштабирование PHP-бэкенда при помощи железа сопряжено со значительными затратами — у нас 600 серверов с PHP-FPM. Поэтому инвестирование времени в оптимизацию для нас выгодно.
Прежде мы говорили в основном об обычных и уже устоявшихся способах работы с производительностью. Но сообщество PHP не дремлет! В PHP 8 появится JIT, в PHP 7.4 — preload, а за пределами core-разработки PHP развиваются фреймворки, подразумевающие работу PHP как демона. Пора поэкспериментировать с чем-то новым и посмотреть, что это может нам дать.
Так как до релиза PHP 8 ещё далеко, а асинхронные фреймворки плохо подходят для наших задач (почему — расскажу ниже), сегодня остановимся на preload, который появится в PHP 7.4, и фреймворке для демонизации PHP — RoadRunner.
Это текстовая версия моего доклада с Badoo PHP Meetup #3. Видео всех выступлений мы собрали в этом посте.
+108
Книга «Микросервисы. Паттерны разработки и рефакторинга»
8 мин
60K Привет, Хаброжители! Если вам давно кажется, что вся разработка и развертывание в вашей компании донельзя замедлились — переходите на микросервисную архитектуру. Она обеспечивает непрерывную разработку, доставку и развертывание приложений любой сложности.
Книга, предназначенная для разработчиков и архитекторов из больших корпораций, рассказывает, как проектировать и писать приложения в духе микросервисной архитектуры. Также в ней описано, как делается рефакторинг крупного приложения — и монолит превращается в набор микросервисов.
Предлагаем ознакомиться с отрывком «Управление транзакциями в микросервисной архитектуре»
Книга, предназначенная для разработчиков и архитекторов из больших корпораций, рассказывает, как проектировать и писать приложения в духе микросервисной архитектуры. Также в ней описано, как делается рефакторинг крупного приложения — и монолит превращается в набор микросервисов.
Предлагаем ознакомиться с отрывком «Управление транзакциями в микросервисной архитектуре»
+16
Информация
- В рейтинге
- Не участвует
- Откуда
- Нижний Новгород, Нижегородская обл., Россия
- Работает в
- Зарегистрирован
- Активность