Разработка
- Bitrix, Bitrix24 - официальная сертификация на уровень “профессионал”. Использование продвинутых паттернов и архитектурных решений, применяемых в Java-разработке
- Bitrix ORM, Bitrix D7
- Java: Core, JPA (Hibernate), Spring Actuator, Hibernate Validation, Spring Web, Spring Cloud Config, Spring Cloud Stream, Spring Cloud Sleuth, Slf4j, Lombok, Spring Cloud Load Balancer, Netflix Eureka, Eureka Discovery Client, Load Balanced Spring REST template, Resilience4j, Spring Gateway, Keycloak, JWT, Redis, Kafka, Logstash, Elasticsearch, Kibana, Zipkin.
- PHP 7+, xDebug
- Javascript (полноценное использование ООП и асинхронности, ES6-ES5 транспиляция)
- Vue, jQuery, Bitrix.BX
- MySQL, PostgreSQL, MongoDB
- RabbitMQ, Kafka
- Redis, Memcached
- SOAP, REST
- HTML, CSS, SCSS, Webpack, Bitrix-cli
Linux
- BitrixVM, многосайтовость, веб-кластер
- Настройка сервера с «нуля» под Битрикс на базе Debian 10/11, Centos7: Nginx, Phpfpm, Mysql, Memcached
- Создание отказоустойчивого кластера (master-master репликация) на базе: Nginx, Phpfpm, MariaDB, Galera, Lsyncd, HAproxy
- Настройка системы логирования на базе: ElasticSearch, LogStash/Filebeat, Kibana
- Настройка брокеров сообщений RabbitMQ, Kafka
- Настройка серверов проекта Bitrix/Bitrix24: nginx as a proxy, prod-server, dev-server (с песочницами для разработки), Gitlab-server, CI/CD на вышеуказанные сервера на базе gitlab-runner
- Docker
- Самостоятельная настройка среды разработки (установка Composer, PHP-расширений, xDebug и т.п.)
Прочее
- Git
- Практические навыки следования принципам SOLID, паттернам ООП
- Разработка по методологии Agile Scrum
- Python (Pandas, NumPy, Matplotlib, Keras, Selenium)
- Машинное обучение, нейронные сети
Безопасность в разработке
- Все пароли хранятся в зашифрованный виде внутри программы KeePassXS
- Разработка ведется из Москвы со статичного белого IP, что позволяет добавить этот IP в белый список доступа к ресурсам
- Общее понимание что можно, а что нельзя хранить в git-репозиториях
- Понимание принципов безопасности в linux, фарволов, маршрутизации http-трафика, шифрования http-трафика
Опыт работы
- с 03.2021 по сегодняшний день ООО «ЭДЖАЙЛКОНСАЛТ». Глубокая кастомизация Битрикс24 любой сложности с сохранением поддержки обновлений. Интеграция с внешними системами, настройка портала.
Разработка крупных модулей (включая архитектуру и организацию хранения информации в БД) для enterprise-компаний. Ведущий разработчик нескольких федеральных проектов: крупнейшего производителя и поставщика светового оборудования в России и ЕАЭС; одного из лидеров рынка по поставке оборудования комплексных систем безопасности. Разработка затрагивала все, в том числе самые чувствительные части системы. Список некоторых реализованных крупных модулей системы:
- “Замещающий сотрудник” - обеспечивает передачу всех задач, заданий и прав доступа CRM на замещающего сотрудника (а также на заместителя заместителя и т.д.) с автоматическим их возвратом по истечению отпуска первоначальному ответственному. Моя роль: передача заданий бизнес-процессов.
- “Коммерческая тайна” - отдельный слой контроля доступа, затрагивающий большинство объектов системы (Сделки, Предложения, Счета, Файлы и т.п.). Предоставление доступа к просмотру и изменению различных объектов системы на основании девяти критериев (например участие в рабочей группе конкретной сделки). Центровым паттерном был выбран «Стратегия», где каждый критерий представляет собой алгоритм, инкапсулированный в отдельный класс, основной метод
check()
которого, возвращает boolean (выдать или нет доступ). Затем для каждого объекта системы был назначен свой список критериев. Моя роль: самостоятельная разработка всего модуля, в том числе архитектуры и хранения данных в базе данных. Длительность разработки: пять двухнедельных спринтов. - “Целевые команды” - создание возможности учета вклада сотрудника в конкретную сделку с целью расчета вознаграждения. Система хранит историю участников сделки, обеспечивает хранение и изменение долей. Позволяет получать состояние целевой команды на конкретной день реализации товара. В ходе разработки архитектуры и анализа редких сценариев, я выявил, что описанная в ТЗ схема хранения данных плохо подходит и не справляется с некоторыми пограничными случаями. Мною была разработана и предложена новая, основанная не на хранении списка изменений целевой команды, а на хранении её конечного состояния на конкретную дату. Моя роль: самостоятельная разработка всего модуля, в том числе архитектуры и хранения данных в базе данных. Длительность разработки: два двухнедельных спринта.
- “Маркетинг” - кастомизация коробочной версии email-рассылок с целью добавление новой бизнес-логики на различные события.
- Разработка архитектуры систем логирования и протоколов обмена с внешними системами. Выполнение требований по единой точке логирования больших модулей, единой шины проброса и обработки исключений, логирование частично выполненных операций и прочее.
- Универсальная кастомизация детальной страницы crm-сущностей: условная видимость полей, условная обязательность полей, фильтрация результатов поиска полей типа «выбор crm-сущностей», изменение встроенных форм создания второстепенных сущностей и многое другое.
- Написание скриптов нормализации базы данных с последующим выполнение на продуктовом сервере и прочие самые ответственные операции с продуктовой системой с необходимым уровнем логирования и обработкой исключений.
- Точечные правки ядра (например требование двухфакторной авторизации только для внешних подключений). Поиск вариантов кастомизации ядра не предусмотренных вендором с использованием отражений или dependency injection.
- 10.2019 - 03.2021 ООО «Новые компьютерные технологии». Работа с сайтами преимущественно медицинской тематики: интеграция Битрикса в верстку различных сайтов, доработка сайтов, их отладка, повышение скорости работы и прочая оптимизация.
- 12.2014 - 10.2019 Работа в собственном интернет-магазине на базе Битрикс Управление сайтом. Разработка различных модулей, а также: синхронизация Битрикс и 1с: Управление торговлей, настройка 1с:УТ, взаимодействия с агрегаторами Я.Маркет, SEO, директ, ad-words, google-merchant, оптимизация сайта под Google Page Speed, настройка онлайн-кассы (в том числе с регистрацией, перерегистрацией в налоговой), налоговая отчетность. В целом самостоятельно проводил все работы, связанные с жизнью интернет-магазина.
Образование
- 2009-2014 Московский государственный институт электронной техники (МИЭТ г. Зеленоград). Инженер по специальности «Управление и информатика в технических системах».
- Сданы оба экзамена Битрикс и прочие тесты Битрикс разработчика.
Изученные и законспектированные книги
Приемы объектно-ориентированного проектирования. Паттерны проектирования 2020 г. Влиссидес Джон, Хелм Ричард
В предлагаемой книге описываются простые и изящные решения типичных задач, возникающих в объектно-ориентированном проектировании. Паттерны появились, потому что многие разработчики искали пути повышения гибкости и степени повторного использования своих программ. Найденные решения воплощены в краткой и легко применимой на практике форме. Авторы излагают принципы использования паттернов проектирования и приводят их каталог. Таким образом книга одновременно решает две задачи. Во-первых, здесь демонстрируется роль паттернов в создании архитектуры сложных систем. Во-вторых, применяя содержащиеся в справочнике паттерны, проектировщик сможет с легкостью разрабатывать собственные приложения. Издание предназначено как для профессиональных разработчиков, так и для программистов, осваивающих объектно-ориентированное проектирование.
Личное мнение о книге: Не могу назвать эту книгу лучшей для знакомства с паттернами ООП. Ведь в сети есть много более дружелюбных материалов (например рефакторинг.гуру). Однако с этой книгой у меня связаны особые чувства. Ведь это моя первая книга по программированию, которая открыла для меня мир серьёзной разработки и во много стала основой моих текущих знаний и стремлений.
Грокаем алгоритмы 2021 г. Бхаргава Адитья
Алгоритмы - это всего лишь пошаговые инструкции решения задач, и большинство таких задач уже были кем-то решены, протестированы и проверены. Можно, конечно, погрузится в глубокую философию гениального Кнута, изучить многостраничные фолианты с доказательствами и обоснованиями, но хотите ли вы тратить на это свое время? Откройте великолепно иллюстрированную книгу и вы сразу поймете, что алгоритмы - это просто. А грокать алгоритмы - это веселое и увлекательное занятие.
Личное мнение о книге: Уже много сказано про эту книгу и добавить здесь особо нечего. Прекрасная, легкая и приятная книга. Та самая первая ступенька в Алгоритмы, необходимая для других серьезных книг по этой тематике.
Философия Java. 4-е полное изд. 2022 г. Брюс Эккель
Впервые читатель может познакомиться с полной версией этого классического труда, который ранее на русском языке печатался в сокращении. Книга, выдержавшая в оригинале не одно переиздание, за глубокое и поистине философское изложение тонкостей языка Java считается одним из лучших пособий для программистов. Чтобы по-настоящему понять язык Java, необходимо рассматривать его не просто как набор неких команд и операторов, а понять его «философию», подход к решению задач, в сравнении с таковыми в других языках программирования. На этих страницах автор рассказывает об основных проблемах написания кода: в чем их природа и какой подход использует Java в их разрешении. Поэтому обсуждаемые в каждой главе черты языка неразрывно связаны с тем, как они используются для решения определенных задач.
Личное мнение о книге: Несмотря на то, что книга про Java версии 1.5 и не содержит целого мира новых возможностей языка, разработанных позднее, она очень хороша. Действительно меняет восприятие ООП и регулярно вызывает в голове риторический вопрос «А что так можно было?» (по крайней мере в голове у PHP-разработчика). Рекомендую к прочтению до изучения Спринга. Эта книга обладает тайной, которую знают не все - превосходные задания для самостоятельного решения. В отличие от выполнения ката на codewars, задания в этой книге действительно позволяют изучить особенности и инструментарий Java.
Java Persistence API и Hibernate 2019 г. Бауэр Кристиан, Кинг Гэвин, Грегори Гэри
Java Persistence - механизм, помогающий обеспечить сохранность данных после завершения программы, что является главной чертой современных приложений. Hibernate - наиболее популярный инструмент Java для работы с базами данных, предоставляющим автоматическое прозрачное объектно-реляционное отображение, что значительно упрощает работу с SQL-базами данных в приложениях Java. Данная книга описывает разработку приложения с использованием Hibernate, связывая воедино сотни отдельных примеров. Вы сразу окунетесь в богатую моделями программирования среду Hibernate, которая основывается на отображениях, запросах, стратегиях выборки, транзакциях, диалогах, кэшировании и многом другом. Здесь вы найдете хорошо иллюстрированное обсуждение лучших методик проектирования баз данных и методов оптимизации. Во втором издании авторы подробно описывают версию Hibernate 5 совместимый со стандартом Java Persistence 2.1. Все примеры обновлены для последних версий спецификаций Hibernate и Java EE. Что вошло в книгу: - идея объектно-реляционного отображения; - быстрая разработка приложений баз данных; - исчерпывающее описание Hibernate и Java Persistence; - интеграция Java Persistence с EJB, CDI, JSF и JAX-RS; - непревзойденная широта и глубина охвата темы. Самая полная книга о Hibernate!
Личное мнение о книге: Книга, которая несет с собой разочарование в youtube-уроках, курсах и udemy-подписках. Ведь на фоне этой книги, подобные «видео-уроки» выглядят на уровне детской игрушки. Наверно сказывается, то что авторы книги - разработчики самого Hibernate, которые на себе прочувствовали все те компромиссы, которые требует сочетание двух сложносочитаемых миров SQL и ООП. Книга 10/10.
Spring Boot in Practice (english) 2022 г. Somnath Musib
Spring Boot in Practice is a cookbook-style guide to Spring application development. Following a convenient Problem-Solution-Discussion format, it takes you technique-by-technique through Spring Boot fundamentals. You’ll dive deep into auto-configuration, security, microservices, and more. Along the way, you’ll also discover numerous advanced and hidden features. All the book’s source code is open source, so you can integrate the detailed samples into your own projects.
Личное мнение о книге: Моя первая книга, прочитанная на английском языке и она удивительна. Написана очень простым языком с прекрасным вниманием к деталям. Нередко на одну и ту же задачу предлагается несколько вариантов решения. Причем это не задачи ради задач, а действительно актуальные рабочие вопросы. Глава про Spring Security - это настоящий бриллиант для новичка. Смотрим Boot-потрошителя Борисова, читаем книгу и пересматриваем потрошителя.
Принципы юнит-тестирования 2022 г. Владимир Хориков
Юнит-тестирование – это процесс проверки отдельных модулей программы на корректность работы. Правильный подход к тестированию позволит максимизировать качество и скорость разработки проекта. Некачественные тесты, наоборот, могут нанести вред: нарушить работоспособность кода, увеличить количество ошибок, растянуть сроки и затраты. Грамотное внедрение юнит-тестирования – хорошее решение для развития проекта. Научитесь разрабатывать тесты профессионального уровня, без ошибок автоматизировать процессы тестирования, а также интегрировать тестирование в жизненный цикл приложения. Со временем вы овладеете особым чутьем, присущим специалистам по тестированию. Как ни удивительно, практика написания хороших тестов способствует созданию более качественного кода.В этой книге: универсальные рекомендации по оценке тестов; тестирование для выявления и исключения антипаттернов; рефакторинг тестов вместе с рабочим кодом; использование интеграционных тестов для проверки всей системы.
Личное мнение о книге: Книга нужна всем, кто насмотревшись уроков на тему «тестирование калькулятора», попал в реальный мир. Фундаментальные, систематичные знания из книги позволят вести холивар на тему моков на качественно новом уровне. Невероятно дружелюбная и заботливая манера обучения Хорикова Владимира, помогает осознать довольно сложные мысли на тему тестирования и архитектуры. Но чтобы глубоко осознать написанное, важно иметь практический опыт или вернуться к этой книге снова после его получения.
Spring Microservices in Action, Second Edition (english) 2021 г. John Carnell, Illary Huaylupo Sánchez
Spring Microservices in Action, Second Edition teaches you to build microservice-based applications using Java and Spring. You’ll start by creating basic services, then move to efficient logging and monitoring. Learn to refactor Java applications with Spring’s intuitive tooling, and master API management with Spring Cloud Gateway. You’ll even deploy Spring Cloud applications with AWS and Kubernetes.
Личное мнение о книге: Если кто-то думает, что реализовать проект на микросервисах - это лишь раскидать пакеты по разным серверам и пустить на них трафик по round robin, то эта книга расскажет, что всё на много сложнее. В ней описаны такие техники как CircuitBreaker, Bulkhead, RateLimiter. Подробно рассказана проблематика логирования распределенных систем. Сначала предложена собственная реализация трассировки запросов, затем с использованием Sleuth. В целом в книге затронуто множество пакетов, среди которых: Keycloak, Redis, Kafka, Logstash, Elasticsearch, Kibana, Zipkin и пр. Я получил огромное удовольствие от чтении книги, она действительно хорошо и интересно описывает очень актуальную и сложную тему. Параллельно чтению книги все предложенные приёмы применял на своем пет проекте. Эта одна их тех книг, которая требует больше времени проводить в IDE, чем за непосредственным чтением самой книги.
PostgreSQL 11. Мастерство разработки 2019 г. Ганс-Юрген Шёниг
Книга описывает последние возможности PostgreSQL 11 для построения эффективных и отказоустойчивых приложений. Подробно рассмотрены передовые аспекты PostgreSQL, включая логическую репликацию, кластеры баз данных, оптимизацию производительности, мониторинг и управление пользователями, процесс миграции с Oracle на PostgreSQL. Издание рекомендовано ведущими специалистами в области PostreSQL в России, будет полезно администраторам и разработчикам этой СУБД.
Личное мнение о книге: Как же мало возможностей современных баз данных мы используем, когда работаем с ними через фреймворк. Автор книги много лет работал в компании по поддержке PostgreSQL и поделился с нами своим ценным опытом по решению проблем своих клиентов. В книги центральное место занимают различные способы анализа работы базы данных, вплоть до конкретных запросов, которые использует автор и его команда в повседневной работе. Также немало различных продвинутых техник о которых полезно знать, ведь они способы эффективно решить редкие и специфические задачи. К сожалению, сейчас в моей работе основной базой данных является MySQL и когда это измениться планирую перечитать книгу ещё раз.
Грокаем стриминг 2023 г. Фишер Д., Ван Н.
Стриминговые системы позволяют сократить до минимума время между событием и обработкой информации, чтобы вы получали результаты в реальном времени. В приложениях для финансовой сферы, в вопросах безопасности и IoT важна каждая миллисекунда, поэтому без стриминговых систем не обойтись. А еще — это модно и приносит деньги ;) ! Неслучайно специалисты в Spark, Heron и Kafka так востребованы. Наконец, вы можете познакомиться с созданием стриминговых приложений и обработкой событий в реальном времени не продираясь через технические подробности конкретных фреймворков, головоломные термины и сложные формулировки. Простой язык и яркие примеры позволят вам познакомиться с базовыми концепциями, а чтобы усвоить описанные идеи и приемы, вы построите собственную простую стриминговую программу с нуля.
Личное мнение о книге: Книга от разработчика стримминговой системы Twitter. Первые сто страниц книги постоянно возникает мысль: «Почему такие простые вещи объясняются так сложно?». Но потом понимаешь, что благодаря этим страницам, выполняются две важные задачи: привыкаешь к переводу, терминологии, иллюстрациям и начинаешь смотреть на привычные вещи под другим углом. А вот затем во всей красе реализуется идея книги: написать свою стримминговую систему с простой реализацией, но затрагивающей основные концепции всех подобных систем. Большое количество иллюстраций, бережное отношение к читателю делают эту книгу прекрасным вариантом перед погружением в Kafka.
Apache Kafka. Потоковая обработка и анализ данных 2022 г. Палино Тодд, Шапира Гвен
При работе любого enterprise-приложения образуются данные: это файлы логов, метрики, информация об активности пользователей, исходящие сообщения и т.п. Правильные манипуляции над всеми этими данными не менее важны, чем сами данные. Если вы – архитектор, разработчик или выпускающий инженер, желающий решать подобные проблемы, но вы пока не знакомы с Apache Kafka, то именно из этой замечательной книги вы узнаете, как работать с этой свободной потоковой платформой, позволяющей обрабатывать очереди данных в реальном времени.
Личное мнение о книге: Репликация и масштабируемость являются самой сильной стороной Kafka, но именно за эти два преимущества пришлось заплатить архитектурной сложностью. В книге в деталях описаны все значимые технические детали реализации этого распределенного журнала событий. Она даёт понять какую цену мы должны заплатить за то или иное качество, иными словами позволяет найти компромиссные настройки для конкретной задачи. Высокая архитектурная сложность позволила обойти основные «острые углы», но часть проблем остается на плечах разработчика. И чтобы новички не унывали, главное помнить, что сложная задача отличается от очень сложной лишь количеством простых вещей.
Проектирование веб-API 2020 г. Лоре Арно
API позволяет разработчикам выполнять интеграцию с приложением без детализированного знания кода. Независимо от того, используете ли вы установленные стандарты, такие как REST и OpenAPI, или более новые подходы, например GraphQL или gRPC, освоение разработки API – своего рода суперспособность. Благодаря ней пользоваться вашими веб-сервисами станет легче, и ваши клиенты – как внутренние, так и внешние – останутся довольны. Темы, затрагиваемые в книге:- характеристики правильно разработанного API; - ориентированные на пользователя и реальные API; - API и принцип Secure by design;- изменение API, его документирование и проверка. Издание предназначено для разработчиков, обладающих мини-мальным опытом в создании и использовании API-интерфейсов
Личное мнение о книге: Ко многим принципам, описанным в книге, я ранее пришел самостоятельно (может стоило прочитать книгу раньше?). Тем кто ранее не создавал API, возможно книга в некоторых моментах покажется чересчур абстрактной. Однако это не отменяет полезность книги в целом как для новичков, так и для опытных разработчиков, которые непременно узнают что-то новое и систематизируют текущие знания (часть которых перейдет из интуитивного уровня в осознанный).
Стильный Java 2021 г. Фаэлла Марко
В современном мире разработки успешность приложения уже не определяется параметром «просто работает». Хороший программист должен знать возможности языка, практические приемы проектирования и платформенные средства для достижения максимальной производительности и жизнеспособности программ. Эта книга написана для разработчиков, которые хотят создавать качественный софт. Затронуты все ключевые показатели ПО: скорость, затраты памяти, надежность, удобочитаемость, потоковая безопасность, универсальность и элегантность. Реальные задачи и прикладные примеры кода на Java помогут надежно усвоить концепции. Пройдя все этапы создания центрального проекта книги, вы сможете уверенно выбрать правильный путь оптимизации собственного приложения.
Личное мнение о книге: Книга основана на интересной идеи: взять задачу и использовать несколько разных способов для её решения. Каждый способ имеет сравнительное преимущество над другим. Самая интересная глава про различные способы, оптимизированные по времени, а интересна она тем, что наглядно демонстрирует как по разному можно раскидать логику между классами. Были и другие хорошие мысли, например проверку инвариантов уже успел внедрить на одном проекте (весьма актуальная тема для решения проблемы несогласованности данных, предоставляемых клиентом, особенно в условиях сжатых сроков на разработку).
Паттерны проектирования API 2023 г. Джей Джей Гивакс
Паттерны проектирования API определяют набор принципов для разработки внутренних и публичных API. Джей Джей Гивакс, будучи специалистом из Google, рассказывает о паттернах, которые обеспечат вашим API согласованность, масштабируемость и гибкость. Вы узнаете, как улучшить дизайн самых распространенных API и как действовать в сложных пограничных случаях. Понятные иллюстрации, актуальные примеры и подробные сценарии позволят тщательно разобраться в каждом паттерне.
Личное мнение о книге: Книги, как один из источников знаний, всегда глубоко описывают ту или иную тему. Но эта книга превзошла большинство из них по детализации пограничных случаев. Также как паттерны ООП выводят уровень кода на новый уровень, так и паттерны веб-API способны уберечь ваш API от досадных недостатков и увеличить срок обратной совместимости. Каждый паттерн представлен в единой структуре, что позволят удобно использовать книгу как справочник. Пожалуй эта книга войдет в ТОП-3 среди мной прочитанных (с учетом актуальности этой темы для моих рабочих задач).
Фундаментальный подход к программной архитектуре 2023 г. Фаэлла Марко
Архитекторы ПО стабильно входят в десятку самых высокооплачиваемых профессий. Но до сих пор не было реального руководства, которое позволило бы разработчикам стать архитекторами. И вот наконец появилась книга, в которой дается всеобъемлющий обзор разнообразных аспектов архитектуры программного обеспечения. Начинающие и уже состоявшиеся архитекторы найдут в ней паттерны архитектур, определения компонентов, приемы построения эволюционных архитектур и множество других тем. Марк Ричардс и Нил Форд обладают бесценным практическим опытом, профессионально занимаются этой темой, уделяя особое внимание принципам построения архитектуры, применимым ко всем технологическим стекам. Они предлагают современный взгляд на архитектуру ПО с учетом всех нововведений последнего десятилетия.
Личное мнение о книге: Часто говорят, что 20% усилий обеспечивают 80% результата. Конкретные цифры не так важны, но суть в том, что изучение предмета на неком базовом уровне является очень разумным и эффективным занятием. Поэтому я смело могу порекомендовать эту книгу всем разработчикам, в особенности тем, кто не планирует становиться архитектором. Книга даёт понять его роль на проекте и поможет разговаривать с Архитектором вашей компании «на одном языке». Правда перед чтением книги, надо набраться немного терпения, ведь данная сфера не является столь технической, как прочие книги по разработке, и содержит много пространных рассуждений. Однако тем, кто дойдет до конца, она несомненно принесет свои «80%».
Linux для сетевых инженеров 2023 г. Роб Ванденбринк
Книга даст исчерпывающее представление о том, как устроена работа с сетью в Linux. В начале описаны основные дистрибутивы и рассказано, как выбрать правильный и настроить простейшую сетевую конфигурацию. Затем идет речь о диагностике, брандмауэре и использовании Linux в качестве узла для сетевых служб. Наконец, работая с примерами сборок, вы овладеете различными вариантами защиты от распространенных видов атак. Освоив последние главы, станете еще на шаг ближе к тому, чтобы построить надежный каркас для центра обработки данных, функционирующего полностью под управлением Linux.
Личное мнение о книге: Разработчик зачастую не много взаимодействует с системным администрированием Linux-систем, но он уж точно работает с сетью и сетевым взаимодействием в своих программах. С этой точки зрения книга очень полезна и разработчикам (в особенности при отладке). В книге центровое место занимают вопросы сетевой безопасности, что является вторым поводом прочесть её. В особенности потому что тема безопасности является самой сложной для изучения, виду её многогранности.
Mongo DB. Полное руководство 2020 г. Ходоров Кристина, Брэзил Йон, Брэдшоу Шэннон
В этой книге детально рассматривается обновленная версия MongoDB 4.2 – мощной системы управления базами данных. Вы узнаете о том, как эта безопасная, высокопроизводительная система обеспечивает гибкие модели данных, высокую их доступность и горизонтальную масштабируемость. Авторы представляют руководство для разработчиков баз данных, расширенные настройки для системных администраторов и сценарии использования MongoDB в различных проектах.
Личное мнение о книге: Книги, в написании которых участвовали разработчики описываемой технологии, всегда очень глубоки и детализированы. Очень много внимания уделено администрированию, что в горизонтально масштабируемых системах является самой сложной частью задачи. Детально расписаны по шагам различные процедуры, будь то добавление нового шарда или расширение набора реплик. Прекрасная настольная книга администратору MongoDB. К концу книги начинает хромать перевод, как будто бы не успевали его закончить. Но если будет стоять определенная задача, то все равно можно будет разобраться, затратив чуть больше времени.
Изучаем DDD-предметно-ориентированное проектирование 2024 г. Влад Хононов
Книга посвящена методологии DDD (предметно-ориентированному проектированию), что особенно актуально в условиях дробления предметных областей и усложнения бизнес-взаимодействий. Рассказано, как оценить масштаб и сложность предметной области, измерить темпы её развития, учесть необходимые зависимости, применять событийно-ориентированную архитектуру и структурировать создаваемое ПО, эффективно вписывая его в сеть данных (Data Mesh). Материал будет особенно интересен при развитии стартапа и разработке наукоёмких отраслевых систем.
Личное мнение о книге: Прекрасное и понятное описание DDD. Однако новичкам в разработке я бы рекомендовал сначала прочитать приложение к книге, где автор описывает историю внедрения DDD на одном своем проекте. Вы встретите там много незнакомых терминов (смысл которых частично поймете по контексту), но главное вы увидите проблематику. Когда вы увидите «Почему DDD» на конкретном примере, у вас будет на что наложить абстракцию из основной части книги, поняв «Как внедрять DDD». Применительно к моей практике, к сожалению, большинство тактических паттернов сложно внедрить в Битрикс24 из-за архитектуры вендора. Но стратегические паттерны, event storming и некоторые принципы тактических паттернов обязательно найдут отражение в будущих разработках.
Текущие книги
Эволюционная архитектура. Автоматизированное управление программным обеспечением 2024 г. Форд Нил
Новые инструменты, фреймворки методики и парадигмы вновь и вновь меняют экосистему разработки программного обеспечения. Непрерывный прогресс основных практик разработки на протяжении последних пяти лет заставил искать новые пути и подходы к архитектуре, чтобы соответствовать постоянно меняющимся требованиям пользователей. В обновленном издании авторы Нил Форд, Ребекка Парсонс, Патрик Куа и Прамод Садаладж приводят реальные примеры, соответствующие потребностям современной разработки ПО.
Очередь
Создание событийно-управляемых микросервисов 2022 г. Адам Беллермар
Книга описывает методы создания событийно-управляемых микросервисов для обработки больших объемов данных и предлагает шаблоны приложений, использующих подобную архитектуру. Рассказано о роли микросервисов в поддержке событийно-управляемых проектов, представлены примеры практических реализаций подобных архитектур как силами сотрудников организации, так и с привлечением сторонних специалистов. Подробно описаны инструменты, необходимые для разработки экосистемы микросервисов. Приведены способы решения возникающих проблем, даны рекомендации по налаживанию взаимодействия команд и отдельных сотрудников в процессе создания событийно-управляемых микросервисных систем.
Java. Решение практических задач 2021 г. Анджела Леонарда
Рассмотрены задачи, встречающиеся в повседневной работе любого разработчика в среде Java. Приведено более 300 приложений, содержащих свыше 1000 примеров. Продемонстрированы эффективные практические приемы и технические решения с учетом сложности кода, производительности, удобочитаемости и многого другого. Рассмотрены строки, числа, объекты, массивы, коллекции и структуры данных, работа с датой и временем. Приведены задачи на логический вывод типов, а также файловый ввод/вывод. Представлены задачи, связанные с API рефлексии Java. Особое внимание уделено программированию в функциональном стиле, задачам с привлечением конкурентности, правилам работы с классом Optional, а также API HTTP-клиента и API протокола WebSocket.
Алгоритмы. Построение и анализ 2019 г. Т.Кормен, Ч.Лейзерсон, Р.Ривест, К.Штайн
Книга Алгоритмы: построение и анализ удачно объединяет в себе полноту охвата и строгость изложения материала. Много книг, посвященных алгоритмам, отличается строгостью изложения материала, но страдает определенной неполнотой; другие книги охватывают огромный объем материала, но недостаточно строго излагают его. В книге Алгоритмы: построение и анализ описаны самые разнообразные алгоритмы, сочетается широкий диапазон тем с глубиной и полнотой изложения; при этом изложение доступно для читателей самого разного уровня подготовки. Каждая глава книги относительно самодостаточна и может использоваться в качестве отдельной темы для изучения.