Compare commits
No commits in common. "fc1364e8c14644af15cced9833c8450af03a6ebd" and "ff02e4cee4f14bb7deb49ff61cf9e3795d294f5c" have entirely different histories.
fc1364e8c1
...
ff02e4cee4
2
.gitignore
vendored
@ -1,2 +0,0 @@
|
||||
|
||||
/Knowledges/.obsidian/workspace.json
|
||||
@ -1,65 +0,0 @@
|
||||
---
|
||||
name: add-book
|
||||
description: Добавить книгу в Obsidian vault. Используй когда пользователь пишет "/add-book" или просит добавить книгу с конкретными данными.
|
||||
version: 1.0.0
|
||||
---
|
||||
|
||||
Добавь книгу в Obsidian vault по данным: $ARGUMENTS
|
||||
|
||||
## Что сделать
|
||||
|
||||
1. Поищи информацию о книге в интернете (WebSearch):
|
||||
- Количество страниц русскоязычного издания
|
||||
- URL обложки русскоязычного издания (приоритет: Лабиринт, Ozon, издательство)
|
||||
- Краткое описание книги на русском
|
||||
- 3–5 ключевых идей/тезисов
|
||||
- 1–3 известные цитаты (если есть)
|
||||
2. Скачай обложку через Bash (`curl -L "<url>" -o "Библиотека/Книги/covers/<slug>.jpg"`)
|
||||
3. Создай файл `Библиотека/Книги/<Название>.md` по шаблону ниже, заполнив все найденные данные
|
||||
- Поле `Ссылка` всегда оставляй пустым
|
||||
|
||||
## Шаблон
|
||||
|
||||
```markdown
|
||||
---
|
||||
Тип: Книга
|
||||
Статус: Запланировано
|
||||
Название: <название>
|
||||
Автор:
|
||||
- <автор>
|
||||
Количество страниц: <число>
|
||||
Прогресс: 0
|
||||
Формат: Электронная
|
||||
Обложка: Библиотека/Книги/covers/<slug>.jpg
|
||||
Начата:
|
||||
Закончена:
|
||||
Оценка:
|
||||
Сложность:
|
||||
Теги:
|
||||
- <тег>
|
||||
Категории:
|
||||
- <категория>
|
||||
Источник:
|
||||
Ссылка:
|
||||
---
|
||||
|
||||
# <Название>
|
||||
|
||||
## 📖 О книге
|
||||
|
||||
|
||||
## 🧠 Ключевые идеи
|
||||
|
||||
|
||||
## 💬 Важные цитаты
|
||||
|
||||
|
||||
## 💡 Как применить в моих проектах
|
||||
|
||||
|
||||
## 🔗 Связанные заметки
|
||||
|
||||
```
|
||||
|
||||
**Статус:** `Запланировано` | `В процессе` | `Прочитано` | `Заброшена`
|
||||
**Формат:** `Бумажная` | `Электронная` | `Аудио`
|
||||
@ -1,60 +0,0 @@
|
||||
---
|
||||
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
@ -1,3 +0,0 @@
|
||||
.obsidian/workspace.json
|
||||
|
||||
|
||||
66
Knowledges/.obsidian/workspace.json
vendored
@ -3,9 +3,35 @@
|
||||
"id": "ca9084539d3057c8",
|
||||
"type": "split",
|
||||
"children": [
|
||||
{
|
||||
"id": "9d3653d1b092bda0",
|
||||
"type": "split",
|
||||
"children": [
|
||||
{
|
||||
"id": "00ed27b7e981dd5e",
|
||||
"type": "tabs",
|
||||
"dimension": 69.37269372693727,
|
||||
"children": [
|
||||
{
|
||||
"id": "5f180c1384d356a5",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "markdown",
|
||||
"state": {
|
||||
"file": "Библиотека/Книги/Профессиональный TypeScript.md",
|
||||
"mode": "preview",
|
||||
"source": true
|
||||
},
|
||||
"icon": "lucide-file",
|
||||
"title": "Профессиональный TypeScript"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "0765916286c4fc4a",
|
||||
"type": "tabs",
|
||||
"dimension": 30.627306273062732,
|
||||
"children": [
|
||||
{
|
||||
"id": "a8a70f482a4ef196",
|
||||
@ -46,12 +72,15 @@
|
||||
},
|
||||
"pinned": true,
|
||||
"icon": "terminal",
|
||||
"title": "Terminal: ✳ Claude Code"
|
||||
"title": "Terminal: ksv741@MacBook-Pro-Sergey:~/Obsidian/Knowledges"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"direction": "horizontal"
|
||||
}
|
||||
],
|
||||
"direction": "vertical"
|
||||
},
|
||||
"left": {
|
||||
@ -69,7 +98,7 @@
|
||||
"type": "file-explorer",
|
||||
"state": {
|
||||
"sortOrder": "alphabetical",
|
||||
"autoReveal": true
|
||||
"autoReveal": false
|
||||
},
|
||||
"icon": "lucide-folder-closed",
|
||||
"title": "Файловый менеджер"
|
||||
@ -194,7 +223,8 @@
|
||||
}
|
||||
],
|
||||
"direction": "horizontal",
|
||||
"width": 588.5
|
||||
"width": 588.5,
|
||||
"collapsed": true
|
||||
},
|
||||
"left-ribbon": {
|
||||
"hiddenItems": {
|
||||
@ -211,33 +241,30 @@
|
||||
},
|
||||
"active": "a8a70f482a4ef196",
|
||||
"lastOpenFiles": [
|
||||
"Библиотека/Книги/Современные операционные системы.md",
|
||||
"Библиотека/Книги/Список книг.md",
|
||||
"Библиотека/Книги/Рефакторинг кода на JavaScript.md",
|
||||
"Библиотека/Книги/Чистая архитектура.md",
|
||||
"Библиотека/Книги/covers/clean-architecture.jpg",
|
||||
"Библиотека/Книги/covers/modern-os.jpg",
|
||||
"CLAUDE.md",
|
||||
"Библиотека/Книги/Git для профессионалов.md",
|
||||
"Библиотека/Книги/Чистый код.md",
|
||||
"Библиотека/Книги/Совершенный код.md",
|
||||
"Библиотека/Книги/Профессиональный TypeScript.md",
|
||||
"Библиотека/Книги/Компьютерные сети. Принципы, технологии, протоколы.md",
|
||||
"Библиотека/Книги/Командная строка Linux.md",
|
||||
"Библиотека/Книги/Как пасти котов.md",
|
||||
"Библиотека/Книги/Грокаем алгоритмы.md",
|
||||
"Библиотека/Книги/Высоконагруженные приложения. Программирование, масштабирование, поддержка.md",
|
||||
"Библиотека/Книги/Рефакторинг кода на JavaScript.md",
|
||||
"Библиотека/Книги/covers/refactoring-js.jpg",
|
||||
"Библиотека/Книги/Компьютерные сети. Принципы, технологии, протоколы.md",
|
||||
"Библиотека/Книги/Грокаем алгоритмы.md",
|
||||
"Библиотека/Книги/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",
|
||||
@ -251,8 +278,11 @@
|
||||
"IT/Принципы/Принцип открытости-закрытости.md",
|
||||
"IT/Принципы/Принцип подстановки Лисков.md",
|
||||
"IT/Рефакторинг/Рефакторинг.md",
|
||||
"Библиотека/Туториалы/Wireguard.md",
|
||||
"Untitled.base",
|
||||
"Без названия.md",
|
||||
"Библиотека/Книги/covers",
|
||||
"IT/Алгоритмы/Алгоритм Диффи — Хеллмана (Diffie–Hellman).md",
|
||||
"Шаблоны",
|
||||
"Библиотека/Туториалы",
|
||||
"Библиотека/Курсы",
|
||||
|
||||
@ -1,65 +0,0 @@
|
||||
# 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 добавления заметок — использовать его как основу.
|
||||
@ -6,13 +6,13 @@
|
||||
- Чакон Скотт
|
||||
- Штрауб Бен
|
||||
Количество страниц: 530
|
||||
Прогресс: 530
|
||||
Формат: Бумажная
|
||||
Прогресс: 0
|
||||
Формат:
|
||||
Обложка: Библиотека/Книги/covers/pro-git.jpg
|
||||
Начата: "2025"
|
||||
Закончена: "2025"
|
||||
Оценка: "10"
|
||||
Сложность: "8"
|
||||
Начата:
|
||||
Закончена:
|
||||
Оценка:
|
||||
Сложность:
|
||||
Теги:
|
||||
- it
|
||||
- git
|
||||
|
||||
@ -1,56 +0,0 @@
|
||||
---
|
||||
Тип: Книга
|
||||
Статус: Прочитано
|
||||
Название: 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 — данными; важно понимать оба уровня
|
||||
|
||||
---
|
||||
|
||||
## 💬 Важные цитаты
|
||||
|
||||
|
||||
---
|
||||
|
||||
## 💡 Как применить в моих проектах
|
||||
|
||||
|
||||
---
|
||||
|
||||
## 🔗 Связанные заметки
|
||||
- [[Высоконагруженные приложения. Программирование, масштабирование, поддержка]]
|
||||
|
Before Width: | Height: | Size: 64 KiB |
|
Before Width: | Height: | Size: 33 KiB |
|
Before Width: | Height: | Size: 172 KiB |
|
Before Width: | Height: | Size: 38 KiB |
|
Before Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 43 KiB |
|
Before Width: | Height: | Size: 34 KiB |
|
Before Width: | Height: | Size: 531 KiB After Width: | Height: | Size: 139 B |
|
Before Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 28 KiB |
@ -1,56 +0,0 @@
|
||||
---
|
||||
Тип: Книга
|
||||
Статус: Прочитано
|
||||
Название: Алгоритмы. Руководство по разработке. 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-нотация — не формальность, а инструмент коммуникации и принятия решений при проектировании систем
|
||||
|
||||
---
|
||||
|
||||
## 💬 Важные цитаты
|
||||
> «Правильный алгоритм — это тот, который решает задачу. Хороший алгоритм — тот, который делает это эффективно. Но сначала нужно убедиться, что вы решаете правильную задачу.»
|
||||
|
||||
---
|
||||
|
||||
## 💡 Как применить в моих проектах
|
||||
|
||||
|
||||
---
|
||||
|
||||
## 🔗 Связанные заметки
|
||||
- [[Грокаем алгоритмы]]
|
||||
@ -1,57 +0,0 @@
|
||||
---
|
||||
Тип: Книга
|
||||
Статус: Прочитано
|
||||
Название: Дизайн для разработчиков
|
||||
Автор:
|
||||
- Стефани Стимак
|
||||
Количество страниц: 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-исследование (карты путей, персонажи) помогает принимать более обоснованные дизайн-решения
|
||||
- **Дизайн-системы для разработчиков**: компонентный подход в дизайне параллелен компонентному подходу в коде — токены, переменные, переиспользуемые блоки
|
||||
|
||||
---
|
||||
|
||||
## 💬 Важные цитаты
|
||||
> «Хороший дизайн незаметен. Плохой дизайн кричит о себе.»
|
||||
|
||||
---
|
||||
|
||||
## 💡 Как применить в моих проектах
|
||||
|
||||
|
||||
---
|
||||
|
||||
## 🔗 Связанные заметки
|
||||
|
||||
@ -1,61 +0,0 @@
|
||||
---
|
||||
Тип: Книга
|
||||
Статус: Прочитано
|
||||
Название: Идеальная работа. Программирование без прикрас
|
||||
Автор:
|
||||
- Роберт Мартин
|
||||
Количество страниц: 384
|
||||
Прогресс: 384
|
||||
Формат: Бумажная
|
||||
Обложка: Библиотека/Книги/covers/clean-craftsmanship.jpg
|
||||
Начата:
|
||||
Закончена: "2023"
|
||||
Оценка: "6"
|
||||
Сложность: 6/10
|
||||
Теги:
|
||||
- it
|
||||
- programming
|
||||
- craftsmanship
|
||||
- tdd
|
||||
- soft-skills
|
||||
Категории:
|
||||
- разработка программного обеспечения
|
||||
- профессиональный рост
|
||||
Источник:
|
||||
Ссылка:
|
||||
---
|
||||
|
||||
![[covers/clean-craftsmanship.jpg]]
|
||||
|
||||
# Идеальная работа. Программирование без прикрас
|
||||
|
||||
## 📖 О книге
|
||||
Последняя книга Роберта Мартина в серии «идеального» программирования. Здесь он идёт дальше «Идеального программиста» и говорит о дисциплинах, стандартах и этике разработки. Центральная тема — TDD как основа профессиональной дисциплины, а также принципы командной работы и этические обязательства разработчика перед обществом.
|
||||
|
||||
---
|
||||
|
||||
## 🧠 Ключевые идеи
|
||||
- **TDD — не опция, а профессиональная обязанность**: писать код без тестов — всё равно что хирург, отказывающийся мыть руки
|
||||
- **Дисциплина важнее мотивации**: профессионалы следуют практикам всегда, а не только когда есть настроение
|
||||
- **Простой дизайн**: код должен делать ровно то, что нужно сейчас — не больше и не меньше; YAGNI и DRY как базовые принципы
|
||||
- **Этика разработчика**: программисты несут ответственность перед обществом — плохой код в критических системах может стоить жизней
|
||||
- **Парное программирование и наставничество** как инструменты передачи знаний и повышения качества кода
|
||||
|
||||
---
|
||||
|
||||
## 💬 Важные цитаты
|
||||
> «Тест, написанный после кода — это не тест, это просто проверка. Настоящий тест пишется до.»
|
||||
|
||||
> «Профессионализм — это дисциплина. Дисциплина — это делать правильные вещи даже тогда, когда не хочется.»
|
||||
|
||||
---
|
||||
|
||||
## 💡 Как применить в моих проектах
|
||||
|
||||
|
||||
---
|
||||
|
||||
## 🔗 Связанные заметки
|
||||
- [[Идеальный программист]]
|
||||
- [[Чистый код]]
|
||||
- [[Чистая архитектура]]
|
||||
@ -1,59 +0,0 @@
|
||||
---
|
||||
Тип: Книга
|
||||
Статус: Прочитано
|
||||
Название: Идеальный программист. Как стать профессионалом разработки ПО
|
||||
Автор:
|
||||
- Роберт Мартин
|
||||
Количество страниц: 384
|
||||
Прогресс: 384
|
||||
Формат: Бумажная
|
||||
Обложка: Библиотека/Книги/covers/clean-coder.jpg
|
||||
Начата:
|
||||
Закончена: "2023"
|
||||
Оценка: "8"
|
||||
Сложность: 6/10
|
||||
Теги:
|
||||
- it
|
||||
- programming
|
||||
- soft-skills
|
||||
- career
|
||||
Категории:
|
||||
- разработка программного обеспечения
|
||||
- профессиональный рост
|
||||
Источник:
|
||||
Ссылка:
|
||||
---
|
||||
|
||||
![[covers/clean-coder.jpg]]
|
||||
|
||||
# Идеальный программист. Как стать профессионалом разработки ПО
|
||||
|
||||
## 📖 О книге
|
||||
Книга Роберта Мартина о том, что значит быть профессиональным программистом. В отличие от «Чистого кода», здесь почти нет технических советов — речь о профессиональном поведении: как говорить «нет», как оценивать задачи, как работать под давлением, как управлять временем и взаимодействовать с командой. По сути — кодекс поведения разработчика.
|
||||
|
||||
---
|
||||
|
||||
## 🧠 Ключевые идеи
|
||||
- **Умение говорить «нет»** — профессионал обязан честно сообщать о невозможности выполнить задачу в срок, а не соглашаться и потом подводить
|
||||
- **Оценки — это вероятности**: называй три числа (лучший/средний/худший сценарий), а не одно магическое число
|
||||
- **Работа под давлением**: настоящий профессионал не бросает практики (TDD, рефакторинг) в кризисных ситуациях — именно тогда они важнее всего
|
||||
- **Тайм-боксинг и фокус**: техники управления вниманием (Pomodoro, flow) — инструменты, а не роскошь
|
||||
- **Профессионализм = ответственность**: ты несёшь ответственность за свой код так же, как хирург — за операцию
|
||||
|
||||
---
|
||||
|
||||
## 💬 Важные цитаты
|
||||
> «Говорить "да", когда нужно говорить "нет" — непрофессионально.»
|
||||
|
||||
> «Не позволяйте никому торопить вас настолько, чтобы вы нарушали дисциплину. Дисциплина — это защита, а не помеха.»
|
||||
|
||||
---
|
||||
|
||||
## 💡 Как применить в моих проектах
|
||||
|
||||
|
||||
---
|
||||
|
||||
## 🔗 Связанные заметки
|
||||
- [[Чистый код]]
|
||||
- [[Чистая архитектура]]
|
||||
@ -1,64 +0,0 @@
|
||||
---
|
||||
Тип: Книга
|
||||
Статус: Заброшена
|
||||
Название: Паттерны объектно-ориентированного проектирования
|
||||
Автор:
|
||||
- Эрих Гамма
|
||||
- Ричард Хелм
|
||||
- Ральф Джонсон
|
||||
- Джон Влиссидес
|
||||
Количество страниц: 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/Паттерны/Стратегия]]
|
||||
@ -1,59 +0,0 @@
|
||||
---
|
||||
Тип: Книга
|
||||
Статус: Прочитано
|
||||
Название: Принципы юнит-тестирования
|
||||
Автор:
|
||||
- Владимир Хориков
|
||||
Количество страниц: 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**: классики тестируют единицы поведения, лондонцы — единицы кода; автор отдаёт предпочтение классическому подходу
|
||||
- **Интеграционные тесты дополняют, не заменяют**: они покрывают то, что юнит-тесты не могут — взаимодействие с БД, файловой системой, внешними сервисами
|
||||
|
||||
---
|
||||
|
||||
## 💬 Важные цитаты
|
||||
> «Тест, который не может сломаться при наличии бага, бесполезен. Тест, который ломается без бага, вреден.»
|
||||
|
||||
> «Цель юнит-тестирования — обеспечить устойчивый рост проекта, а не максимальное покрытие кода.»
|
||||
|
||||
---
|
||||
|
||||
## 💡 Как применить в моих проектах
|
||||
|
||||
|
||||
---
|
||||
|
||||
## 🔗 Связанные заметки
|
||||
- [[Чистый код]]
|
||||
- [[Идеальная работа. Программирование без прикрас]]
|
||||
@ -7,7 +7,7 @@
|
||||
Количество страниц: 448
|
||||
Прогресс: 448
|
||||
Формат: Электронная
|
||||
Обложка: Библиотека/Книги/covers/refactoring-js.jpg
|
||||
Обложка: _assets/img/Pasted image 20241113230057.png
|
||||
Начата: "2024"
|
||||
Закончена: "2024"
|
||||
Оценка: "10"
|
||||
@ -24,7 +24,7 @@
|
||||
Ссылка:
|
||||
---
|
||||
|
||||
![[covers/refactoring-js.jpg]]
|
||||
![[Pasted image 20241113230057.png]]
|
||||
|
||||
# Рефакторинг кода на JavaScript. Улучшение проекта существующего кода
|
||||
|
||||
|
||||
@ -1,59 +0,0 @@
|
||||
---
|
||||
Тип: Книга
|
||||
Статус: Прочитано
|
||||
Название: Современные операционные системы. 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]]
|
||||
@ -1,57 +0,0 @@
|
||||
---
|
||||
Тип: Книга
|
||||
Статус: Прочитано
|
||||
Название: Тестирование 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]]
|
||||
@ -1,58 +0,0 @@
|
||||
---
|
||||
Тип: Книга
|
||||
Статус: Прочитано
|
||||
Название: Чистая архитектура. Искусство разработки программного обеспечения
|
||||
Автор:
|
||||
- Роберт Мартин
|
||||
Количество страниц: 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 — каждый слой знает только о слоях внутри себя
|
||||
|
||||
---
|
||||
|
||||
## 💬 Важные цитаты
|
||||
> «Цель архитектуры программного обеспечения — уменьшить человеческие трудозатраты на создание и сопровождение системы.»
|
||||
|
||||
> «Хорошая архитектура делает систему простой для понимания, разработки, сопровождения и развёртывания.»
|
||||
|
||||
---
|
||||
|
||||
## 💡 Как применить в моих проектах
|
||||
|
||||
|
||||
---
|
||||
|
||||
## 🔗 Связанные заметки
|
||||
- [[Чистый код]]
|
||||
@ -1,59 +0,0 @@
|
||||
---
|
||||
Тип: Книга
|
||||
Статус: Прочитано
|
||||
Название: Чистый 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 — это малое**: небольшие команды (5–12 человек), короткие итерации (1–2 недели), частые поставки работающего кода
|
||||
- **Железный крест**: быстро, качественно, дёшево, с нужным функционалом — выбери три; Agile помогает управлять этим компромисом явно
|
||||
- **TDD и рефакторинг — технические основы Agile**: без инженерных практик XP гибкость превращается в хаос
|
||||
- **Velocity — инструмент планирования, не KPI**: скорость команды нельзя использовать для давления, только для прогнозирования
|
||||
- **Agile — не процесс, а набор дисциплин**: стенд-апы, ретроспективы, планирование итераций имеют смысл только если команда реально следует принципам
|
||||
|
||||
---
|
||||
|
||||
## 💬 Важные цитаты
|
||||
> «Agile — это не то, что вы делаете. Это то, чем вы являетесь.»
|
||||
|
||||
> «Большинство проблем Agile возникло из-за того, что люди приняли церемонии Agile, отказавшись от его дисциплин.»
|
||||
|
||||
---
|
||||
|
||||
## 💡 Как применить в моих проектах
|
||||
|
||||
|
||||
---
|
||||
|
||||
## 🔗 Связанные заметки
|
||||
- [[Идеальный программист]]
|
||||
- [[Чистая архитектура]]
|
||||