Compare commits

...

4 Commits

31 changed files with 905 additions and 95 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
/Knowledges/.obsidian/workspace.json

View File

@ -0,0 +1,65 @@
---
name: add-book
description: Добавить книгу в Obsidian vault. Используй когда пользователь пишет "/add-book" или просит добавить книгу с конкретными данными.
version: 1.0.0
---
Добавь книгу в Obsidian vault по данным: $ARGUMENTS
## Что сделать
1. Поищи информацию о книге в интернете (WebSearch):
- Количество страниц русскоязычного издания
- URL обложки русскоязычного издания (приоритет: Лабиринт, Ozon, издательство)
- Краткое описание книги на русском
- 35 ключевых идей/тезисов
- 13 известные цитаты (если есть)
2. Скачай обложку через Bash (`curl -L "<url>" -o "Библиотека/Книги/covers/<slug>.jpg"`)
3. Создай файл `Библиотека/Книги/<Название>.md` по шаблону ниже, заполнив все найденные данные
- Поле `Ссылка` всегда оставляй пустым
## Шаблон
```markdown
---
Тип: Книга
Статус: Запланировано
Название: <название>
Автор:
- <автор>
Количество страниц: <число>
Прогресс: 0
Формат: Электронная
Обложка: Библиотека/Книги/covers/<slug>.jpg
Начата:
Закончена:
Оценка:
Сложность:
Теги:
- <тег>
Категории:
- <категория>
Источник:
Ссылка:
---
# <Название>
## 📖 О книге
## 🧠 Ключевые идеи
## 💬 Важные цитаты
## 💡 Как применить в моих проектах
## 🔗 Связанные заметки
```
**Статус:** `Запланировано` | `В процессе` | `Прочитано` | `Заброшена`
**Формат:** `Бумажная` | `Электронная` | `Аудио`

View File

@ -0,0 +1,60 @@
---
name: add-course
description: Добавить курс в Obsidian vault. Используй когда пользователь пишет "/add-course" или просит добавить курс с конкретными данными.
version: 1.0.0
---
Добавь курс в Obsidian vault по данным: $ARGUMENTS
## Что сделать
1. Создай файл `Библиотека/Курсы/<Название>.md` по шаблону ниже
2. Заполни frontmatter из предоставленных данных; чего нет — оставь пустым
3. Сделай git commit: `добавлен курс: <Название>`
## Шаблон
```markdown
---
Тип: Курс
Статус: Запланировано
Название: <название>
Платформа: YouTube
Автор/Лектор:
- <автор>
Длительность:
Прогресс: 0
Начат:
Закончен:
Оценка:
Сложность:
Теги:
- <тег>
Категория:
- Backend
Технологии:
- <технология>
Ссылка на курс: <url>
Репозиторий с кодом:
---
# <Название>
## 📖 О курсе
## ✅ Что нового я узнал
## 💡 Идеи для применения
## ❌ Что не понравилось
## 🔗 Связанные заметки
```
**Статус:** `Запланировано` | `В процессе` | `Пройден` | `Заброшен`
**Платформа:** `YouTube` | `Stepik` | `Coursera` | `Udemy` | `Другое`

3
Knowledges/.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
.obsidian/workspace.json

View File

@ -4,81 +4,52 @@
"type": "split",
"children": [
{
"id": "9d3653d1b092bda0",
"type": "split",
"id": "0765916286c4fc4a",
"type": "tabs",
"children": [
{
"id": "00ed27b7e981dd5e",
"type": "tabs",
"dimension": 69.37269372693727,
"children": [
{
"id": "5f180c1384d356a5",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "Библиотека/Книги/Профессиональный TypeScript.md",
"mode": "preview",
"source": true
"id": "a8a70f482a4ef196",
"type": "leaf",
"pinned": true,
"state": {
"type": "terminal:terminal",
"state": {
"terminal:terminal": {
"cwd": "/Users/ksv741/Obsidian/Knowledges",
"focus": false,
"profile": {
"args": [
"--login"
],
"executable": "/bin/zsh",
"followTheme": true,
"name": "",
"platforms": {
"darwin": true
},
"pythonExecutable": "python3",
"restoreHistory": false,
"rightClickAction": "copyPaste",
"successExitCodes": [
"0",
"SIGINT",
"SIGTERM"
],
"terminalOptions": {
"documentOverride": null
},
"type": "integrated",
"useWin32Conhost": true
},
"icon": "lucide-file",
"title": "Профессиональный TypeScript"
"serial": null
}
}
]
},
{
"id": "0765916286c4fc4a",
"type": "tabs",
"dimension": 30.627306273062732,
"children": [
{
"id": "a8a70f482a4ef196",
"type": "leaf",
"pinned": true,
"state": {
"type": "terminal:terminal",
"state": {
"terminal:terminal": {
"cwd": "/Users/ksv741/Obsidian/Knowledges",
"focus": false,
"profile": {
"args": [
"--login"
],
"executable": "/bin/zsh",
"followTheme": true,
"name": "",
"platforms": {
"darwin": true
},
"pythonExecutable": "python3",
"restoreHistory": false,
"rightClickAction": "copyPaste",
"successExitCodes": [
"0",
"SIGINT",
"SIGTERM"
],
"terminalOptions": {
"documentOverride": null
},
"type": "integrated",
"useWin32Conhost": true
},
"serial": null
}
},
"pinned": true,
"icon": "terminal",
"title": "Terminal: ksv741@MacBook-Pro-Sergey:~/Obsidian/Knowledges"
}
}
]
},
"pinned": true,
"icon": "terminal",
"title": "Terminal: ✳ Claude Code"
}
}
],
"direction": "horizontal"
]
}
],
"direction": "vertical"
@ -98,7 +69,7 @@
"type": "file-explorer",
"state": {
"sortOrder": "alphabetical",
"autoReveal": false
"autoReveal": true
},
"icon": "lucide-folder-closed",
"title": "Файловый менеджер"
@ -223,8 +194,7 @@
}
],
"direction": "horizontal",
"width": 588.5,
"collapsed": true
"width": 588.5
},
"left-ribbon": {
"hiddenItems": {
@ -241,30 +211,33 @@
},
"active": "a8a70f482a4ef196",
"lastOpenFiles": [
"Библиотека/Книги/Профессиональный TypeScript.md",
"Библиотека/Книги/Современные операционные системы.md",
"Библиотека/Книги/Список книг.md",
"Библиотека/Книги/Рефакторинг кода на JavaScript.md",
"Библиотека/Книги/covers/refactoring-js.jpg",
"Библиотека/Книги/Чистая архитектура.md",
"Библиотека/Книги/covers/clean-architecture.jpg",
"Библиотека/Книги/covers/modern-os.jpg",
"CLAUDE.md",
"Библиотека/Книги/Git для профессионалов.md",
"Библиотека/Книги/Чистый код.md",
"Библиотека/Книги/Совершенный код.md",
"Библиотека/Книги/Профессиональный TypeScript.md",
"Библиотека/Книги/Компьютерные сети. Принципы, технологии, протоколы.md",
"Библиотека/Книги/Командная строка Linux.md",
"Библиотека/Книги/Как пасти котов.md",
"Библиотека/Книги/Грокаем алгоритмы.md",
"Библиотека/Книги/Высоконагруженные приложения. Программирование, масштабирование, поддержка.md",
"Библиотека/Книги/covers/refactoring-js.jpg",
"Библиотека/Книги/covers/professional-typescript.jpg",
"Библиотека/Книги/covers/grokking-algorithms.jpg",
"Библиотека/Курсы/Тиндер на Java.md",
"Библиотека/Курсы/Микросервисы на практике - сервис продажи билетов.md",
"Без названия.canvas",
"Библиотека/Книги/Высоконагруженные приложения. Программирование, масштабирование, поддержка.md",
"Библиотека/Книги/Как пасти котов.md",
"Библиотека/Книги/Командная строка Linux.md",
"Библиотека/Книги/Совершенный код.md",
"Библиотека/Книги/Список книг.md",
"Библиотека/Книги/Чистый код.md",
"Библиотека/Книги/Git для профессионалов.md",
"Библиотека/Книги/covers/herding-cats.jpg",
"Библиотека/Книги/covers/linux-cli.jpg",
"Библиотека/Книги/covers/pro-git.jpg",
"Библиотека/Книги/covers/linux-cli.png",
"Библиотека/Книги/covers/pro-git.png",
"Библиотека/Книги/covers/code-complete.jpg",
"Библиотека/Книги/covers/clean-code.jpg",
"Шаблоны/course_template.md.md",
"Библиотека/AI Tools/System Prompts.md",
"Библиотека/AI Tools/Agents.md",
@ -278,11 +251,8 @@
"IT/Принципы/Принцип открытости-закрытости.md",
"IT/Принципы/Принцип подстановки Лисков.md",
"IT/Рефакторинг/Рефакторинг.md",
"Библиотека/Туториалы/Wireguard.md",
"Untitled.base",
"Без названия.md",
"Библиотека/Книги/covers",
"IT/Алгоритмы/Алгоритм Диффи — Хеллмана (DiffieHellman).md",
"Шаблоны",
"Библиотека/Туториалы",
"Библиотека/Курсы",

65
Knowledges/CLAUDE.md Normal file
View File

@ -0,0 +1,65 @@
# CLAUDE.md — Obsidian Vault: Knowledges
## Что это
Личная база знаний в Obsidian. Хранит книги, курсы, туториалы, pet-проекты, IT-заметки.
## Структура vault
```
Knowledges/
├── Библиотека/
│ ├── Книги/ ← заметки по книгам + covers/
│ ├── Курсы/ ← заметки по курсам
│ ├── Туториалы/
│ ├── Pet проекты/
│ ├── AI Tools/
│ └── Фильмы/
├── IT/
│ ├── Паттерны/
│ ├── Парадигмы/
│ ├── Принципы/
│ ├── Алгоритмы/
│ ├── Структуры данных/
│ └── Рефакторинг/
├── Шаблоны/ ← шаблоны (book_template, course_template)
└── _assets/ ← медиафайлы
```
## Шаблоны и frontmatter
### Книга (`Библиотека/Книги/<Название>.md`)
Frontmatter поля: `Тип`, `Статус`, `Название`, `Автор` (список), `Количество страниц`, `Прогресс`, `Формат`, `Обложка`, `Начата`, `Закончена`, `Оценка` (1-10), `Сложность` (1-10), `Теги` (список), `Категории` (список), `Источник`, `Ссылка`
- **Статус:** `Запланировано` | `В процессе` | `Прочитано` | `Заброшена`
- **Формат:** `Бумажная` | `Электронная` | `Аудио`
- Обложки: `Библиотека/Книги/covers/<slug>.jpg`
### Курс (`Библиотека/Курсы/<Название>.md`)
Frontmatter поля: `Тип`, `Статус`, `Название`, `Платформа`, `Автор/Лектор` (список), `Длительность`, `Прогресс`, `Начат`, `Закончен`, `Оценка`, `Сложность`, `Теги` (список), `Категория` (список), `Технологии` (список), `Ссылка на курс`, `Репозиторий с кодом`
- **Статус:** `Запланировано` | `В процессе` | `Пройден` | `Заброшен`
- **Платформа:** `YouTube` | `Stepik` | `Coursera` | `Udemy` | `Другое`
### IT-заметки (`IT/<Раздел>/<Название>.md`)
Без frontmatter. Теги inline (`#тег`), wikilinks `[[Название]]`.
## Форматирование
- Дата: `DD.MM.YYYY`
- Теги: lowercase, underscore для составных (`#структуры_данных`)
- Секции с эмодзи: `📖`, `🧠`, `💬`, `💡`, `🔗` — как в шаблонах
- Заголовки разделов из шаблонов не менять
## Коммиты
- Язык: русский, краткий императив
- Примеры: `добавлена книга: Clean Code`, `добавлен курс: Тиндер на Java`
- Стейджить только конкретные файлы, **никогда `git add -A` или `git add .`**
## Навык /obsidian
Для работы с vault подключён skill `obsidian` (`.claude/skills/obsidian/SKILL.md`). Он описывает полный workflow добавления заметок — использовать его как основу.

View File

@ -6,13 +6,13 @@
- Чакон Скотт
- Штрауб Бен
Количество страниц: 530
Прогресс: 0
Формат:
Прогресс: 530
Формат: Бумажная
Обложка: Библиотека/Книги/covers/pro-git.jpg
Начата:
Закончена:
Оценка:
Сложность:
Начата: "2025"
Закончена: "2025"
Оценка: "10"
Сложность: "8"
Теги:
- it
- git

View File

@ -0,0 +1,56 @@
---
Тип: Книга
Статус: Прочитано
Название: SQL. Быстрое погружение
Автор:
- Уолтер Шилдс
Количество страниц: 224
Прогресс: 224
Формат: Бумажная
Обложка: Библиотека/Книги/covers/sql-quickstart.jpg
Начата: "2025"
Закончена: "2025"
Оценка: "8"
Сложность: 6/10
Теги:
- it
- programming
- sql
- databases
Категории:
- базы данных
- программирование
Источник:
Ссылка:
---
![[covers/sql-quickstart.jpg]]
# SQL. Быстрое погружение
## 📖 О книге
Доступное введение в SQL для тех, кто хочет быстро освоить работу с базами данных. Уолтер Шилдс объясняет основы реляционных БД, синтаксис запросов и работу с данными без лишней теории. Книга подойдёт разработчикам, которым нужно уверенно писать запросы, аналитикам и всем, кто хочет понять, как данные хранятся и извлекаются. Примеры практичны и применимы сразу.
---
## 🧠 Ключевые идеи
- **Реляционная модель**: таблицы, строки, столбцы и первичные ключи — базовые абстракции, на которых строится всё остальное
- **SELECT — сердце SQL**: фильтрация (WHERE), сортировка (ORDER BY), группировка (GROUP BY) и агрегатные функции покрывают 80% повседневных задач
- **JOIN как связывание таблиц**: понимание INNER, LEFT, RIGHT JOIN и их разницы — ключевой навык для работы с реальными схемами данных
- **Подзапросы и CTE**: вложенные запросы и `WITH`-выражения делают сложную логику читаемой и переиспользуемой
- **DDL vs DML**: CREATE/ALTER/DROP управляют структурой, INSERT/UPDATE/DELETE — данными; важно понимать оба уровня
---
## 💬 Важные цитаты
---
## 💡 Как применить в моих проектах
---
## 🔗 Связанные заметки
- [[Высоконагруженные приложения. Программирование, масштабирование, поддержка]]

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 172 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 139 B

After

Width:  |  Height:  |  Size: 531 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

View File

@ -0,0 +1,56 @@
---
Тип: Книга
Статус: Прочитано
Название: Алгоритмы. Руководство по разработке. 3-е изд.
Автор:
- Стивен Скиена
Количество страниц: 848
Прогресс: 848
Формат: Бумажная
Обложка: Библиотека/Книги/covers/algorithm-design-manual.jpg
Начата: "2025"
Закончена: "2025"
Оценка: "8"
Сложность: 10/10
Теги:
- it
- programming
- algorithms
- computer-science
Категории:
- алгоритмы
- программирование
Источник:
Ссылка:
---
![[covers/algorithm-design-manual.jpg]]
# Алгоритмы. Руководство по разработке. 3-е изд.
## 📖 О книге
Один из главных академических трудов по алгоритмам, написанный для практикующих разработчиков. Книга состоит из двух частей: первая — теория и практика проектирования алгоритмов (сортировка, графы, динамическое программирование, эвристики), вторая — каталог из 75 классических алгоритмических задач с готовыми решениями и ссылками на реализации. В 3-м издании расширены разделы по рандомизированным алгоритмам, хешированию и квантовым вычислениям.
---
## 🧠 Ключевые идеи
- **Алгоритм = правильная структура данных + правильная техника**: выбор структуры данных часто важнее выбора алгоритма — хорошая структура делает алгоритм тривиальным
- **Каталог задач как ключевой инструмент**: большинство реальных задач сводятся к известным алгоритмическим проблемам; умение распознать задачу важнее знания алгоритма наизусть
- **Динамическое программирование через рекуррентность**: DP — это управляемый перебор с мемоизацией; ключ — правильно определить подзадачу
- **Эвристики для NP-полных задач**: не все задачи требуют точного решения; жадные алгоритмы, имитация отжига, генетические алгоритмы дают приемлемый результат на практике
- **Анализ сложности как язык**: O-нотация — не формальность, а инструмент коммуникации и принятия решений при проектировании систем
---
## 💬 Важные цитаты
> «Правильный алгоритм — это тот, который решает задачу. Хороший алгоритм — тот, который делает это эффективно. Но сначала нужно убедиться, что вы решаете правильную задачу.»
---
## 💡 Как применить в моих проектах
---
## 🔗 Связанные заметки
- [[Грокаем алгоритмы]]

View File

@ -0,0 +1,57 @@
---
Тип: Книга
Статус: Прочитано
Название: Дизайн для разработчиков
Автор:
- Стефани Стимак
Количество страниц: 304
Прогресс: 304
Формат: Бумажная
Обложка: Библиотека/Книги/covers/design-for-developers.jpg
Начата: "2024"
Закончена: "2024"
Оценка: "6"
Сложность: 4/10
Теги:
- it
- programming
- design
- css
- ux
Категории:
- разработка программного обеспечения
- веб-дизайн
Источник:
Ссылка:
---
![[covers/design-for-developers.jpg]]
# Дизайн для разработчиков
## 📖 О книге
Практическое руководство по дизайну для тех, кто умеет писать код, но теряется перед Figma и цветовыми палитрами. Стефани Стимак объясняет базовые принципы дизайна — типографику, цвет, layout, пространство — на понятном разработчику языке. Книга не делает из программиста дизайнера, но даёт достаточно знаний, чтобы создавать приятные интерфейсы самостоятельно и грамотно общаться с дизайн-командой.
---
## 🧠 Ключевые идеи
- **Типографика — основа читаемости**: выбор шрифта, межстрочный интервал и иерархия заголовков влияют на восприятие контента сильнее, чем цвет
- **Цветовые модели и контраст**: понимание HSL, цветовых колёс и требований доступности (WCAG) позволяет строить палитры осознанно, а не наугад
- **Принципы layout**: сетки, отступы, выравнивание — не эстетика, а инструменты визуальной иерархии, которые направляют взгляд пользователя
- **Исследование пользователей**: даже минимальное UX-исследование (карты путей, персонажи) помогает принимать более обоснованные дизайн-решения
- **Дизайн-системы для разработчиков**: компонентный подход в дизайне параллелен компонентному подходу в коде — токены, переменные, переиспользуемые блоки
---
## 💬 Важные цитаты
> «Хороший дизайн незаметен. Плохой дизайн кричит о себе
---
## 💡 Как применить в моих проектах
---
## 🔗 Связанные заметки

View File

@ -0,0 +1,61 @@
---
Тип: Книга
Статус: Прочитано
Название: Идеальная работа. Программирование без прикрас
Автор:
- Роберт Мартин
Количество страниц: 384
Прогресс: 384
Формат: Бумажная
Обложка: Библиотека/Книги/covers/clean-craftsmanship.jpg
Начата:
Закончена: "2023"
Оценка: "6"
Сложность: 6/10
Теги:
- it
- programming
- craftsmanship
- tdd
- soft-skills
Категории:
- разработка программного обеспечения
- профессиональный рост
Источник:
Ссылка:
---
![[covers/clean-craftsmanship.jpg]]
# Идеальная работа. Программирование без прикрас
## 📖 О книге
Последняя книга Роберта Мартина в серии «идеального» программирования. Здесь он идёт дальше «Идеального программиста» и говорит о дисциплинах, стандартах и этике разработки. Центральная тема — TDD как основа профессиональной дисциплины, а также принципы командной работы и этические обязательства разработчика перед обществом.
---
## 🧠 Ключевые идеи
- **TDD — не опция, а профессиональная обязанность**: писать код без тестов — всё равно что хирург, отказывающийся мыть руки
- **Дисциплина важнее мотивации**: профессионалы следуют практикам всегда, а не только когда есть настроение
- **Простой дизайн**: код должен делать ровно то, что нужно сейчас — не больше и не меньше; YAGNI и DRY как базовые принципы
- **Этика разработчика**: программисты несут ответственность перед обществом — плохой код в критических системах может стоить жизней
- **Парное программирование и наставничество** как инструменты передачи знаний и повышения качества кода
---
## 💬 Важные цитаты
> «Тест, написанный после кода — это не тест, это просто проверка. Настоящий тест пишется до.»
> «Профессионализм — это дисциплина. Дисциплина — это делать правильные вещи даже тогда, когда не хочется.»
---
## 💡 Как применить в моих проектах
---
## 🔗 Связанные заметки
- [[Идеальный программист]]
- [[Чистый код]]
- [[Чистая архитектура]]

View File

@ -0,0 +1,59 @@
---
Тип: Книга
Статус: Прочитано
Название: Идеальный программист. Как стать профессионалом разработки ПО
Автор:
- Роберт Мартин
Количество страниц: 384
Прогресс: 384
Формат: Бумажная
Обложка: Библиотека/Книги/covers/clean-coder.jpg
Начата:
Закончена: "2023"
Оценка: "8"
Сложность: 6/10
Теги:
- it
- programming
- soft-skills
- career
Категории:
- разработка программного обеспечения
- профессиональный рост
Источник:
Ссылка:
---
![[covers/clean-coder.jpg]]
# Идеальный программист. Как стать профессионалом разработки ПО
## 📖 О книге
Книга Роберта Мартина о том, что значит быть профессиональным программистом. В отличие от «Чистого кода», здесь почти нет технических советов — речь о профессиональном поведении: как говорить «нет», как оценивать задачи, как работать под давлением, как управлять временем и взаимодействовать с командой. По сути — кодекс поведения разработчика.
---
## 🧠 Ключевые идеи
- **Умение говорить «нет»** — профессионал обязан честно сообщать о невозможности выполнить задачу в срок, а не соглашаться и потом подводить
- **Оценки — это вероятности**: называй три числа (лучший/средний/худший сценарий), а не одно магическое число
- **Работа под давлением**: настоящий профессионал не бросает практики (TDD, рефакторинг) в кризисных ситуациях — именно тогда они важнее всего
- **Тайм-боксинг и фокус**: техники управления вниманием (Pomodoro, flow) — инструменты, а не роскошь
- **Профессионализм = ответственность**: ты несёшь ответственность за свой код так же, как хирург — за операцию
---
## 💬 Важные цитаты
> «Говорить "да", когда нужно говорить "нет" — непрофессионально.»
> «Не позволяйте никому торопить вас настолько, чтобы вы нарушали дисциплину. Дисциплина — это защита, а не помеха.»
---
## 💡 Как применить в моих проектах
---
## 🔗 Связанные заметки
- [[Чистый код]]
- [[Чистая архитектура]]

View File

@ -0,0 +1,64 @@
---
Тип: Книга
Статус: Заброшена
Название: Паттерны объектно-ориентированного проектирования
Автор:
- Эрих Гамма
- Ричард Хелм
- Ральф Джонсон
- Джон Влиссидес
Количество страниц: 448
Прогресс:
Формат: Бумажная
Обложка: Библиотека/Книги/covers/gof-patterns.jpg
Начата: "2024"
Закончена:
Оценка: "10"
Сложность: 10/10
Теги:
- it
- programming
- patterns
- oop
- design-patterns
Категории:
- разработка программного обеспечения
- проектирование
Источник:
Ссылка:
---
![[covers/gof-patterns.jpg]]
# Паттерны объектно-ориентированного проектирования
## 📖 О книге
Культовая книга «Банды четырёх» (Gang of Four) — Гамма, Хелм, Джонсон и Влиссидес. Именно она ввела в обиход понятие «паттерн проектирования» применительно к ООП и описала 23 классических паттерна. Книга считается обязательной для каждого программиста, но читается тяжело: академический стиль, примеры на C++ и Smalltalk, высокая плотность концепций. Лучше воспринимается после практического опыта с проектированием.
---
## 🧠 Ключевые идеи
- **Паттерн = имя + проблема + решение + последствия**: стандартизированный словарь для обсуждения архитектурных решений в команде
- **Три категории**: порождающие (Abstract Factory, Builder, Singleton...), структурные (Adapter, Decorator, Proxy...), поведенческие (Observer, Strategy, Command...)
- **Принцип «программировать на интерфейс, а не на реализацию»**: зависимости от абстракций делают систему гибкой и расширяемой
- **Предпочитайте композицию наследованию**: паттерны вроде Decorator и Strategy показывают, как добавлять поведение без иерархий наследования
- **Открыто/закрытый принцип в действии**: хорошо спроектированные паттерны позволяют расширять поведение без изменения существующего кода
---
## 💬 Важные цитаты
> «Программируйте в расчёте на интерфейс, а не на реализацию.»
> «Предпочитайте композицию объектов наследованию классов.»
---
## 💡 Как применить в моих проектах
---
## 🔗 Связанные заметки
- [[Чистая архитектура]]
- [[IT/Паттерны/Декоратор]]
- [[IT/Паттерны/Стратегия]]

View File

@ -0,0 +1,59 @@
---
Тип: Книга
Статус: Прочитано
Название: Принципы юнит-тестирования
Автор:
- Владимир Хориков
Количество страниц: 320
Прогресс: 320
Формат: Бумажная
Обложка: Библиотека/Книги/covers/unit-testing.jpg
Начата: "2025"
Закончена: "2025"
Оценка: "9"
Сложность: 7/10
Теги:
- it
- programming
- testing
- tdd
Категории:
- разработка программного обеспечения
- тестирование
Источник:
Ссылка:
---
![[covers/unit-testing.jpg]]
# Принципы юнит-тестирования
## 📖 О книге
Одна из лучших книг о юнит-тестировании на практике. Владимир Хориков (Microsoft MVP) разбирает не просто «как писать тесты», а «что делает тест хорошим». Центральная идея — тесты должны проверять поведение, а не реализацию. Книга охватывает стили тестирования, работу с моками, архитектуру тестируемого кода и интеграционные тесты. Ориентирована на C#/.NET, но принципы универсальны.
---
## 🧠 Ключевые идеи
- **Четыре свойства хорошего теста**: защита от регрессий, устойчивость к рефакторингу, быстрая обратная связь, удобство сопровождения — и между ними неизбежный компромисс
- **Тестировать поведение, не реализацию**: тест, завязанный на детали реализации, хрупок — он будет ломаться при рефакторинге, не обнаруживая реальных багов
- **Моки — инструмент, не цель**: злоупотребление моками приводит к тестам, которые проверяют взаимодействие объектов вместо бизнес-результата
- **Классическая vs лондонская школа TDD**: классики тестируют единицы поведения, лондонцы — единицы кода; автор отдаёт предпочтение классическому подходу
- **Интеграционные тесты дополняют, не заменяют**: они покрывают то, что юнит-тесты не могут — взаимодействие с БД, файловой системой, внешними сервисами
---
## 💬 Важные цитаты
> «Тест, который не может сломаться при наличии бага, бесполезен. Тест, который ломается без бага, вреден.»
> «Цель юнит-тестирования — обеспечить устойчивый рост проекта, а не максимальное покрытие кода.»
---
## 💡 Как применить в моих проектах
---
## 🔗 Связанные заметки
- [[Чистый код]]
- [[Идеальная работа. Программирование без прикрас]]

View File

@ -7,7 +7,7 @@
Количество страниц: 448
Прогресс: 448
Формат: Электронная
Обложка: _assets/img/Pasted image 20241113230057.png
Обложка: Библиотека/Книги/covers/refactoring-js.jpg
Начата: "2024"
Закончена: "2024"
Оценка: "10"
@ -24,7 +24,7 @@
Ссылка:
---
![[Pasted image 20241113230057.png]]
![[covers/refactoring-js.jpg]]
# Рефакторинг кода на JavaScript. Улучшение проекта существующего кода

View File

@ -0,0 +1,59 @@
---
Тип: Книга
Статус: Прочитано
Название: Современные операционные системы. 4-е изд.
Автор:
- Эндрю Таненбаум
- Херберт Бос
Количество страниц: 1120
Прогресс: 1120
Формат: Бумажная
Обложка: Библиотека/Книги/covers/modern-os.jpg
Начата:
Закончена: "2023"
Оценка: "8"
Сложность: "10"
Теги:
- it
- programming
- os
- systems
Категории:
- программирование
- операционные системы
Источник:
Ссылка:
---
![[covers/modern-os.jpg]]
# Современные операционные системы. 4-е изд.
## 📖 О книге
Фундаментальный учебник Эндрю Таненбаума и Херберта Боса — один из главных академических трудов по теории и устройству операционных систем. Книга охватывает всё: управление процессами и потоками, управление памятью и файловыми системами, ввод/вывод, безопасность. В 4-м издании добавлены главы про Android, Windows 8.1, виртуализацию, многоядерные системы и облачные вычисления. Написана строго и академично — лёгкого чтения не обещает.
---
## 🧠 Ключевые идеи
- Процессы и потоки — базовые абстракции ОС; межпроцессное взаимодействие строится на разделяемой памяти, семафорах и передаче сообщений
- Управление памятью: виртуальная память, страничная организация, алгоритмы замещения страниц (LRU, NRU, рабочий набор)
- Планировщики CPU: round-robin, приоритетное планирование, многоуровневые очереди — каждый алгоритм решает свой класс задач
- Файловые системы: иерархия директорий, индексные узлы (inode), журналирование, RAID
- Безопасность ОС: модели разграничения доступа, переполнение буфера, механизмы защиты ядра
---
## 💬 Важные цитаты
> «Хорошей операционной системой является та, которая создаёт иллюзию наличия большого числа процессоров, бесконечного объёма памяти и надёжных устройств хранения данных.»
> «Разница между теорией и практикой на практике значительно больше, чем в теории.»
---
## 💡 Как применить в моих проектах
---
## 🔗 Связанные заметки
- [[Командная строка Linux]]

View File

@ -0,0 +1,57 @@
---
Тип: Книга
Статус: Прочитано
Название: Тестирование JavaScript
Автор:
- Лукас Коста
Количество страниц: 592
Прогресс: 592
Формат: Бумажная
Обложка: Библиотека/Книги/covers/testing-javascript.jpg
Начата: "2024"
Закончена: "2024"
Оценка: "10"
Сложность: 7/10
Теги:
- it
- programming
- testing
- javascript
Категории:
- разработка программного обеспечения
- тестирование
Источник:
Ссылка:
---
![[covers/testing-javascript.jpg]]
# Тестирование JavaScript
## 📖 О книге
Комплексное руководство по тестированию JavaScript-приложений от Лукаса Косты. Книга охватывает все уровни: от юнит-тестов до end-to-end, от тестирования фронтенда до серверного кода. Автор объясняет не только «как» писать тесты, но и «зачем» — как выстроить культуру качества в команде. Используются Jest, Cypress, Testing Library и другие современные инструменты.
---
## 🧠 Ключевые идеи
- **Пирамида тестирования**: юнит-тесты — быстрые и дешёвые, интеграционные — балансируют скорость и охват, e2e — медленные, но проверяют реальный пользовательский опыт
- **Тестирование поведения, а не реализации**: тесты должны имитировать то, что делает пользователь, а не проверять внутренние детали компонентов
- **Testing Library как стандарт**: запросы через доступные роли и метки (getByRole, getByLabelText) делают тесты устойчивее и ближе к реальному UX
- **Моки и стабы с умом**: изолировать зависимости нужно там, где они замедляют или усложняют тесты, а не везде подряд
- **Continuous Testing**: тесты в CI/CD как обязательная часть процесса — быстрая обратная связь предотвращает регрессии на ранних этапах
---
## 💬 Важные цитаты
> «Тесты — это не затраты, это инвестиции. Они экономят время в долгосрочной перспективе.»
---
## 💡 Как применить в моих проектах
---
## 🔗 Связанные заметки
- [[Принципы юнит-тестирования]]
- [[Рефакторинг кода на JavaScript]]

View File

@ -0,0 +1,58 @@
---
Тип: Книга
Статус: Прочитано
Название: Чистая архитектура. Искусство разработки программного обеспечения
Автор:
- Роберт Мартин
Количество страниц: 352
Прогресс: 352
Формат: Бумажная
Обложка: Библиотека/Книги/covers/clean-architecture.jpg
Начата:
Закончена: "2023"
Оценка: "8"
Сложность:
Теги:
- it
- programming
- architecture
- clean-code
Категории:
- разработка программного обеспечения
- архитектура
Источник:
Ссылка:
---
![[covers/clean-architecture.jpg]]
# Чистая архитектура. Искусство разработки программного обеспечения
## 📖 О книге
Книга Роберта Мартина о принципах построения хорошей программной архитектуры. Автор объясняет, что архитектура — это не про фреймворки и инструменты, а про разделение ответственностей и управление зависимостями. В центре — принципы SOLID, компонентная архитектура и «кричащая архитектура», где структура проекта отражает его предметную область, а не технологический стек.
---
## 🧠 Ключевые идеи
- **Главная цель архитектуры** — минимизировать человеческие усилия на создание и поддержку системы, а не просто заставить её работать
- **Зависимости должны смотреть внутрь** (Dependency Rule): код бизнес-логики не должен зависеть от фреймворков, БД или UI — только наоборот
- **SOLID на уровне компонентов**: принципы стабильных зависимостей (SDP) и стабильных абстракций (SAP) — архитектурный аналог принципов классового дизайна
- **Фреймворки — это детали**: Spring, Rails, Django — инструменты, а не основа архитектуры; их нужно держать на периферии
- **Разделение на слои**: Entities → Use Cases → Interface Adapters → Frameworks & Drivers — каждый слой знает только о слоях внутри себя
---
## 💬 Важные цитаты
> «Цель архитектуры программного обеспечения — уменьшить человеческие трудозатраты на создание и сопровождение системы.»
> «Хорошая архитектура делает систему простой для понимания, разработки, сопровождения и развёртывания.»
---
## 💡 Как применить в моих проектах
---
## 🔗 Связанные заметки
- [[Чистый код]]

View File

@ -0,0 +1,59 @@
---
Тип: Книга
Статус: Прочитано
Название: Чистый Agile. Основы гибкости
Автор:
- Роберт Мартин
Количество страниц: 270
Прогресс: 270
Формат: Бумажная
Обложка: Библиотека/Книги/covers/clean-agile.jpg
Начата: "2024"
Закончена: "2024"
Оценка: "6"
Сложность: 5/10
Теги:
- it
- agile
- management
- soft-skills
Категории:
- разработка программного обеспечения
- управление проектами
Источник:
Ссылка:
---
![[covers/clean-agile.jpg]]
# Чистый Agile. Основы гибкости
## 📖 О книге
Роберт Мартин возвращается к истокам Agile — к Agile-манифесту 2001 года, у создания которого он сам присутствовал. Книга написана как ответ на то, чем Agile стал сегодня: раздутые фреймворки, бюрократия, SAFe и прочие «корпоративные agile». Мартин напоминает, что Agile — это про маленькие команды, короткие итерации и честную обратную связь, а не про сертификации и доски в Jira.
---
## 🧠 Ключевые идеи
- **Agile — это малое**: небольшие команды (512 человек), короткие итерации (12 недели), частые поставки работающего кода
- **Железный крест**: быстро, качественно, дёшево, с нужным функционалом — выбери три; Agile помогает управлять этим компромисом явно
- **TDD и рефакторинг — технические основы Agile**: без инженерных практик XP гибкость превращается в хаос
- **Velocity — инструмент планирования, не KPI**: скорость команды нельзя использовать для давления, только для прогнозирования
- **Agile — не процесс, а набор дисциплин**: стенд-апы, ретроспективы, планирование итераций имеют смысл только если команда реально следует принципам
---
## 💬 Важные цитаты
> «Agile — это не то, что вы делаете. Это то, чем вы являетесь.»
> «Большинство проблем Agile возникло из-за того, что люди приняли церемонии Agile, отказавшись от его дисциплин.»
---
## 💡 Как применить в моих проектах
---
## 🔗 Связанные заметки
- [[Идеальный программист]]
- [[Чистая архитектура]]