добавил книги и скилл для 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",
|
"editing-toolbar",
|
||||||
"obsidian-git",
|
"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",
|
"type": "split",
|
||||||
"children": [
|
"children": [
|
||||||
{
|
{
|
||||||
"id": "9810f6f0d1999531",
|
"id": "9d3653d1b092bda0",
|
||||||
"type": "tabs",
|
"type": "split",
|
||||||
"children": [
|
"children": [
|
||||||
{
|
{
|
||||||
"id": "68de4d224860e518",
|
"id": "00ed27b7e981dd5e",
|
||||||
|
"type": "tabs",
|
||||||
|
"dimension": 69.37269372693727,
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"id": "5f180c1384d356a5",
|
||||||
"type": "leaf",
|
"type": "leaf",
|
||||||
"state": {
|
"state": {
|
||||||
"type": "markdown",
|
"type": "markdown",
|
||||||
"state": {
|
"state": {
|
||||||
"file": "Библиотека/Курсы/Тиндер на Java.md",
|
"file": "Библиотека/Книги/Профессиональный TypeScript.md",
|
||||||
"mode": "preview",
|
"mode": "preview",
|
||||||
"source": false
|
"source": true
|
||||||
},
|
},
|
||||||
"icon": "lucide-file",
|
"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"
|
"direction": "vertical"
|
||||||
@ -166,7 +223,8 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"direction": "horizontal",
|
"direction": "horizontal",
|
||||||
"width": 588.5
|
"width": 588.5,
|
||||||
|
"collapsed": true
|
||||||
},
|
},
|
||||||
"left-ribbon": {
|
"left-ribbon": {
|
||||||
"hiddenItems": {
|
"hiddenItems": {
|
||||||
@ -177,18 +235,25 @@
|
|||||||
"templates:Вставить шаблон": false,
|
"templates:Вставить шаблон": false,
|
||||||
"command-palette:Открыть палитру команд": false,
|
"command-palette:Открыть палитру команд": false,
|
||||||
"bases:Создать новую базу": 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": [
|
"lastOpenFiles": [
|
||||||
"Библиотека/Курсы/Микросервисы на практике - сервис продажи билетов.md",
|
"Библиотека/Книги/Профессиональный TypeScript.md",
|
||||||
|
"Библиотека/Книги/Рефакторинг кода на JavaScript.md",
|
||||||
|
"Библиотека/Книги/covers/refactoring-js.jpg",
|
||||||
|
"Библиотека/Книги/Компьютерные сети. Принципы, технологии, протоколы.md",
|
||||||
|
"Библиотека/Книги/Грокаем алгоритмы.md",
|
||||||
|
"Библиотека/Книги/covers/professional-typescript.jpg",
|
||||||
|
"Библиотека/Книги/covers/grokking-algorithms.jpg",
|
||||||
"Библиотека/Курсы/Тиндер на Java.md",
|
"Библиотека/Курсы/Тиндер на Java.md",
|
||||||
|
"Библиотека/Курсы/Микросервисы на практике - сервис продажи билетов.md",
|
||||||
"Без названия.canvas",
|
"Без названия.canvas",
|
||||||
"Библиотека/Книги/Высоконагруженные приложения. Программирование, масштабирование, поддержка.md",
|
"Библиотека/Книги/Высоконагруженные приложения. Программирование, масштабирование, поддержка.md",
|
||||||
"Библиотека/Книги/Как пасти котов.md",
|
"Библиотека/Книги/Как пасти котов.md",
|
||||||
"Библиотека/Книги/Командная строка Linux.md",
|
"Библиотека/Книги/Командная строка Linux.md",
|
||||||
"Библиотека/Книги/Компьютерные сети. Принципы, технологии, протоколы.md",
|
|
||||||
"Библиотека/Книги/Совершенный код.md",
|
"Библиотека/Книги/Совершенный код.md",
|
||||||
"Библиотека/Книги/Список книг.md",
|
"Библиотека/Книги/Список книг.md",
|
||||||
"Библиотека/Книги/Чистый код.md",
|
"Библиотека/Книги/Чистый код.md",
|
||||||
@ -200,10 +265,7 @@
|
|||||||
"Библиотека/Книги/covers/pro-git.png",
|
"Библиотека/Книги/covers/pro-git.png",
|
||||||
"Библиотека/Книги/covers/code-complete.jpg",
|
"Библиотека/Книги/covers/code-complete.jpg",
|
||||||
"Библиотека/Книги/covers/clean-code.jpg",
|
"Библиотека/Книги/covers/clean-code.jpg",
|
||||||
"Библиотека/Книги/covers/highload.png",
|
|
||||||
"Библиотека/Книги/covers/computer-networks.png",
|
|
||||||
"Шаблоны/course_template.md.md",
|
"Шаблоны/course_template.md.md",
|
||||||
"Библиотека/Книги/covers/Pasted image 20260225200640.png",
|
|
||||||
"Библиотека/AI Tools/System Prompts.md",
|
"Библиотека/AI Tools/System Prompts.md",
|
||||||
"Библиотека/AI Tools/Agents.md",
|
"Библиотека/AI Tools/Agents.md",
|
||||||
"Библиотека/AI Tools/Skills.md",
|
"Библиотека/AI Tools/Skills.md",
|
||||||
@ -225,9 +287,6 @@
|
|||||||
"Библиотека/Туториалы",
|
"Библиотека/Туториалы",
|
||||||
"Библиотека/Курсы",
|
"Библиотека/Курсы",
|
||||||
"Библиотека/Фильмы",
|
"Библиотека/Фильмы",
|
||||||
"Библиотека/Книги",
|
"Библиотека/Книги"
|
||||||
"IT/Алгоритмы/Сортировки/Сортировка слиянием (Merge Sort).md",
|
|
||||||
"IT/Рефакторинг/Запахи кода/Теоретическая общность.md",
|
|
||||||
"IT/Рефакторинг/Запахи кода/Таинственное имя.md"
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@ -134,3 +134,7 @@
|
|||||||
- [[Свертывание иерархии (Collapse Hierarchy)]]
|
- [[Свертывание иерархии (Collapse Hierarchy)]]
|
||||||
- [[Замена подкласса делегатом (Replace Subclass with Delegate)]]
|
- [[Замена подкласса делегатом (Replace Subclass with Delegate)]]
|
||||||
- [[Замена суперкласса делегатом (Replace Superclass 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