Книжный куб
11.1K subscribers
2.65K photos
6 videos
3 files
1.95K links
Рекомендации интересных книг, статей и выступлений от Александра Поломодова (@apolomodov), технического директора и эксперта в архитектуре
Download Telegram
The Beatles. Рождение легенды (Beatles with an A. Birth of a band)

Интересный графический роман (или хотя бы повесть) про легендарную группу, а скорее про их становление. Комикс за авторством Маури Куннас нарисован красиво и рассказывает про историю всех участников группы и заодно про группу The Quarrymen, которая была до Beatles. Интересно описаны моменты гамбургских гастролей группы Beatles, где они интенсивно оттачивали свой стиль. Потом в истории появляется Брайан Эпстайн и становится менеджером группы, пытаясь организовать запись пластинки для группы. И в качестве владельца «лучшего магазина грампластинок на севере Англии» ему получается договориться о записи первого альбома «The Beatles» в студии EMI.
Благодаря Эпстайну мир увидел «легендарную ливерпульскую четвёрку». На этом книга заканчивается как и собственно рождение легенды.

#History #Comics #Biography
👍9🔥1
Второй выпуск Code of Architecture по книге "Building Evolutionary Architectures"

Сразу по завершению выходных, а именно в понедельник мы обсудим 4-ую главу Automating Architectural Governance.
И разберем мы следующие вопросы:
— как автоматизация помогает строить эволюционную архитектуру;
— фитнес-функции, основанные на метриках кода;
— инструменты для создания фитнес-функций;
— особенности управления и контроля архитектуры для микросервисов;
— документация для фитнес-функций.

Гостем стрима станет наш коллега, Дмитрий Гаевский, который занимается разработкой dev-to-dev-решений на больших масштабах, создает сложные RnD-решения и проектирует event-driven-системы.

Встречаемся на ютуб-канале IT's Tinkoff в понедельник в 18:00 по Москве.

#CoA #Software #Architect #SystemDesign #Philosophy #SoftwareArchitecture
👍83
Лама в гостях у бабушки с дедушкой (Llama Llama Gram and Grandpa)

Еще одна книга Анны Дьюдни про маленького Ламу и его маму. В этой серии Лама отправляется к бабуше с дедушкой и все бы ничего, но любимая игрушка (ламик) уезжает в машине вместе с мамой. На протяжении дня маленький Лама вспоминает про нее, но именно под вечер это приводит к граду слез:
Носик, ушки задрожали
Слезки тихо побежали
Я бы к ламику прижался,
Только дома он остался!

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

P.S.
Я уже раньше вспоминал про книги
- Лама красная пижама
- Лама сердится на маму

P.P.S.
А вот видео-версия этой истории
- на английском
- и русском

#ForKids
5👍5
Анализ программного кода на примере проектов Open Source (Code Reading. The Open Source Perspective)

Эта книга 2004 года выпуска за авторством Диомидиса Спинеллиса появилась у меня в 2005 году, когда я только начинал знакомиться с промышленной разработкой и тогда она показалась мне интересной. Концепт автора был в том, чтобы познакомить разработчиков с основными концепциями разработки на примерах из крупных open source проектов того времени. Для этого к книге прыл приложен CD диск с кодом тех open source систем, что разбирал автор в своей книге. С учетом того, что Github появился только в 2008 этот подход был достаточно здравым:)
Примеры в книге были преимущественно сфокусированы вокруг языков: C, C++ и Java. А сама книга состояла из следующих частей
- Предисловие - в предисловии речь идет о том, что код нам приходится читать чаще, чем писать его, поэтому есть смысл прокачать этот навык
- Общие сведения - здесь автор говорит более подробно о том, зачем нам учиться читать код и как это можно сделать с помощью этой книги
- Основные элементы программ - здесь приводится пример программы целиком, функции и глобальные переменные, циклы, условия, символьные и логические выражения, оператор goto
- Сложные типы данных в языке C - здесь идет речь про указатели, структуры, объединения и динамическое управление памятью
- Структуры данных в C - здесь автор показывает как в C сделать векторы, таблицы, стеки, очереди и так далее
- Сложные средства управления программами - здесь идет речь про рекурсию, исключения, параллелизм, сигналы и макроподстановки
- Анализ больших проектов - здесь автор размышляет про то, как изучать большие проекты: из каких логических блоков он состоит, как он собирается, как конфигурируется, как выглядит управление версиями и как устроено тестирование
- Стандарты стиля программирования - здесь обсуждаются вопросы, которые сейчас принято решать настройкой линтеров
- Документация - здесь идет речь про важность документации и как ее писать и читать
- Архитектура - здесь автор говорит про архитектурные стили, модели управления потоком исполнения (событийно-ориентированные, архитектры с наличием диспетчера, конечные автоматы), группировку кода (модули, пространства имен, библиотеки и так далее)
- Вспомогательные программные средства - темы из этого раздела сейчас закрываются хорошей IDE
- Практический пример - а здесь приведен сквозной пример про добавление в базу данных hqsqldb новой функции даты/времени PHASEOFMOON, которая будет вычислять фазу Луны по заданной дате:)

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

#Software #SoftwareDevelopment
👍6🔥4
👍2
How to Read Complex Code • Felienne Hermans • YOW! 2021

Это выступление Felienne Hermans посвящено той же теме, что книга "Code Reading", про которую я рассказывал вчера. Забавно, что разработчики большую часть времени читают код (~ 60%), а не пишут его, но редко кого учат читать код, а не писать его:) Поэтому автор и решила исправить эту ситацию и выступить с темой про чтение кода, а также написать книгу "The Programmer's Brain", в которой эти же идеи изложены гораздо подробнее.

Если переходить к самому выступлению, то Felienne строит свои размышления на том, что мы знаем о мышлении людей сегодня. Она рассказывает про то, как работают Short Term Memory (STM), Long Term Memory (LTM) и Working Memory в общем, а потом приземляет это на разработку. Она приводит примеры кода и показывает как в разных ситуациях проявляются проблемы с чтением кода в APL, Java, Basic:) Потом она рассказывает как можно прокачать свои навыки чтения и объясняет какую это пользу принесет.

Отдельно отмечу, что Felienne является практикующим преподавателем CS для детей, одновременно исследователем, а также создателем языка программирования Hedy, который помогает ей обучать детей программированию:) Подробнее можно посмотреть в выступлении "Teaching Kids to Program with Hedy: A Gradual Programming Language", про которое я уже рассказывал раньше.

Кроме того, в конце автор рекомендовала несколько книг, одна из которых мне очень нравится - это книга Джона Остерхута "A Philosophy of Software Design", на которую я написал обзор в двух частях: 1 и 2.

#Software #PopularScience #Learning #Study #ComputerScience #SelfDevelopment
👍14🔥4👏2
Разработка программного обеспечения (Software for Use: A Practical Guide to the Models and Methods of Usage-Centered Design)

Эту книгу написали Larry Constantine и Lucy Lockwood в далеком 1999 году и она была посвящена созданию практичного програмного обеспечения, которым было бы удобно пользоваться и оно соответствовало целям пользователя. На русском книга вышла в 2004 году под названием "Разработка программного обеспечения", что привело к тому, что в 2005 году я купил ее для себя, чтобы научиться писать софт лучше. Но тогда эта книга не нашла отклик у меня - потому что я не особо думал про продуктовый подход, удобство пользователя, а также я еще не раскурил тему человеко-ориентированного дизайна (это термин из книги Дона Нормана “Дизайн привычных вещей”, на которую я писал краткое саммари). С момента выхода книги прошло уже 25 лет и часть вещей в ней уже не актуально, а часть осталась верной и сейчас, например, можно вспомнить правила практичности автора:
1) Система должна быть настолько практичной, чтобы пользователь, имеющий знания в данной предметной области, но никогда ранее не работавший с системой, без помощи инструкций и руководств мог бы сразу начать ею пользоваться
2) Система не должна никоим образом препятствоватьс эффективной работе опытных пользователей, долгое время работающих с ней
3) Система должна способствовать непрерывному повышению уровня знаний, умений и навыков и приспосабливаться к меняющемуся опыту пользователей
4) Система должна способствовать более простому, быстрому или увлекательному решению задач, стоящих перед пользователями, предоставлять новые возможности
5) Система должна удовлетворять существующим реалиям и текущей среде эксплуатационного контекста, внутри которого она будет разворачиваться и применяться

Интересно, что в комментариях к книге на Amazon люди отмечают то, что авторы в своей книге не совсем следуюет своим принципам usage-centered design, так как книга слишком многословная, а также наполнена историями и байками, которые мешают следовать структуре размышлений автора:)

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

#Design #SoftwareDevelopment #Architecture #Processes
👍10🔥4
Материалы ко второму выпуску Code of Architecture по книге "Building Evolutionary Architectures"

Вчера у нас прошел второй стрим по книге и мы упоминали следующие источники
- Structurizr - средство для моделирования в формате "diagrams as code", который позволяет создавать множество диаграмм из одной модели
- Backstage - централизованный каталог сервисов от Spotify, что уже проект CNCF, и который позволяет продуктовым командам поставлять код хорошего качества, но одновременно не уменьшает их автономность. Вспоминали это как средство, где можно впиливать governance
- getport.io - другая developer платформа по типу backstage
- KubeVela - "KubeVela is a modern software delivery platform that makes deploying and operating applications across today's hybrid, multi-cloud environments easier, faster and more reliable"
- Книга "Clean Architecture" и ее часть про дизайн модулей - мое краткое саммари этой части здесь
- Книга "Software Architecture: The Hard Parts" - в ней +/- те же авторы рассматривали +/- те же самые примеры fitness functions (мы ее рассматривали в прошлых сезонах Code of Architecture)
- Книга "Космологически" - простой экскурс в астрономию и main sequence, которая упоминается в принципах дизайна модулей наравне с abstractness, instability:)

#CoA #Software #Architect #SystemDesign #Philosophy #SoftwareArchitecture #Processes #Management
👍12
Code of Architecture — Recap of "Software Architecture: The Hard Parts"

В прошлом году в книжном клубе Code of Architecture мы разобрали книгу “Software Architecture: The Hard Parts”, вышедшую в конце 2021 года. У нас получилось шесть насыщенных выпусков где-то по часу каждый. В этой статье я решил собрать все материалы в одном месте. Эти материалы потребовались мне в разрезе обсуждения книги "Evolutionary Architecture", так как там есть большое пересечение по темам fitness functions и architecture governance.

#ExternalReview #SoftwareArchitecture #Architecture #SystemDesign
👍10🔥4
Статистика в комиксах (Inroducing Statistics. A Graphic Guide)

Пару лет назад я с большим интересом прочитал этот комикс по статистике за авторством Айлина Магнелло, доктора наук Оксфордского университета, и Борина Ван Лоона, художника-сюрреалиста и иллюстратора. Он хорошо раскрывает сложную тему, используя простые примеры, поданные с юмором, и крышесносящие иллюстрации (часть из них приведена на снимках ниже). Честно говоря, я был бы рад, если бы мне в университете статистику преподавали не просто приводя зубодробительные формулы, а объясняя для начала на пальцах. Но судя по моим воспоминаниям это было не так:) В итоге, я уже после университета взял несколько курсов на Coursera на тему статистики и понял в чем красота этого предмета. Для того, чтобы не повторять этот путь рекомендую начать знакомство со статистикой с комиксов навроде этого и предмет вам понравится:)

#Comics #Math #PopularScience #Statistics
👍12🔥3
Just-in-time Architecture • Macklin Hartley • YOW! 2022 (Рубрика #Architecture)

Хорошее выступление про архитектуру, где автор рассказывает простую мысль о том, что нет универсальной архитектуры, которая подойдет всем. Выступление строится на примере системы для покупки пользователями картинок-аватаров, а в качестве наглядной метафоры используется работа кофейни. В этой метафоре кофейна постепенно растет и ей треубется эволюционировать, а в ходе этой эволюции автор успевает пройти по темам
1) Старта с монолита, а дальше переход на microservices, что становится скорее distributed monolith с availability coumpling
2) Потом распределенный монолит автор чинит с использованием event-driven architecture, где рассматривается два типа событий: event notification и event carried state transfer и 3 варианта генерации событий: transaction logs, transaction outbox pattern, event sourcing
3) И под конец автор доходит до communication patterns, где рассмотрели хореографию и оркестрацию. В хореографии события используются для общения сервисов между собой, децентрализованно и элегантно, но сложно для понимания что именно происходит, а в оркестрации у нас централизованный workflow

#Conference #Architecture #SoftwareArchitecture #SystemDesign #Software #DistributedSystems
👍114🔥1
Кровь, пот и пиксели (Blood, sweat and pixels)

Года 3 назад я за выходные прочитал эту книгу "Джейсона Шрейера и она оказалась неожиданно хороша. Возможно причина в том, что эти десять историй слишком напоминают мне работу. Или все дело в том, что историии о героическом преодолевании командами разработчиков игр многочисленных проблем воспринимается как счастливый эпос (кроме истории про StarWars 1313), который как бы намекает, что твои проблемы - это так разминка:) А может быть данная книга воспринимается мной как способ нырнуть в мир игр, калитку которого я самостоятельно закрыл больше десяти лет назад. Интересно, что ни в одну из приведенных в книге игр я не играл:) Это привело к потере части впечатлений от рассказа о наполнении игр. Зато понятие кранчей мне знакомо. Например, 3х месячный кранч в неназываемом стартапе, где я успел поработать до Tinkoff:) и который как раз года три назад после нескольких лет мучений перестал изображать плохого танцора, которому что-то мешает. В данном случае стартап избавился от мешающей, по мнению фаундеров, части, а именно от команды разработки. Я считаю это 🔥 решение.

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

#Software #SoftwareDevelopment
👍154🔥4