myStack
877 subscribers
754 photos
15 videos
24 files
304 links
Меня зовут Ростислав и я разработчик.

Это мой личный блог.

Я пишу на Go, читаю книги про технологии и пишу об этих и других вещах сюда.


Книги:
https://bit.ly/rostislav-books

Личка:
https://t.me/Rostislaved

Сайт:
Rostislav.me
Download Telegram
Лучшие актуальные книги по Golang

📦 База

- Jon Bodner - Learning Go (2024)
- Teiva Harsanyi - 100 Go Mistakes and How to Avoid Them (2022)

🌐 Веб-разработка
- Alex Edwards - Let's Go (2025)
- Alex Edwards - Let's Go Further (2025)
- Hüseyin Babal - gRPC Microservices in Go (2023)

🚀 Advanced topics
- James Cutajar - Learn Concurrent Programming with Go (2024)

- Thorsten Ball - 1. Writing an Interpreter in Go (2020)
- Thorsten Ball - 2. Writing A Compiler In Go (2020)

- Adam Woodbeck - Network Programming with Go (2021)

🗂 Чуть менее актуальные:
- Alan A. A. Donovan, Brian W. Kernighan - The Go Programming Language (2015)
Классика. Хорошая книга, но уже не такая актуальная. Можно дополнительно смотреть в ней интересующие главы.

- McGavren Jay - Head First Go (2019)
Не самая актуальная, но может быть полезной из-за акцента этой серии книг на простоту
16🔥33💩1
Clean Code 2nd Edition

Оказывается, 18.10.2025 вышло второе издание Чистого кода.

Вот как описаны изменения в предисловии:
Примечание о более ранних главах

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

Структура этой книги

Пожалуй, самым большим изменением между первым и вторым изданиями является структура материала. Я разделил книгу на четыре части: Код, Проектирование, Архитектура и Мастерство.
Эти части не являются независимыми друг от друга.

Часть I: Код в значительной степени зависит от Части II: Проектирование. Читая Часть I, вы встретите множество ссылок на принципы и стратегии проектирования, которые описаны в Части II. Я рекомендую использовать Часть II как справочник, к которому можно обращаться во время чтения Части I. Затем, закончив с Частью I, вам следует прочитать Часть II целиком.

Часть III: Архитектура представляет собой тщательно отредактированный и сокращённый набор фрагментов из моей книги Clean Architecture. И снова, рассматривайте её как справочный материал, помогающий лучше понять Часть I. Однако она также может использоваться самостоятельно — как простое введение в архитектурные принципы более высокого уровня.

Часть IV: Мастерство — это, в свою очередь, тщательно отредактированный и сокращённый набор фрагментов из моей книги Clean Craftsmanship — в частности, главы, посвящённые этике разработки программного обеспечения. Она включена для того, чтобы подчеркнуть: написание чистого кода является этическим императивом.
1🔥6🤯2💩2🙏1
Reading queue

У меня большая база книг, разделенная по темам. Она обладает следующими свойствами:
- Книги скорее всего хорошие (я определяю это по рейтингу амазона и goodreads). Хотя часть книг есть и плохих, но это, если мне все равно надо зачем-то в них смотреть
- Файлы книг там в лучшем качестве, что я смог найти. И мне не надо опять проделывать эту работу
- Книги в быстром доступе для меня, если надо что-то вспомнить

Но существовало две проблемы. Первая - я забывал, что я прочитал и когда, поэтому я начал вести список книг, которые прочитал. Особой необходимости в этом не было, просто мне это нравится.

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

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

Пока составлял список, понял, что в нем определенно есть книги, до которых я все же не доберусь, но они важны, как напоминание об определенной теме, а может и доберусь когда-то. Пока только первые книги в списке имеют порядок актуальный, после первых 10 порядок случайный т.к. до них еще далеко. Порядок этот будет постепенно корректироваться.
1👍42
Chris Richardson - Microservices Patterns

Chris Richardson пишет второе издание своей книги. По планам релиз весной 2027

Ниже - что будет нового во втором издании.
tldr (полная версия в комментариях):
- Книга сильно обновлена на основе практики последних лет.

- Главный акцент - fast flow: быстрые мелкие изменения + быстрый feedback.

- Fast flow держится на трех вещах: Team Topologies, DevOps, подходящая architecture.

- Больше внимания архитектурным основам: coupling, quality attributes, устройство architecture.

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


Особо ничего непонятно конечно, но будем думать, что там что-то нормальное
3🤣11
#книги
Daniel Kahneman - Thinking, Fast and Slow
30.12.2025 - 21.02.2026


В русском переводе название звучит "Думай медленно, решай быстро", но в книге не говорится о том, что надо что-то быстро решать, это неудачный перевод. В оригинале название - Thinking, Fast and Slow, что гораздо более точно отражает представленную модель мышления в книге: есть две системы, одна быстрая, но подвержена ошибкам, а вторая медленная, более энергозатратная, но умная. В частности из-за этого перевода и из-за других своих ожиданий я рассчитывал получить все же больше каких-то практических рекомендаций, но в итоге эта книга - скорее описание мышления и разных неочевидных его нюансов.

Одним из самых полезных было именно описание модели мышления из двух систем. Например, именно система 1 ответственна за быстрый (и часто неверный) ответ на задачу:
>Если 5 машин за 5 минут делают 5 деталей, сколько времени нужно 100 машинам для 100 деталей?

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

В остальном для развития мышления лучше прочитать книгу по логике.

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

В любом случае я рад, что прочитал, ибо давно хотел, и если бы не прочитал, то все еще бы хотел и это бы меня мучило)
172
Okular

Наконец-то получилось починить Okular, чтобы открывал ссылки в браузере, а не показывал это бесячее окно)

Если кому вдруг актуально, то:
sudo pacman -S --needed archlinux-xdg-menu
sudo mkdir -p /etc/xdg/menus
sudo ln -sf /etc/xdg/menus/arch-applications.menu /etc/xdg/menus/applications.menu
41
Martin Kleppmann - Designing Data-Intensive Applications

Во втором издании Кабанчика в схемах объясняющих уровни изоляции транзакций поменяли имена

(Alice и Bob - это условные персонажи, которые используются в информатике, криптографии и теории протоколов для объяснения взаимодействия между сторонами.)
😁9🤮7🤔311
у меня сегодня день вайбкодинга... Ощущения отвратительные.

Всё же мне нравится писать код самому
👍20😁74
Спасибо чатГПТ
😁31
samber/lo
https://github.com/samber/lo

ура!

После долгих уговоров в самом популярном issue (примерно с Марта 2022го) в либу добавляются варианты функций, которые возвращают ошибки (это пока еще pr, но он от мейнтейнера, так что скоро будет).

Раньше можно было так:
ids := []int{1, 2, 3}

idsStr := lo.Map(ids, func(id int, _ int) string {
return strconv.Itoa(id)
})

// idsStr = []string{"1", "2", "3"}


но вот так уже было нельзя:
idsStr := []string{"1", "2", "3"}

ids := lo.Map(
idsStr,
func(idStr string, _ int) int {
id, err := strconv.Atoi(idStr)
if err != nil {
// что делать с err?
}

return id
},
)


Теперь же будет можно:
ids, err := lo.MapErr(
idsStr,
func(idStr string, _ int) (int, error) {
id, err := strconv.Atoi(idStr)
if err != nil {
return 0, err
}

return id, nil
},
)


И аналогично для многих других функций (еще некоторые добавятся в отдельных pr).
5👍4
Грязная архитектура

Наткнулся на очередной репозиторий по "чистой архитектуре". 1к звезд между прочим! Наверное что-то крутое. Смотрим первым делом на юзкейс:
https://github.com/khannedy/golang-clean-architecture/blob/main/internal/usecase/user_usecase.go

1. Импорт gorm
2. Импорт Fiber
3. Импорт интерфейса Repository из пакета Repository
4. Явный вызов бд транзакций в юзкейсе
...

Другие файлы открывать просто нет смысла

Если бы у меня была задача сделать репозиторий максимально противоречащий чистой архитектуре, то я бы вряд ли справился лучше, чем тут
11😭2
Preston Thorpe

Есть такой проект Turso - это "SQLite на rust".

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

Вот его история и продолжение

Linkedin: https://www.linkedin.com/in/pthorpe92/

На гитхабе жесть: https://github.com/PThorpe92
13🤡1
Курс по чистой архитектуре и DDD

Хотел бы поделиться вот этим курсом:
https://microarch.ru/courses/ddd/languages/go

Это лучшее, что я встречал по теме. Считаю, что просто великолепный материал - на порядок лучше всего, что я когда-либо видел на ютубе.
- Отличная подача, структурированно и последовательно
- Отсутствие ошибок! Это редкость в принципе: на ютубе и примерах на гитхабе их миллионы.
- Шикарнеший набор тем

Если вы не знаете, какие вам знания нужны в архитектуре приложений, то в этом курсе все, что вам нужно. Даже не сомневайтесь
3
#книги
PostgreSQL 17 изнутри
21.02.2026 - 19.03.2026

Книга состоит из следующих частей:
- Часть I. Изоляция и многоверсионность
- Часть II. Буферный кеш и журнал
- Часть III. Блокировки
- Часть IV. Выполнение запросов
- Часть V. Типы индексов
Это определенно книга не для изучения SQL. Знание SQL подразумевается для чтении этой книги, но в целом неглубокое.

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

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

Какой-то вывод сделать сложно. Не в восторге, но прочитал не зря
9🔥1
Сыр Чеддер назван по месту первоначального произодства - деревня Чеддер в Англии.
4
Obsidian

Раньше я сохранял заметки в Saved Messages телеграма, но у этого есть минусы:
- неструктурированно
- ненадежно
- неудобно писать

Потом перешел на obsidian, что и всем советую.

Тут я хотел бы просто показать пример заметки. Я долго изучал, как правильно все это делать по zettelkasten'у, но в итоге остановился на довольно простом подходе и один из типов заметок выглядит так. Это заметка связанная с какой-то утилитой в системе - она называется также, как и сама утилита и в ней я не описываю все функции утилиты, а просто записываю "инструкции", которые пригодились один раз и помогут сделать то же самое, когда система переустановится. Пример собственно на скрине.

Таких заметок у меня уже довольно много и это здорово помогает. Есть и заметки не по утилитам, а например по паттернам или по темам каким-то, в которых разбирался. Есть по книгам заметки, но в них я в основном пишу то же описание, что и скидываю сюда, когда прочитаю какую-то книгу (хотя в книгах вроде DDD Эванса или POEAA Фаулера у меня много всего). Всего 602 заметки. Скину граф в комментарии
17🔥22
#книги
Е.П. Моргунов - PostgreSQL. Основы языка SQL
19.03.2026 - 05.04.2026

В целом охарактеризовал бы книгу как «нормальную». Есть моменты, которые не понравились, есть те, которые понравились, поэтому выходит что-то среднее. Если попытаться представить, какую оценку она бы имела на Amazon, то я бы сказал 4.4, может, 4.5.

Что понравилось:

- Много задач. Я их, конечно же, не делал, но все равно считаю, что это отлично для такой книги.
- Книга выглядит как та, с которой можно начать изучать SQL, основная часть тем рассказывается нормально.

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

Что не понравилось или показалось странным:
- Иногда было неясно, нужно ли применять запросы указанные в книге или нет. Например в какой-то момент появляется CREATE TABLE, а в демо базе уже есть эта таблица и получается ошибка. Потом какие-то DELETE и неясно, потребуются ли эти строки в дальнейших примерах или нет, то есть можно ли выполнять запрос или лучше не выполнять.
- Как-то сложно описаны соединения, ибо не было элементарных примеров вроде: «соединяем таблицу с 3 значениями с другой таблицей с 3 значениями». Если знаешь, как это происходит, то такие примеры не нужны, но если только узнал про то, что такое соединения, то будет сложно представить без них.
- Были моменты, которые как будто не лучшие практики, но про нюансы не было сказано.
- Этот пункт, возможно, лично мой, но часто, когда читаю книги или просто примеры, не нравится в дополнение к силам, затраченным на понимание идеи, тратить силы на понимание предметной области. Например, в этой книге те же джойны объясняются на примере базы, предметная область которой - «Авиаперевозки», и чтобы понять идею джойна, требуется ориентироваться в предметной области этой БД - мне это видится как некоторая лишняя работа, которая увеличивает количество информации, которую нужно держать в один момент времени в своей «оперативке».

То есть, чтобы понять множество идей А, тебе еще нужно понимать множество идей B, и без B не понять A, но в этом, на мой взгляд, нет никакой необходимости. Я вообще много где подобное замечаю, и раздражает, что сперва надо провести умственную работу по отсеканию лишнего, оставив саму суть, и только потом думать о самой этой сути.
4👍31
Что по бд, что по сетям как-то трудно понять, какая книга норм
- У многих книг средний рейтинг
- Непонятно, какая книга нормальная для старта
- Непонятно, что именно рассказывается. Я тут про то, что например в сетях миллион всего может быть: протоколы, устройство сетевого стека в линуксе, базовое администрирование (такое я так и не нашел). В бд примерно также: есть справочники sql, есть проектирование бд, есть теория бд, администрирование бд и миллион всяких книг по каждой из субд.

В языках программирования такой проблемы нет. Есть точно хорошие книги.
👍63
#книги
Е.П. Моргунов - PostgreSQL. Профессиональный SQL
05.04.2026 - ... (16.04.2026)

Книга, которую я не дочитал. Это выше моих сил.

В отзыве про первую часть, я жаловался, что мне не нравится, когда примеры делают на основе какой-то предметной области. Тут также объяснение идет на примере базы авиаперевозок. И в части про рекурсивные общие табличные выражения мне было сложно понимать примеры ровно до момента, когда не появился пример на очень абстрактной таблице, где были не "аэропорт вылета и аэропорт прилета", а просто узел графа из которого ребро направлено в другой узел графа. В нем не надо было понимать, что это рейс какого-то самолета, где первый узел это Москва, а второй это Мурманск или еще какой-то город, в ней было просто: ребро идет из узла 1 в узел 2. Все бы такие примеры.. Но автор еще как будто извинялся, что пример абстрактный.

Названия таблиц сперва пишутся на русском, а потом на английском. Это конечно понятно, зачем сделано: в запросе то эти названия на английском. Но каждое упоминание таблицы надо сосредотачиваться, что посадочные талоны - это boarding_passes. Может это считается верным писать на русском термины в русских книгах, но мне например пользы от русского названия было ровно 0. Скорее лишняя информация.

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

Первый полный sql запрос в главе оконных функций появился только на четвертой странице и по размеру составлял половину страницы - я считаю, что это ненормально.

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

Максимально неприятно читать это все.

Это причина, почему я не читаю книги с низким рейтингом на амазоне - вот такие впечатления от них. Тут же рейтинга не было, поэтому я понадеялся, что будет хорошо, но хорошо не было.
🔥21
#книги
Антон Жиянов - Оконные функции SQL
16.04.2026 - 23.04.2026

Книга состоит из трех частей:
- Окна и функции
- Фреймы
- Практика (эту я пропустил)

Я часто негативно описываю многие книги, но не в этот раз. Шикарная книга. Она очень простая, и такими и должны быть книги!

- К концу первой части уже можно хорошо понимать, что такое оконные функции.
- В конце каждой части отличное резюме, которое действительно суммаризует информацию, а не просто написано "чтобы было".
- Примеры демонстрируются на элементарнейших таблицах. Как итог не нужно тратить усилия, чтобы вникать в большую предметную область. То, что надо!
- Работа первого запроса в новой главе демонстрируется по шагам. Буквально, как поменяется таблица на каждом шаге.
- Отлично продуманный порядок тем и примеров.
👍832