Книжный куб
11.1K subscribers
2.66K photos
6 videos
3 files
1.96K links
Рекомендации интересных книг, статей и выступлений от Александра Поломодова (@apolomodov), технического директора и эксперта в архитектуре
Download Telegram
Совершенный Код (Code Complete)

Эта книга Стива Макконела в свое время была хитом, а мне она очень помогла на пути становления меня software develoment engineer. Году в 2006 я впервые стал писать код за деньги и делал это в компании, где предыдущий отдел веб-разработки разошелся полностью. Новый руководитель отдела пришел и начал наводить порядок и я перешел из техподдержки в стажеры-разработчики. С кодовой базой мы изначально были на вы, процесс деплоя был ручным, тестирования не было, часть систем надо было планово перезагружать раз в час, иначе они падали сами, но с непредсказуемыми последствиями. На этом фоне книга Стива дала мне ответы на вопросы, а всегда ли так больно разрабатывать программное обеспечение или бывают менее болезненные способы. После этой книги я полюбил использование метафор для сложных концепций, понял важность обеспечения качества, узнал про проектирование софта и много чего еще:)

Сама книга выглядела как монументальный кирпич почти на тысячу страниц формата А4 и состояла она из 7 частей.

I. Laying the Foundation - как раз здесь про метафоры, сбор требований, продумывание вариантов и принятие ключевых решений
II. Creating High-Quality Code - про проективание, классы и методы, защитное программирование и важность использования псевдокода
III. Variables - про принципы использования переменных, их именование и типы данных (как обычные, так и нестандартные)
IV. Statements - про организацю кода, условные операторы, циклы, нестадартные управляющие структуры (goto и рекурсию), табличные методы и общие вопросы управления выполнением
V. Code Improvements - про качество программного обеспечения (с тех пор многое здесь улучшилось:))
VI. System Considerations - немного статистики про большие проекты и как размер влияет на разработку, как управлять ей (тут тоже многое поменялось с тех пор, например, инкрементальные подходы стали доминирующими)
VII. Software Craftsmanship - часть про мастерство. Тут интересно, что когда-то давно engineering и craftmanship противопоставляли себя друг другу, но теперь ясно, что инженерные подходы общеприняты:) Про это можно посмотреть выступление Dave Farley с goto 2022 "Taking Back “Software Engineering” – Craftsmanship is Insufficient" и интересно посмотреть именно его, так как он в свое время топил за craftmanship

P.S.
Я не уверен, что эта книга сейчас настолько же актуальна как 30 и 20 лет назад, но не вспомнить ее в своем канале я не мог:)
Кстати, у Стива есть еще книга "Еще более эффективный Agile" ("More Effective Agile: A Roadmap for Software Leaders"), в которой автор хорошо проходится по процессам разработки (а точнее конкретно по Scrum) и я про нее вспоминал в отдельном посте.

#Software #SoftwareDevelopment #SoftwareArchitecture #Devops #Engineering
👍9🔥42🤔1
Роботоделы. Короткое замыкание в школе

Я дочитал этот комикс Тома Эликсы и Алексиса Баррио на днях и могу отметить, что авторы достаточно забавно обыгрывают школьные приключения 12 летнего парнишки Уго. Он, как истинный раздолбай, залипает на школьных уроках и учитель отправляет его в кабинет наказаний. Там Уго знакомится с гениальным робототехником, девочкой Галей примерно тех же лет, которая на коленке решила задачу создания сильного AI, построив робота Си-эр3бро, а дальше решила его испытать в этом кабинете. Испытание заканчивается переносом во времени, так как Галя не просто сделала автономного робота из аппарата для попкорна, но и сразу машину времени:) А переносится эта компания вместе с учителем из кабинета наказаний в Средневековье, а точнее в 1149 и там начинаются их приключения ...

В общем, книга достаточно упоротая, но интересная для детей и с неплохим юмором для взрослых:)

#ForKids #PopularScience
🔥7👍5👏1
Code Complete • Steve McConnell & Jeffrey van Gogh • GOTO 2023

Интресное обсуждение книги Code Complete с участием Стива Макконела, автора книги и CEO at Construx Software, а также Jeffrey van Gogh, Director of Engineering at Google & Secretary of the Board at Kotlin Foundation. Про саму книгу я рассказывал пару дней назад и именно при написании того поста я нашел это свежее видео из GOTO Book Club, в котором обсуждаются следующие темы:

- Эволюция яязыков программирования за последние 30 лет (как раз столько прошло с первого издания книги)
- Эволюция процессов разработки от waterfall к agile и как это повлияло на написание кода
- Должен ли код быть единственной документацией - примерно такой тезис был в книге, но в этом видео автор объясняет, что его идея была в другом - что так обычно бывает с продакшен проектами, поэтому стоит потратить время на то, чтобы сделать код читаемым:)
- Сколько языков программирования надо знать разработчику и что они дают ему
- Как open source повлиял на жизненный цикл кода
- Обсуждение тулинга и как он эволюционировал за прошедшее время
- Стоит ли техническим менеджерам писать код - у автора очень взвешенная позиция на этот счет
- Как автор делал свои исследования, которые легли в основу книги
- Советы для начинающих программистов

#Software #SoftwareDevelopment #SoftwareArchitecture #Devops #Engineering
👍14🔥31
Третий выпуск Code of Architecture по книге "A Philosophy of Software Design"

Сегодня в 18:00 по Москве мы поговорим про то, как документация может помочь упростить систему. На стриме обсудим сразу 5 глав и затронем следующие темы:
- "причины", чтобы не писать комментарии (и размотаем их)
- советы о том, как писать хорошие комментарии;
- что делать с неймингом:)
- подход comments first при написании кода
- как поддерживать комментарии в актуальном состоянии

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

#CoA #Software #Architect #SystemDesign #Philosophy #SoftwareArchitecture
👍92
Самая главная молекула. От структуры ДНК к биомедицине XXI века (Unraveling Dna: The Most Important Molecule Of Life)

Первую версию этой книги знаменитый биофизик Максим Франк-Каменецкий написал еще до моего рождения, целых 40 лет назад. С тех пор книга пережила много переизданий, в каждом из которых автор актуализировал содержание под уровень разития молекулярной биологии и генной инженерии. В итоге, книга эволюционировала и мутировала прямо как ДНК, про которую в ней идет речь. Если говорить про книгу, то я прочитал ее за пару дней, один из которых пришелся на обратный перелет из Турции в Россию, когда я с семьей возвращался из отпуска. Для этого пути мне требовалась динамичная книга, которая держит напряжение и не отпускает своими перепитиями сюжета. Именно такой оказалась книга про "самую главную молекулу", в которой дюжина глав, которые постепенно раскрывают перед читателями секреты главной молекулы. Вот эти 12 глав
1. От новой физики к новой биологии
2. От ДНК к белку
3. Знакомьтесь: самая главная молекула
4. Под знаком ДНК
5. ДНКовые тексты
6. Откуда берутся гены?
7. Кольцевые ДНК
8. Узлы из ДНК
9. Споры вокруг двойной спирали
10. Генная инженерия и технология редактирования генома. Опасения и надежды
11. ДНК и судьба
12. Вездесущая ДНК

Бесплатная версия книги доступна здесь, доступной она стала в рамках проекта Дигитека:)

#PopularScience #Biology #Math #Physics
👍8
NoSQL. Методология разработки нереляционных баз данных (NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence)

Этой книге Садаладжа и Фаулера уже больше 10 лет и прочел я ее много лет назад и уже тогда она показалась мне слишком обзорной и простой.
В ней авторы рассматривали четыре вида баз данных
- субд типа ключ-значение
- документоориентированная субд
- колоночная субд
- графовая субд
Причем рассматривали их на очень базовом уровни и все бы ничего - ведь простые книги полезны новичкам, но вот перевод на русский язык был просто ужасен. Более хренового перевода я давно не видел, например:
- графическая база данных вместо графовой
- нули вместо NULL'ов
- журнал закрепления для английского commit log
- и т.д.

В итоге, сейчас эта книга морально устарела и читать ее даже ради общего обзора видов базы данных смысла не имеет:)

#Databases #SoftwareArchitecture #SoftwareDevelopment #Software #DistributedSystems
👍16
Финтех-тренды, 2023. Облачные технологии

Несколько месяцев назад записывал лекцию про облачные технологии для курса Финтех Тренды. И вот вчера лекция была опубликована, а к завтрашнему дню я думаю сделать статью с расшифрокой. Я постарался кратко и по делу рассказать про cloud technology в общем, а потом поделиться своими мыслями относительно документа "Применение облачных технологий на финансовом рынке" от ЦБ РФ:)

#Cloud #DistributedSystems #Software #SoftwareDevelopment #SoftwareArchitecture
👍17🔥4
Путь аналитика. Практическое руководство IT-специалиста

Лет шесть назад я прочитал эту книгу Веры Ивановой и Андрея Перерва и она показалась мне достаточно неплохой. Плюс книги в том, что авторы довольно структурировано описывает карьерную лестницу аналитика, приводя список требований к каждой из ступенек, а также указывая способы перехода на новую ступеньку. Также в книге есть много указаний на материалы, которые реально стоит изучить. А минусы в том, что ряд моментов, указанных автором, относится к дискуссионным и с моей точки зрения не нужны:) Если говорить про содержание книги, то она состоит из 7 глав, среди которых есть вводная часть, шаги карьерной лестницы аналитика и заключение, а также много примеров и шаблонов в дополнительных материалах
1. Общие понятия
2. Профиль и квалификация аналитиков
3. Младший аналитик
4. Аналитик
5. Старший/ведущий аналитик
6. Начальник отдела анализа
7. Итак

Итого, книга показалась мне полезной для прочтения любому, кто идет или планирует идти по этому пути аналитика.

#SoftwareDevelopment #Software #Analyst
👍123
Публичное system design interview на конференции C++ Russia

11 мая проведу публичное интервью по систем дизайну. Пока подбираю и формализую задачку, но думаю, что будет интересно:)
В прошлом году получилось неплохо, плюс я написал статью со своей версией решения.
Если кто-то захочет поучаствовать в C++ Russia, то у меня есть для вас промокод APolomodov2023JRGpc на скидку в 20%, купить билет можно здесь.

#SystemDesign #Interview #Software #SoftwareDevelopment #SoftwareArchitecture #Architecture
👍19
The Magic of Platforms

Это выступление Gregor Hohpe на конференции PlatformCon 2022 выглядит достаточно интересным и ... коротким (всего 15 минут). Кстати, у этого выступления есть и расшифровка в виде статьи. А теперь пару слов почему оно интересно
- Грегор обычно рассказывает концептуальные вещи простым языком, вспомним его книги Enterprise Integration Patterns и The Software Architect Elevator
- Платформенная тема очень актуальна сама по себе - я писал про это PlaftormCon 2023

В итоге, в этом выступлении Gregor описывает несколько идей:
- Платформы дают стандартизацию, которая не ограничивают креативность
- Сравнение платформ и IT сервисов (откуда-то из ITSM)
- Платформы работают за счет обеспечения меньшего трения при использовании, прозрачности и общей ответственности (Platforms cannot solve all problems. Problem-solving is a shared responsibility between the people who use the platform and the people who built it.)
- Платформы делают жизнь разработчиков проще
- Существуют два подхода к созданию платформ sinking и floating platforms

#Conference #PlatformEngineering #SystemEngineering #SoftwareDevelopment #Software
👍13🔥2
Облачные технологии для Финтех Школы

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

#Cloud #DistributedSystems #Software #SoftwareDevelopment #SoftwareArchitecture
👍113
Rethinking Connectivity • Derek Collison • GOTO 2022

Выступление Derek Collison, создателя NATS, на конференции GOTO напомнило мне урок по философии откуда-то из университета:)
В самом начале автор говорит, что мы живем в мире распределенных систем, а распределенные системы основаны на connectivity. Дальше автор говорит, что по его мнению нам надо переосмыслить не что такое connectivity, а как именно мы это делаем. Для этого он говорит про четыре основы connectivity
1. Fundamentals - независимость от локации, коммуникации m:n (а не point-to-point), utility vs silo, self healing возможности, physical substrate agnostic
2. Topologies - node vs server (pet vs cattle), любые топологии, всепроникающий, децентрализованный, расширяемый
3. Security - no keys/passwords, security multitenant, secure sharing between tenants, secure data in motion and at rest, zero trust construct
4. Persistence - materializaed views, replicated, digital twins/mirrors, source mux and demux
Каждый из указанных выше пунктов требует всех остальных для своей работы.

А дальше автор приводит пример микросервиса account details, рассказывая как он работает в современном мире в разрезе указанных выше пунктов.
А потом он рассказывает как бы это могло выглядеть в мире connectivity 3.0, которая к счастью частично реализована в Synadia NGS (a global, multi-cloud, multi-geo and extensible service, fully managed by Synadia).
После этого Дерек выступает в роли евангелиста и рассказывает что нас ждет дальше:)

В общем, очень концептуально выступление, которое мне определенно было интересно посмотреть.

#DistributedSystems #SoftwareArchitecture #Software #SystemDesign
👍10