Книжный куб
11.2K subscribers
2.69K photos
6 videos
3 files
2K links
Рекомендации интересных книг, статей и выступлений от Александра Поломодова (@apolomodov), технического директора и эксперта в архитектуре
Download Telegram
Dream Team. Как создать команду мечты

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

В общем, читать книгу мне было интересно, но ... вот со второй половиной книги надо быть аккуратнее:)
👍82🔥2
Типичные ошибки проектирования (Bug Patterns In Java)

Эта книга из начала моей карьеры. На английском она вышла в 2002 году, а уже в 2003 году издательство Питер применило креатив при переводе и "Bug Patterns in Java", которые можно было перевести как паттерны багов в Java превратилась в типичные ошибки проектирования:) Но несмотря на креатив в названии, книга показалась мне тогда полезной и объемной. В ней всего 23 части
1. Agile Methods in a Chaotic Environment - здесь речь шла про гибкие подходы, концепцию паттерно в общем в и паттернов багов конкретно, а также зачем их изучать
2. Bugs, Specifications, and Implementations - объяснение как понять что такое баг, а что такое фича. После прочтения легко становится понятна фраза "Это не баг, это фича":)
3. Debugging and the Development Process - как отлаживаются программы, про парное программирование, про общее владение кодом и про написание тестов для "всего, что может сломаться"
4. Debugging and the Testing Process - как писать тестируемые программы, про статический контроль типов, правильные абстракции и инкапсуляцию, хорошие интерфейсы
5. The Scientific Method of Debugging - обсуждение научного подхода к дебагу - наблюдение, построение гипотез, проверка гипотез при помощи экспериментов, повторение этих шагов в цикле, пока не исправим проблему
6. About the Bug Patterns - расказ про важность паттернов багов, объяснение как выглядит такой антипаттерн и большой справочник по отладке программ
7. The Rogue Tile - это антипаттерн фальшивая черепица, в котором программа после исправления ведет себя так, как будто баг не был исправлен. Причина может быть в том, что проблемная логика растиражирована внутри приложения и ее нужно вынести в общее место и починить один раз там:)
8. Null Pointers Everywhere! - стандартная история с Java:)
9. The Dangling Composite - болтающийся компонент, который характерен для рекурсивно определенных типов данных, где некоторым базовым случаям не выделяются классы, а используются null pointers
10. The Null Flag - когда программа вместо выкидывания значимого исключения кидает null pointer exception.
11. The Double Descent - проблема с рекурсивным обходом составной структуры, когда мы прыгам более чем на один щаг вниз
12. The Liar View - антипаттерн "лживое представление" на случай, когда используется паттерн MVC и работа представления и модели расходится
13. Saboteur Data - история про косяки с валидацией входных данных и дальнейшим их использованием внтури приложения
14. The Broken Dispatch - косяки с полиморфизмом и перегрузкой методов
15. The Impostor Type - тип-самозванец, когда программа одинаково обрабатывает принципиально разные типы данных. Про такую проблему рассказывал Джон Остерхут в книге "A philosophy of software design" как о проблеме, которую он пытался найти полгода:)
16. The Split Cleaner - проблемы при некорректном управлении ресурсами, когда они или не освобождаются или наоборот делают это слишком рано
17. The Fictitious Implementation - проблема, когда реализация интерфейса не удовлетворяет некоторым содержащимся в нем инвариантам
18. The Orphaned Thread - проблема в многопоточном приложении, когда потоки остановились в ожидании данных от поттока, что прекратил свою работу
19. The Run-On Initialization - проблема при инициализации атрибутов класса, когда конструктор инициализировал не все из них
20. Platform-Dependent Patterns - платформо-зависимые ошибки
21. A Diagnostic Checklist - список вопросов и симптомов некорректного поведения, который можно использовать для дебага
22. Design Patterns for Debugging - паттерны проектирования, которые помогают в отладке (первый паттерн в использовании статической типизации)
23. References - ссылки на ресурсы, что были полезны 20 лет назад:)

#Software #SoftwareArchitecture #Patterns #Design #Architecture #SoftwareDevelopment #Engineering
👍93🔥3
Обзор книги "Team Geek. A Software Developer’s Guide to Working Well With Others"

Эта книга Брайана Фитцпатрика и Бена Коллинз-Сассмэна вышла больше 10 лет назад, но прочитал я ее лет 6 назад. Авторы заявляют целью помощь программистам эффективнее и продуктивнее разрабатывать программы за счет развития способности понимать других людей, общаться и сотрудничать с ними. Но издательство Питер в своем переводе указывает подзаголовком "Как из гиков собрать команду программистов" — чего не сделаешь ради того, чтобы книга лучше продавалась:) Авторы хотели рассказать про важность софт-скиллов для разработчиков, а ребята из Питера хотели продать эту книгу большему количеству технических руководителей и сместили фокус на сбор команды. Но книга все равно получилась интересной, поэтому я написал краткое саммари в своем блоге.

#SoftwareDevelopment #SelfDevelopment #Engineering #Management #Leadership #ExternalReview
🔥9👍42
Скрапинг веб-сайтов с помощью Python 2 издание (Web Scraping with Python: Collecting More Data from the Modern Web 2nd Edition)

Несколько лет назад я прочитал эту книгу, которая оказалась рассчитанной на уровень новичка. Я не расстроился, потому что я её и покупал в качестве обучающего пособия для новичков. Первая половина книги называется "Построение скраперов" и является аналогом "Hello world" в мире скраперов на Python. Здесь основное внимание уделено механике веб-скрапинга: как с помощью Python запрашивать информацию с веб-сервера, производить базовую обработку серверного отклика и организовать автоматизированное взаимодействие с сайтами. Вторая часть называется "Продвинутый скрапинг", где рассмотрены более специфичные инструменты и приложения, которые пригодятся при любом сценарии веб-скрапинга. Но этот продвинутый скрапинг является продвинутым только относительно первой части этой же книги:)

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

#SoftwareDevelopment #Software #Architecture #Engineering
👍154🔥1🤔1
Яхтенный глэмпинг парк "Точка Немо"

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

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

#Holidays
👍287🔥5
Meet For Charity

Сегодня стартовал благотворительный аукцион Meet For Charity, где в качестве лота предлагается встреча со мной:)

Формат аукциона следующий
- для победителя аукциона я проведу небольшую экскурсию по офису Тинькофф и дальше мы пообщаемся за обедом в нашем ТЦ Водный
- собранные по итогам аукциона средства будут направлены в фонд «Нить добра»

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

P.S.
Ну и немного формальной части про меня:
- я работаю в Тинькофф почти семь лет и являюсь техническим директором юнита клиентские интерфейсы, маркетинг и вовлечение в Тинькофф
- до этого успел побыть руководителем группы разработки в Банки.ру и Woman.ru
- когда-то был software development engineer, а до этого успел закончить Физтех (МФТИ)

P.P.S.
Плюс победителю я подарю книгу Олега Тинькова "Революция. Как построить крупнейший онлайн-банк в мире", в одной из глав которой рассказывается про машину привлечения клиентов, к строительству которой я приложил руку:)

#Charity #Software #Management #Leadership
👍20🔥136🤔1
Практика визуального мышления. Оригинальный метод решения сложных проблем (Unfolding the Napkin. The Hands-On Method for Solving Complex Problems with Simple Pictures)

Эта книга Дэна Роэма продолжает книу «Визуальное мышление», в которой рассказывалось как простые рисунки могут играть в деле генерации идей и коммуникациях в целом. Она представила новую интересную методику решения совершенно различных проблем — от стратегических вопросов топ-менеджмента до самых прозаичных офисных проблем. А в книге-продолжении помогает читателям внедрить свою методику в ежедневную практику. Книга полна подробных примеров, упражнений и пустого места для ваших рисунков.

Я прочитал эту книгу с удовольствием. Единственная проблема - надо было продраться через скучные повторы первых пятидесяти страниц (ощущение, что их писали для страдающих от провалов в памяти). Как только вводная часть с большим количеством повторов закончилась, все стало очень интересно и полезно, например
- Мне понравилось то, что автор выделил 6 вопросов для решения любой проблемы, на которые надо ответить при помощи картинок. Я запомнил эти вопросы в таком порядке Что, Где, Когда (по названию знаменитой телепередачи) и оставшиеся 3 - Сколько, Как, Почему.
- Мне зашла концепция о глубине проработки проблемы для разных людей, которым ты хочешь донести свои мысли. Т.е. для кого-то требуется подготовить верхнеуровневую картину без погружения в детали, а другим же требуется детализированное отображение. Если не понимать потребности этих людей, то первые посчитают, что ты их перегружаешь ненужными деталями, а вторые решат, что ты не разбираешься в рассматриваемом вопросе:)

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

#SelfDevelopment #Brain #Patterns #Creativity
👍124🔥1
Выбор. Правила Голдратта (The Choice)

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

P.S.
Подробнее про концепции Голдратта можно почитать в других постах
- Теория ограничений Голдратта (Goldratt's Theory of Constraints: A Systems Approach to Continuous Improvement)
- Критическая цепь (Critical Chain)

#Management #Processes #Project #ProjectManagement
14👍6🕊2
Макет Золотого кольца России

В воскресенье мы успеои посмотреть макет Золотого кольца России. Мы оказались в Ярославле по дороге в яхтенный парк "Точка Немо", куда мы ездили в миниотпуск. Честно говоря, я люблю эти минигорода и видел макет Москвы в ВДНХ и гранд макет в Питере, поэтому не посетить миниатюрный музей в Ярославле я не мог:)
В этом макете Золотого кольца интересно сделана геймификация для детей, которые могут взять задание на поиск пасхалок - знаменитых мультяшных персонажей, что раскиданы по мини-версиям Ярославля, Костромы, Иваново, Ростова и других городов, что входят в кольцо. Наших детей эти поиски захватили на час, но к концу часа они отчаявшись запросили помощи у тетушек, что продавали сувениры у выхода и получили подсказки по остальным персонажам. Именно так они выполнили свой квест и получили подарки в виде трех колокольчиков 1) в форме кота с гитарой, 2) волка из мультика "Жил был пес" и 3) кота, который сидит на колокольчике. В общем, всем в этом миниатюрном музее (он действительно небольшой) понравилось:)

#Holidays
13👍3🔥1