добавил книги и скилл для claude: 2026-03-05 20:22:33
This commit is contained in:
parent
604114facf
commit
585db49681
225
Knowledges/.claude/skills/obsidian/SKILL.md
Normal file
225
Knowledges/.claude/skills/obsidian/SKILL.md
Normal file
@ -0,0 +1,225 @@
|
||||
---
|
||||
name: obsidian
|
||||
description: Use this skill whenever the user asks to create a note, add a book, add a course, create a new entry, organize the vault, format content, commit changes, or work with the Obsidian knowledge base at /Users/ksv741/Obsidian/Knowledges. Trigger on phrases like "добавь книгу", "создай заметку", "добавь курс", "запиши", "сохрани", "оформи", "зафиксируй изменения", "сделай коммит", or any request to modify, add, or structure notes in the vault.
|
||||
version: 1.0.0
|
||||
---
|
||||
|
||||
# Obsidian Vault Assistant
|
||||
|
||||
Vault path: `/Users/ksv741/Obsidian/Knowledges`
|
||||
|
||||
## Vault Structure
|
||||
|
||||
```
|
||||
Knowledges/
|
||||
├── Библиотека/
|
||||
│ ├── Книги/ ← Book notes + covers/
|
||||
│ ├── Курсы/ ← Course notes
|
||||
│ ├── Туториалы/
|
||||
│ ├── Pet проекты/
|
||||
│ ├── AI Tools/
|
||||
│ └── Фильмы/
|
||||
├── IT/
|
||||
│ ├── Паттерны/
|
||||
│ ├── Парадигмы/
|
||||
│ ├── Принципы/
|
||||
│ ├── Алгоритмы/
|
||||
│ ├── Структуры данных/
|
||||
│ └── Рефакторинг/
|
||||
├── Шаблоны/ ← Note templates
|
||||
└── _assets/img/ gif/ ← Media files
|
||||
```
|
||||
|
||||
## Creating Notes
|
||||
|
||||
### Book Note (`Библиотека/Книги/<Название>.md`)
|
||||
|
||||
```markdown
|
||||
---
|
||||
Тип: Книга
|
||||
Статус: Запланировано
|
||||
Название: <название>
|
||||
Автор:
|
||||
- <автор>
|
||||
Количество страниц: <число>
|
||||
Прогресс: 0
|
||||
Формат: Электронная
|
||||
Обложка: Библиотека/Книги/covers/<slug>.jpg
|
||||
Начата:
|
||||
Закончена:
|
||||
Оценка:
|
||||
Сложность:
|
||||
Теги:
|
||||
- <тег>
|
||||
Категории:
|
||||
- <категория>
|
||||
Источник:
|
||||
Ссылка:
|
||||
---
|
||||
|
||||
# <Название>
|
||||
|
||||
## 📖 О книге
|
||||
|
||||
|
||||
## 🧠 Ключевые идеи
|
||||
|
||||
|
||||
## 💬 Важные цитаты
|
||||
|
||||
|
||||
## 💡 Как применить в моих проектах
|
||||
|
||||
|
||||
## 🔗 Связанные заметки
|
||||
|
||||
```
|
||||
|
||||
**Статус values:** `Запланировано` | `В процессе` | `Прочитано` | `Заброшена`
|
||||
**Формат values:** `Бумажная` | `Электронная` | `Аудио`
|
||||
|
||||
---
|
||||
|
||||
### Course Note (`Библиотека/Курсы/<Название>.md`)
|
||||
|
||||
```markdown
|
||||
---
|
||||
Тип: Курс
|
||||
Статус: Запланировано
|
||||
Название: <название>
|
||||
Платформа: YouTube
|
||||
Автор/Лектор:
|
||||
- <автор>
|
||||
Длительность: <N видео / ~N часов / N недель>
|
||||
Прогресс: 0
|
||||
Начат:
|
||||
Закончен:
|
||||
Оценка:
|
||||
Сложность:
|
||||
Теги:
|
||||
- <тег>
|
||||
Категория:
|
||||
- Backend
|
||||
Технологии:
|
||||
- <технология>
|
||||
Ссылка на курс: <url>
|
||||
Репозиторий с кодом:
|
||||
---
|
||||
|
||||
# <Название>
|
||||
|
||||
## 📖 О курсе
|
||||
|
||||
|
||||
## ✅ Что нового я узнал
|
||||
|
||||
|
||||
## 💡 Идеи для применения
|
||||
|
||||
|
||||
## ❌ Что не понравилось
|
||||
|
||||
|
||||
## 🔗 Связанные заметки
|
||||
|
||||
```
|
||||
|
||||
**Платформа values:** `YouTube` | `Stepik` | `Coursera` | `Udemy` | `Другое`
|
||||
**Категория values:** `Backend` | `Frontend` | `Data Science` | `DevOps`
|
||||
|
||||
---
|
||||
|
||||
### General Knowledge Note (`IT/<Раздел>/<Название>.md`)
|
||||
|
||||
General notes do NOT use frontmatter. Use inline hashtags and wikilinks:
|
||||
|
||||
```markdown
|
||||
#тег1 #тег2 #тег3
|
||||
|
||||
# Заголовок
|
||||
|
||||
Текст с [[ссылками на другие заметки]].
|
||||
|
||||
## Подраздел
|
||||
|
||||
...
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Formatting Conventions
|
||||
|
||||
- **Wikilinks:** `[[Название заметки]]` for cross-references
|
||||
- **Tags:** In frontmatter use arrays (`- тег`); in regular notes use `#тег` inline
|
||||
- **Date format:** `DD.MM.YYYY` (e.g. `04.03.2026`)
|
||||
- **Emojis in section headers:** use the same emoji patterns as in templates
|
||||
- **Cover images:** store at `Библиотека/Книги/covers/<slug>.jpg`; reference as relative path
|
||||
|
||||
### Obsidian Callouts
|
||||
|
||||
```markdown
|
||||
> [!info] Заголовок
|
||||
> Текст
|
||||
|
||||
> [!tip] Совет
|
||||
> Текст
|
||||
|
||||
> [!warning] Важно
|
||||
> Текст
|
||||
|
||||
> [!example] Пример
|
||||
> Текст
|
||||
```
|
||||
|
||||
### Dataview Queries (when user needs dynamic lists)
|
||||
|
||||
```markdown
|
||||
```dataview
|
||||
TABLE Статус, Оценка FROM "Библиотека/Книги"
|
||||
WHERE Тип = "Книга"
|
||||
SORT Оценка DESC
|
||||
```
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Making Commits
|
||||
|
||||
After creating or modifying notes, make a git commit if the user requests it or if it's clearly implied.
|
||||
|
||||
**Commit message rules:**
|
||||
- Language: Russian
|
||||
- Short, imperative form describing what was added/changed
|
||||
- Examples:
|
||||
- `добавлена книга: Clean Code`
|
||||
- `добавлен курс: Тиндер на Java`
|
||||
- `обновлён прогресс: Рефакторинг JS`
|
||||
- `добавлены заметки по паттернам`
|
||||
|
||||
**Commit workflow:**
|
||||
```bash
|
||||
# Stage specific files only — never use git add -A or git add .
|
||||
git add "Библиотека/Книги/Название.md"
|
||||
git commit -m "добавлена книга: Название"
|
||||
```
|
||||
|
||||
Always stage specific files by name, never use `git add -A` or `git add .` to avoid accidentally committing sensitive or unintended files.
|
||||
|
||||
---
|
||||
|
||||
## Workflow: Adding a New Entry
|
||||
|
||||
1. Determine the type (book / course / general note)
|
||||
2. Choose the correct folder based on the structure above
|
||||
3. Create the `.md` file using the appropriate template
|
||||
4. Fill in frontmatter fields — use exact Russian field names
|
||||
5. Write initial content in the body sections
|
||||
6. If a cover image path is specified in frontmatter, note that the image file should be placed at `Библиотека/Книги/covers/<slug>.jpg`
|
||||
7. Commit if requested
|
||||
|
||||
## Workflow: Organizing the Vault
|
||||
|
||||
- Suggest placing notes in the correct folder based on `Тип` field
|
||||
- Use wikilinks `[[...]]` to connect related notes
|
||||
- Avoid creating new top-level folders unless clearly necessary
|
||||
- Tags should be lowercase, use underscores for multi-word: `#структуры_данных`
|
||||
3
Knowledges/.obsidian/community-plugins.json
vendored
3
Knowledges/.obsidian/community-plugins.json
vendored
@ -1,5 +1,6 @@
|
||||
[
|
||||
"editing-toolbar",
|
||||
"obsidian-git",
|
||||
"dataview"
|
||||
"dataview",
|
||||
"terminal"
|
||||
]
|
||||
163
Knowledges/.obsidian/plugins/terminal/data.json
vendored
Normal file
163
Knowledges/.obsidian/plugins/terminal/data.json
vendored
Normal file
@ -0,0 +1,163 @@
|
||||
{
|
||||
"addToCommand": true,
|
||||
"addToContextMenu": true,
|
||||
"createInstanceNearExistingOnes": true,
|
||||
"errorNoticeTimeout": 0,
|
||||
"exposeInternalModules": true,
|
||||
"focusOnNewInstance": true,
|
||||
"hideStatusBar": "focused",
|
||||
"interceptLogging": true,
|
||||
"language": "",
|
||||
"newInstanceBehavior": "newHorizontalSplit",
|
||||
"noticeTimeout": 5,
|
||||
"openChangelogOnUpdate": true,
|
||||
"pinNewInstance": true,
|
||||
"preferredRenderer": "webgl",
|
||||
"profiles": {
|
||||
"darwinExternalDefault": {
|
||||
"args": [
|
||||
"\"$PWD\""
|
||||
],
|
||||
"executable": "/System/Applications/Utilities/Terminal.app/Contents/macOS/Terminal",
|
||||
"followTheme": true,
|
||||
"name": "",
|
||||
"platforms": {
|
||||
"darwin": true
|
||||
},
|
||||
"restoreHistory": false,
|
||||
"rightClickAction": "copyPaste",
|
||||
"successExitCodes": [
|
||||
"0",
|
||||
"SIGINT",
|
||||
"SIGTERM"
|
||||
],
|
||||
"terminalOptions": {
|
||||
"documentOverride": null
|
||||
},
|
||||
"type": "external"
|
||||
},
|
||||
"darwinIntegratedDefault": {
|
||||
"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
|
||||
},
|
||||
"developerConsole": {
|
||||
"followTheme": true,
|
||||
"name": "",
|
||||
"restoreHistory": false,
|
||||
"rightClickAction": "copyPaste",
|
||||
"successExitCodes": [
|
||||
"0",
|
||||
"SIGINT",
|
||||
"SIGTERM"
|
||||
],
|
||||
"terminalOptions": {
|
||||
"documentOverride": null
|
||||
},
|
||||
"type": "developerConsole"
|
||||
},
|
||||
"linuxExternalDefault": {
|
||||
"args": [],
|
||||
"executable": "xterm",
|
||||
"followTheme": true,
|
||||
"name": "",
|
||||
"platforms": {
|
||||
"linux": true
|
||||
},
|
||||
"restoreHistory": false,
|
||||
"rightClickAction": "copyPaste",
|
||||
"successExitCodes": [
|
||||
"0",
|
||||
"SIGINT",
|
||||
"SIGTERM"
|
||||
],
|
||||
"terminalOptions": {
|
||||
"documentOverride": null
|
||||
},
|
||||
"type": "external"
|
||||
},
|
||||
"linuxIntegratedDefault": {
|
||||
"args": [],
|
||||
"executable": "/bin/sh",
|
||||
"followTheme": true,
|
||||
"name": "",
|
||||
"platforms": {
|
||||
"linux": true
|
||||
},
|
||||
"pythonExecutable": "python3",
|
||||
"restoreHistory": false,
|
||||
"rightClickAction": "copyPaste",
|
||||
"successExitCodes": [
|
||||
"0",
|
||||
"SIGINT",
|
||||
"SIGTERM"
|
||||
],
|
||||
"terminalOptions": {
|
||||
"documentOverride": null
|
||||
},
|
||||
"type": "integrated",
|
||||
"useWin32Conhost": true
|
||||
},
|
||||
"win32ExternalDefault": {
|
||||
"args": [],
|
||||
"executable": "C:\\Windows\\System32\\cmd.exe",
|
||||
"followTheme": true,
|
||||
"name": "",
|
||||
"platforms": {
|
||||
"win32": true
|
||||
},
|
||||
"restoreHistory": false,
|
||||
"rightClickAction": "copyPaste",
|
||||
"successExitCodes": [
|
||||
"0",
|
||||
"SIGINT",
|
||||
"SIGTERM"
|
||||
],
|
||||
"terminalOptions": {
|
||||
"documentOverride": null
|
||||
},
|
||||
"type": "external"
|
||||
},
|
||||
"win32IntegratedDefault": {
|
||||
"args": [],
|
||||
"executable": "C:\\Windows\\System32\\cmd.exe",
|
||||
"followTheme": true,
|
||||
"name": "",
|
||||
"platforms": {
|
||||
"win32": true
|
||||
},
|
||||
"pythonExecutable": "python3",
|
||||
"restoreHistory": false,
|
||||
"rightClickAction": "copyPaste",
|
||||
"successExitCodes": [
|
||||
"0",
|
||||
"SIGINT",
|
||||
"SIGTERM"
|
||||
],
|
||||
"terminalOptions": {
|
||||
"documentOverride": null
|
||||
},
|
||||
"type": "integrated",
|
||||
"useWin32Conhost": true
|
||||
}
|
||||
}
|
||||
}
|
||||
200
Knowledges/.obsidian/plugins/terminal/main.js
vendored
Normal file
200
Knowledges/.obsidian/plugins/terminal/main.js
vendored
Normal file
File diff suppressed because one or more lines are too long
14
Knowledges/.obsidian/plugins/terminal/manifest.json
vendored
Normal file
14
Knowledges/.obsidian/plugins/terminal/manifest.json
vendored
Normal file
@ -0,0 +1,14 @@
|
||||
{
|
||||
"author": "polyipseity",
|
||||
"description": "Integrate consoles, shells, and terminals.",
|
||||
"fundingUrl": {
|
||||
"Buy Me a Coffee": "https://buymeacoffee.com/polyipseity",
|
||||
"GitHub Sponsors": "https://github.com/sponsors/polyipseity"
|
||||
},
|
||||
"version": "3.21.0",
|
||||
"authorUrl": "https://github.com/polyipseity",
|
||||
"id": "terminal",
|
||||
"isDesktopOnly": false,
|
||||
"minAppVersion": "1.4.11",
|
||||
"name": "Terminal"
|
||||
}
|
||||
32
Knowledges/.obsidian/plugins/terminal/styles.css
vendored
Normal file
32
Knowledges/.obsidian/plugins/terminal/styles.css
vendored
Normal file
@ -0,0 +1,32 @@
|
||||
.obsidian-plugin-library\:icon{fill:none;stroke:currentColor}.obsidian-plugin-library\:await-css{display:unset!important}.obsidian-plugin-library\:hide-status-bar{display:none}/**
|
||||
* Copyright (c) 2014 The xterm.js authors. All rights reserved.
|
||||
* Copyright (c) 2012-2013, Christopher Jeffrey (MIT License)
|
||||
* https://github.com/chjj/term.js
|
||||
* @license MIT
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*
|
||||
* Originally forked from (with the author's permission):
|
||||
* Fabrice Bellard's javascript vt100 for jslinux:
|
||||
* http://bellard.org/jslinux/
|
||||
* Copyright (c) 2011 Fabrice Bellard
|
||||
* The original design remains. The terminal itself
|
||||
* has been extended to include xterm CSI codes, among
|
||||
* other features.
|
||||
*/.xterm{cursor:text;position:relative;user-select:none;-ms-user-select:none;-webkit-user-select:none}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{position:absolute;top:0;z-index:5}.xterm .xterm-helper-textarea{padding:0;border:0;margin:0;position:absolute;opacity:0;left:-9999em;top:0;width:0;height:0;z-index:-5;white-space:nowrap;overflow:hidden;resize:none}.xterm .composition-view{background:#000;color:#fff;display:none;position:absolute;white-space:nowrap;z-index:1}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{background-color:#000;overflow-y:scroll;cursor:default;position:absolute;inset:0}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;left:0;top:0}.xterm .xterm-scroll-area{visibility:hidden}.xterm-char-measure-element{display:inline-block;visibility:hidden;position:absolute;top:0;left:-9999em;line-height:normal}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{position:absolute;inset:0;z-index:10;color:transparent;pointer-events:none}.xterm .xterm-accessibility-tree:not(.debug) *::selection{color:transparent}.xterm .xterm-accessibility-tree{user-select:text;white-space:pre}.xterm .live-region{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{text-decoration:double underline}.xterm-underline-3{text-decoration:wavy underline}.xterm-underline-4{text-decoration:dotted underline}.xterm-underline-5{text-decoration:dashed underline}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:overline underline}.xterm-overline.xterm-underline-2{text-decoration:overline double underline}.xterm-overline.xterm-underline-3{text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;position:absolute;top:0;right:0;pointer-events:none}.xterm-decoration-top{z-index:2;position:relative}.workspace-leaf-content[data-type="terminal:terminal"] .view-content{overflow:clip;display:flex;flex-direction:column}.terminal\:terminal{flex:1;min-width:0;min-height:0}.is-phone .workspace-leaf-content[data-type="terminal:terminal"] .view-content{padding-bottom:max(var(--size-4-4),calc(var(--icon-l) + var(--size-4-2) + max(var(--size-4-2),var(--safe-area-inset-bottom))))}
|
||||
95
Knowledges/.obsidian/workspace.json
vendored
95
Knowledges/.obsidian/workspace.json
vendored
@ -4,24 +4,81 @@
|
||||
"type": "split",
|
||||
"children": [
|
||||
{
|
||||
"id": "9810f6f0d1999531",
|
||||
"type": "tabs",
|
||||
"id": "9d3653d1b092bda0",
|
||||
"type": "split",
|
||||
"children": [
|
||||
{
|
||||
"id": "68de4d224860e518",
|
||||
"id": "00ed27b7e981dd5e",
|
||||
"type": "tabs",
|
||||
"dimension": 69.37269372693727,
|
||||
"children": [
|
||||
{
|
||||
"id": "5f180c1384d356a5",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "markdown",
|
||||
"state": {
|
||||
"file": "Библиотека/Курсы/Тиндер на Java.md",
|
||||
"file": "Библиотека/Книги/Профессиональный TypeScript.md",
|
||||
"mode": "preview",
|
||||
"source": false
|
||||
"source": true
|
||||
},
|
||||
"icon": "lucide-file",
|
||||
"title": "Тиндер на Java"
|
||||
"title": "Профессиональный TypeScript"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "0765916286c4fc4a",
|
||||
"type": "tabs",
|
||||
"dimension": 30.627306273062732,
|
||||
"children": [
|
||||
{
|
||||
"id": "a8a70f482a4ef196",
|
||||
"type": "leaf",
|
||||
"pinned": true,
|
||||
"state": {
|
||||
"type": "terminal:terminal",
|
||||
"state": {
|
||||
"terminal:terminal": {
|
||||
"cwd": "/Users/ksv741/Obsidian/Knowledges",
|
||||
"focus": false,
|
||||
"profile": {
|
||||
"args": [
|
||||
"--login"
|
||||
],
|
||||
"executable": "/bin/zsh",
|
||||
"followTheme": true,
|
||||
"name": "",
|
||||
"platforms": {
|
||||
"darwin": true
|
||||
},
|
||||
"pythonExecutable": "python3",
|
||||
"restoreHistory": false,
|
||||
"rightClickAction": "copyPaste",
|
||||
"successExitCodes": [
|
||||
"0",
|
||||
"SIGINT",
|
||||
"SIGTERM"
|
||||
],
|
||||
"terminalOptions": {
|
||||
"documentOverride": null
|
||||
},
|
||||
"type": "integrated",
|
||||
"useWin32Conhost": true
|
||||
},
|
||||
"serial": null
|
||||
}
|
||||
},
|
||||
"pinned": true,
|
||||
"icon": "terminal",
|
||||
"title": "Terminal: ksv741@MacBook-Pro-Sergey:~/Obsidian/Knowledges"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"direction": "horizontal"
|
||||
}
|
||||
],
|
||||
"direction": "vertical"
|
||||
@ -166,7 +223,8 @@
|
||||
}
|
||||
],
|
||||
"direction": "horizontal",
|
||||
"width": 588.5
|
||||
"width": 588.5,
|
||||
"collapsed": true
|
||||
},
|
||||
"left-ribbon": {
|
||||
"hiddenItems": {
|
||||
@ -177,18 +235,25 @@
|
||||
"templates:Вставить шаблон": false,
|
||||
"command-palette:Открыть палитру команд": false,
|
||||
"bases:Создать новую базу": false,
|
||||
"obsidian-git:Open Git source control": false
|
||||
"obsidian-git:Open Git source control": false,
|
||||
"terminal:Open terminal": false
|
||||
}
|
||||
},
|
||||
"active": "68de4d224860e518",
|
||||
"active": "a8a70f482a4ef196",
|
||||
"lastOpenFiles": [
|
||||
"Библиотека/Курсы/Микросервисы на практике - сервис продажи билетов.md",
|
||||
"Библиотека/Книги/Профессиональный TypeScript.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",
|
||||
"Библиотека/Книги/Чистый код.md",
|
||||
@ -200,10 +265,7 @@
|
||||
"Библиотека/Книги/covers/pro-git.png",
|
||||
"Библиотека/Книги/covers/code-complete.jpg",
|
||||
"Библиотека/Книги/covers/clean-code.jpg",
|
||||
"Библиотека/Книги/covers/highload.png",
|
||||
"Библиотека/Книги/covers/computer-networks.png",
|
||||
"Шаблоны/course_template.md.md",
|
||||
"Библиотека/Книги/covers/Pasted image 20260225200640.png",
|
||||
"Библиотека/AI Tools/System Prompts.md",
|
||||
"Библиотека/AI Tools/Agents.md",
|
||||
"Библиотека/AI Tools/Skills.md",
|
||||
@ -225,9 +287,6 @@
|
||||
"Библиотека/Туториалы",
|
||||
"Библиотека/Курсы",
|
||||
"Библиотека/Фильмы",
|
||||
"Библиотека/Книги",
|
||||
"IT/Алгоритмы/Сортировки/Сортировка слиянием (Merge Sort).md",
|
||||
"IT/Рефакторинг/Запахи кода/Теоретическая общность.md",
|
||||
"IT/Рефакторинг/Запахи кода/Таинственное имя.md"
|
||||
"Библиотека/Книги"
|
||||
]
|
||||
}
|
||||
@ -134,3 +134,7 @@
|
||||
- [[Свертывание иерархии (Collapse Hierarchy)]]
|
||||
- [[Замена подкласса делегатом (Replace Subclass with Delegate)]]
|
||||
- [[Замена суперкласса делегатом (Replace Superclass with Delegate)]]
|
||||
|
||||
---
|
||||
### Литература
|
||||
- [[Рефакторинг кода на JavaScript]] — Мартин Фаулер
|
||||
BIN
Knowledges/Библиотека/Книги/covers/grokking-algorithms.jpg
Normal file
BIN
Knowledges/Библиотека/Книги/covers/grokking-algorithms.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 40 KiB |
BIN
Knowledges/Библиотека/Книги/covers/professional-typescript.jpg
Normal file
BIN
Knowledges/Библиотека/Книги/covers/professional-typescript.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 33 KiB |
7
Knowledges/Библиотека/Книги/covers/refactoring-js.jpg
Normal file
7
Knowledges/Библиотека/Книги/covers/refactoring-js.jpg
Normal file
@ -0,0 +1,7 @@
|
||||
<html>
|
||||
<head><title>404 Not Found</title></head>
|
||||
<body>
|
||||
<center><h1>404 Not Found</h1></center>
|
||||
<hr><center>nginx</center>
|
||||
</body>
|
||||
</html>
|
||||
55
Knowledges/Библиотека/Книги/Грокаем алгоритмы.md
Normal file
55
Knowledges/Библиотека/Книги/Грокаем алгоритмы.md
Normal file
@ -0,0 +1,55 @@
|
||||
---
|
||||
Тип: Книга
|
||||
Статус: Прочитано
|
||||
Название: Грокаем алгоритмы
|
||||
Автор:
|
||||
- Адитья Бхаргава
|
||||
Количество страниц: 288
|
||||
Прогресс: 288
|
||||
Формат: Бумажная
|
||||
Обложка: Библиотека/Книги/covers/grokking-algorithms.jpg
|
||||
Начата: "2023"
|
||||
Закончена: "2023"
|
||||
Оценка: "9"
|
||||
Сложность: "6"
|
||||
Теги:
|
||||
- it
|
||||
- algorithms
|
||||
- programming
|
||||
Категории:
|
||||
- алгоритмы
|
||||
- структуры данных
|
||||
Источник:
|
||||
Ссылка:
|
||||
---
|
||||
|
||||
![[covers/grokking-algorithms.jpg]]
|
||||
|
||||
# Грокаем алгоритмы
|
||||
|
||||
## 📖 О книге
|
||||
Простое объяснение базовых структур данных (очередь, стек, бинарное дерево и т.д) и алгоритмов (быстрая сортировка, бинарный поиск и т.д)
|
||||
|
||||
---
|
||||
|
||||
## 🧠 Ключевые идеи
|
||||
-
|
||||
-
|
||||
-
|
||||
|
||||
---
|
||||
|
||||
## 💬 Важные цитаты
|
||||
>
|
||||
|
||||
---
|
||||
|
||||
## 💡 Как применить в моих проектах
|
||||
-
|
||||
-
|
||||
-
|
||||
|
||||
---
|
||||
|
||||
## 🔗 Связанные заметки
|
||||
- [[...]]
|
||||
43
Knowledges/Библиотека/Книги/Профессиональный TypeScript.md
Normal file
43
Knowledges/Библиотека/Книги/Профессиональный TypeScript.md
Normal file
@ -0,0 +1,43 @@
|
||||
---
|
||||
Тип: Книга
|
||||
Статус: Прочитано
|
||||
Название: "Профессиональный TypeScript : разработка масштабируемых JavaScript-приложений"
|
||||
Автор:
|
||||
- Борис Черный
|
||||
Количество страниц: 352
|
||||
Прогресс: 352
|
||||
Формат: Бумажная
|
||||
Обложка: Библиотека/Книги/covers/professional-typescript.jpg
|
||||
Начата:
|
||||
Закончена: 2024
|
||||
Оценка:
|
||||
Сложность:
|
||||
Теги:
|
||||
- typescript
|
||||
- javascript
|
||||
- типизация
|
||||
Категории:
|
||||
- Frontend
|
||||
- Backend
|
||||
Источник:
|
||||
Ссылка:
|
||||
---
|
||||
|
||||
# Профессиональный TypeScript
|
||||
|
||||
## 📖 О книге
|
||||
В книге рассказывается о самой идеи TypeScript, о приведении типизации, использовании дженериков и утилитарных типах
|
||||
|
||||
|
||||
## 🧠 Ключевые идеи
|
||||
- never - подтип всех типов, any - супертип всех типов
|
||||
|
||||
## 💬 Важные цитаты
|
||||
|
||||
|
||||
## 💡 Как применить в моих проектах
|
||||
- Типизация должна или выводиться самостоятельно, или
|
||||
|
||||
|
||||
## 🔗 Связанные заметки
|
||||
|
||||
@ -0,0 +1,57 @@
|
||||
---
|
||||
Тип: Книга
|
||||
Статус: Прочитано
|
||||
Название: Рефакторинг кода на JavaScript. Улучшение проекта существующего кода
|
||||
Автор:
|
||||
- Мартин Фаулер
|
||||
Количество страниц: 448
|
||||
Прогресс: 448
|
||||
Формат: Электронная
|
||||
Обложка: _assets/img/Pasted image 20241113230057.png
|
||||
Начата: "2024"
|
||||
Закончена: "2024"
|
||||
Оценка: "10"
|
||||
Сложность: 6/10
|
||||
Теги:
|
||||
- it
|
||||
- programming
|
||||
- refactoring
|
||||
- javascript
|
||||
Категории:
|
||||
- разработка программного обеспечения
|
||||
- чистый код
|
||||
Источник:
|
||||
Ссылка:
|
||||
---
|
||||
|
||||
![[Pasted image 20241113230057.png]]
|
||||
|
||||
# Рефакторинг кода на JavaScript. Улучшение проекта существующего кода
|
||||
|
||||
## 📖 О книге
|
||||
Второе издание классического труда Мартина Фаулера, полностью переписанное под использование JavaScript. Книга является исчерпывающим руководством по улучшению структуры существующего кода без изменения его внешнего поведения.
|
||||
|
||||
---
|
||||
|
||||
## 🧠 Ключевые идеи
|
||||
- **Рефакторинг через тесты**: Никогда не начинайте рефакторинг без надежного набора автоматизированных тестов.
|
||||
- **Малые шаги**: Эффективный рефакторинг состоит из последовательности крошечных изменений, каждое из которых оставляет код в рабочем состоянии.
|
||||
- **Понимание "Запахов кода"**: Умение идентифицировать проблемные места (Smells), которые сигнализируют о необходимости изменений.
|
||||
|
||||
---
|
||||
|
||||
## 💬 Важные цитаты
|
||||
> Любой дурак может написать код, который поймет компьютер. Хорошие программисты пишут код, который понимают люди.
|
||||
|
||||
---
|
||||
|
||||
## 💡 Как применить в моих проектах
|
||||
- Использовать каталог методов рефакторинга при ежедневной работе с JS/TS кодом.
|
||||
- Внедрять практику «Рефакторинг при добавлении функционала».
|
||||
- Следить за «запахами» в больших React-компонентах.
|
||||
|
||||
---
|
||||
|
||||
## 🔗 Связанные заметки
|
||||
- [[Рефакторинг]]
|
||||
- [[Чистый код]]
|
||||
Loading…
x
Reference in New Issue
Block a user