vault backup: 2026-04-27 14:16:34
@ -0,0 +1,56 @@
|
||||
---
|
||||
Тип: Книга
|
||||
Статус: Запланировано
|
||||
Название: Computer Science для программиста-самоучки
|
||||
Автор:
|
||||
- Кори Альтхофф
|
||||
Количество страниц: 240
|
||||
Прогресс: 0
|
||||
Формат: Электронная
|
||||
Обложка: Библиотека/Книги/covers/computer-science-dlya-programmista-samouchki.jpg
|
||||
Начата:
|
||||
Закончена:
|
||||
Оценка:
|
||||
Сложность:
|
||||
Теги:
|
||||
- алгоритмы
|
||||
- структуры_данных
|
||||
- computer_science
|
||||
- собеседования
|
||||
- для_новичков
|
||||
Категории:
|
||||
- Программирование
|
||||
- Алгоритмы
|
||||
Источник:
|
||||
Ссылка:
|
||||
---
|
||||
|
||||
# Computer Science для программиста-самоучки
|
||||
|
||||
![[covers/computer-science-dlya-programmista-samouchki.jpg]]
|
||||
|
||||
## 📖 О книге
|
||||
|
||||
Практическое руководство по структурам данных и алгоритмам для тех, кто учится программировать самостоятельно. Книга закрывает пробел в фундаментальных CS-знаниях без формального образования и помогает подготовиться к техническим интервью. Написана для абсолютных новичков — не требует предварительного знакомства с computer science.
|
||||
|
||||
## 🧠 Ключевые идеи
|
||||
|
||||
- **CS без диплома**: фундаментальные знания в области структур данных и алгоритмов доступны самоучкам — личный опыт автора (разработчик в eBay) подтверждает это
|
||||
- **Техническое интервью как цель**: книга ориентирована на практические задачи, которые задают на собеседованиях в IT-компании
|
||||
- **Структуры данных — основа карьеры**: массивы, стеки, очереди, хеш-таблицы, деревья, графы — без этого не устроиться в серьёзную компанию
|
||||
- **Алгоритмическое мышление**: сортировка, поиск, рекурсия — инструменты, которые отличают джуна от профессионала
|
||||
- **Доступность как принцип**: материал изложен без лишней академичности, с фокусом на понимание, а не зубрёжку
|
||||
|
||||
## 💬 Важные цитаты
|
||||
|
||||
- «Чтобы стать профи в программировании, не обязательно иметь диплом в области computer science»
|
||||
- «Наиболее важные темы CS, в которых должен разбираться каждый программист-самоучка, — это структуры данных и алгоритмы»
|
||||
|
||||
## 💡 Как применить в моих проектах
|
||||
|
||||
|
||||
## 🔗 Связанные заметки
|
||||
|
||||
- [[Грокаем алгоритмы]]
|
||||
- [[Прикладные структуры данных и алгоритмы]]
|
||||
- [[Алгоритмы. Руководство по разработке]]
|
||||
54
Knowledges/Библиотека/Книги/Java SE 9. Базовый курс.md
Normal file
@ -0,0 +1,54 @@
|
||||
---
|
||||
Тип: Книга
|
||||
Статус: Запланировано
|
||||
Название: Java SE 9. Базовый курс
|
||||
Автор:
|
||||
- Кей С. Хорстманн
|
||||
Количество страниц: 576
|
||||
Прогресс: 0
|
||||
Формат: Электронная
|
||||
Обложка: Библиотека/Книги/covers/java-se-9-bazovyj-kurs.jpg
|
||||
Начата:
|
||||
Закончена:
|
||||
Оценка:
|
||||
Сложность:
|
||||
Теги:
|
||||
- java
|
||||
- java_9
|
||||
- модули
|
||||
- программирование
|
||||
- справочник
|
||||
Категории:
|
||||
- Программирование
|
||||
- Java
|
||||
Источник:
|
||||
Ссылка:
|
||||
---
|
||||
|
||||
# Java SE 9. Базовый курс
|
||||
|
||||
![[covers/java-se-9-bazovyj-kurs.jpg]]
|
||||
|
||||
## 📖 О книге
|
||||
|
||||
Компактный справочник по Java SE 9 от автора «Библиотеки профессионала». Книга не для новичков — она рассчитана на разработчиков, уже знакомых с Java, которые хотят быстро освоить нововведения платформы. Главный фокус — новая модульная система (Project Jigsaw). Материал подаётся небольшими порциями для быстрого усвоения.
|
||||
|
||||
## 🧠 Ключевые идеи
|
||||
|
||||
- **Модульная система Java 9 (Project Jigsaw)**: разделение JDK и приложений на модули — главное нововведение версии, меняющее подход к организации больших проектов
|
||||
- **Лямбды и Stream API углублённо**: новые методы в стандартных интерфейсах, улучшения в Optional и коллекциях, добавленные в Java 9
|
||||
- **Новый HTTP-клиент**: замена устаревшего HttpURLConnection на современный асинхронный API
|
||||
- **Улучшения в коллекциях**: фабричные методы `List.of()`, `Set.of()`, `Map.of()` для создания неизменяемых коллекций
|
||||
- **JShell — REPL для Java**: интерактивная оболочка для быстрого прототипирования и изучения API без написания полных классов
|
||||
|
||||
## 💬 Важные цитаты
|
||||
|
||||
- «Это полный, хотя и краткий справочник по версии Java SE 9, служащий незаменимым учебным пособием для быстрого и легкого изучения этого языка и его библиотек»
|
||||
|
||||
## 💡 Как применить в моих проектах
|
||||
|
||||
|
||||
## 🔗 Связанные заметки
|
||||
|
||||
- [[Java. Библиотека профессионала. Том 1. Основы]]
|
||||
- [[Java. Библиотека профессионала. Том 2. Расширенные средства программирования]]
|
||||
@ -0,0 +1,53 @@
|
||||
---
|
||||
Тип: Книга
|
||||
Статус: Запланировано
|
||||
Название: "Java. Библиотека профессионала. Том 1. Основы"
|
||||
Автор:
|
||||
- Кей С. Хорстманн
|
||||
Количество страниц: 864
|
||||
Прогресс: 0
|
||||
Формат: Электронная
|
||||
Обложка: Библиотека/Книги/covers/java-biblioteka-professionala-tom-1.jpg
|
||||
Начата:
|
||||
Закончена:
|
||||
Оценка:
|
||||
Сложность:
|
||||
Теги:
|
||||
- java
|
||||
- ооп
|
||||
- программирование
|
||||
- справочник
|
||||
Категории:
|
||||
- Программирование
|
||||
- Java
|
||||
Источник:
|
||||
Ссылка:
|
||||
---
|
||||
|
||||
# Java. Библиотека профессионала. Том 1. Основы
|
||||
|
||||
![[covers/java-biblioteka-professionala-tom-1.jpg]]
|
||||
|
||||
## 📖 О книге
|
||||
|
||||
11-е издание исчерпывающего справочника по основам Java от Кея Хорстманна. Охватывает ООП, обобщённое программирование, коллекции, обработку исключений, лямбда-выражения, потоки (Stream API) и параллелизм. Предназначено для профессиональных разработчиков — не вводный курс, а глубокое погружение с примерами реального кода. Обновлено для Java 11.
|
||||
|
||||
## 🧠 Ключевые идеи
|
||||
|
||||
- **ООП в деталях**: объекты, классы, наследование, интерфейсы и внутренние классы разобраны с акцентом на правильное проектирование, а не просто синтаксис
|
||||
- **Лямбды и Stream API**: функциональный стиль в Java — как писать выразительный и лаконичный код без избыточных циклов
|
||||
- **Обобщённое программирование**: generics, wildcards, ограничения типов — понимание этого критично для работы с любым Java-фреймворком
|
||||
- **Коллекции**: List, Set, Map, Queue — когда и какую структуру выбрать, как работает внутренняя реализация
|
||||
- **Параллелизм**: потоки (Thread), синхронизация, executor-сервисы и CompletableFuture — основа для написания многопоточных приложений
|
||||
|
||||
## 💬 Важные цитаты
|
||||
|
||||
|
||||
## 💡 Как применить в моих проектах
|
||||
|
||||
|
||||
## 🔗 Связанные заметки
|
||||
|
||||
- [[Java. Библиотека профессионала. Том 2. Расширенные средства программирования]]
|
||||
- [[Чистый код]]
|
||||
- [[Паттерны объектно-ориентированного проектирования]]
|
||||
@ -0,0 +1,55 @@
|
||||
---
|
||||
Тип: Книга
|
||||
Статус: Запланировано
|
||||
Название: "Java. Библиотека профессионала. Том 2. Расширенные средства программирования"
|
||||
Автор:
|
||||
- Кей С. Хорстманн
|
||||
Количество страниц: 864
|
||||
Прогресс: 0
|
||||
Формат: Электронная
|
||||
Обложка: Библиотека/Книги/covers/java-biblioteka-professionala-tom-2.jpg
|
||||
Начата:
|
||||
Закончена:
|
||||
Оценка:
|
||||
Сложность:
|
||||
Теги:
|
||||
- java
|
||||
- многопоточность
|
||||
- сети
|
||||
- jdbc
|
||||
- программирование
|
||||
- справочник
|
||||
Категории:
|
||||
- Программирование
|
||||
- Java
|
||||
Источник:
|
||||
Ссылка:
|
||||
---
|
||||
|
||||
# Java. Библиотека профессионала. Том 2. Расширенные средства программирования
|
||||
|
||||
![[covers/java-biblioteka-professionala-tom-2.jpg]]
|
||||
|
||||
## 📖 О книге
|
||||
|
||||
11-е издание второго тома от Кея Хорстманна — продолжение «Основ» с акцентом на продвинутые возможности Java. Охватывает потоки ввода-вывода, XML, работу в сети, JDBC, API даты и времени, интернационализацию, обработку аннотаций и написание сценариев. Обновлено для Java 11, предназначено для разработчиков корпоративных приложений.
|
||||
|
||||
## 🧠 Ключевые идеи
|
||||
|
||||
- **Ввод/вывод и NIO**: потоки данных, файловая система, асинхронный ввод-вывод — фундамент для любого серверного кода
|
||||
- **Работа с сетью**: сокеты, HTTP-клиент, взаимодействие с веб-сервисами — необходимо для разработки распределённых систем
|
||||
- **JDBC и базы данных**: подключение, транзакции, prepared statements — стандарт для работы с реляционными БД в Java
|
||||
- **Аннотации и рефлексия**: как работают фреймворки вроде Spring изнутри — понимание механизмов, которые используются каждый день
|
||||
- **Интернационализация и дата/время**: java.time API — современный подход к работе с датами без legacy-ловушек Date/Calendar
|
||||
|
||||
## 💬 Важные цитаты
|
||||
|
||||
|
||||
## 💡 Как применить в моих проектах
|
||||
|
||||
|
||||
## 🔗 Связанные заметки
|
||||
|
||||
- [[Java. Библиотека профессионала. Том 1. Основы]]
|
||||
- [[Чистая архитектура]]
|
||||
- [[Шаблоны корпоративных приложений]]
|
||||
@ -0,0 +1,57 @@
|
||||
---
|
||||
Тип: Книга
|
||||
Статус: Запланировано
|
||||
Название: Java. Эффективное программирование
|
||||
Автор:
|
||||
- Джошуа Блох
|
||||
Количество страниц: 466
|
||||
Прогресс: 0
|
||||
Формат: Электронная
|
||||
Обложка: Библиотека/Книги/covers/java-effektivnoe-programmirovanie.jpg
|
||||
Начата:
|
||||
Закончена:
|
||||
Оценка:
|
||||
Сложность:
|
||||
Теги:
|
||||
- java
|
||||
- лучшие_практики
|
||||
- программирование
|
||||
- ооп
|
||||
- паттерны
|
||||
Категории:
|
||||
- Программирование
|
||||
- Java
|
||||
Источник:
|
||||
Ссылка:
|
||||
---
|
||||
|
||||
# Java. Эффективное программирование
|
||||
|
||||
![[covers/java-effektivnoe-programmirovanie.jpg]]
|
||||
|
||||
## 📖 О книге
|
||||
|
||||
Классика Java-разработки от Джошуа Блоха — бывшего ведущего инженера Sun Microsystems и Google. Третье издание содержит 90 правил эффективного программирования на Java: каждое правило — короткое эссе с описанием проблемы, примерами кода и обоснованием решения. Охватывает создание объектов, обобщённое программирование, лямбды, потоки, параллелизм, сериализацию. Обновлено для Java 9.
|
||||
|
||||
## 🧠 Ключевые идеи
|
||||
|
||||
- **90 правил вместо заучивания**: книга не просто формулирует «делай так» — она объясняет, почему именно так, обучая думать о коде, а не воспроизводить шаблоны
|
||||
- **Статические фабричные методы вместо конструкторов**: предпочтительный способ создания объектов — гибче, читабельнее, позволяет кешировать экземпляры и возвращать подтипы
|
||||
- **Generics и wildcards**: правильное использование обобщённого программирования устраняет ClassCastException на этапе компиляции и делает API выразительнее
|
||||
- **Лямбды и потоки**: функциональный стиль в Java требует дисциплины — не все задачи решаются потоками лучше, чем циклами; важно понимать, когда применять каждый подход
|
||||
- **Параллелизм и потокобезопасность**: минимизация разделяемого изменяемого состояния, использование `synchronized`, `volatile` и высокоуровневых примитивов — основа надёжного многопоточного кода
|
||||
|
||||
## 💬 Важные цитаты
|
||||
|
||||
- «Книга заставляет вас не просто заучить правила — она заставляет думать»
|
||||
- «Каждое правило представлено в виде короткого законченного эссе, содержащего описание проблемы, примеры кода и случаи из практики»
|
||||
|
||||
## 💡 Как применить в моих проектах
|
||||
|
||||
|
||||
## 🔗 Связанные заметки
|
||||
|
||||
- [[Java. Библиотека профессионала. Том 1. Основы]]
|
||||
- [[Java. Библиотека профессионала. Том 2. Расширенные средства программирования]]
|
||||
- [[Чистый код]]
|
||||
- [[Паттерны объектно-ориентированного проектирования]]
|
||||
59
Knowledges/Библиотека/Книги/JavaScript с нуля до профи.md
Normal file
@ -0,0 +1,59 @@
|
||||
---
|
||||
Тип: Книга
|
||||
Статус: Запланировано
|
||||
Название: JavaScript с нуля до профи
|
||||
Автор:
|
||||
- Лоренс Ларс Свекис
|
||||
- Майке ван Путтен
|
||||
- Роб Персиваль
|
||||
Количество страниц: 480
|
||||
Прогресс: 0
|
||||
Формат: Электронная
|
||||
Обложка: Библиотека/Книги/covers/javascript-s-nulya-do-profi.jpg
|
||||
Начата:
|
||||
Закончена:
|
||||
Оценка:
|
||||
Сложность:
|
||||
Теги:
|
||||
- программирование
|
||||
- javascript
|
||||
- для_начинающих
|
||||
- dom
|
||||
- веб_разработка
|
||||
Категории:
|
||||
- Программирование
|
||||
- JavaScript
|
||||
Источник:
|
||||
Ссылка:
|
||||
---
|
||||
|
||||
# JavaScript с нуля до профи
|
||||
|
||||
![[covers/javascript-s-nulya-do-profi.jpg]]
|
||||
|
||||
## 📖 О книге
|
||||
|
||||
Лоренс Ларс Свекис, Майке ван Путтен и Роб Персиваль — опытные преподаватели и практикующие разработчики — создали комплексный учебник для тех, кто начинает путь в JavaScript с нуля. Книга сочетает теорию с упражнениями и проектами: от динамических веб-сайтов до простых браузерных игр. Охватывает основы языка, работу с DOM, обработку событий, асинхронный JavaScript, HTML5 Canvas и введение в современные фреймворки. Издательство «Питер», 2023, ISBN 978-5-4461-2269-1.
|
||||
|
||||
## 🧠 Ключевые идеи
|
||||
|
||||
- **Последовательное погружение от основ**: переменные, типы, операторы, циклы, функции и классы — каждая тема подкреплена упражнениями с нарастающей сложностью
|
||||
- **DOM и динамические интерфейсы**: практическое управление объектной моделью документа — создание, изменение и удаление элементов, реакция на действия пользователя
|
||||
- **Асинхронный JavaScript**: промисы, async/await и параллелизм — понимание event loop и неблокирующего выполнения кода как основы современной веб-разработки
|
||||
- **Проектный подход**: каждый раздел завершается мини-проектом — от калькулятора до браузерной игры на Canvas — что позволяет сразу применять знания
|
||||
- **Мост к экосистеме**: книга даёт фундамент для последующего изучения React, Vue, Node.js и других библиотек и фреймворков
|
||||
|
||||
## 💬 Важные цитаты
|
||||
|
||||
- «JavaScript — единственный язык, который можно начать использовать немедленно, просто открыв браузер»
|
||||
- «Понимание DOM — это понимание того, как браузер видит вашу страницу»
|
||||
|
||||
## 💡 Как применить в моих проектах
|
||||
|
||||
|
||||
## 🔗 Связанные заметки
|
||||
|
||||
- [[Тестирование JavaScript]]
|
||||
- [[Рефакторинг кода на JavaScript]]
|
||||
- [[Изучаем паттерны проектирования JavaScript]]
|
||||
- [[Профессиональный TypeScript]]
|
||||
@ -0,0 +1,56 @@
|
||||
---
|
||||
Тип: Книга
|
||||
Статус: Запланировано
|
||||
Название: JavaScript. Полное руководство
|
||||
Автор:
|
||||
- Дэвид Флэнаган
|
||||
Количество страниц: 720
|
||||
Прогресс: 0
|
||||
Формат: Бумажная
|
||||
Обложка: Библиотека/Книги/covers/javascript-polnoe-rukovodstvo.jpg
|
||||
Начата:
|
||||
Закончена:
|
||||
Оценка:
|
||||
Сложность:
|
||||
Теги:
|
||||
- javascript
|
||||
- веб_разработка
|
||||
- программирование
|
||||
- справочник
|
||||
- nodejs
|
||||
Категории:
|
||||
- Программирование
|
||||
- JavaScript
|
||||
Источник:
|
||||
Ссылка:
|
||||
---
|
||||
|
||||
# JavaScript. Полное руководство
|
||||
|
||||
![[covers/javascript-polnoe-rukovodstvo.jpg]]
|
||||
|
||||
## 📖 О книге
|
||||
|
||||
Седьмое издание культового справочника по JavaScript от Дэвида Флэнагана — «библия» JS-разработчика с 1996 года, полностью обновлённая под ES2020. Книга охватывает весь язык: типы, объекты, функции, классы, модули, итераторы, генераторы, Promise и async/await, а также работу с браузерным API, Node.js и инструментами. Издательство «Диалектика», 2021, перевод Ю. Артеменко.
|
||||
|
||||
## 🧠 Ключевые идеи
|
||||
|
||||
- **Типы, значения и переменные**: глубокое понимание системы типов JS — основа для понимания всего остального; примитивы и объекты ведут себя принципиально по-разному
|
||||
- **Функции и замыкания**: функции — объекты первого класса; замыкания, каррирование и функции высшего порядка — фундамент функционального стиля в JS
|
||||
- **Классы и прототипное наследование**: ES6-классы — синтаксический сахар над прототипами; понимание цепочки прототипов критично для работы с фреймворками
|
||||
- **Асинхронность**: эволюция от коллбэков к Promise и async/await — современный способ работы с асинхронными операциями без «ада коллбэков»
|
||||
- **Node.js и браузерный API**: единый язык для фронтенда и бэкенда — работа с файловой системой, потоками, HTTP-сервером и DOM-деревом из одной книги
|
||||
|
||||
## 💬 Важные цитаты
|
||||
|
||||
- «С момента своего первого издания в 1996 году JavaScript: The Definitive Guide стал библией для JavaScript-программистов»
|
||||
- «JavaScript — язык веба: самый используемый язык программирования в истории»
|
||||
|
||||
## 💡 Как применить в моих проектах
|
||||
|
||||
|
||||
## 🔗 Связанные заметки
|
||||
|
||||
- [[Тестирование JavaScript]]
|
||||
- [[Рефакторинг кода на JavaScript]]
|
||||
- [[Профессиональный TypeScript]]
|
||||
@ -0,0 +1,59 @@
|
||||
---
|
||||
Тип: Книга
|
||||
Статус: Запланировано
|
||||
Название: "Site Reliability Engineering. Надежность и безотказность как в Google"
|
||||
Автор:
|
||||
- Бетси Бейер
|
||||
- Крис Джоунс
|
||||
- Дженнифер Петофф
|
||||
- Ричард Нил Мёрфи
|
||||
Количество страниц: 560
|
||||
Прогресс: 0
|
||||
Формат: Электронная
|
||||
Обложка: Библиотека/Книги/covers/sre-google.jpg
|
||||
Начата:
|
||||
Закончена:
|
||||
Оценка:
|
||||
Сложность:
|
||||
Теги:
|
||||
- sre
|
||||
- devops
|
||||
- надёжность
|
||||
- google
|
||||
- системное_администрирование
|
||||
- распределённые_системы
|
||||
Категории:
|
||||
- Программирование
|
||||
- DevOps
|
||||
Источник:
|
||||
Ссылка:
|
||||
---
|
||||
|
||||
# Site Reliability Engineering. Надежность и безотказность как в Google
|
||||
|
||||
![[covers/sre-google.jpg]]
|
||||
|
||||
## 📖 О книге
|
||||
|
||||
Бетси Бейер, Крис Джоунс, Дженнифер Петофф и Ричард Нил Мёрфи — инженеры и менеджеры Google SRE — собрали в одной книге принципы и практики, которые позволяют Google запускать крупнейшие производственные системы в мире с высокой надёжностью. Книга описывает дисциплину Site Reliability Engineering: как Google применяет программные инструменты для решения задач, которые традиционно решают системные администраторы. Издательство «Питер», 2018, ISBN 978-5-4461-0976-0.
|
||||
|
||||
## 🧠 Ключевые идеи
|
||||
|
||||
- **SRE как дисциплина**: SRE — это то, что получается, когда инженер-программист занимается операционной деятельностью; Software Engineering + Operations = надёжные системы без ручного труда
|
||||
- **Error budget**: бюджет ошибок как инструмент баланса между скоростью разработки и надёжностью — команда разработки тратит бюджет, SRE его защищает
|
||||
- **SLI/SLO/SLA**: индикаторы, цели и соглашения об уровне сервиса — формальный язык для договорённостей о надёжности между командами и пользователями
|
||||
- **Устранение toil**: автоматизация рутинных операций как системный подход — если задачу можно автоматизировать, её нужно автоматизировать; toil не должен превышать 50% времени SRE
|
||||
- **Культура постмортемов**: бесклассовые анализы инцидентов без поиска виноватых — фокус на системных причинах, а не на ошибках людей
|
||||
|
||||
## 💬 Важные цитаты
|
||||
|
||||
- «Hope is not a strategy» — надежда не является стратегией
|
||||
- «SRE is what happens when you ask a software engineer to design an operations team»
|
||||
|
||||
## 💡 Как применить в моих проектах
|
||||
|
||||
|
||||
## 🔗 Связанные заметки
|
||||
|
||||
- [[Site Reliability Workbook. Практическое применение]]
|
||||
- [[Безопасные и надёжные системы]]
|
||||
@ -0,0 +1,58 @@
|
||||
---
|
||||
Тип: Книга
|
||||
Статус: Запланировано
|
||||
Название: Software. Ошибки и компромиссы при разработке ПО
|
||||
Автор:
|
||||
- Томаш Лелек
|
||||
- Джон Скит
|
||||
Количество страниц: 464
|
||||
Прогресс: 0
|
||||
Формат: Электронная
|
||||
Обложка: Библиотека/Книги/covers/software-oshibki-i-kompromissy.jpg
|
||||
Начата:
|
||||
Закончена:
|
||||
Оценка:
|
||||
Сложность:
|
||||
Теги:
|
||||
- программирование
|
||||
- архитектура
|
||||
- компромиссы
|
||||
- проектирование
|
||||
- распределённые_системы
|
||||
Категории:
|
||||
- Программирование
|
||||
- Проектирование систем
|
||||
Источник:
|
||||
Ссылка:
|
||||
---
|
||||
|
||||
# Software. Ошибки и компромиссы при разработке ПО
|
||||
|
||||
![[covers/software-oshibki-i-kompromissy.jpg]]
|
||||
|
||||
## 📖 О книге
|
||||
|
||||
Томаш Лелек и Джон Скит делятся опытом десятков лет разработки ПО, разбирая реальные ошибки и компромиссы, с которыми сталкиваются разработчики. Книга не о правильных решениях в вакууме — она о том, как вполне разумный выбор оказывается сомнительным в контексте конкретных условий: производительности, безопасности, затрат на сопровождение и распределённости. Издательство «Питер», 2023, перевод Е. Матвеева.
|
||||
|
||||
## 🧠 Ключевые идеи
|
||||
|
||||
- **Компромиссы неизбежны**: каждое решение в дизайне ПО — это выбор между конкурирующими требованиями; цель разработчика не найти «правильный» ответ, а осознанно выбрать нужный компромисс
|
||||
- **Производительность vs. читаемость**: оптимизация критического пути оправдана, только когда профилирование подтверждает проблему — преждевременная оптимизация создаёт ненужную сложность
|
||||
- **Простота API vs. гибкость**: чем проще API, тем он понятнее, но тем сложнее изменить его без нарушения обратной совместимости — управление версиями требует дисциплины с первого дня
|
||||
- **Атомарность и целостность в распределённых системах**: транзакционные гарантии, привычные в монолите, недостижимы в микросервисах без явных компромиссов — eventual consistency, saga pattern, идемпотентность
|
||||
- **Сторонние библиотеки**: каждая зависимость — это чужой код с чужими решениями; выбор библиотеки влияет на безопасность, производительность и стоимость миграции
|
||||
|
||||
## 💬 Важные цитаты
|
||||
|
||||
- «Создание программных продуктов всегда связано с компромиссами»
|
||||
- «Вполне разумное дизайнерское решение на практике оказывается сомнительным»
|
||||
- «Книга задумана как описание проблем, встречающихся в реальных системах»
|
||||
|
||||
## 💡 Как применить в моих проектах
|
||||
|
||||
|
||||
## 🔗 Связанные заметки
|
||||
|
||||
- [[Чистая архитектура]]
|
||||
- [[Шаблоны корпоративных приложений]]
|
||||
- [[System Design. Пережить интервью]]
|
||||
@ -0,0 +1,56 @@
|
||||
---
|
||||
Тип: Книга
|
||||
Статус: Запланировано
|
||||
Название: System Design. Машинное обучение
|
||||
Автор:
|
||||
- Алекс Сюй
|
||||
- Али Аминиан
|
||||
Количество страниц: 320
|
||||
Прогресс: 0
|
||||
Формат: Электронная
|
||||
Обложка: Библиотека/Книги/covers/system-design-ml.jpg
|
||||
Начата:
|
||||
Закончена:
|
||||
Оценка:
|
||||
Сложность:
|
||||
Теги:
|
||||
- system_design
|
||||
- машинное_обучение
|
||||
- собеседования
|
||||
- ml_system_design
|
||||
- карьера
|
||||
Категории:
|
||||
- Программирование
|
||||
- Машинное обучение
|
||||
Источник:
|
||||
Ссылка:
|
||||
---
|
||||
|
||||
# System Design. Машинное обучение
|
||||
|
||||
![[covers/system-design-ml.jpg]]
|
||||
|
||||
## 📖 О книге
|
||||
|
||||
Практическое руководство Алекса Сюя и Али Аминиана по самой сложной категории технических интервью — проектированию систем машинного обучения. Книга предлагает структурированный 7-шаговый подход к любой задаче ML System Design, разбирает 10 реальных кейсов из собеседований с подробными решениями и 211 диаграммами. Издательство «Питер», 2024, ISBN 978-5-4461-2130-4.
|
||||
|
||||
## 🧠 Ключевые идеи
|
||||
|
||||
- **7-шаговый фреймворк**: структурированный алгоритм разбора любого вопроса по ML System Design — от уточнения требований до оценки компромиссов — превращает хаотичный ответ в убедительное решение
|
||||
- **Что на самом деле проверяют интервьюеры**: не знание конкретных алгоритмов, а способность формулировать проблему, принимать архитектурные решения и объяснять компромиссы на уровне бизнеса
|
||||
- **ML-пайплайн от задачи до деплоя**: сбор данных, feature engineering, выбор модели, обучение, оценка, деплой и мониторинг — интервью проверяет понимание всего цикла, а не отдельных этапов
|
||||
- **10 реальных кейсов**: рекомендательные системы, ранжирование, обнаружение аномалий, NLP-задачи — разобраны по шагам, с объяснением выбора каждого решения
|
||||
- **Наблюдаемость ML-систем**: мониторинг data drift, model drift и production-метрик — неотъемлемая часть дизайна, которую часто упускают на собеседованиях
|
||||
|
||||
## 💬 Важные цитаты
|
||||
|
||||
- «Собеседования по проектированию системы машинного обучения — самые сложные из всех вопросов технического собеседования»
|
||||
- «211 диаграмм, которые наглядно объясняют, как работают различные системы»
|
||||
|
||||
## 💡 Как применить в моих проектах
|
||||
|
||||
|
||||
## 🔗 Связанные заметки
|
||||
|
||||
- [[System Design. Пережить интервью]]
|
||||
- [[Карьера программиста]]
|
||||
@ -0,0 +1,54 @@
|
||||
---
|
||||
Тип: Книга
|
||||
Статус: Запланировано
|
||||
Название: System Design. Пережить интервью
|
||||
Автор:
|
||||
- Чжиюн Тань
|
||||
Количество страниц: 544
|
||||
Прогресс: 0
|
||||
Формат: Электронная
|
||||
Обложка: Библиотека/Книги/covers/system-design-perezhit-intervyu.jpg
|
||||
Начата:
|
||||
Закончена:
|
||||
Оценка:
|
||||
Сложность:
|
||||
Теги:
|
||||
- system_design
|
||||
- собеседования
|
||||
- архитектура
|
||||
- высоконагруженные_системы
|
||||
Категории:
|
||||
- Программирование
|
||||
- Системный дизайн
|
||||
Источник:
|
||||
Ссылка:
|
||||
---
|
||||
|
||||
# System Design. Пережить интервью
|
||||
|
||||
![[covers/system-design-perezhit-intervyu.jpg]]
|
||||
|
||||
## 📖 О книге
|
||||
|
||||
Практическое руководство по подготовке к интервью по системному дизайну от Чжиюн Тань. Книга делится опытом успешных собеседований и предлагает методологию анализа задач: как собирать требования, выявлять узкие места, масштабировать решения. Включает реальные вопросы от Amazon, Apple, ByteDance, PayPal, Uber — около трети книги посвящено алгоритму прохождения интервью.
|
||||
|
||||
## 🧠 Ключевые идеи
|
||||
|
||||
- **Алгоритм прохождения интервью**: структурированный подход — уточнение требований, оценка нагрузки, высокоуровневый дизайн, детализация компонентов — превращает хаотичный ответ в убедительное решение
|
||||
- **Сбор требований как навык**: не стесняться задавать вопросы интервьюеру — он играет роль бизнес-заказчика, и уточнение требований само по себе демонстрирует зрелость инженера
|
||||
- **Деградация при отказах**: высоконагруженные системы должны изначально проектироваться с учётом сбоев каждого компонента — graceful degradation, а не полный отказ
|
||||
- **Наблюдаемость системы**: логирование, мониторинг и алертинг — не опциональные детали, а обязательная часть дизайна; сложная архитектура без observability неуправляема
|
||||
- **Простые и запоминаемые методы**: цель — не продемонстрировать максимальную сложность, а ясно объяснить решение эксперту
|
||||
|
||||
## 💬 Важные цитаты
|
||||
|
||||
- «System Design — одно из самых сложных интервью в инженерной воронке найма»
|
||||
- «Не стесняйтесь спрашивать о дополнительных требованиях пользователей — интервьюер, как правило, выступает в роли бизнес-заказчика»
|
||||
|
||||
## 💡 Как применить в моих проектах
|
||||
|
||||
|
||||
## 🔗 Связанные заметки
|
||||
|
||||
- [[Чистая архитектура]]
|
||||
- [[Шаблоны корпоративных приложений]]
|
||||
BIN
Knowledges/Библиотека/Книги/covers/algoritmy-na-java.jpg
Normal file
|
After Width: | Height: | Size: 185 KiB |
|
After Width: | Height: | Size: 266 KiB |
BIN
Knowledges/Библиотека/Книги/covers/bibliya-linux.jpg
Normal file
|
After Width: | Height: | Size: 266 KiB |
BIN
Knowledges/Библиотека/Книги/covers/chelovecheskiy-faktor.jpg
Normal file
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 138 KiB |
|
After Width: | Height: | Size: 123 KiB |
|
After Width: | Height: | Size: 62 KiB |
BIN
Knowledges/Библиотека/Книги/covers/idiomy-bash.jpg
Normal file
|
After Width: | Height: | Size: 349 KiB |
BIN
Knowledges/Библиотека/Книги/covers/iskusstvo-chistogo-koda.jpg
Normal file
|
After Width: | Height: | Size: 369 KiB |
|
After Width: | Height: | Size: 66 KiB |
|
After Width: | Height: | Size: 57 KiB |
|
After Width: | Height: | Size: 235 KiB |
|
After Width: | Height: | Size: 79 KiB |
BIN
Knowledges/Библиотека/Книги/covers/java-se-9-bazovyj-kurs.jpg
Normal file
|
After Width: | Height: | Size: 106 KiB |
|
After Width: | Height: | Size: 310 KiB |
|
After Width: | Height: | Size: 280 KiB |
BIN
Knowledges/Библиотека/Книги/covers/karera-programmista.jpg
Normal file
|
After Width: | Height: | Size: 117 KiB |
BIN
Knowledges/Библиотека/Книги/covers/kod-kotoryy-umeschaetsya.jpg
Normal file
|
After Width: | Height: | Size: 208 KiB |
BIN
Knowledges/Библиотека/Книги/covers/kodery-za-rabotoy.jpg
Normal file
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 104 KiB |
|
After Width: | Height: | Size: 258 KiB |
BIN
Knowledges/Библиотека/Книги/covers/oop-cplusplus-lafore.jpg
Normal file
|
After Width: | Height: | Size: 386 KiB |
|
After Width: | Height: | Size: 381 KiB |
|
After Width: | Height: | Size: 280 KiB |
BIN
Knowledges/Библиотека/Книги/covers/prodvinutye-algoritmy.jpg
Normal file
|
After Width: | Height: | Size: 100 KiB |
BIN
Knowledges/Библиотека/Книги/covers/pyat-strok-koda.jpg
Normal file
|
After Width: | Height: | Size: 301 KiB |
BIN
Knowledges/Библиотека/Книги/covers/sam-sebe-testirovschik.jpg
Normal file
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 251 KiB |
|
After Width: | Height: | Size: 190 KiB |
BIN
Knowledges/Библиотека/Книги/covers/sre-google.jpg
Normal file
|
After Width: | Height: | Size: 84 KiB |
BIN
Knowledges/Библиотека/Книги/covers/system-design-ml.jpg
Normal file
|
After Width: | Height: | Size: 42 KiB |
|
After Width: | Height: | Size: 37 KiB |
|
After Width: | Height: | Size: 308 KiB |
|
After Width: | Height: | Size: 62 KiB |
BIN
Knowledges/Библиотека/Книги/covers/testirovanie-veb-api.jpg
Normal file
|
After Width: | Height: | Size: 55 KiB |
BIN
Knowledges/Библиотека/Книги/covers/um-programmista.jpg
Normal file
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 330 KiB |
58
Knowledges/Библиотека/Книги/Алгоритмы на Java.md
Normal file
@ -0,0 +1,58 @@
|
||||
---
|
||||
Тип: Книга
|
||||
Статус: Запланировано
|
||||
Название: Алгоритмы на Java
|
||||
Автор:
|
||||
- Роберт Седжвик
|
||||
- Кевин Уэйн
|
||||
Количество страниц: 848
|
||||
Прогресс: 0
|
||||
Формат: Электронная
|
||||
Обложка: Библиотека/Книги/covers/algoritmy-na-java.jpg
|
||||
Начата:
|
||||
Закончена:
|
||||
Оценка:
|
||||
Сложность:
|
||||
Теги:
|
||||
- алгоритмы
|
||||
- структуры_данных
|
||||
- java
|
||||
- сортировка
|
||||
- графы
|
||||
Категории:
|
||||
- Программирование
|
||||
- Алгоритмы
|
||||
Источник:
|
||||
Ссылка:
|
||||
---
|
||||
|
||||
# Алгоритмы на Java
|
||||
|
||||
![[covers/algoritmy-na-java.jpg]]
|
||||
|
||||
## 📖 О книге
|
||||
|
||||
Фундаментальный справочник Роберта Седжвика и Кевина Уэйна из Принстонского университета — 4-е издание классики алгоритмов с реализацией на Java. Охватывает структуры данных, алгоритмы сортировки, поиска, обработку графов и строк. Отличается чётким текстом, детальными иллюстрациями, тщательно выверенным кодом и упражнениями для всех уровней. Поддерживается сайтом algs4.cs.princeton.edu. «Диалектика», 2019.
|
||||
|
||||
## 🧠 Ключевые идеи
|
||||
|
||||
- **50 алгоритмов, которые должен знать каждый программист**: от базовых структур данных (стек, очередь, приоритетная очередь) до алгоритмов на графах — всё с реализацией на Java и анализом сложности
|
||||
- **Сортировка во всех вариантах**: сравнительная сортировка (mergesort, quicksort, heapsort), поразрядная сортировка — понимание компромиссов между алгоритмами критично для выбора правильного в конкретном контексте
|
||||
- **Алгоритмы поиска**: бинарные деревья поиска, красно-чёрные деревья, хеш-таблицы — основа любого высокопроизводительного приложения
|
||||
- **Алгоритмы на графах**: обход в глубину/ширину, кратчайшие пути (Dijkstra, Bellman-Ford), минимальное остовное дерево — фундамент для сетевых задач, маршрутизации, рекомендательных систем
|
||||
- **Строковые алгоритмы**: KMP, регулярные выражения, сжатие данных — специализированный раздел, редко охватываемый другими книгами по алгоритмам
|
||||
|
||||
## 💬 Важные цитаты
|
||||
|
||||
- «Книга содержит необходимый объём знаний для программиста в области алгоритмов, накопленных за последние несколько десятилетий»
|
||||
- «50 алгоритмов, которые должен знать каждый программист»
|
||||
|
||||
## 💡 Как применить в моих проектах
|
||||
|
||||
|
||||
## 🔗 Связанные заметки
|
||||
|
||||
- [[Грокаем алгоритмы]]
|
||||
- [[Алгоритмы. Руководство по разработке]]
|
||||
- [[Прикладные структуры данных и алгоритмы]]
|
||||
- [[Java. Библиотека профессионала. Том 1. Основы]]
|
||||
@ -0,0 +1,56 @@
|
||||
---
|
||||
Тип: Книга
|
||||
Статус: Запланировано
|
||||
Название: "Алгоритмы. Теория и практическое применение"
|
||||
Автор:
|
||||
- Род Стивенс
|
||||
Количество страниц: 544
|
||||
Прогресс: 0
|
||||
Формат: Электронная
|
||||
Обложка: Библиотека/Книги/covers/algoritmy-teoriya-i-prakticheskoe-primenenie-stivens.jpg
|
||||
Начата:
|
||||
Закончена:
|
||||
Оценка:
|
||||
Сложность:
|
||||
Теги:
|
||||
- алгоритмы
|
||||
- структуры_данных
|
||||
- computer_science
|
||||
- теория
|
||||
- криптография
|
||||
Категории:
|
||||
- Программирование
|
||||
- Алгоритмы
|
||||
Источник:
|
||||
Ссылка:
|
||||
---
|
||||
|
||||
# Алгоритмы. Теория и практическое применение
|
||||
|
||||
![[covers/algoritmy-teoriya-i-prakticheskoe-primenenie-stivens.jpg]]
|
||||
|
||||
## 📖 О книге
|
||||
|
||||
Второе издание бестселлера Рода Стивенса — фундаментальное руководство по классическим алгоритмам и структурам данных. Книга охватывает численные алгоритмы, работу с массивами, деревьями, кучами и сетями, а также методы решения задач: полный перебор, «разделяй и властвуй», жадные алгоритмы и эвристики. Включает главы по криптографии и теории вычислительной сложности.
|
||||
|
||||
## 🧠 Ключевые идеи
|
||||
|
||||
- **Алгоритмы как рецепты**: изучение алгоритмов — это накопление готовых методик, которые можно применять к новым задачам, не изобретая колесо
|
||||
- **Теория + практика вместе**: каждый алгоритм разбирается с точки зрения корректности, сложности и реального применения — редкое сочетание в одной книге
|
||||
- **Стратегии решения задач**: полный перебор, «разделяй и властвуй», жадные алгоритмы, восхождение на вершину — это универсальные парадигмы, а не отдельные приёмы
|
||||
- **Структуры данных определяют алгоритм**: выбор между деревом, кучей или хеш-таблицей напрямую влияет на сложность решения
|
||||
- **Криптография и сети**: прикладные главы показывают, как алгоритмы работают в реальных системах безопасности и маршрутизации
|
||||
|
||||
## 💬 Важные цитаты
|
||||
|
||||
- «Алгоритмы — это рецепты, которые делают возможным эффективное программирование. Их изучение позволяет усвоить общие подходы к решению задач»
|
||||
|
||||
## 💡 Как применить в моих проектах
|
||||
|
||||
|
||||
## 🔗 Связанные заметки
|
||||
|
||||
- [[Алгоритмы. Руководство по разработке]]
|
||||
- [[Грокаем алгоритмы]]
|
||||
- [[Прикладные структуры данных и алгоритмы]]
|
||||
- [[Computer Science для программиста-самоучки]]
|
||||
57
Knowledges/Библиотека/Книги/Библия Linux.md
Normal file
@ -0,0 +1,57 @@
|
||||
---
|
||||
Тип: Книга
|
||||
Статус: Запланировано
|
||||
Название: Библия Linux
|
||||
Автор:
|
||||
- Кристофер Негус
|
||||
Количество страниц: 928
|
||||
Прогресс: 0
|
||||
Формат: Электронная
|
||||
Обложка: Библиотека/Книги/covers/bibliya-linux.jpg
|
||||
Начата:
|
||||
Закончена:
|
||||
Оценка:
|
||||
Сложность:
|
||||
Теги:
|
||||
- linux
|
||||
- операционные_системы
|
||||
- системное_администрирование
|
||||
- командная_строка
|
||||
- безопасность
|
||||
Категории:
|
||||
- Программирование
|
||||
- Операционные системы
|
||||
Источник:
|
||||
Ссылка:
|
||||
---
|
||||
|
||||
# Библия Linux
|
||||
|
||||
![[covers/bibliya-linux.jpg]]
|
||||
|
||||
## 📖 О книге
|
||||
|
||||
Кристофер Негус — главный специалист по документации Red Hat, автор более десяти изданий «Библии Linux» — написал исчерпывающее руководство для пользователей любого уровня. 10-е издание делает акцент на инструментах командной строки и последних версиях Red Hat Enterprise Linux, Fedora и Ubuntu. Книга проводит читателя от выбора рабочего стола через администрирование системы и серверов к безопасности и облачным вычислениям, включая материалы для подготовки к сертификационным экзаменам Linux. Издательство «Питер», 2022, ISBN 978-5-4461-1797-0.
|
||||
|
||||
## 🧠 Ключевые идеи
|
||||
|
||||
- **От пользователя к администратору**: структурированный путь — рабочий стол → командная строка → скрипты → администрирование системы → серверы → безопасность — покрывает все уровни владения Linux
|
||||
- **Командная строка как основной инструмент**: акцент на bash, управлении файлами, процессами и пользователями через терминал — не GUI, а реальные инструменты профессионала
|
||||
- **Администрирование серверов**: настройка сетевых сервисов (веб, файловые серверы, DNS, DHCP), контейнеры и виртуализация на практических примерах
|
||||
- **Безопасность Linux**: управление правами, файрволы, SELinux, аудит — системный подход к защите Linux-окружений
|
||||
- **Облачные вычисления**: работа с облачной инфраструктурой и современными инструментами развёртывания как финальная ступень профессионального роста
|
||||
|
||||
## 💬 Важные цитаты
|
||||
|
||||
- «Linux — это не просто операционная система, это экосистема, которую можно освоить постепенно»
|
||||
- «Понимание командной строки — единственный способ по-настоящему контролировать Linux-систему»
|
||||
|
||||
## 💡 Как применить в моих проектах
|
||||
|
||||
|
||||
## 🔗 Связанные заметки
|
||||
|
||||
- [[Командная строка Linux. Полное руководство]]
|
||||
- [[Внутреннее устройство Linux]]
|
||||
- [[Командная строка Linux]]
|
||||
- [[Современные операционные системы]]
|
||||
56
Knowledges/Библиотека/Книги/Внутреннее устройство Linux.md
Normal file
@ -0,0 +1,56 @@
|
||||
---
|
||||
Тип: Книга
|
||||
Статус: Запланировано
|
||||
Название: Внутреннее устройство Linux
|
||||
Автор:
|
||||
- Брайан Уорд
|
||||
Количество страниц: 480
|
||||
Прогресс: 0
|
||||
Формат: Электронная
|
||||
Обложка: Библиотека/Книги/covers/vnutrennee-ustroystvo-linux.jpg
|
||||
Начата:
|
||||
Закончена:
|
||||
Оценка:
|
||||
Сложность:
|
||||
Теги:
|
||||
- linux
|
||||
- операционные_системы
|
||||
- системное_администрирование
|
||||
- ядро
|
||||
- виртуализация
|
||||
Категории:
|
||||
- Программирование
|
||||
- Операционные системы
|
||||
Источник:
|
||||
Ссылка:
|
||||
---
|
||||
|
||||
# Внутреннее устройство Linux
|
||||
|
||||
![[covers/vnutrennee-ustroystvo-linux.jpg]]
|
||||
|
||||
## 📖 О книге
|
||||
|
||||
Брайан Уорд — разработчик и системный администратор, работающий с Linux с 1993 года — в третьем издании бестселлера Amazon раскрывает внутренние механизмы операционной системы Linux: от загрузки и управления процессами до сетей, виртуализации и контейнеров. Книга охватывает два главных семейства дистрибутивов (Debian/Ubuntu и RHEL/Fedora) и ориентирована на тех, кто хочет не просто пользоваться Linux, а понимать, как он устроен изнутри. Издательство «Питер», 2022, 3-е изд., ISBN 978-5-4461-3946-0.
|
||||
|
||||
## 🧠 Ключевые идеи
|
||||
|
||||
- **Ядро Linux и процессы**: как ядро управляет процессами, памятью и системными вызовами — фундамент понимания поведения любой Linux-системы
|
||||
- **Загрузка и инициализация**: детальный разбор boot-процесса, роли GRUB, init и systemd — что происходит от включения питания до приглашения командной строки
|
||||
- **Управление оборудованием**: как Linux взаимодействует с устройствами через драйверы, udev и sysfs — механизм, скрытый за абстракцией «всё есть файл»
|
||||
- **Сети и администрирование**: принципы настройки сетей, маршрутизации и диагностики — от сетевых интерфейсов до файрволов
|
||||
- **Виртуализация и контейнеры**: VM, гипервизоры, Docker, Podman, LXC и Kubernetes — современный взгляд на изоляцию процессов и окружений
|
||||
|
||||
## 💬 Важные цитаты
|
||||
|
||||
- «Суперпользователь не тот, кто знает все команды, а тот, кто понимает, что происходит за ними»
|
||||
- «Linux — это не просто операционная система, это философия прозрачности»
|
||||
|
||||
## 💡 Как применить в моих проектах
|
||||
|
||||
|
||||
## 🔗 Связанные заметки
|
||||
|
||||
- [[Командная строка Linux]]
|
||||
- [[Современные операционные системы]]
|
||||
- [[Компьютерные сети. Принципы, технологии, протоколы]]
|
||||
56
Knowledges/Библиотека/Книги/Грокаем Continuous Delivery.md
Normal file
@ -0,0 +1,56 @@
|
||||
---
|
||||
Тип: Книга
|
||||
Статус: Запланировано
|
||||
Название: Грокаем Continuous Delivery
|
||||
Автор:
|
||||
- Кристи Уилсон
|
||||
Количество страниц: 400
|
||||
Прогресс: 0
|
||||
Формат: Электронная
|
||||
Обложка: Библиотека/Книги/covers/grokaem-continuous-delivery.jpg
|
||||
Начата:
|
||||
Закончена:
|
||||
Оценка:
|
||||
Сложность:
|
||||
Теги:
|
||||
- devops
|
||||
- ci_cd
|
||||
- continuous_delivery
|
||||
- автоматизация
|
||||
- тестирование
|
||||
Категории:
|
||||
- Программирование
|
||||
- DevOps
|
||||
Источник:
|
||||
Ссылка:
|
||||
---
|
||||
|
||||
# Грокаем Continuous Delivery
|
||||
|
||||
![[covers/grokaem-continuous-delivery.jpg]]
|
||||
|
||||
## 📖 О книге
|
||||
|
||||
Практическое руководство Кристи Уилсон по построению и работе с пайплайном непрерывной доставки. Каждая глава разбирает отдельный реальный сценарий: автоматическое масштабирование, тестирование легаси-приложений, управление конфигурацией. Книга сопровождается иллюстрациями, чёткими объяснениями и упражнениями. Издательство «Питер», 2024, серия «Библиотека программиста», ISBN 978-5-4461-2372-8.
|
||||
|
||||
## 🧠 Ключевые идеи
|
||||
|
||||
- **CD-пайплайн как основа надёжных поставок**: автоматизация контроля версий, тестирования и деплоя минимизирует ручное вмешательство и снижает риск человеческой ошибки при каждом релизе
|
||||
- **Каждый сценарий — отдельная глава**: книга строится не как теория, а как набор конкретных ситуаций — от настройки первого пайплайна до работы с унаследованными системами
|
||||
- **Тестирование как неотъемлемая часть CD**: автоматические тесты на каждом этапе пайплайна — юнит, интеграционные, smoke — обязательное условие непрерывной доставки, а не опция
|
||||
- **Инфраструктура как код**: управление окружениями через код (IaC) делает деплой воспроизводимым и устраняет проблему «работает у меня, не работает на проде»
|
||||
- **Постепенное внедрение**: CD не требует всё или ничего — книга показывает, как добавлять практики итеративно, в том числе в легаси-проектах без CI/CD
|
||||
|
||||
## 💬 Важные цитаты
|
||||
|
||||
- «Пайплайн Continuous Delivery автоматизирует процессы контроля версий, тестирования и развертывания при минимальном вмешательстве разработчика»
|
||||
- «Освойте инструменты и методы непрерывной доставки — и вы сможете быстро и последовательно добавлять функции и выпускать обновления»
|
||||
|
||||
## 💡 Как применить в моих проектах
|
||||
|
||||
|
||||
## 🔗 Связанные заметки
|
||||
|
||||
- [[Тестирование JavaScript]]
|
||||
- [[Принципы юнит-тестирования]]
|
||||
- [[Тестирование веб-API]]
|
||||
58
Knowledges/Библиотека/Книги/Идиомы bash.md
Normal file
@ -0,0 +1,58 @@
|
||||
---
|
||||
Тип: Книга
|
||||
Статус: Запланировано
|
||||
Название: Идиомы bash
|
||||
Автор:
|
||||
- Карл Олбинг
|
||||
- Джей Пи Фоссен
|
||||
Количество страниц: 208
|
||||
Прогресс: 0
|
||||
Формат: Электронная
|
||||
Обложка: Библиотека/Книги/covers/idiomy-bash.jpg
|
||||
Начата:
|
||||
Закончена:
|
||||
Оценка:
|
||||
Сложность:
|
||||
Теги:
|
||||
- bash
|
||||
- shell
|
||||
- linux
|
||||
- автоматизация
|
||||
- командная_строка
|
||||
Категории:
|
||||
- Программирование
|
||||
- Операционные системы
|
||||
Источник:
|
||||
Ссылка:
|
||||
---
|
||||
|
||||
# Идиомы bash
|
||||
|
||||
![[covers/idiomy-bash.jpg]]
|
||||
|
||||
## 📖 О книге
|
||||
|
||||
Карл Олбинг и Джей Пи Фоссен — опытные практики Unix/Linux — собрали коллекцию идиом bash: устойчивых конструкций и приёмов, которые отличают экспертные сценарии от любительских. Книга учит расшифровывать чужой код и писать собственный максимально читаемым и понятным образом — включая антипаттерны, которых следует избегать. Подходит для любой ОС: Linux, Unix, macOS, Windows. Серия «Бестселлеры O'Reilly», издательство «Питер», 2023, ISBN 978-5-4461-2307-0.
|
||||
|
||||
## 🧠 Ключевые идеи
|
||||
|
||||
- **Идиомы вместо синтаксиса**: bash полон конструкций, которые работают, но выглядят загадочно — идиоматический подход объясняет, почему код написан именно так и как это делать правильно
|
||||
- **Читаемость как цель**: написать работающий скрипт легко, написать понятный — сложно; книга показывает конкретные техники, делающие bash-код прозрачным и сопровождаемым
|
||||
- **Антипаттерны bash**: конструкции, которые следует избегать — распространённые ошибки, неочевидные ловушки и устаревшие практики с объяснением почему
|
||||
- **Расшифровка чужого кода**: практические приёмы для понимания старых и плохо написанных скриптов — навык, незаменимый при работе с legacy-системами
|
||||
- **Экспертный уровень**: от базового понимания переменных и условий к продвинутым конструкциям — подстановка процессов, массивы, регулярные выражения в bash
|
||||
|
||||
## 💬 Важные цитаты
|
||||
|
||||
- «Идиома — это не просто синтаксис, это паттерн мышления, принятый в сообществе»
|
||||
- «Лучший bash-скрипт тот, который можно прочитать через год и сразу понять»
|
||||
|
||||
## 💡 Как применить в моих проектах
|
||||
|
||||
|
||||
## 🔗 Связанные заметки
|
||||
|
||||
- [[Командная строка Linux. Полное руководство]]
|
||||
- [[Командная строка Linux]]
|
||||
- [[Внутреннее устройство Linux]]
|
||||
- [[Библия Linux]]
|
||||
@ -0,0 +1,57 @@
|
||||
---
|
||||
Тип: Книга
|
||||
Статус: Запланировано
|
||||
Название: Изучаем паттерны проектирования JavaScript
|
||||
Автор:
|
||||
- Эдди Османи
|
||||
Количество страниц: 272
|
||||
Прогресс: 0
|
||||
Формат: Электронная
|
||||
Обложка: Библиотека/Книги/covers/izuchaem-patterny-javascript.jpg
|
||||
Начата:
|
||||
Закончена:
|
||||
Оценка:
|
||||
Сложность:
|
||||
Теги:
|
||||
- программирование
|
||||
- javascript
|
||||
- паттерны
|
||||
- архитектура
|
||||
- react
|
||||
Категории:
|
||||
- Программирование
|
||||
- Проектирование систем
|
||||
Источник:
|
||||
Ссылка:
|
||||
---
|
||||
|
||||
# Изучаем паттерны проектирования JavaScript
|
||||
|
||||
![[covers/izuchaem-patterny-javascript.jpg]]
|
||||
|
||||
## 📖 О книге
|
||||
|
||||
Эдди Османи — ведущий инженер Google, разработчик Chrome — во втором издании охватывает более двадцати ключевых паттернов для создания поддерживаемых и масштабируемых JavaScript-приложений. Книга включает порождающие, структурные и поведенческие паттерны, архитектурные подходы MVC/MVP/MVVM, паттерны для React (Hooks, HOC, Render Props), а также современные техники производительности: динамический импорт, code splitting, серверный рендеринг и Islands Architecture. Издательство «БХВ» / «АЛИСТ», 2024.
|
||||
|
||||
## 🧠 Ключевые идеи
|
||||
|
||||
- **20+ паттернов проектирования для JavaScript**: порождающие (Factory, Singleton, Builder), структурные (Decorator, Facade, Proxy) и поведенческие (Observer, Mediator, Command) — все с примерами на современном JS
|
||||
- **Паттерны для React**: Hooks, Higher-Order Components, Render Props, Compound Components — специфические архитектурные решения для React-экосистемы
|
||||
- **Модули и инкапсуляция**: модульный подход как основа масштабируемого кода — ES-модули, паттерн Module, IIFE и управление зависимостями
|
||||
- **Архитектурные подходы MVC/MVP/MVVM**: классические паттерны применительно к фронтенд-разработке, сравнение и сценарии применения каждого
|
||||
- **Современные паттерны производительности**: динамический импорт, code splitting, SSR, гидрация и Islands Architecture для быстрых веб-приложений
|
||||
|
||||
## 💬 Важные цитаты
|
||||
|
||||
- «Паттерны проектирования — это не готовые решения, это словарь для общения между разработчиками»
|
||||
- «Хороший паттерн — тот, что решает реальную проблему, а не усложняет простое»
|
||||
|
||||
## 💡 Как применить в моих проектах
|
||||
|
||||
|
||||
## 🔗 Связанные заметки
|
||||
|
||||
- [[Паттерны объектно-ориентированного проектирования]]
|
||||
- [[Шаблоны корпоративных приложений]]
|
||||
- [[Тестирование JavaScript]]
|
||||
- [[Чистая архитектура]]
|
||||
58
Knowledges/Библиотека/Книги/Искусство чистого кода.md
Normal file
@ -0,0 +1,58 @@
|
||||
---
|
||||
Тип: Книга
|
||||
Статус: Запланировано
|
||||
Название: Искусство чистого кода
|
||||
Автор:
|
||||
- Кристиан Майер
|
||||
Количество страниц: 240
|
||||
Прогресс: 0
|
||||
Формат: Электронная
|
||||
Обложка: Библиотека/Книги/covers/iskusstvo-chistogo-koda.jpg
|
||||
Начата:
|
||||
Закончена:
|
||||
Оценка:
|
||||
Сложность:
|
||||
Теги:
|
||||
- программирование
|
||||
- чистый_код
|
||||
- продуктивность
|
||||
- профессиональный_рост
|
||||
- лучшие_практики
|
||||
Категории:
|
||||
- Программирование
|
||||
- Профессиональный рост
|
||||
Источник:
|
||||
Ссылка:
|
||||
---
|
||||
|
||||
# Искусство чистого кода
|
||||
|
||||
![[covers/iskusstvo-chistogo-koda.jpg]]
|
||||
|
||||
## 📖 О книге
|
||||
|
||||
Кристиан Майер — доктор компьютерных наук, основатель blog.finxter.com — формулирует девять фундаментальных принципов написания понятного и поддерживаемого кода. Главная идея книги: сложность — главный враг продуктивности, а простота достигается через сокращение, фокус и осознанное управление вниманием. Издательство «Питер», 2023, серия «Библиотека программиста», ISBN 978-5-4461-2391-9.
|
||||
|
||||
## 🧠 Ключевые идеи
|
||||
|
||||
- **Сложность — враг продуктивности**: каждая лишняя зависимость, абстракция и строка кода — это долг; упрощение системы важнее добавления новых возможностей
|
||||
- **Принцип 80/20 в разработке**: 20% усилий дают 80% результата; важно научиться находить и концентрироваться на действительно значимых задачах, отсекая второстепенное
|
||||
- **MVP и быстрая обратная связь**: минимально жизнеспособный продукт позволяет проверить гипотезы с минимальными затратами и скорректировать направление до дорогостоящих ошибок
|
||||
- **Философия Unix — делать одно и делать хорошо**: маленькие, сфокусированные функции и модули лучше монолитных конструкций; каждый компонент должен иметь единственную ответственность
|
||||
- **Состояние потока и фокус**: глубокое погружение в задачу многократно увеличивает продуктивность; управление вниманием — такой же профессиональный навык, как владение языком программирования
|
||||
|
||||
## 💬 Важные цитаты
|
||||
|
||||
- «Сокращайте, упрощайте и перенаправляйте освободившуюся энергию на самые важные задачи»
|
||||
- «Преждевременная оптимизация — корень всех зол»
|
||||
- «В дизайне лучше меньше, да лучше»
|
||||
|
||||
## 💡 Как применить в моих проектах
|
||||
|
||||
|
||||
## 🔗 Связанные заметки
|
||||
|
||||
- [[Чистый код]]
|
||||
- [[Чистая архитектура]]
|
||||
- [[Совершенный код]]
|
||||
- [[Идеальный программист]]
|
||||
56
Knowledges/Библиотека/Книги/Карьера программиста.md
Normal file
@ -0,0 +1,56 @@
|
||||
---
|
||||
Тип: Книга
|
||||
Статус: Запланировано
|
||||
Название: Карьера программиста
|
||||
Автор:
|
||||
- Гэйл Лакман Макдауэлл
|
||||
Количество страниц: 688
|
||||
Прогресс: 0
|
||||
Формат: Электронная
|
||||
Обложка: Библиотека/Книги/covers/karera-programmista.jpg
|
||||
Начата:
|
||||
Закончена:
|
||||
Оценка:
|
||||
Сложность:
|
||||
Теги:
|
||||
- собеседования
|
||||
- алгоритмы
|
||||
- структуры_данных
|
||||
- карьера
|
||||
- программирование
|
||||
Категории:
|
||||
- Программирование
|
||||
- Карьера
|
||||
Источник:
|
||||
Ссылка:
|
||||
---
|
||||
|
||||
# Карьера программиста
|
||||
|
||||
![[covers/karera-programmista.jpg]]
|
||||
|
||||
## 📖 О книге
|
||||
|
||||
Мировой бестселлер Гэйл Лакман Макдауэлл — квинтэссенция сотен реальных технических интервью в Google, Microsoft, Apple, Amazon и других ведущих IT-компаниях. 6-е издание содержит 189 отборных задач с подробными решениями: алгоритмы, структуры данных, системный дизайн, поведенческие вопросы и типичные ошибки кандидатов. Основана на личном опыте автора как интервьюера и кандидата. Издательство «Питер», 2016.
|
||||
|
||||
## 🧠 Ключевые идеи
|
||||
|
||||
- **Структурированный подход к решению задач**: алгоритм разбора задачи — уточнить условие, придумать примеры, найти паттерн, написать код, проверить — важнее, чем знать готовые решения наизусть
|
||||
- **Анализ сложности обязателен**: любое решение нужно сопровождать оценкой времени и памяти (Big O); интервьюер ожидает, что кандидат сам назовёт сложность без подсказки
|
||||
- **Типичные ошибки кандидатов**: молчание при решении, прыжок к коду без обдумывания, игнорирование граничных случаев, отсутствие тестирования своего кода — всё это «красные флаги»
|
||||
- **Поведенческие вопросы — не мелочь**: STAR-метод (Situation, Task, Action, Result) и подготовленные истории о реальных ситуациях из практики так же важны, как технические задачи
|
||||
- **Подготовка как проект**: систематическое изучение тем (массивы, деревья, графы, динамическое программирование), решение задач с таймером и имитация условий реального интервью
|
||||
|
||||
## 💬 Важные цитаты
|
||||
|
||||
- «Из тысяч возможных задач и вопросов в книгу были отобраны 189 наиболее интересных и значимых»
|
||||
- «Эта книга — квинтэссенция сотен интервью со множеством кандидатов и тысяч вопросов в ведущих мировых корпорациях»
|
||||
|
||||
## 💡 Как применить в моих проектах
|
||||
|
||||
|
||||
## 🔗 Связанные заметки
|
||||
|
||||
- [[System Design. Пережить интервью]]
|
||||
- [[Грокаем алгоритмы]]
|
||||
- [[Алгоритмы. Руководство по разработке]]
|
||||
@ -0,0 +1,58 @@
|
||||
---
|
||||
Тип: Книга
|
||||
Статус: Запланировано
|
||||
Название: "Код, который умещается в голове: эвристики для разработчиков"
|
||||
Автор:
|
||||
- Марк Симан
|
||||
Количество страниц: 400
|
||||
Прогресс: 0
|
||||
Формат: Электронная
|
||||
Обложка: Библиотека/Книги/covers/kod-kotoryy-umeschaetsya.jpg
|
||||
Начата:
|
||||
Закончена:
|
||||
Оценка:
|
||||
Сложность:
|
||||
Теги:
|
||||
- программирование
|
||||
- чистый_код
|
||||
- архитектура
|
||||
- эвристики
|
||||
- профессиональный_рост
|
||||
Категории:
|
||||
- Программирование
|
||||
- Профессиональный рост
|
||||
Источник:
|
||||
Ссылка:
|
||||
---
|
||||
|
||||
# Код, который умещается в голове
|
||||
|
||||
![[covers/kod-kotoryy-umeschaetsya.jpg]]
|
||||
|
||||
## 📖 О книге
|
||||
|
||||
Марк Симан — бывший экономист, ставший разработчиком, автор отмеченной премией Jolt книги по dependency injection — предлагает практические эвристики для написания кода, который можно удерживать в голове. Книга отвечает на вопросы: как создавать чеклисты, организовывать командную работу, применять инкапсуляцию и декомпозицию, проектировать API и писать юнит-тесты. Примеры на C#, понятны для любого ООП-языка. Рекомендована Робертом Мартином. Издательство «Питер», 2023, ISBN 978-5-4461-2293-6.
|
||||
|
||||
## 🧠 Ключевые идеи
|
||||
|
||||
- **Когнитивная нагрузка как метрика**: код хорош ровно настолько, насколько он умещается в рабочую память разработчика — все эвристики книги направлены на снижение когнитивной нагрузки
|
||||
- **Чеклисты как инструмент**: систематические контрольные списки для code review, деплоя и проектирования — снижают зависимость от памяти и предотвращают повторяющиеся ошибки
|
||||
- **Декомпозиция и инкапсуляция**: разбиение кода на части, которые можно понять независимо — конкретные техники, а не абстрактные принципы
|
||||
- **Устойчивый темп разработки**: методы и процессы для работы с кодом без перегрева — управление сложностью на уровне команды, не только отдельного разработчика
|
||||
- **API и тестируемость**: проектирование интерфейсов, которые сложно использовать неправильно, и тесты как документация о намерениях кода
|
||||
|
||||
## 💬 Важные цитаты
|
||||
|
||||
- «Код пишется один раз, а читается много — пишите для читателя, не для компилятора»
|
||||
- «Сложность неизбежна; задача разработчика — управлять ею, а не игнорировать»
|
||||
|
||||
## 💡 Как применить в моих проектах
|
||||
|
||||
|
||||
## 🔗 Связанные заметки
|
||||
|
||||
- [[Чистый код]]
|
||||
- [[Чистая архитектура]]
|
||||
- [[Совершенный код]]
|
||||
- [[Искусство чистого кода]]
|
||||
- [[Пять строк кода]]
|
||||
@ -0,0 +1,57 @@
|
||||
---
|
||||
Тип: Книга
|
||||
Статус: Запланировано
|
||||
Название: Кодеры за работой. Размышления о ремесле программиста
|
||||
Автор:
|
||||
- Питер Сейбел
|
||||
Количество страниц: 544
|
||||
Прогресс: 0
|
||||
Формат: Электронная
|
||||
Обложка: Библиотека/Книги/covers/kodery-za-rabotoy.jpg
|
||||
Начата:
|
||||
Закончена:
|
||||
Оценка:
|
||||
Сложность:
|
||||
Теги:
|
||||
- программирование
|
||||
- интервью
|
||||
- профессиональный_рост
|
||||
- карьера
|
||||
- история_программирования
|
||||
Категории:
|
||||
- Программирование
|
||||
- Профессиональный рост
|
||||
Источник:
|
||||
Ссылка:
|
||||
---
|
||||
|
||||
# Кодеры за работой. Размышления о ремесле программиста
|
||||
|
||||
![[covers/kodery-za-rabotoy.jpg]]
|
||||
|
||||
## 📖 О книге
|
||||
|
||||
Сборник из 15 интервью Питера Сейбела с легендами программирования: Кен Томпсон, Дональд Кнут, Питер Норвиг, Гай Стил, Джошуа Блох, Брендан Айк, Джо Армстронг и другие. Книга раскрывает мышление выдающихся профессионалов: как они учились, как проектируют системы, как ищут ошибки, что думают о будущем профессии. Издательство «Символ-Плюс», 2011.
|
||||
|
||||
## 🧠 Ключевые идеи
|
||||
|
||||
- **Нет единственно правильного пути**: все 15 героев пришли к мастерству по-разному — разные языки, методологии, культуры разработки; общее одно — глубокая профессиональная увлечённость
|
||||
- **Чтение чужого кода — недооценённый навык**: большинство великих программистов подчёркивают, что умение читать и понимать чужой код так же важно, как умение его писать
|
||||
- **Отладка как искусство**: каждый эксперт описывает свои методы поиска ошибок — от бумажного анализа до глубокого знания системы на уровне «чувства кода»
|
||||
- **Простота против сложности**: сквозная тема всех интервью — лучший код тот, которого меньше; сложность — главный враг надёжности
|
||||
- **Инструменты формируют мышление**: выбор языка и среды влияет на то, как программист думает о задаче; знание нескольких парадигм расширяет горизонт решений
|
||||
|
||||
## 💬 Важные цитаты
|
||||
|
||||
- «Нет какого-то общего подхода к программированию — есть только профессиональная увлечённость и целеустремлённость»
|
||||
- «Самая важная и интересная часть работы программиста происходит у него в голове и никому не видна»
|
||||
|
||||
## 💡 Как применить в моих проектах
|
||||
|
||||
|
||||
## 🔗 Связанные заметки
|
||||
|
||||
- [[Идеальный программист]]
|
||||
- [[Мифический человеко-месяц]]
|
||||
- [[Человеческий фактор. Успешные проекты и команды]]
|
||||
- [[Совершенный код]]
|
||||
@ -0,0 +1,56 @@
|
||||
---
|
||||
Тип: Книга
|
||||
Статус: Запланировано
|
||||
Название: Командная строка Linux. Полное руководство
|
||||
Автор:
|
||||
- Уильям Шоттс
|
||||
Количество страниц: 544
|
||||
Прогресс: 0
|
||||
Формат: Электронная
|
||||
Обложка: Библиотека/Книги/covers/komandnaya-stroka-linux-shotts.jpg
|
||||
Начата:
|
||||
Закончена:
|
||||
Оценка:
|
||||
Сложность:
|
||||
Теги:
|
||||
- linux
|
||||
- командная_строка
|
||||
- bash
|
||||
- shell
|
||||
- автоматизация
|
||||
Категории:
|
||||
- Программирование
|
||||
- Операционные системы
|
||||
Источник:
|
||||
Ссылка:
|
||||
---
|
||||
|
||||
# Командная строка Linux. Полное руководство
|
||||
|
||||
![[covers/komandnaya-stroka-linux-shotts.jpg]]
|
||||
|
||||
## 📖 О книге
|
||||
|
||||
Уильям Шоттс — разработчик и технический писатель — создал международный бестселлер для всех, кто хочет освоить командную строку Linux от первых шагов до написания полноценных bash-программ. Книга делится на четыре части: работа с оболочкой, настройка окружения, типичные задачи и базовые инструменты, написание сценариев. Второе международное издание дополнено возможностями bash 4.x и современными практиками программирования. Издательство «Питер», 2020, ISBN 978-5-4461-1430-6.
|
||||
|
||||
## 🧠 Ключевые идеи
|
||||
|
||||
- **Философия командной строки**: Unix-инструменты проектируются для совместной работы через конвейеры — понимание этой философии меняет подход к решению задач и автоматизации
|
||||
- **Навигация и управление файлами**: базовые команды (ls, cd, cp, mv, rm, ln) и файловая система Linux — фундамент, без которого невозможна эффективная работа в терминале
|
||||
- **Стандартный ввод/вывод и перенаправление**: операторы `>`, `>>`, `|`, `<` и `tee` — ключ к комбинированию команд и созданию мощных однострочников
|
||||
- **Текстовые инструменты**: grep, sed, awk, cut, sort, uniq, patch — арсенал для обработки и трансформации текстовых данных без написания кода
|
||||
- **Сценарии bash**: переменные, условия, циклы, функции и обработка ошибок — систематический подход к автоматизации системных задач и написанию надёжных скриптов
|
||||
|
||||
## 💬 Важные цитаты
|
||||
|
||||
- «Графический интерфейс позволяет делать то, что предусмотрел разработчик. Командная строка позволяет делать то, что нужно вам»
|
||||
- «Умение работать в командной строке — это суперсила любого пользователя Linux»
|
||||
|
||||
## 💡 Как применить в моих проектах
|
||||
|
||||
|
||||
## 🔗 Связанные заметки
|
||||
|
||||
- [[Командная строка Linux]]
|
||||
- [[Внутреннее устройство Linux]]
|
||||
- [[Современные операционные системы]]
|
||||
52
Knowledges/Библиотека/Книги/Компьютерные сети.md
Normal file
@ -0,0 +1,52 @@
|
||||
---
|
||||
Тип: Книга
|
||||
Статус: Запланировано
|
||||
Название: Компьютерные сети
|
||||
Автор:
|
||||
- Эндрю Таненбаум
|
||||
- Дэвид Уэзеролл
|
||||
Количество страниц: 992
|
||||
Прогресс: 0
|
||||
Формат: Бумажная
|
||||
Обложка: Библиотека/Книги/covers/kompyuternye-seti-tanenbaum.jpg
|
||||
Начата: 2026
|
||||
Закончена:
|
||||
Оценка:
|
||||
Сложность:
|
||||
Теги:
|
||||
- сети
|
||||
- computer_science
|
||||
- архитектура
|
||||
Категории:
|
||||
- IT
|
||||
Источник:
|
||||
Ссылка:
|
||||
---
|
||||
|
||||
# Компьютерные сети
|
||||
|
||||
![[covers/kompyuternye-seti-tanenbaum.jpg]]
|
||||
|
||||
## 📖 О книге
|
||||
Фундаментальный труд по архитектуре и принципам работы компьютерных сетей. Книга охватывает все уровни модели TCP/IP, начиная с физического и заканчивая прикладным. В шестом издании обновлены материалы по IPv6, 5G, безопасности и современным протоколам прикладного уровня.
|
||||
|
||||
## 🧠 Ключевые идеи
|
||||
1. **Иерархическая организация:** Сетевая архитектура строится на основе уровней, где каждый уровень предоставляет сервис вышестоящему, скрывая детали реализации.
|
||||
2. **Маршрутизация и коммутация:** Принципы передачи пакетов в сложных сетях, включая алгоритмы поиска кратчайшего пути и борьбу с петлями.
|
||||
3. **Управление перегрузками:** Как протоколы (особенно TCP) адаптируются к пропускной способности сети, чтобы избежать коллапса.
|
||||
4. **Безопасность «по умолчанию»:** Необходимость встраивания механизмов защиты (шифрование, аутентификация) на всех этапах проектирования сети.
|
||||
5. **Эволюция протоколов:** Переход от старых стандартов к новым (IPv4 -> IPv6) и влияние мобильных технологий на архитектуру интернета.
|
||||
|
||||
## 💬 Важные цитаты
|
||||
- «Никогда не недооценивайте пропускную способность грузовика, набитого магнитными лентами и мчащегося по шоссе».
|
||||
- «Хорошая вещь в стандартах — это то, что их так много на выбор».
|
||||
- «Теория — это когда вы всё знаете, но ничего не работает. Практика — это когда всё работает, но никто не знает почему. Мы же объединяем теорию и практику...»
|
||||
|
||||
## 💡 Как применить в моих проектах
|
||||
- Использовать понимание работы TCP/IP для оптимизации сетевых запросов в высоконагруженных приложениях.
|
||||
- Применять принципы эшелонированной защиты при проектировании инфраструктуры.
|
||||
- Учитывать задержки и ограничения пропускной способности при разработке распределенных систем.
|
||||
|
||||
## 🔗 Связанные заметки
|
||||
- [[Компьютерные сети. Нисходящий подход]]
|
||||
- [[Компьютерные сети. Принципы, технологии, протоколы]]
|
||||
55
Knowledges/Библиотека/Книги/Не заставляйте меня думать.md
Normal file
@ -0,0 +1,55 @@
|
||||
---
|
||||
Тип: Книга
|
||||
Статус: Запланировано
|
||||
Название: Не заставляйте меня думать
|
||||
Автор:
|
||||
- Стив Круг
|
||||
Количество страниц: 256
|
||||
Прогресс: 0
|
||||
Формат: Электронная
|
||||
Обложка: Библиотека/Книги/covers/ne-zastavlyajte-menya-dumat.jpg
|
||||
Начата:
|
||||
Закончена:
|
||||
Оценка:
|
||||
Сложность:
|
||||
Теги:
|
||||
- юзабилити
|
||||
- ux
|
||||
- веб_дизайн
|
||||
- ui
|
||||
- продуктовый_дизайн
|
||||
Категории:
|
||||
- Дизайн
|
||||
- UX/UI
|
||||
Источник:
|
||||
Ссылка:
|
||||
---
|
||||
|
||||
# Не заставляйте меня думать
|
||||
|
||||
![[covers/ne-zastavlyajte-menya-dumat.jpg]]
|
||||
|
||||
## 📖 О книге
|
||||
|
||||
Классический труд по юзабилити веб-сайтов и мобильных приложений от Стива Круга. Третье издание (Don't Make Me Think, Revisited) расширено главами о мобильных интерфейсах. Автор объясняет, как сделать продукт понятным для всех без необходимости читать инструкции — с примерами, иллюстрациями и практическими советами по тестированию.
|
||||
|
||||
## 🧠 Ключевые идеи
|
||||
|
||||
- **Первый закон юзабилити**: пользователь не должен тратить ни секунды на размышление — можно ли кликнуть на объект, что произойдёт после клика, куда он попал
|
||||
- **Сканирование вместо чтения**: люди не читают страницы — они сканируют их в поисках слов, которые соответствуют их задаче; дизайн должен это учитывать
|
||||
- **Навигация — скелет сайта**: хорошая навигация отвечает на три вопроса: где я? Где я был? Куда я могу пойти?
|
||||
- **Меньше думать — больше делать**: если выбор требует мыслительных усилий, пользователь уйдёт; задача дизайнера — устранить любую неочевидность
|
||||
- **Тестируй одного пользователя, а не ноль**: дешёвое usability-тестирование с малым количеством участников даёт больше insights, чем идеальное исследование, которое никогда не случится
|
||||
|
||||
## 💬 Важные цитаты
|
||||
|
||||
- «Первый закон юзабилити: не заставляйте меня думать»
|
||||
- «Лучше протестировать одного пользователя, чем не тестировать вообще»
|
||||
- «Если что-то короткое — у него больше шансов быть использованным»
|
||||
|
||||
## 💡 Как применить в моих проектах
|
||||
|
||||
|
||||
## 🔗 Связанные заметки
|
||||
|
||||
- [[Дизайн для разработчиков]]
|
||||
@ -0,0 +1,56 @@
|
||||
---
|
||||
Тип: Книга
|
||||
Статус: Запланировано
|
||||
Название: Объектно-ориентированное программирование в С++
|
||||
Автор:
|
||||
- Роберт Лафоре
|
||||
Количество страниц: 928
|
||||
Прогресс: 0
|
||||
Формат: Электронная
|
||||
Обложка: Библиотека/Книги/covers/oop-cplusplus-lafore.jpg
|
||||
Начата:
|
||||
Закончена:
|
||||
Оценка:
|
||||
Сложность:
|
||||
Теги:
|
||||
- cpp
|
||||
- ооп
|
||||
- программирование
|
||||
- учебник
|
||||
- классика_cs
|
||||
Категории:
|
||||
- Программирование
|
||||
- C++
|
||||
Источник:
|
||||
Ссылка:
|
||||
---
|
||||
|
||||
# Объектно-ориентированное программирование в С++
|
||||
|
||||
![[covers/oop-cplusplus-lafore.jpg]]
|
||||
|
||||
## 📖 О книге
|
||||
|
||||
Роберт Лафоре создал один из самых популярных учебников по C++ и ООП — классику серии «Классика Computer Science». Книга проводит читателя от начальных основ программирования к полноценному пониманию объектно-ориентированных концепций через хорошо продуманные примеры, которые «обрастают» новыми возможностями с каждой главой. Содержит более 100 упражнений. Издательство «Питер», 4-е изд., ISBN 978-5-4461-0927-2.
|
||||
|
||||
## 🧠 Ключевые идеи
|
||||
|
||||
- **Последовательное введение в ООП**: классы, объекты, инкапсуляция, наследование и полиморфизм — каждая концепция вводится поверх предыдущей через единую нарастающую цепочку примеров
|
||||
- **C++ как язык ООП**: специфика C++ в реализации объектно-ориентированных концепций — конструкторы, деструкторы, перегрузка операторов, шаблоны и исключения
|
||||
- **Практика через полномасштабные приложения**: каждый раздел завершается реальным проектом — не игрушечными примерами, а небольшими, но полноценными программами
|
||||
- **Обучение через упражнения**: более 100 задач с нарастающей сложностью для самопроверки — книга подходит как для самостоятельного изучения, так и для учебных заведений
|
||||
- **Классика, выдержавшая время**: четыре издания за тридцать лет — фундаментальные концепции изложены настолько ясно, что книга остаётся актуальной несмотря на эволюцию языка
|
||||
|
||||
## 💬 Важные цитаты
|
||||
|
||||
- «Тысячи читателей освоили объектно-ориентированное программирование в C++ благодаря этой книге»
|
||||
- «Примеры не перегружены ничем лишним — только то, что нужно для понимания концепции»
|
||||
|
||||
## 💡 Как применить в моих проектах
|
||||
|
||||
|
||||
## 🔗 Связанные заметки
|
||||
|
||||
- [[Паттерны объектно-ориентированного проектирования]]
|
||||
- [[Чистый код]]
|
||||
- [[Совершенный код]]
|
||||
@ -0,0 +1,58 @@
|
||||
---
|
||||
Тип: Книга
|
||||
Статус: Запланировано
|
||||
Название: "Предметно-ориентированное проектирование (DDD)"
|
||||
Автор:
|
||||
- Эрик Эванс
|
||||
Количество страниц: 448
|
||||
Прогресс: 0
|
||||
Формат: Электронная
|
||||
Обложка: Библиотека/Книги/covers/predmetno-orientirovannoe-proektirovanie.jpg
|
||||
Начата:
|
||||
Закончена:
|
||||
Оценка:
|
||||
Сложность:
|
||||
Теги:
|
||||
- ddd
|
||||
- архитектура
|
||||
- проектирование
|
||||
- domain_driven_design
|
||||
- ооп
|
||||
Категории:
|
||||
- Программирование
|
||||
- Проектирование систем
|
||||
Источник:
|
||||
Ссылка:
|
||||
---
|
||||
|
||||
# Предметно-ориентированное проектирование (DDD)
|
||||
|
||||
![[covers/predmetno-orientirovannoe-proektirovanie.jpg]]
|
||||
|
||||
## 📖 О книге
|
||||
|
||||
Фундаментальная книга Эрика Эванса, заложившая основы Domain-Driven Design. Рассматривает стратегические и тактические паттерны создания сложных программных систем через глубокое понимание предметной области. Ключевые концепции — единый язык (Ubiquitous Language), ограниченный контекст (Bounded Context), агрегаты, сущности и объекты-значения. Издательство «Вильямс», 2020, перевод В. Л. Бродового.
|
||||
|
||||
## 🧠 Ключевые идеи
|
||||
|
||||
- **Единый язык (Ubiquitous Language)**: общий словарь между разработчиками и экспертами предметной области — основа DDD; код должен отражать этот язык напрямую, без «перевода»
|
||||
- **Ограниченный контекст (Bounded Context)**: каждая модель применима только в чётко очерченном контексте; попытка создать универсальную модель «на все случаи» ведёт к хаосу
|
||||
- **Тактические паттерны**: Entity (сущности с идентичностью), Value Object (объекты без идентичности), Aggregate (кластер объектов с корнем), Repository, Factory — строительные блоки модели предметной области
|
||||
- **Стратегические паттерны**: Bounded Context, Context Map, Anti-Corruption Layer — инструменты управления сложностью на уровне всей системы и интеграции нескольких моделей
|
||||
- **Рефакторинг к более глубокому пониманию**: модель должна эволюционировать по мере роста знаний о предметной области; прорывные рефакторинги — норма, а не исключение
|
||||
|
||||
## 💬 Важные цитаты
|
||||
|
||||
- «Единый язык — это не просто глоссарий. Это живой язык, который использует вся команда — в разговорах, документах и коде»
|
||||
- «Сложность скрывается в сердце программного обеспечения»
|
||||
- «Программисты должны стремиться не просто к созданию рабочей системы, а к настоящему пониманию того, что они создают»
|
||||
|
||||
## 💡 Как применить в моих проектах
|
||||
|
||||
|
||||
## 🔗 Связанные заметки
|
||||
|
||||
- [[Чистая архитектура]]
|
||||
- [[Шаблоны корпоративных приложений]]
|
||||
- [[Фундаментальный подход к программной архитектуре]]
|
||||
- [[Паттерны объектно-ориентированного проектирования]]
|
||||
@ -0,0 +1,53 @@
|
||||
---
|
||||
Тип: Книга
|
||||
Статус: Запланировано
|
||||
Название: Прикладные структуры данных и алгоритмы
|
||||
Автор:
|
||||
- Джей Венгроу
|
||||
Количество страниц: 512
|
||||
Прогресс: 0
|
||||
Формат: Электронная
|
||||
Обложка: Библиотека/Книги/covers/prikladnye-struktury-dannyh-i-algoritmy.jpg
|
||||
Начата:
|
||||
Закончена:
|
||||
Оценка:
|
||||
Сложность:
|
||||
Теги:
|
||||
- алгоритмы
|
||||
- структуры_данных
|
||||
- big_o
|
||||
- оптимизация
|
||||
Категории:
|
||||
- Программирование
|
||||
- Алгоритмы
|
||||
Источник:
|
||||
Ссылка:
|
||||
---
|
||||
|
||||
# Прикладные структуры данных и алгоритмы
|
||||
|
||||
![[covers/prikladnye-struktury-dannyh-i-algoritmy.jpg]]
|
||||
|
||||
## 📖 О книге
|
||||
|
||||
Практическое руководство по структурам данных и алгоритмам с примерами на Python, JavaScript и Ruby. Учит применять нотацию «О большое» и выбирать оптимальные структуры данных — хеш-таблицы, деревья, графы — для повышения производительности кода. Содержит прикладные примеры и упражнения для освоения методов оптимизации приложений.
|
||||
|
||||
## 🧠 Ключевые идеи
|
||||
|
||||
- **O(N) как инструмент выбора**: нотация «О большое» — не теория, а практический критерий для сравнения алгоритмов в реальных задачах
|
||||
- **Правильная структура данных меняет всё**: хеш-таблицы дают O(1) поиск там, где массив потребует O(N); выбор структуры важнее оптимизации кода
|
||||
- **Деревья и графы для реальных задач**: иерархические и сетевые данные требуют специализированных структур — списки здесь неэффективны
|
||||
- **Рекурсия и динамическое программирование**: разбивка задач на подзадачи — ключ к элегантным и быстрым решениям
|
||||
- **Практика важнее теории**: каждая концепция закреплена упражнениями на реальных языках, а не на псевдокоде
|
||||
|
||||
## 💬 Важные цитаты
|
||||
|
||||
- «Структуры данных и алгоритмы — это не абстрактные концепции, а турбина, способная превратить ваш софт в болид Формулы-1»
|
||||
|
||||
## 💡 Как применить в моих проектах
|
||||
|
||||
|
||||
## 🔗 Связанные заметки
|
||||
|
||||
- [[Грокаем алгоритмы]]
|
||||
- [[Алгоритмы. Руководство по разработке]]
|
||||
@ -0,0 +1,56 @@
|
||||
---
|
||||
Тип: Книга
|
||||
Статус: Запланировано
|
||||
Название: Продвинутые алгоритмы и структуры данных
|
||||
Автор:
|
||||
- Марчелло Ла Рокка
|
||||
Количество страниц: 848
|
||||
Прогресс: 0
|
||||
Формат: Электронная
|
||||
Обложка: Библиотека/Книги/covers/prodvinutye-algoritmy.jpg
|
||||
Начата:
|
||||
Закончена:
|
||||
Оценка:
|
||||
Сложность:
|
||||
Теги:
|
||||
- алгоритмы
|
||||
- структуры_данных
|
||||
- графы
|
||||
- machine_learning
|
||||
- computer_science
|
||||
Категории:
|
||||
- Программирование
|
||||
- Алгоритмы
|
||||
Источник:
|
||||
Ссылка:
|
||||
---
|
||||
|
||||
# Продвинутые алгоритмы и структуры данных
|
||||
|
||||
![[covers/prodvinutye-algoritmy.jpg]]
|
||||
|
||||
## 📖 О книге
|
||||
|
||||
Марчелло Ла Рокка — исследователь и старший инженер с опытом в Twitter, Microsoft и Apple, специализирующийся на графах, алгоритмах оптимизации и машинном обучении — предлагает сбалансированное сочетание классических, продвинутых и современных алгоритмов. Книга состоит из трёх частей: улучшение базовых структур данных, многомерные запросы, планарные графы и оптимизация. Охватывает алгоритмы анализа данных, MapReduce и решение логистических задач с помощью графов. Серия «Библиотека программиста», издательство «Питер», 2024, ISBN 978-5-4461-1946-2.
|
||||
|
||||
## 🧠 Ключевые идеи
|
||||
|
||||
- **Улучшение базовых структур данных**: деревья, кучи, хеш-таблицы и другие структуры в их продвинутых вариантах — как выбрать правильную структуру для конкретной задачи
|
||||
- **Многомерные запросы**: k-d деревья и другие пространственные структуры для эффективного поиска в многомерных данных — фундамент геолокации и рекомендательных систем
|
||||
- **Графовые алгоритмы и оптимизация**: планарные графы, алгоритмы кратчайших путей, задачи коммивояжёра и логистические задачи — применение теории графов к реальным проблемам
|
||||
- **Распределённые алгоритмы**: MapReduce как модель для обработки больших данных — кластеризация и агрегация в распределённых системах
|
||||
- **Связь с машинным обучением**: алгоритмы, лежащие в основе ML-методов — от кластеризации до оптимизации, которые обычно остаются «за кадром» в курсах по data science
|
||||
|
||||
## 💬 Важные цитаты
|
||||
|
||||
- «Знание продвинутых алгоритмов отличает разработчика, который решает задачу, от того, кто решает её эффективно»
|
||||
- «Структуры данных — это не просто детали реализации, это архитектурные решения»
|
||||
|
||||
## 💡 Как применить в моих проектах
|
||||
|
||||
|
||||
## 🔗 Связанные заметки
|
||||
|
||||
- [[Алгоритмы. Руководство по разработке]]
|
||||
- [[Грокаем алгоритмы]]
|
||||
- [[Теоретический минимум по Computer Science. Все что нужно программисту и разработчику]]
|
||||
57
Knowledges/Библиотека/Книги/Пять строк кода.md
Normal file
@ -0,0 +1,57 @@
|
||||
---
|
||||
Тип: Книга
|
||||
Статус: Запланировано
|
||||
Название: Пять строк кода
|
||||
Автор:
|
||||
- Кристиан Клаусен
|
||||
Количество страниц: 368
|
||||
Прогресс: 0
|
||||
Формат: Электронная
|
||||
Обложка: Библиотека/Книги/covers/pyat-strok-koda.jpg
|
||||
Начата:
|
||||
Закончена:
|
||||
Оценка:
|
||||
Сложность:
|
||||
Теги:
|
||||
- программирование
|
||||
- рефакторинг
|
||||
- чистый_код
|
||||
- typescript
|
||||
- лучшие_практики
|
||||
Категории:
|
||||
- Программирование
|
||||
- Рефакторинг
|
||||
Источник:
|
||||
Ссылка:
|
||||
---
|
||||
|
||||
# Пять строк кода
|
||||
|
||||
![[covers/pyat-strok-koda.jpg]]
|
||||
|
||||
## 📖 О книге
|
||||
|
||||
Кристиан Клаусен — разработчик и инженер — предлагает радикально простое правило рефакторинга: любой метод должен содержать не более пяти строк кода. Книга учит определять, когда и как проводить рефакторинг, как распознать признаки кода, который пора удалить, и как применять паттерны для создания элегантного, поддерживаемого кода. Все примеры написаны на TypeScript. Роберт Мартин рекомендует. Издательство «Питер», 2023, ISBN 978-5-4461-1959-2.
|
||||
|
||||
## 🧠 Ключевые идеи
|
||||
|
||||
- **Правило пяти строк**: любой метод должен содержать не более пяти строк кода — это правило принуждает к декомпозиции, улучшает читаемость и снижает когнитивную нагрузку
|
||||
- **Рефакторинг как непрерывная практика**: автор объясняет когда, как и что рефакторить — рефакторинг не разовая акция, а постоянная инженерная дисциплина
|
||||
- **Распознавание плохого кода**: конкретные признаки и запахи кода, которые говорят о необходимости переработки или удаления — практические индикаторы для ежедневной работы
|
||||
- **Паттерны рефакторинга**: набор проверенных приёмов (извлечение методов, замена условий полиморфизмом и др.) для формирования элегантного и поддерживаемого кода
|
||||
- **TypeScript как универсальный язык примеров**: синтаксис TypeScript позволяет применить идеи книги к любому объектно-ориентированному языку высокого уровня
|
||||
|
||||
## 💬 Важные цитаты
|
||||
|
||||
- «Правило пяти строк — это не ограничение, а инструмент мышления»
|
||||
- «Хороший код — это код, который легко изменить»
|
||||
|
||||
## 💡 Как применить в моих проектах
|
||||
|
||||
|
||||
## 🔗 Связанные заметки
|
||||
|
||||
- [[Чистый код]]
|
||||
- [[Рефакторинг кода на JavaScript]]
|
||||
- [[Искусство чистого кода]]
|
||||
- [[Совершенный код]]
|
||||
@ -0,0 +1,57 @@
|
||||
---
|
||||
Тип: Книга
|
||||
Статус: Запланировано
|
||||
Название: Сам себе тестировщик. Пошаговое руководство по тестированию ПО
|
||||
Автор:
|
||||
- Чхави Радж Досадж
|
||||
Количество страниц: 240
|
||||
Прогресс: 0
|
||||
Формат: Электронная
|
||||
Обложка: Библиотека/Книги/covers/sam-sebe-testirovschik.jpg
|
||||
Начата:
|
||||
Закончена:
|
||||
Оценка:
|
||||
Сложность:
|
||||
Теги:
|
||||
- тестирование
|
||||
- qa
|
||||
- тест_кейсы
|
||||
- программирование
|
||||
- профессиональный_рост
|
||||
Категории:
|
||||
- Программирование
|
||||
- Тестирование
|
||||
Источник:
|
||||
Ссылка:
|
||||
---
|
||||
|
||||
# Сам себе тестировщик. Пошаговое руководство по тестированию ПО
|
||||
|
||||
![[covers/sam-sebe-testirovschik.jpg]]
|
||||
|
||||
## 📖 О книге
|
||||
|
||||
Чхави Радж Досадж — консультант по тестированию с более чем 20-летним опытом, работавший с American Express, Deutsche Bank и Резервным банком Австралии — предлагает практическое руководство по всем этапам тестирования ПО. Книга состоит из двух частей: теоретические основы и пошаговый разбор реального тестового проекта. Включает шаблоны документов, стратегии планирования и управления тестированием. Издательство «Питер», 2024, ISBN 978-5-4461-2226-4.
|
||||
|
||||
## 🧠 Ключевые идеи
|
||||
|
||||
- **Полный жизненный цикл тестирования**: книга охватывает все этапы — от планирования и разработки тест-кейсов до выполнения тестов, составления отчётов и закрытия тестовой активности
|
||||
- **Практика на реальном проекте**: вторая часть книги разбирает полноценный тестовый проект шаг за шагом, позволяя применить теорию на конкретном примере
|
||||
- **Разнообразие видов тестирования**: регрессионное, UAT, нефункциональное тестирование — каждый вид разобран с примерами и шаблонами документов
|
||||
- **Документирование как основа**: готовые шаблоны тест-планов, статусных отчётов, финальных отчётов и планов релизов — практический инструментарий для ежедневной работы QA
|
||||
- **Точка входа и справочник**: книга одновременно служит введением для новичков и настольным справочником для практикующих тестировщиков
|
||||
|
||||
## 💬 Важные цитаты
|
||||
|
||||
- «Тестирование — это не поиск ошибок, это управление рисками качества»
|
||||
- «Понимание того, что тестировать, почему и когда — важнее умения запускать тесты»
|
||||
|
||||
## 💡 Как применить в моих проектах
|
||||
|
||||
|
||||
## 🔗 Связанные заметки
|
||||
|
||||
- [[Тестирование JavaScript]]
|
||||
- [[Принципы юнит-тестирования]]
|
||||
- [[Тестирование веб-API]]
|
||||
- [[Грокаем Continuous Delivery]]
|
||||
@ -0,0 +1,57 @@
|
||||
---
|
||||
Тип: Книга
|
||||
Статус: Запланировано
|
||||
Название: Современная программная инженерия
|
||||
Автор:
|
||||
- Дэвид Фарли
|
||||
Количество страниц: 288
|
||||
Прогресс: 0
|
||||
Формат: Электронная
|
||||
Обложка: Библиотека/Книги/covers/sovremennaya-programmnaya-inzheneriya.jpg
|
||||
Начата:
|
||||
Закончена:
|
||||
Оценка:
|
||||
Сложность:
|
||||
Теги:
|
||||
- программирование
|
||||
- agile
|
||||
- continuous_delivery
|
||||
- tdd
|
||||
- профессиональный_рост
|
||||
Категории:
|
||||
- Программирование
|
||||
- Профессиональный рост
|
||||
Источник:
|
||||
Ссылка:
|
||||
---
|
||||
|
||||
# Современная программная инженерия
|
||||
|
||||
![[covers/sovremennaya-programmnaya-inzheneriya.jpg]]
|
||||
|
||||
## 📖 О книге
|
||||
|
||||
Дэвид Фарли — пионер Continuous Delivery и лидер мнений в области разработки ПО — формулирует принципы современной программной инженерии. Книга строится вокруг двух ключевых концепций: непрерывного обучения и управления сложностью. Техники эмпирические, итеративные, основаны на быстрой обратной связи. Издательство «Питер», 2023, ISBN 978-5-4461-2335-3.
|
||||
|
||||
## 🧠 Ключевые идеи
|
||||
|
||||
- **Непрерывное обучение — основа профессии**: разработка ПО — это дисциплина с постоянно меняющимися требованиями; способность быстро учиться и адаптироваться важнее знания конкретного стека
|
||||
- **Управление сложностью — главный навык**: сложность — главный враг программных систем; читаемый, модульный, слабосвязанный код — это не эстетика, а профессиональная обязанность
|
||||
- **TDD как инструмент дизайна**: разработка через тестирование — не про тесты, а про обратную связь и дизайн; тесты, написанные первыми, формируют лучший API и меньшую связанность
|
||||
- **Непрерывная доставка как стандарт**: CD — это не DevOps-практика, а инженерная дисциплина, обеспечивающая постоянную готовность кода к выпуску и минимизирующая риски
|
||||
- **Итеративность и маленькие шаги**: работа малыми инкрементами с частой обратной связью снижает риск, ускоряет обучение и позволяет быстрее менять направление
|
||||
|
||||
## 💬 Важные цитаты
|
||||
|
||||
- «Ключевые концепции, лежащие в основе эффективной разработки ПО, — это непрерывное обучение и управление сложностью»
|
||||
- «Делать код читаемым — это профессиональная обязанность и один из важнейших принципов управления сложностью»
|
||||
|
||||
## 💡 Как применить в моих проектах
|
||||
|
||||
|
||||
## 🔗 Связанные заметки
|
||||
|
||||
- [[Грокаем Continuous Delivery]]
|
||||
- [[Эволюционная архитектура. Поддержка непрерывных изменений]]
|
||||
- [[Принципы юнит-тестирования]]
|
||||
- [[Чистый код]]
|
||||
@ -0,0 +1,56 @@
|
||||
---
|
||||
Тип: Книга
|
||||
Статус: Запланировано
|
||||
Название: "Теоретический минимум по Computer Science. Все что нужно программисту и разработчику"
|
||||
Автор:
|
||||
- Владстон Феррейра Фило
|
||||
Количество страниц: 224
|
||||
Прогресс: 0
|
||||
Формат: Электронная
|
||||
Обложка: Библиотека/Книги/covers/teormin-cs-vse-chto-nuzhno.jpg
|
||||
Начата:
|
||||
Закончена:
|
||||
Оценка:
|
||||
Сложность:
|
||||
Теги:
|
||||
- computer_science
|
||||
- алгоритмы
|
||||
- математика
|
||||
- основы_программирования
|
||||
- теория
|
||||
Категории:
|
||||
- Программирование
|
||||
- Computer Science
|
||||
Источник:
|
||||
Ссылка:
|
||||
---
|
||||
|
||||
# Теоретический минимум по Computer Science. Все что нужно программисту и разработчику
|
||||
|
||||
![[covers/teormin-cs-vse-chto-nuzhno.jpg]]
|
||||
|
||||
## 📖 О книге
|
||||
|
||||
Владстон Феррейра Фило — бразильский инженер-программист — создал предельно компактное введение в теоретические основы CS, которые нужны каждому разработчику в повседневной работе. Книга читается за 1–2 недели и охватывает вычислительное мышление, алгоритмы, структуры данных, комбинаторику, вероятности и основы параллелизма без академической перегруженности. Богато иллюстрирована. Издательство «Питер», 2019, ISBN 978-5-4461-0587-8.
|
||||
|
||||
## 🧠 Ключевые идеи
|
||||
|
||||
- **Вычислительное мышление**: системный подход к декомпозиции и решению любых сложных задач — навык, применимый далеко за пределами программирования
|
||||
- **Алгоритмы и сложность**: сортировка, поиск, анализ O-нотации — фундамент, который позволяет оценивать и сравнивать решения профессионально
|
||||
- **Комбинаторика и вероятности**: математический минимум, необходимый для понимания хеширования, случайных алгоритмов и анализа данных
|
||||
- **Параллелизм и кэширование**: базовые концепции производительности объяснены через бытовые метафоры — готовка на кухне, укладка рюкзака
|
||||
- **Компактность как принцип**: всё только самое важное — книга даёт фундамент для освоения любой технологии, не перегружая деталями конкретных языков
|
||||
|
||||
## 💬 Важные цитаты
|
||||
|
||||
- «Упреждающая выборка и кэширование помогут сложить рюкзак, а параллелизм — приготовить обед»
|
||||
- «Вычислительное мышление — это навык решения проблем, а не знание языков программирования»
|
||||
|
||||
## 💡 Как применить в моих проектах
|
||||
|
||||
|
||||
## 🔗 Связанные заметки
|
||||
|
||||
- [[Теоретический минимум по Computer Science. Сети, криптография и data science]]
|
||||
- [[Грокаем алгоритмы]]
|
||||
- [[Алгоритмы. Руководство по разработке]]
|
||||
@ -0,0 +1,57 @@
|
||||
---
|
||||
Тип: Книга
|
||||
Статус: Запланировано
|
||||
Название: "Теоретический минимум по Computer Science. Сети, криптография и data science"
|
||||
Автор:
|
||||
- Владстон Феррейра Фило
|
||||
- Мото Пиктет
|
||||
Количество страниц: 284
|
||||
Прогресс: 0
|
||||
Формат: Электронная
|
||||
Обложка: Библиотека/Книги/covers/teormin-cs-seti-kriptografiya.jpg
|
||||
Начата:
|
||||
Закончена:
|
||||
Оценка:
|
||||
Сложность:
|
||||
Теги:
|
||||
- computer_science
|
||||
- сети
|
||||
- криптография
|
||||
- data_science
|
||||
- машинное_обучение
|
||||
Категории:
|
||||
- Программирование
|
||||
- Computer Science
|
||||
Источник:
|
||||
Ссылка:
|
||||
---
|
||||
|
||||
# Теоретический минимум по Computer Science. Сети, криптография и data science
|
||||
|
||||
![[covers/teormin-cs-seti-kriptografiya.jpg]]
|
||||
|
||||
## 📖 О книге
|
||||
|
||||
Владстон Феррейра Фило и Мото Пиктет продолжают серию «Теоретический минимум» — на этот раз охватывая три области, без которых невозможна современная разработка: сетевые технологии, криптографию и data science. Книга объясняет концепции через вопросы и реальные примеры, не требуя математического бэкграунда. Богато иллюстрирована. Издательство «Питер», 2022, ISBN 978-5-4461-2945-4.
|
||||
|
||||
## 🧠 Ключевые идеи
|
||||
|
||||
- **Сетевые технологии**: почему компьютерам нужны и MAC-, и IP-адреса, как работает DNS, TCP/IP и что происходит, когда вы открываете страницу в браузере
|
||||
- **Основы криптографии**: симметричное и асимметричное шифрование, как обменяться секретным ключом по открытому каналу, цифровые подписи и сертификаты
|
||||
- **Data Science и статистика**: почему средние значения могут вводить в заблуждение, основы вероятностей и статистического мышления для разработчиков
|
||||
- **Машинное обучение**: ключевые идеи без математических формул — как обучаются модели и что стоит за популярными алгоритмами
|
||||
- **Вопросы как инструмент**: каждая концепция вводится через реальный вопрос («Что делает кого-то истинным владельцем доменного имени?»), что формирует интуицию, а не просто знание
|
||||
|
||||
## 💬 Важные цитаты
|
||||
|
||||
- «Понимание того, как работает интернет, меняет отношение к каждой строке кода»
|
||||
- «Криптография — это не магия, это математика, которую можно понять за один вечер»
|
||||
|
||||
## 💡 Как применить в моих проектах
|
||||
|
||||
|
||||
## 🔗 Связанные заметки
|
||||
|
||||
- [[Теоретический минимум по Computer Science. Все что нужно программисту и разработчику]]
|
||||
- [[Компьютерные сети. Принципы, технологии, протоколы]]
|
||||
- [[Грокаем алгоритмы]]
|
||||
55
Knowledges/Библиотека/Книги/Тестирование веб-API.md
Normal file
@ -0,0 +1,55 @@
|
||||
---
|
||||
Тип: Книга
|
||||
Статус: Запланировано
|
||||
Название: Тестирование веб-API
|
||||
Автор:
|
||||
- Марк Винтерингем
|
||||
Количество страниц: 304
|
||||
Прогресс: 0
|
||||
Формат: Электронная
|
||||
Обложка: Библиотека/Книги/covers/testirovanie-veb-api.jpg
|
||||
Начата:
|
||||
Закончена:
|
||||
Оценка:
|
||||
Сложность:
|
||||
Теги:
|
||||
- тестирование
|
||||
- api
|
||||
- веб_разработка
|
||||
- автоматизация
|
||||
- qa
|
||||
Категории:
|
||||
- Программирование
|
||||
- Тестирование
|
||||
Источник:
|
||||
Ссылка:
|
||||
---
|
||||
|
||||
# Тестирование веб-API
|
||||
|
||||
![[covers/testirovanie-veb-api.jpg]]
|
||||
|
||||
## 📖 О книге
|
||||
|
||||
Практическое руководство Марка Винтерингема по тестированию веб-API от начального проектирования тест-сьюта до документирования и автоматизации. Книга охватывает исследовательское тестирование, тестирование контрактов, тестирование дизайна API и тестирование в production-среде. Издательство «Питер», 2024, серия «Библиотека программиста», перевод А. Гаврилова.
|
||||
|
||||
## 🧠 Ключевые идеи
|
||||
|
||||
- **Качество и риски как основа стратегии**: тестирование начинается с анализа рисков — что может пойти не так, для кого, и насколько критично; это определяет весь дальнейший подход
|
||||
- **Тестирование дизайна API**: проверять API нужно ещё на этапе проектирования контракта, до написания кода — ошибки в дизайне дороже всего исправлять постфактум
|
||||
- **Исследовательское тестирование**: структурированное исследование API вручную позволяет выявить уязвимости и неожиданное поведение, которое автоматизация пропускает
|
||||
- **Автоматизация с умом**: инструменты автоматизации экономят время, но не заменяют понимание; автотесты должны проверять именно то, что критично для бизнеса
|
||||
- **Тестирование контрактов**: consumer-driven contract testing гарантирует, что изменения в API не сломают зависимые сервисы — особенно важно в микросервисной архитектуре
|
||||
|
||||
## 💬 Важные цитаты
|
||||
|
||||
- «Тестирование API охватывает все этапы: от начального проектирования до методов документирования и предоставления высококачественных API»
|
||||
- «Практические примеры написаны на Java — что позволяет сосредоточиться на принципах, а не на особенностях конкретного языка»
|
||||
|
||||
## 💡 Как применить в моих проектах
|
||||
|
||||
|
||||
## 🔗 Связанные заметки
|
||||
|
||||
- [[Тестирование JavaScript]]
|
||||
- [[Принципы юнит-тестирования]]
|
||||
@ -0,0 +1,57 @@
|
||||
---
|
||||
Тип: Книга
|
||||
Статус: Запланировано
|
||||
Название: Ум программиста. Как понять и осмыслить любой код
|
||||
Автор:
|
||||
- Фелин Херманс
|
||||
Количество страниц: 272
|
||||
Прогресс: 0
|
||||
Формат: Электронная
|
||||
Обложка: Библиотека/Книги/covers/um-programmista.jpg
|
||||
Начата:
|
||||
Закончена:
|
||||
Оценка:
|
||||
Сложность:
|
||||
Теги:
|
||||
- когнитивистика
|
||||
- чтение_кода
|
||||
- программирование
|
||||
- продуктивность
|
||||
- обучение
|
||||
Категории:
|
||||
- Программирование
|
||||
- Профессиональный рост
|
||||
Источник:
|
||||
Ссылка:
|
||||
---
|
||||
|
||||
# Ум программиста. Как понять и осмыслить любой код
|
||||
|
||||
![[covers/um-programmista.jpg]]
|
||||
|
||||
## 📖 О книге
|
||||
|
||||
Книга Фелин Херманс — доцента Лейденского университета — применяет когнитивную науку к повседневной работе программиста. Автор объясняет, как мозг читает и понимает код, почему возникает замешательство при работе с чужим кодом и как снизить когнитивную нагрузку. Охватывает темы именования переменных, изучения новых языков программирования, парного программирования и поддержания кода в читаемом состоянии.
|
||||
|
||||
## 🧠 Ключевые идеи
|
||||
|
||||
- **Три типа памяти при чтении кода**: долговременная (хранилище знаний), кратковременная (временный буфер ~7 элементов) и рабочая (обработка информации) — понимание их работы помогает писать более понятный код
|
||||
- **Три источника замешательства**: нехватка фундаментальных знаний, нехватка нужной информации в моменте и недостаток вычислительных ресурсов мозга — каждый требует разного решения
|
||||
- **60% времени уходит на понимание кода**: большинство рабочего времени программист читает, а не пишет — это меняет приоритеты при проектировании читаемости
|
||||
- **11 ролей переменных**: классификация (счётчик, флаг, бродяга, контейнер и др.) помогает давать более точные имена и лучше понимать чужой код
|
||||
- **Когнитивная нагрузка и стиль кода**: camelCase эффективнее snake_case при поиске на 51,5%; интервальное повторение лучше всего закрепляет синтаксис новых языков
|
||||
|
||||
## 💬 Важные цитаты
|
||||
|
||||
- «Замешательство — неотъемлемая часть программирования»
|
||||
- «60% времени программистов тратится на понимание кода, а не на его написание»
|
||||
- «Программы должны писаться для того, чтобы их читали люди»
|
||||
|
||||
## 💡 Как применить в моих проектах
|
||||
|
||||
|
||||
## 🔗 Связанные заметки
|
||||
|
||||
- [[Чистый код]]
|
||||
- [[Совершенный код]]
|
||||
- [[Рефакторинг кода на JavaScript]]
|
||||
@ -0,0 +1,58 @@
|
||||
---
|
||||
Тип: Книга
|
||||
Статус: Запланировано
|
||||
Название: Человеческий фактор. Успешные проекты и команды
|
||||
Автор:
|
||||
- Том Демарко
|
||||
- Тимоти Листер
|
||||
Количество страниц: 288
|
||||
Прогресс: 0
|
||||
Формат: Электронная
|
||||
Обложка: Библиотека/Книги/covers/chelovecheskiy-faktor.jpg
|
||||
Начата:
|
||||
Закончена:
|
||||
Оценка:
|
||||
Сложность:
|
||||
Теги:
|
||||
- управление_командой
|
||||
- менеджмент
|
||||
- разработка_по
|
||||
- продуктивность
|
||||
- командная_работа
|
||||
Категории:
|
||||
- Программирование
|
||||
- Менеджмент
|
||||
Источник:
|
||||
Ссылка:
|
||||
---
|
||||
|
||||
# Человеческий фактор. Успешные проекты и команды
|
||||
|
||||
![[covers/chelovecheskiy-faktor.jpg]]
|
||||
|
||||
## 📖 О книге
|
||||
|
||||
Культовая книга Тома Демарко и Тимоти Листера о том, что главные проблемы разработки ПО имеют человеческую, а не техническую природу. Впервые опубликована в 1987 году, с тех пор стала обязательным чтением для менеджеров и тимлидов. Третье издание дополнено шестью новыми главами о дисфункциях руководства, современных рабочих процессах и природе эффективных совещаний.
|
||||
|
||||
## 🧠 Ключевые идеи
|
||||
|
||||
- **Главные проблемы — человеческие, не технические**: провалы проектов редко объясняются недостатком технологий — чаще причины в мотивации, коммуникации, культуре и условиях работы команды
|
||||
- **Кристаллизация команды**: настоящие высокоэффективные команды формируются через общую историю и социальные связи, а не по организационной схеме; нельзя «назначить» сплочённую команду
|
||||
- **Матричное подчинение разрушает продуктивность**: одновременное участие сотрудников в нескольких командах уничтожает командную идентичность и прерывает состояние потока, критичного для интеллектуального труда
|
||||
- **Рабочая среда имеет значение**: шум, open space и постоянные прерывания — главные враги концентрации; инвестиции в комфортное рабочее пространство окупаются многократно
|
||||
- **Нереалистичные сроки — антипаттерн**: давление дедлайнами не ускоряет работу, а накапливает технический долг и демотивирует команду; лучшие менеджеры защищают команду от внешнего давления
|
||||
|
||||
## 💬 Важные цитаты
|
||||
|
||||
- «Самый страшный грех руководителя — впустую тратить чужое время»
|
||||
- «Сложнейшие проблемы разработки ПО имеют человеческую, а не техническую природу»
|
||||
- «Одновременное вовлечение сотрудников в разные команды — верный способ остановить рост продуктивных команд»
|
||||
|
||||
## 💡 Как применить в моих проектах
|
||||
|
||||
|
||||
## 🔗 Связанные заметки
|
||||
|
||||
- [[Мифический человеко-месяц]]
|
||||
- [[Идеальный программист]]
|
||||
- [[Как пасти котов]]
|
||||
@ -0,0 +1,59 @@
|
||||
---
|
||||
Тип: Книга
|
||||
Статус: Запланировано
|
||||
Название: Эволюционная архитектура. Поддержка непрерывных изменений
|
||||
Автор:
|
||||
- Нил Форд
|
||||
- Ребекка Парсонс
|
||||
- Патрик Куа
|
||||
Количество страниц: 272
|
||||
Прогресс: 0
|
||||
Формат: Электронная
|
||||
Обложка: Библиотека/Книги/covers/evolyucionnaya-arhitektura.jpg
|
||||
Начата:
|
||||
Закончена:
|
||||
Оценка:
|
||||
Сложность:
|
||||
Теги:
|
||||
- архитектура
|
||||
- эволюционная_архитектура
|
||||
- fitness_function
|
||||
- проектирование
|
||||
- микросервисы
|
||||
Категории:
|
||||
- Программирование
|
||||
- Проектирование систем
|
||||
Источник:
|
||||
Ссылка:
|
||||
---
|
||||
|
||||
# Эволюционная архитектура. Поддержка непрерывных изменений
|
||||
|
||||
![[covers/evolyucionnaya-arhitektura.jpg]]
|
||||
|
||||
## 📖 О книге
|
||||
|
||||
Нил Форд, Ребекка Парсонс и Патрик Куа предлагают подход к созданию архитектур, способных эволюционировать под влиянием непрерывных изменений. Центральная концепция — fitness functions (функции пригодности): автоматизированные проверки, защищающие ключевые характеристики системы на каждом этапе деплоя. Книга разбирает технические и организационные факторы, влияющие на эволюционируемость. Издательство «Питер», 2019, серия «Бестселлеры O'Reilly».
|
||||
|
||||
## 🧠 Ключевые идеи
|
||||
|
||||
- **Fitness Functions — защита архитектурных инвариантов**: автоматизированные функции пригодности встраиваются в CI/CD-пайплайн и проверяют, что важнейшие свойства системы (производительность, связность, безопасность) не деградируют при изменениях
|
||||
- **Incremental change — эволюция малыми шагами**: архитектура должна позволять вносить изменения постепенно и независимо; монолитные деплои делают эволюцию слишком рискованной
|
||||
- **Закон Конвея работает в обе стороны**: структура команд влияет на архитектуру — и наоборот; сознательное выравнивание организационных границ с архитектурными контекстами ускоряет эволюцию
|
||||
- **Жертвенная архитектура (Sacrificial Architecture)**: иногда правильнее построить систему, зная, что её придётся выбросить — это позволяет быстро проверить гипотезы без груза «вечного» дизайна
|
||||
- **Архитектурные антипаттерны**: «Resume-Driven Development» (выбор технологий ради CV), последний хороший архитектор, «Большое колесо грязи» — типичные ловушки, разобранные на реальных примерах
|
||||
|
||||
## 💬 Важные цитаты
|
||||
|
||||
- «Время цикла — критическая метрика эволюционной архитектуры: более быстрое время цикла подразумевает более быструю способность к эволюции»
|
||||
- «Архитекторы задают инварианты в ключевых точках интеграции в виде фитнес-функций, которые запускаются в рамках пайплайна развёртывания»
|
||||
|
||||
## 💡 Как применить в моих проектах
|
||||
|
||||
|
||||
## 🔗 Связанные заметки
|
||||
|
||||
- [[Фундаментальный подход к программной архитектуре]]
|
||||
- [[Чистая архитектура]]
|
||||
- [[Грокаем Continuous Delivery]]
|
||||
- [[System Design. Пережить интервью]]
|
||||