diff --git a/Knowledges/.claude/skills/add-book/SKILL.md b/Knowledges/.claude/skills/add-book/SKILL.md index ca42348..d239628 100644 --- a/Knowledges/.claude/skills/add-book/SKILL.md +++ b/Knowledges/.claude/skills/add-book/SKILL.md @@ -61,5 +61,5 @@ version: 1.0.0 ``` -**Статус:** `Запланировано` | `В процессе` | `Прочитано` | `Заброшена` +**Статус:** `Запланировано` | `Хочу прочитать` | `В процессе` | `Прочитано` | `Заброшена` **Формат:** `Бумажная` | `Электронная` | `Аудио` diff --git a/Knowledges/.obsidian/workspace.json b/Knowledges/.obsidian/workspace.json deleted file mode 100644 index 935bd47..0000000 --- a/Knowledges/.obsidian/workspace.json +++ /dev/null @@ -1,262 +0,0 @@ -{ - "main": { - "id": "ca9084539d3057c8", - "type": "split", - "children": [ - { - "id": "0765916286c4fc4a", - "type": "tabs", - "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: ✳ Claude Code" - } - } - ] - } - ], - "direction": "vertical" - }, - "left": { - "id": "e46d33cc1e1f788c", - "type": "split", - "children": [ - { - "id": "b19195bb2f6c722b", - "type": "tabs", - "children": [ - { - "id": "b95025b8278ca4e8", - "type": "leaf", - "state": { - "type": "file-explorer", - "state": { - "sortOrder": "alphabetical", - "autoReveal": true - }, - "icon": "lucide-folder-closed", - "title": "Файловый менеджер" - } - }, - { - "id": "d558f7b68df9aec7", - "type": "leaf", - "state": { - "type": "search", - "state": { - "query": "", - "matchingCase": false, - "explainSearch": false, - "collapseAll": false, - "extraContext": false, - "sortOrder": "alphabetical" - }, - "icon": "lucide-search", - "title": "Search" - } - }, - { - "id": "54a22a44c3a03988", - "type": "leaf", - "state": { - "type": "bookmarks", - "state": {}, - "icon": "lucide-bookmark", - "title": "Bookmarks" - } - } - ] - } - ], - "direction": "horizontal", - "width": 440.5 - }, - "right": { - "id": "44a01af629a7fdfc", - "type": "split", - "children": [ - { - "id": "4dac830b54c8aa6f", - "type": "tabs", - "children": [ - { - "id": "b56d7c6abf7fd065", - "type": "leaf", - "state": { - "type": "backlink", - "state": { - "file": "Библиотека/Книги/Компьютерные сети. Принципы, технологии, протоколы.md", - "collapseAll": false, - "extraContext": false, - "sortOrder": "alphabetical", - "showSearch": false, - "searchQuery": "", - "backlinkCollapsed": false, - "unlinkedCollapsed": false - }, - "icon": "links-coming-in", - "title": "Обратные ссылки для Компьютерные сети. Принципы, технологии, протоколы" - } - }, - { - "id": "7f6489c394a8e4b1", - "type": "leaf", - "state": { - "type": "outgoing-link", - "state": { - "file": "Библиотека/Книги/Компьютерные сети. Принципы, технологии, протоколы.md", - "linksCollapsed": false, - "unlinkedCollapsed": true - }, - "icon": "links-going-out", - "title": "Исходящие ссылки из Компьютерные сети. Принципы, технологии, протоколы" - } - }, - { - "id": "b9d3f2689d1fda87", - "type": "leaf", - "state": { - "type": "tag", - "state": { - "sortOrder": "frequency", - "useHierarchy": true, - "showSearch": false, - "searchQuery": "" - }, - "icon": "lucide-tags", - "title": "Теги" - } - }, - { - "id": "d7e40b6533b3df38", - "type": "leaf", - "state": { - "type": "outline", - "state": { - "file": "Библиотека/Книги/Список книг.md", - "followCursor": false, - "showSearch": false, - "searchQuery": "" - }, - "icon": "lucide-list", - "title": "Структура Список книг" - } - }, - { - "id": "80747ccaab27e735", - "type": "leaf", - "state": { - "type": "git-view", - "state": {}, - "icon": "git-pull-request", - "title": "Source Control" - } - } - ], - "currentTab": 4 - } - ], - "direction": "horizontal", - "width": 588.5 - }, - "left-ribbon": { - "hiddenItems": { - "switcher:Меню быстрого перехода": false, - "graph:Граф": false, - "canvas:Создать новый холст": false, - "daily-notes:Сегодняшняя заметка": false, - "templates:Вставить шаблон": false, - "command-palette:Открыть палитру команд": false, - "bases:Создать новую базу": false, - "obsidian-git:Open Git source control": false, - "terminal:Open terminal": false - } - }, - "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", - "Библиотека/Книги/covers/refactoring-js.jpg", - "Библиотека/Книги/covers/professional-typescript.jpg", - "Библиотека/Книги/covers/grokking-algorithms.jpg", - "Библиотека/Курсы/Тиндер на Java.md", - "Библиотека/Курсы/Микросервисы на практике - сервис продажи билетов.md", - "Без названия.canvas", - "Библиотека/Книги/covers/herding-cats.jpg", - "Библиотека/Книги/covers/linux-cli.jpg", - "Библиотека/Книги/covers/pro-git.jpg", - "Библиотека/Книги/covers/linux-cli.png", - "Библиотека/Книги/covers/pro-git.png", - "Шаблоны/course_template.md.md", - "Библиотека/AI Tools/System Prompts.md", - "Библиотека/AI Tools/Agents.md", - "Библиотека/AI Tools/Skills.md", - "Библиотека/AI Tools/Coding.md", - "Библиотека/AI Tools/MCP.md", - "Библиотека/AI Tools/Без названия", - "Библиотека/AI Tools", - "Библиотека/Pet проекты", - "Шаблоны/book_template.md.md", - "IT/Принципы/Принцип открытости-закрытости.md", - "IT/Принципы/Принцип подстановки Лисков.md", - "IT/Рефакторинг/Рефакторинг.md", - "Untitled.base", - "Библиотека/Книги/covers", - "Шаблоны", - "Библиотека/Туториалы", - "Библиотека/Курсы", - "Библиотека/Фильмы", - "Библиотека/Книги" - ] -} \ No newline at end of file diff --git a/Knowledges/CLAUDE.md b/Knowledges/CLAUDE.md index 73287e3..2515e7a 100644 --- a/Knowledges/CLAUDE.md +++ b/Knowledges/CLAUDE.md @@ -32,7 +32,7 @@ Knowledges/ Frontmatter поля: `Тип`, `Статус`, `Название`, `Автор` (список), `Количество страниц`, `Прогресс`, `Формат`, `Обложка`, `Начата`, `Закончена`, `Оценка` (1-10), `Сложность` (1-10), `Теги` (список), `Категории` (список), `Источник`, `Ссылка` -- **Статус:** `Запланировано` | `В процессе` | `Прочитано` | `Заброшена` +- **Статус:** `Запланировано` | `Хочу прочитать` | `В процессе` | `Прочитано` | `Заброшена` - **Формат:** `Бумажная` | `Электронная` | `Аудио` - Обложки: `Библиотека/Книги/covers/.jpg` diff --git a/Knowledges/Библиотека/Книги/covers/building-microservices.jpg b/Knowledges/Библиотека/Книги/covers/building-microservices.jpg new file mode 100644 index 0000000..7620e69 Binary files /dev/null and b/Knowledges/Библиотека/Книги/covers/building-microservices.jpg differ diff --git a/Knowledges/Библиотека/Книги/covers/enterprise-patterns.jpg b/Knowledges/Библиотека/Книги/covers/enterprise-patterns.jpg new file mode 100644 index 0000000..d9b2b68 Binary files /dev/null and b/Knowledges/Библиотека/Книги/covers/enterprise-patterns.jpg differ diff --git a/Knowledges/Библиотека/Книги/covers/mythical-man-month.jpg b/Knowledges/Библиотека/Книги/covers/mythical-man-month.jpg new file mode 100644 index 0000000..af9010f Binary files /dev/null and b/Knowledges/Библиотека/Книги/covers/mythical-man-month.jpg differ diff --git a/Knowledges/Библиотека/Книги/Мифический человеко-месяц.md b/Knowledges/Библиотека/Книги/Мифический человеко-месяц.md new file mode 100644 index 0000000..2103249 --- /dev/null +++ b/Knowledges/Библиотека/Книги/Мифический человеко-месяц.md @@ -0,0 +1,57 @@ +--- +Тип: Книга +Статус: Хочу прочитать +Название: Мифический человеко-месяц, или Как создаются программные системы +Автор: + - Фредерик Брукс +Количество страниц: 368 +Прогресс: 0 +Формат: Бумажная +Обложка: Библиотека/Книги/covers/mythical-man-month.jpg +Начата: +Закончена: +Оценка: +Сложность: +Теги: + - it + - programming + - management +Категории: + - разработка программного обеспечения +Источник: +Ссылка: +--- + +![[covers/mythical-man-month.jpg]] + +# Мифический человеко-месяц, или Как создаются программные системы + +## 📖 О книге +Классический труд Фредерика Брукса об управлении проектами в области разработки программного обеспечения, основанный на его пятидесятилетнем опыте руководства проектами IBM System/360 и OS/360. Книга представляет собой сборник эссе, в которых последовательно обсуждаются ключевые проблемы разработки крупных программных систем: планирование сроков, организация командной работы, управление сложностью, обеспечение концептуальной целостности. Несмотря на то что книга была написана более 45 лет назад, она остаётся актуальной, поскольку фундаментальные человеческие факторы в разработке ПО остаются неизменными — методологии меняются, а ошибки повторяются. + +--- + +## 🧠 Ключевые идеи +- **Закон Брукса:** добавление новых людей в опаздывающий проект задерживает его ещё больше — новые участники требуют времени на введение в курс дела, увеличивают число коммуникационных связей и отвлекают опытных разработчиков +- **Концептуальная целостность:** для создания хорошей системы необходимо отделить архитектуру от реализации; один главный архитектор или небольшая группа должны контролировать концепцию продукта ради пользователя +- **Эффект второй системы:** вторая система, которую проектирует инженер, — самая опасная; после успеха первого проекта разработчик стремится реализовать все отложенные идеи, что приводит к перегруженной и неудачной системе +- **Нет серебряной пули:** не существует единственного инструмента, метода или технологии, способного кардинально повысить производительность разработки — сложность программного обеспечения сущностна, а не случайна +- **Девять женщин не выносят ребёнка за месяц:** задачи с жёсткими последовательными зависимостями не ускоряются простым увеличением числа исполнителей + +--- + +## 💬 Важные цитаты +> Если проект не укладывается в сроки, то добавление рабочей силы задержит его ещё больше. + +> Вторая система — самая опасная для человека, который её проектирует. + +> Не существует никакого серебряного снаряда. Нет ни одной разработки — ни в технологии, ни в методах управления, — которая сама по себе обещала бы хотя бы на порядок улучшить производительность, надёжность, простоту в течение одного десятилетия. + +--- + +## 💡 Как применить в моих проектах + + +--- + +## 🔗 Связанные заметки diff --git a/Knowledges/Библиотека/Книги/Создание микросервисов.md b/Knowledges/Библиотека/Книги/Создание микросервисов.md new file mode 100644 index 0000000..c893edb --- /dev/null +++ b/Knowledges/Библиотека/Книги/Создание микросервисов.md @@ -0,0 +1,58 @@ +--- +Тип: Книга +Статус: Хочу прочитать +Название: Создание микросервисов. 2-е издание +Автор: + - Сэм Ньюмен +Количество страниц: 624 +Прогресс: 0 +Формат: Бумажная +Обложка: Библиотека/Книги/covers/building-microservices.jpg +Начата: +Закончена: +Оценка: +Сложность: +Теги: + - it + - programming + - microservices + - architecture + - distributed-systems +Категории: + - архитектура + - разработка программного обеспечения +Источник: +Ссылка: +--- + +![[covers/building-microservices.jpg]] + +# Создание микросервисов. 2-е издание + +## 📖 О книге +Одна из главных книг по микросервисной архитектуре. Сэм Ньюмен охватывает весь жизненный цикл микросервисов: от декомпозиции монолита и проектирования границ сервисов до межсервисного взаимодействия, тестирования, развёртывания и мониторинга. Второе издание значительно расширено — добавлены главы про saga-паттерн, event-driven архитектуру, service mesh и современные подходы к CI/CD. Книга подходит для архитекторов, бэкенд-разработчиков и тех, кто переходит с монолита на микросервисы. + +--- + +## 🧠 Ключевые идеи +- **Границы сервисов через bounded context**: декомпозиция по бизнес-доменам (DDD) даёт более стабильные границы, чем техническое разделение +- **Loose coupling, high cohesion**: сервисы должны быть максимально независимы друг от друга, но внутренне связны — это основной критерий хорошей архитектуры +- **Saga для распределённых транзакций**: вместо двухфазного коммита — цепочка локальных транзакций с компенсирующими действиями при сбое +- **Независимое развёртывание**: каждый сервис должен деплоиться отдельно без координации с другими — это ключевое преимущество микросервисов +- **Observability как основа**: логи, метрики и трейсинг — не опция, а обязательная часть архитектуры; без них микросервисы неуправляемы + +--- + +## 💬 Важные цитаты +> «Микросервисы — это не цель. Это инструмент для достижения других целей: независимого развёртывания, масштабируемости команд, технологической гибкости.» + +--- + +## 💡 Как применить в моих проектах + + +--- + +## 🔗 Связанные заметки +- [[Высоконагруженные приложения. Программирование, масштабирование, поддержка]] +- [[Чистая архитектура]] diff --git a/Knowledges/Библиотека/Книги/Шаблоны корпоративных приложений.md b/Knowledges/Библиотека/Книги/Шаблоны корпоративных приложений.md new file mode 100644 index 0000000..d18dd6c --- /dev/null +++ b/Knowledges/Библиотека/Книги/Шаблоны корпоративных приложений.md @@ -0,0 +1,61 @@ +--- +Тип: Книга +Статус: Хочу прочитать +Название: Шаблоны корпоративных приложений. Исправленное издание +Автор: + - Мартин Фаулер +Количество страниц: 544 +Прогресс: 0 +Формат: Бумажная +Обложка: Библиотека/Книги/covers/enterprise-patterns.jpg +Начата: +Закончена: +Оценка: +Сложность: +Теги: + - it + - programming + - architecture + - patterns +Категории: + - архитектура + - разработка программного обеспечения +Источник: +Ссылка: +--- + +![[covers/enterprise-patterns.jpg]] + +# Шаблоны корпоративных приложений. Исправленное издание + +## 📖 О книге +Создание корпоративных систем — дело далеко не простое: по мере роста сложности затраты на разработку растут экспоненциально. Мартин Фаулер совместно с группой экспертов выделил более сорока часто встречающихся архитектурных приёмов и оформил их в виде типовых решений (паттернов). Книга охватывает расслоение приложений, организацию бизнес-логики, объектно-реляционное отображение, паттерны представления данных в Web (MVC), управление параллельными заданиями и стратегии распределённых вычислений. Каждый паттерн сопровождается примерами на Java и C#. Несмотря на возраст, принципы, изложенные в книге, остаются актуальными — технологии меняются, а фундаментальные проблемы проектирования корпоративного ПО нет. + +--- + +## 🧠 Ключевые идеи +- **Расслоение архитектуры**: разделение приложения на слои (Presentation, Domain, Data Source) снижает связность и упрощает сопровождение — каждый слой знает только о соседнем +- **Паттерны организации бизнес-логики**: Transaction Script, Domain Model и Table Module — три кардинально разных подхода, выбор между которыми определяет всю дальнейшую архитектуру +- **Объектно-реляционное отображение**: несоответствие между объектной и реляционной моделями (impedance mismatch) — одна из главных сложностей корпоративных приложений; паттерны (Data Mapper, Active Record, Row Data Gateway) помогают её контролировать +- **Паттерны представления в Web**: MVC и Page Controller vs Front Controller — выбор определяет, насколько легко тестировать и расширять UI-слой +- **Осторожность с распределёнными объектами**: удалённый вызов дорог, поэтому интерфейсы между сервисами должны быть «грубозернистыми» — принцип, актуальный и для современных микросервисов + +--- + +## 💬 Важные цитаты +> «Создание компьютерных систем — дело далеко не простое. По мере того как возрастает их сложность, процессы конструирования соответствующего программного обеспечения становятся всё более трудоёмкими, причём затраты труда растут экспоненциально.» + +> «Несмотря на эволюцию технологий — от Smalltalk через CORBA до Java и .NET, — глобальные принципы решения распространённых проблем проектирования остаются неизменными.» + +> «Первое правило распределённых объектов гласит: не распределяйте объекты без крайней необходимости.» + +--- + +## 💡 Как применить в моих проектах + + +--- + +## 🔗 Связанные заметки +- [[Чистая архитектура]] +- [[Паттерны объектно-ориентированного проектирования]] diff --git a/Knowledges/Шаблоны/book_template.md.md b/Knowledges/Шаблоны/book_template.md.md index 4b94e9e..9c8d2c9 100644 --- a/Knowledges/Шаблоны/book_template.md.md +++ b/Knowledges/Шаблоны/book_template.md.md @@ -1,6 +1,6 @@ --- Тип: Книга -Статус: Запланировано # Запланировано | В процессе | Прочитано | Заброшена +Статус: Запланировано # Запланировано | Хочу прочитать | В процессе | Прочитано | Заброшена Название: Автор: [] Количество страниц: