Compare commits
4 Commits
ff02e4cee4
...
fc1364e8c1
| Author | SHA1 | Date | |
|---|---|---|---|
| fc1364e8c1 | |||
| 451bede51c | |||
| f3e2558820 | |||
| 06e12d9566 |
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
|
||||||
|
/Knowledges/.obsidian/workspace.json
|
||||||
65
Knowledges/.claude/skills/add-book/SKILL.md
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
---
|
||||||
|
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
|
||||||
|
Начата:
|
||||||
|
Закончена:
|
||||||
|
Оценка:
|
||||||
|
Сложность:
|
||||||
|
Теги:
|
||||||
|
- <тег>
|
||||||
|
Категории:
|
||||||
|
- <категория>
|
||||||
|
Источник:
|
||||||
|
Ссылка:
|
||||||
|
---
|
||||||
|
|
||||||
|
# <Название>
|
||||||
|
|
||||||
|
## 📖 О книге
|
||||||
|
|
||||||
|
|
||||||
|
## 🧠 Ключевые идеи
|
||||||
|
|
||||||
|
|
||||||
|
## 💬 Важные цитаты
|
||||||
|
|
||||||
|
|
||||||
|
## 💡 Как применить в моих проектах
|
||||||
|
|
||||||
|
|
||||||
|
## 🔗 Связанные заметки
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
**Статус:** `Запланировано` | `В процессе` | `Прочитано` | `Заброшена`
|
||||||
|
**Формат:** `Бумажная` | `Электронная` | `Аудио`
|
||||||
60
Knowledges/.claude/skills/add-course/SKILL.md
Normal 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
@ -0,0 +1,3 @@
|
|||||||
|
.obsidian/workspace.json
|
||||||
|
|
||||||
|
|
||||||
64
Knowledges/.obsidian/workspace.json
vendored
@ -3,35 +3,9 @@
|
|||||||
"id": "ca9084539d3057c8",
|
"id": "ca9084539d3057c8",
|
||||||
"type": "split",
|
"type": "split",
|
||||||
"children": [
|
"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",
|
"id": "0765916286c4fc4a",
|
||||||
"type": "tabs",
|
"type": "tabs",
|
||||||
"dimension": 30.627306273062732,
|
|
||||||
"children": [
|
"children": [
|
||||||
{
|
{
|
||||||
"id": "a8a70f482a4ef196",
|
"id": "a8a70f482a4ef196",
|
||||||
@ -72,15 +46,12 @@
|
|||||||
},
|
},
|
||||||
"pinned": true,
|
"pinned": true,
|
||||||
"icon": "terminal",
|
"icon": "terminal",
|
||||||
"title": "Terminal: ksv741@MacBook-Pro-Sergey:~/Obsidian/Knowledges"
|
"title": "Terminal: ✳ Claude Code"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"direction": "horizontal"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"direction": "vertical"
|
"direction": "vertical"
|
||||||
},
|
},
|
||||||
"left": {
|
"left": {
|
||||||
@ -98,7 +69,7 @@
|
|||||||
"type": "file-explorer",
|
"type": "file-explorer",
|
||||||
"state": {
|
"state": {
|
||||||
"sortOrder": "alphabetical",
|
"sortOrder": "alphabetical",
|
||||||
"autoReveal": false
|
"autoReveal": true
|
||||||
},
|
},
|
||||||
"icon": "lucide-folder-closed",
|
"icon": "lucide-folder-closed",
|
||||||
"title": "Файловый менеджер"
|
"title": "Файловый менеджер"
|
||||||
@ -223,8 +194,7 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"direction": "horizontal",
|
"direction": "horizontal",
|
||||||
"width": 588.5,
|
"width": 588.5
|
||||||
"collapsed": true
|
|
||||||
},
|
},
|
||||||
"left-ribbon": {
|
"left-ribbon": {
|
||||||
"hiddenItems": {
|
"hiddenItems": {
|
||||||
@ -241,30 +211,33 @@
|
|||||||
},
|
},
|
||||||
"active": "a8a70f482a4ef196",
|
"active": "a8a70f482a4ef196",
|
||||||
"lastOpenFiles": [
|
"lastOpenFiles": [
|
||||||
"Библиотека/Книги/Профессиональный TypeScript.md",
|
"Библиотека/Книги/Современные операционные системы.md",
|
||||||
|
"Библиотека/Книги/Список книг.md",
|
||||||
"Библиотека/Книги/Рефакторинг кода на JavaScript.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",
|
"Библиотека/Книги/Компьютерные сети. Принципы, технологии, протоколы.md",
|
||||||
|
"Библиотека/Книги/Командная строка Linux.md",
|
||||||
|
"Библиотека/Книги/Как пасти котов.md",
|
||||||
"Библиотека/Книги/Грокаем алгоритмы.md",
|
"Библиотека/Книги/Грокаем алгоритмы.md",
|
||||||
|
"Библиотека/Книги/Высоконагруженные приложения. Программирование, масштабирование, поддержка.md",
|
||||||
|
"Библиотека/Книги/covers/refactoring-js.jpg",
|
||||||
"Библиотека/Книги/covers/professional-typescript.jpg",
|
"Библиотека/Книги/covers/professional-typescript.jpg",
|
||||||
"Библиотека/Книги/covers/grokking-algorithms.jpg",
|
"Библиотека/Книги/covers/grokking-algorithms.jpg",
|
||||||
"Библиотека/Курсы/Тиндер на Java.md",
|
"Библиотека/Курсы/Тиндер на Java.md",
|
||||||
"Библиотека/Курсы/Микросервисы на практике - сервис продажи билетов.md",
|
"Библиотека/Курсы/Микросервисы на практике - сервис продажи билетов.md",
|
||||||
"Без названия.canvas",
|
"Без названия.canvas",
|
||||||
"Библиотека/Книги/Высоконагруженные приложения. Программирование, масштабирование, поддержка.md",
|
|
||||||
"Библиотека/Книги/Как пасти котов.md",
|
|
||||||
"Библиотека/Книги/Командная строка Linux.md",
|
|
||||||
"Библиотека/Книги/Совершенный код.md",
|
|
||||||
"Библиотека/Книги/Список книг.md",
|
|
||||||
"Библиотека/Книги/Чистый код.md",
|
|
||||||
"Библиотека/Книги/Git для профессионалов.md",
|
|
||||||
"Библиотека/Книги/covers/herding-cats.jpg",
|
"Библиотека/Книги/covers/herding-cats.jpg",
|
||||||
"Библиотека/Книги/covers/linux-cli.jpg",
|
"Библиотека/Книги/covers/linux-cli.jpg",
|
||||||
"Библиотека/Книги/covers/pro-git.jpg",
|
"Библиотека/Книги/covers/pro-git.jpg",
|
||||||
"Библиотека/Книги/covers/linux-cli.png",
|
"Библиотека/Книги/covers/linux-cli.png",
|
||||||
"Библиотека/Книги/covers/pro-git.png",
|
"Библиотека/Книги/covers/pro-git.png",
|
||||||
"Библиотека/Книги/covers/code-complete.jpg",
|
|
||||||
"Библиотека/Книги/covers/clean-code.jpg",
|
|
||||||
"Шаблоны/course_template.md.md",
|
"Шаблоны/course_template.md.md",
|
||||||
"Библиотека/AI Tools/System Prompts.md",
|
"Библиотека/AI Tools/System Prompts.md",
|
||||||
"Библиотека/AI Tools/Agents.md",
|
"Библиотека/AI Tools/Agents.md",
|
||||||
@ -278,11 +251,8 @@
|
|||||||
"IT/Принципы/Принцип открытости-закрытости.md",
|
"IT/Принципы/Принцип открытости-закрытости.md",
|
||||||
"IT/Принципы/Принцип подстановки Лисков.md",
|
"IT/Принципы/Принцип подстановки Лисков.md",
|
||||||
"IT/Рефакторинг/Рефакторинг.md",
|
"IT/Рефакторинг/Рефакторинг.md",
|
||||||
"Библиотека/Туториалы/Wireguard.md",
|
|
||||||
"Untitled.base",
|
"Untitled.base",
|
||||||
"Без названия.md",
|
|
||||||
"Библиотека/Книги/covers",
|
"Библиотека/Книги/covers",
|
||||||
"IT/Алгоритмы/Алгоритм Диффи — Хеллмана (Diffie–Hellman).md",
|
|
||||||
"Шаблоны",
|
"Шаблоны",
|
||||||
"Библиотека/Туториалы",
|
"Библиотека/Туториалы",
|
||||||
"Библиотека/Курсы",
|
"Библиотека/Курсы",
|
||||||
|
|||||||
65
Knowledges/CLAUDE.md
Normal 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 добавления заметок — использовать его как основу.
|
||||||
@ -6,13 +6,13 @@
|
|||||||
- Чакон Скотт
|
- Чакон Скотт
|
||||||
- Штрауб Бен
|
- Штрауб Бен
|
||||||
Количество страниц: 530
|
Количество страниц: 530
|
||||||
Прогресс: 0
|
Прогресс: 530
|
||||||
Формат:
|
Формат: Бумажная
|
||||||
Обложка: Библиотека/Книги/covers/pro-git.jpg
|
Обложка: Библиотека/Книги/covers/pro-git.jpg
|
||||||
Начата:
|
Начата: "2025"
|
||||||
Закончена:
|
Закончена: "2025"
|
||||||
Оценка:
|
Оценка: "10"
|
||||||
Сложность:
|
Сложность: "8"
|
||||||
Теги:
|
Теги:
|
||||||
- it
|
- it
|
||||||
- git
|
- git
|
||||||
|
|||||||
56
Knowledges/Библиотека/Книги/SQL. Быстрое погружение.md
Normal 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 — данными; важно понимать оба уровня
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 💬 Важные цитаты
|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 💡 Как применить в моих проектах
|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔗 Связанные заметки
|
||||||
|
- [[Высоконагруженные приложения. Программирование, масштабирование, поддержка]]
|
||||||
BIN
Knowledges/Библиотека/Книги/covers/algorithm-design-manual.jpg
Normal file
|
After Width: | Height: | Size: 64 KiB |
BIN
Knowledges/Библиотека/Книги/covers/clean-agile.jpg
Normal file
|
After Width: | Height: | Size: 33 KiB |
BIN
Knowledges/Библиотека/Книги/covers/clean-architecture.jpg
Normal file
|
After Width: | Height: | Size: 172 KiB |
BIN
Knowledges/Библиотека/Книги/covers/clean-coder.jpg
Normal file
|
After Width: | Height: | Size: 38 KiB |
BIN
Knowledges/Библиотека/Книги/covers/clean-craftsmanship.jpg
Normal file
|
After Width: | Height: | Size: 32 KiB |
BIN
Knowledges/Библиотека/Книги/covers/design-for-developers.jpg
Normal file
|
After Width: | Height: | Size: 26 KiB |
BIN
Knowledges/Библиотека/Книги/covers/gof-patterns.jpg
Normal file
|
After Width: | Height: | Size: 43 KiB |
BIN
Knowledges/Библиотека/Книги/covers/modern-os.jpg
Normal file
|
After Width: | Height: | Size: 34 KiB |
|
Before Width: | Height: | Size: 139 B After Width: | Height: | Size: 531 KiB |
BIN
Knowledges/Библиотека/Книги/covers/sql-quickstart.jpg
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
Knowledges/Библиотека/Книги/covers/testing-javascript.jpg
Normal file
|
After Width: | Height: | Size: 28 KiB |
BIN
Knowledges/Библиотека/Книги/covers/unit-testing.jpg
Normal file
|
After Width: | Height: | Size: 28 KiB |
@ -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-нотация — не формальность, а инструмент коммуникации и принятия решений при проектировании систем
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 💬 Важные цитаты
|
||||||
|
> «Правильный алгоритм — это тот, который решает задачу. Хороший алгоритм — тот, который делает это эффективно. Но сначала нужно убедиться, что вы решаете правильную задачу.»
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 💡 Как применить в моих проектах
|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔗 Связанные заметки
|
||||||
|
- [[Грокаем алгоритмы]]
|
||||||
57
Knowledges/Библиотека/Книги/Дизайн для разработчиков.md
Normal 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-исследование (карты путей, персонажи) помогает принимать более обоснованные дизайн-решения
|
||||||
|
- **Дизайн-системы для разработчиков**: компонентный подход в дизайне параллелен компонентному подходу в коде — токены, переменные, переиспользуемые блоки
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 💬 Важные цитаты
|
||||||
|
> «Хороший дизайн незаметен. Плохой дизайн кричит о себе.»
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 💡 Как применить в моих проектах
|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔗 Связанные заметки
|
||||||
|
|
||||||
@ -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 как базовые принципы
|
||||||
|
- **Этика разработчика**: программисты несут ответственность перед обществом — плохой код в критических системах может стоить жизней
|
||||||
|
- **Парное программирование и наставничество** как инструменты передачи знаний и повышения качества кода
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 💬 Важные цитаты
|
||||||
|
> «Тест, написанный после кода — это не тест, это просто проверка. Настоящий тест пишется до.»
|
||||||
|
|
||||||
|
> «Профессионализм — это дисциплина. Дисциплина — это делать правильные вещи даже тогда, когда не хочется.»
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 💡 Как применить в моих проектах
|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔗 Связанные заметки
|
||||||
|
- [[Идеальный программист]]
|
||||||
|
- [[Чистый код]]
|
||||||
|
- [[Чистая архитектура]]
|
||||||
59
Knowledges/Библиотека/Книги/Идеальный программист.md
Normal 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) — инструменты, а не роскошь
|
||||||
|
- **Профессионализм = ответственность**: ты несёшь ответственность за свой код так же, как хирург — за операцию
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 💬 Важные цитаты
|
||||||
|
> «Говорить "да", когда нужно говорить "нет" — непрофессионально.»
|
||||||
|
|
||||||
|
> «Не позволяйте никому торопить вас настолько, чтобы вы нарушали дисциплину. Дисциплина — это защита, а не помеха.»
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 💡 Как применить в моих проектах
|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔗 Связанные заметки
|
||||||
|
- [[Чистый код]]
|
||||||
|
- [[Чистая архитектура]]
|
||||||
@ -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/Паттерны/Стратегия]]
|
||||||
59
Knowledges/Библиотека/Книги/Принципы юнит-тестирования.md
Normal 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**: классики тестируют единицы поведения, лондонцы — единицы кода; автор отдаёт предпочтение классическому подходу
|
||||||
|
- **Интеграционные тесты дополняют, не заменяют**: они покрывают то, что юнит-тесты не могут — взаимодействие с БД, файловой системой, внешними сервисами
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 💬 Важные цитаты
|
||||||
|
> «Тест, который не может сломаться при наличии бага, бесполезен. Тест, который ломается без бага, вреден.»
|
||||||
|
|
||||||
|
> «Цель юнит-тестирования — обеспечить устойчивый рост проекта, а не максимальное покрытие кода.»
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 💡 Как применить в моих проектах
|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔗 Связанные заметки
|
||||||
|
- [[Чистый код]]
|
||||||
|
- [[Идеальная работа. Программирование без прикрас]]
|
||||||
@ -7,7 +7,7 @@
|
|||||||
Количество страниц: 448
|
Количество страниц: 448
|
||||||
Прогресс: 448
|
Прогресс: 448
|
||||||
Формат: Электронная
|
Формат: Электронная
|
||||||
Обложка: _assets/img/Pasted image 20241113230057.png
|
Обложка: Библиотека/Книги/covers/refactoring-js.jpg
|
||||||
Начата: "2024"
|
Начата: "2024"
|
||||||
Закончена: "2024"
|
Закончена: "2024"
|
||||||
Оценка: "10"
|
Оценка: "10"
|
||||||
@ -24,7 +24,7 @@
|
|||||||
Ссылка:
|
Ссылка:
|
||||||
---
|
---
|
||||||
|
|
||||||
![[Pasted image 20241113230057.png]]
|
![[covers/refactoring-js.jpg]]
|
||||||
|
|
||||||
# Рефакторинг кода на JavaScript. Улучшение проекта существующего кода
|
# Рефакторинг кода на JavaScript. Улучшение проекта существующего кода
|
||||||
|
|
||||||
|
|||||||
@ -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]]
|
||||||
57
Knowledges/Библиотека/Книги/Тестирование JavaScript.md
Normal 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]]
|
||||||
58
Knowledges/Библиотека/Книги/Чистая архитектура.md
Normal 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 — каждый слой знает только о слоях внутри себя
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 💬 Важные цитаты
|
||||||
|
> «Цель архитектуры программного обеспечения — уменьшить человеческие трудозатраты на создание и сопровождение системы.»
|
||||||
|
|
||||||
|
> «Хорошая архитектура делает систему простой для понимания, разработки, сопровождения и развёртывания.»
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 💡 Как применить в моих проектах
|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔗 Связанные заметки
|
||||||
|
- [[Чистый код]]
|
||||||
59
Knowledges/Библиотека/Книги/Чистый Agile.md
Normal 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 — это малое**: небольшие команды (5–12 человек), короткие итерации (1–2 недели), частые поставки работающего кода
|
||||||
|
- **Железный крест**: быстро, качественно, дёшево, с нужным функционалом — выбери три; Agile помогает управлять этим компромисом явно
|
||||||
|
- **TDD и рефакторинг — технические основы Agile**: без инженерных практик XP гибкость превращается в хаос
|
||||||
|
- **Velocity — инструмент планирования, не KPI**: скорость команды нельзя использовать для давления, только для прогнозирования
|
||||||
|
- **Agile — не процесс, а набор дисциплин**: стенд-апы, ретроспективы, планирование итераций имеют смысл только если команда реально следует принципам
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 💬 Важные цитаты
|
||||||
|
> «Agile — это не то, что вы делаете. Это то, чем вы являетесь.»
|
||||||
|
|
||||||
|
> «Большинство проблем Agile возникло из-за того, что люди приняли церемонии Agile, отказавшись от его дисциплин.»
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 💡 Как применить в моих проектах
|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔗 Связанные заметки
|
||||||
|
- [[Идеальный программист]]
|
||||||
|
- [[Чистая архитектура]]
|
||||||