10 прочитанных книг. Часть первая

2023.12.06
Краткий обзор 10-ти прочитанных книг в период с конца 2021 по начало 2023 года, которые оказали на меня влияние и позитивно сказались на профессиональной деятельности.

Начинаю серию статей переосмысления раздела о литературе на этом сайте. Имхо, развернутая рецензия каждой книги несет мало ценности, да и мне это уже не так интересно. Поэтому отныне буду группировать рецензии пачками.

Это первый десяток прочитанных мной книг с конца 2021 по начало 2023 года (чуть больше одного года), которые действительно оказали на меня влияние и позитивно сказались на моей профессиональной деятельности.

Здесь отражены далеко не все книги, какие-то показались неинтересными и были заброшены, какие-то не осилил, но в стоят в планах (например Unix и Linux. Руководство системного администратора и Компьютерные сети), а какие-то пойдут в следующий десяток.

Под конец 2021 года я понял что понимание DevOps жизненно необходимо и начал погружаться в эту тему. В начале 2022 года я начал въезжать во frontend, именно тогда уже появились проекты в продакшене. Под конец 2022 кода я устроился в DevOps отдел. Поэтому DevOps, backend и frontend идут паралельно.

Проект «Феникс». Роман о том, как DevOps меняет бизнес к лучшему

Проект «Феникс». Роман о том, как DevOps меняет бизнес к лучшему

На новой работе техдир настоятельно порекомендовал данную книгу к прочтению, чтобы я вник в проблемы, которые он хочет решить в компании. Ну чтож)

Книга издана в 2013 году, но даже сейчас спустя почти 10 лет, она описывает весь тот хаос, который твориться в IT отделах некоторых компаний.

Это роман, поэтому здесь мало технических моментов, здесь больше чувств и переживания людей, их работа и беспорядочные процессы системы, некомпетентность власть имеющих и замкнутость специалистов не желающих бороться со стагнирующей системой.

Это история, о том как простой IT менеджер Билл, невольно принявший на себя роль технического директора, пытается вывести компанию из процессного и технического кризиса, который, как оказывается, играет решающую роль в жизни компании. Но достигать эту цель он будет не один, ему нужны замотивированные союзники, а данная свыше власть оказывается формальностью. На передний план выступают глубинные размышления о людях и процессах.

Здесь мы увидим разных персонажей, по разному влияющих на компанию, которых можно встретить в реальной жизни. Мне довелось повстречать в жизни таких персонажей как Брент, Сара, Джон и Патти. Картина легко проецируется на реальность, как минимум я увидел аналогию.

Рекомендую к прочтению, книга слегка меняет видение.

Go идиомы и паттерны проектирования

Go идиомы и паттерны проектирования

Укоренившийся новый модный язык, который надо изучить. На деле оказалось что он действительно удобен для некоторых случаев.

Автор простым и понятным текстом постепенно вводит читателя в мир Golang, начиная от настройки среды разработки и заканчивая написанием тестов. В начале текст настолько прост что иногда можно читать по горизонтали.

Но автор не ограничивается примитивами языка, он также рассматривает вопросы обработки ошибок, конкурентности, контекста, рефлексии и страшных пакетов unsafe и cgo.

Чем дальше по главам тем сложне мне было понимать новые для меня языковые концепции. К вопросам конкуренации и контекстов я периодически возвращаюсь. Однако, по субьективным ощущениям, каждая глава является самодостаточной и не оставляет вопросов.

Из множества книг по Golang для новичков я выбрал именно эту, так как она дает понимание идиом разработки ПО на Go, что является верным вектором направления в развитии Go разработчика.

Подойдет новичкам в Golang, но с опытом в других языках.

Kafka в действии

Kafka в действии

Авторы постепенно знакомят читателя с устройством Apache Kafka и объясняют механики взаимодействия подчеркивая принципы заложенные в Kafka. После внимательного прочтения некоторых глав будет понимание как правильно проектировать потоковую передачу событий.

Книга дает общее представление о продукте Kafka и ее экосистемы. Не имея опыта использования или имея минимальный опыт, книга должна помочь освоить идеи заложенные в Kafka.

Каждый компонент системы Kafka (брокер, топик, продюсер, консюмер и прочее) рассматривается отдельно на примере.

Также авторы не упускают из виду инстурменты, такие как Debezium, kcat, Confluent REST Proxy API.

Из этой книги я для себя открыл такое понятие как модель зрелости (судя по всему это как-то связано с уровнями зрелости управления), которое позволяет понять на каком уровне в компании используется Kafka и каково возможное ее дальнейшее созревание для нас.

Есть более детальный обзор книги, там же ссылка на сборник цитат.

ПОЗНАКОМЬТЕСЬ, JAVASCRIPT

ПОЗНАКОМЬТЕСЬ, JAVASCRIPT

Эта книга открывает завесу внутреннего мира Javascript.

Сначала автор рассказывает об организационной части того, что мы как разработчики называем Javascript в своей работе: о спецификации, которую координирует коммитет TC39. Затем идет плавный переход из веб-плоскости в плоскость языка общего назначения под управлением node.js.

Также автор рассматривает вопросы транспиляции и интерпретации, и что самое интересное вводит поправку в понятие компилируемого языка программирования на примере Javascript, описывая все этапы преобразования кода от формы понятной для программиста, до формы понятной браузеру. Если откинуть свои убеждения и посмотреть на этот вопрос с точки зрения развивающегося мира, то это естественное развитие теории.

Затем автор бросает беглый взгляд на поверхность основных частей языка Javascript, не стоит ожидать здесь чего-то большого. Оглавление книги прямо-таки кричит: "практика, нужно больше практики!".

Эта книга явно намекает на то, что не многие знают Javascript, точнее почему он работает именно так и именно с такими паттернами и в таком векторе идет его развитие. Книга дает некоторые ответы на вопросы.

А рецензия Брайана Холта в предисловии, у которого тысячи звезд в проектах написанных на Javascript, с его признанием что он не может ответить на некоторые вопросы, заставляет улыбнуться.

React Современные шаблоны для разработки приложений. 2-е издание

React Современные шаблоны для разработки приложений. 2-е издание

Время от времени разрабатывая небольшие прототипы веб-интерфейса, я все же решился на полноценное изучение React, так как имел некоторую практику и массу накопленных вопросов (это был 2022 год). Книга ответила на большинство вопросов, а остальную часть я почерпнул из стороннего опыта на youtube (это был 2023 год).

Авторы очень плавно вводят в курс дела, рассматривая такие элементарные вопросы как const и let, функциональные выражения и стрелочные функции, деструктуризация, транспиляция, асинхронность в Javascript. Затем рассматривается функциональное программирование в Javascript и механика работы React.

Имея надежный фундамент, следующая часть книги посвящена непосредсвенно React, но все постепенно.

В итоге я имел понимание почему именно функциональный подход и декларативное программирование преобладают в React и почему классовые компоненты устарели. Стало ясно что такое хуки, для чего они нужны и как их правильно использовать. А еще тесты)

Читатель познакомится с различными инструментами (ESLint, Prettier, PropTypes, Flow, TypeScript, Jest и плагины ко всему этому), которые позволят писать правильный код с минимумом ошибок.

Некоторый опыт разработки на Javascript иметь нужно, но авторы затрагивают многие элементарные шаблоны применяемые в языке Javascript на React, поэтому новичкам эта книга позволит сделать быстрый старт.

Профессиональный TypeScript

Профессиональный TypeScript

Javascript слаботипизированный язык, он применяет множество правил для выяснения намерений разработчика, чтобы выдать нужный результат. Но что есть нужный резльтат при сложении числа с массивом?)

TypeScript решает эту проблему, а книга "Профессиональный TypeScript" позволяет изучить и понять как работать с этим языком.

Капитан Очевидность подсказывает: TypeScript - это типизированный Javascript.

Как и следовало ожидать в книге рассказывается про систему типов TypeScript и взаимодействие с ней через призму Javascript. Но TypeScript это не просто типизация над Javascript, это нечто большее - здесь есть обобщенное программирование ( и статья на хабре), интерфейсы, декораторы.

В конце каждой главы есть упражнения, что позволяет закрепить полученные знания.

Изложенный материал по TypeScript тесно переплетается с паттернами из мира Javascript, здесь есть полиморфизм, асинхронность, исключения, пространства имен и модули. Затрагивается вопрос фреймворков и плавной миграции с Javascript на TypeScript.

За одно прочтение весь материал не применить на практике, поэтому буду периодически возвращаться.

TypeScript можно встроить в React и тогда разработка станет еще приятнее :)

Рекомендую к прочтению тем кто хочет большей детерминированности в своих проектах на Javascript.

Паттерны объектно-ориентированного проектирования

Паттерны объектно-ориентированного проектирования

Прежде всего, опытный разработчик понимает, что не нужно решать каждую новую задачу с нуля. Вместо этого он старается повторно воспользоваться теми решениями, которые оказались удачными в прошлом.

Именно о таких повторно используемых решениях данная книга. Эти повторные решения называются - паттерны проектирования.

Описание каждого паттерна достаточно объемное и многосторонее. Но по ходу прочтения все-равно остаются непонятные моменты. При повторном чтении становится более ясно, особенно если ознакомиться с паттернами проектирования в наиболее близком языке программирования. Примеры кода на C++ и Smalltalk.

Паттерны проектирования от банды четырех - одна из основных теоретических книг для разработчиков любого уровня и стека. Материал не простой, но достаточно полезный и местами даже интересный. За один подход не осилить, только практическое применение :)

Детальный обзор книги здесь, там же ссылка на цитаты и краткую шпаргалку.

PHP: объекты, шаблоны и методики программирования

PHP: объекты, шаблоны и методики программирования

Сначала автор обозначает проблему, которая заключается в простоте языка PHP, который прямо-таки манит говнокодить встраивая логику в разметку применять антипаттерны.

Далее следует краткий экскурс в историю становления PHP как языка программирования. Затем идет обзор встроенных языковых механизмов в виде объектов, и вся вторая часть книги крутиться вокруг этой идеи, как основополагающей в паттернах проектирования, которые рассматриваются в третьей части. Там есть те же паттерны от банды четырех, только с примерами на PHP.

В четвертой части книги рассматривается экосистема PHP в виде PSR, composer. Также рассматриваются тестирование, развертывание и непрерывная интеграция.

Имхо это мастхэв. Это длинное приключение, но книга описывает многое в разработке на PHP. Если хочется понять что такое разработка веб-приложений на PHP в продакшене, то нужно прочитать эту книгу.

Обязательно к прочтению любому разработчику PHP чтобы не быть похапэшником)

C# на примерах. 4-ое издание

C# на примерах. 4-ое издание

Меня занесло немного не туда ...

Понадобилось мне разработать одну интеграцию облачной кассы с вендинговыми аппаратами, где ПО было на C#. До практики дело не дошло, удалось договориться о разработке со стороны вендора вендингов, но с языком в теории ознакомился.

Стратегия изложения автора заманчивая: сначала автор разказывает о том, как было до C# и его экосистемы, показывает трудности разработки и плавно подводит к проблемам решаемыми при помощи C# и .NET.

Далее рассказывается обо всех этих CLR, CTS и CLS. Затем следует развертывание и изучение конструкция языка и типы данных, рассматрвиается ООП, интерфейсы и структуры данных.

Расматриваюстя вопросы параллельного и сетевого программирования. Кротко на примерах создание клиент-серверных приложений, и работа с базами данных.

Это одна из немногих книг, которую легко читать длительное время и которая не клонит в сон. Подойдет для быстрого старта в C#.

Идеальный программист

Идеальный программист

Книга интересна тем, что в ней задаются интересные вопросы и есть попытки дать ответы:

Почему многие разработчики боятся вносить частые изменения в свой код? Да потому что они боятся его "сломать"! А почему они этого боятся? Потому что у них нет тестов.

Самыми интересными моментами в книге для меня были понятия тестирование и профессионал (к слову вся книга посвящена этому понятию в разной степени). Автор детально объясняет на примерах из своей и сторонней практики и прокладывает "мост" между бизнесом и разработчиком.

Особый интерес представляет первая половина книги, вторая уже меньше, а конец не привносит каких-то новых знаний.

Читать стоит разработчикам любого уровня. Планирую вернуться для освежения памяти)

Более подробная рецензия здесь.

В телеграм канале DevOps от первого лица можно оставить комментарий или почитать интересные истории из практики DevOps