Обзор книг
Я не занимаюсь разработкой ПО, я занимаюсь его эксплуатацией, в частности, эксплуатацией оркестратора Kubernetes в крупном продукте. Тем не менее, управление Kubernetes у нас софтово автоматизировано. Написана куча настоящего "взрослого" кода (не скриптов), который требуется сопровождать. В какой-то момент меня жутко замучал вопрос "почему всё сделано так, а не иначе", и я захотел зайти со странной стороны - изучить, что же такое вообще DDD. (Тогда как надо было заходить с паттернов разработки, но я не осилил.)
Изучать вопросы, связанные с разработкой, не занимаясь разработкой каждый день за деньги, очень сложно. Такова жизнб. Тем не менее, мне попадались профессионалы программирования, всю жизнь проработавшие на должности типа "специалист по инфобезу на заводе" или "системный администратор конторы по починке садового инвентаря".
Я в итоге не слишком хорошо разобрался, зато у книги мощная идеологическая составляющая, и теперь я на всё смотрю доменно, ура. Слабая сторона данной книги - казённый язык и очень и очень скупые примеры. В качестве продолжения думаю прочитать с начала книгу Клеппмана, поскольку пару лет назад изложенное в ней крайне плохо ложилось на мой опыт и мировоззрение (воспринимал как книгу с рецептами).
- Персиваль Г., Грегори Б. "Паттерны разработки на Python: TDD, DDD и событийно-ориентированная архитектура"
Применённые знания сразу захотелось подрюкать на практике. К сожалению, для меня абсолютно нереально сделать что-либо самостоятельно. Данная книга вроде бы и ведёт читателя за ручку, но при этом написана крайне небрежно. В первые главы автор вкладывался, а потом хуй забил, и многие примеры в книге напечатаны с ошибками вида "сперва переменная называется file_dest, а потом file_destination" (и таких ошибок чем дальше, тем больше). Автор постепенно скатывается в пояснения в духе "да тут понятно, правда ведь?", на середине я бросил книгу и прицелился в другую на схожую тему, надеюсь, она более качественная.
Однако, данная книга пробудила во мне интерес к тестированию как к дисциплине (в наших работных проектах также есть все необходимые тесты: модульные, интеграционные, e2e, и их необходимо актуализировать вместе с кодом). Собираюсь прочесть книгу, посвящённую TDD на платформе Golang.
Кто-то рекомендовал эту книгу как опорную точку для изучения Linux. К сожалению, я ни разу не прочитал ни одной книги по линуксу и никогда его не изучал системно. Всегда так получалось, что я погружался в тему уже по ходу решения некоторых задач. Итоги такие: 1. Я очень долго выполнял команды configure, make, make check, make install. 2. Я теперь в курсе проблематики сборки программ, написанных на Си. 3. Я с удивлением узнал, как называются пакеты, куда входят утилиты, используемые мной каждый божий день. 4. Несмотря на то, что я завёл lfs систему на lvm, я смог отпороть эту партицию на отдельный физический диск, настроить загрузчик и таки доделать сам туториал, то есть загрузиться в минималистичный линукс. 5. Я затрудняюсь ответить, какие полезные для работы навыки я приобрёл. Мне было интересно просто с точки зрения "смастерить и чтоб работало". Наверное, я открыл для себя много новых ключиков известных утилит, которые обходил вниманием.
Наверное, мне будет теперь интересно пройти другие туториалы/книги, где описываются некие линукс-художества. В этой книге не раскрываются вопросы перформанс траблшутинга, потому что какая тут на хуй нагрузка, когда тебе просто нужно собрать систему и запустить её. Поэтому следующим чтивом будет книга про "производительность систем".