На текущей позиции имею полную свободу действий в части технической реализации сложных бизнес задач. При этом есть счастливая возможность не только реализовать придуманную (или прочитанную) идею, но и вести весь жизненный цикл решения: удобство при реализации новых фич (на сколько удалось угадать будущие потребности бизнеса при выборе паттерна), уровень покрытия пограничных случаев, скорость выявления ошибок и удобства при их отладке.
Отдельно стоит отменить создание больших встроенных в портал многостраничных приложений на VUE: модуль оценки работы сотрудников их руководителями, модуль онбординга новых сотрудников и пр.
Приемы объектно-ориентированного проектирования. Паттерны проектирования 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 и некоторые принципы тактических паттернов обязательно найдут отражение в будущих разработках.