Compare commits
5 Commits
9a5643fd64
...
4b382b30b2
Author | SHA1 | Date | |
---|---|---|---|
4b382b30b2 | |||
16012134aa | |||
3f5e345bf5 | |||
cc326d98d5 | |||
53849bae6b |
@ -40,7 +40,7 @@ linked:
|
||||
***
|
||||
## Мета информация
|
||||
**Область**:: [[../../meta/zero/00 Архитектура ПО|00 Архитектура ПО]]
|
||||
**Родитель**:: [[../../../../knowledge/dev/Реактивное программирование|Реактивное программирование]]
|
||||
**Родитель**:: [[Реактивное программирование|Реактивное программирование]]
|
||||
**Источник**::
|
||||
**Автор**::
|
||||
**Создана**::
|
||||
|
55
dev/architecture/Transactional Outbox.md
Normal file
@ -0,0 +1,55 @@
|
||||
---
|
||||
aliases:
|
||||
- transactional outbox
|
||||
- транзакционный аутбокс
|
||||
tags:
|
||||
- maturity/🌱
|
||||
date: 2024-11-15
|
||||
---
|
||||
Transactional Outbox — это [[Паттерн проектирования|шаблон проектирования]], используемый в распределённых системах для обеспечения гарантированной отправки сообщений, особенно при интеграции с [[Брокер сообщений|брокерами сообщений]]. Этот шаблон помогает решить [[Отправка сообщений в Kafka из транзакции БД| проблему атомарности между изменениями в базе данных и отправкой событий]], гарантируя, что сообщение будет отправлено только после успешного выполнения транзакции в базе данных.
|
||||
|
||||
**Схема работы:**
|
||||
1. При выполнении бизнес-операции, например, при изменении данных в базе данных, создаётся запись в таблице `outbox`. Эта запись содержит сообщение, которое нужно отправить другим сервисам.
|
||||
2. Операция создания записи в таблице `outbox` происходит в одной транзакции с основной бизнес-операцией. Это гарантирует, что и изменение данных, и запись сообщения будут выполнены атомарно.
|
||||
3. После успешной фиксации транзакции фоновый процесс или отдельный компонент читает сообщения из таблицы `outbox` и отправляет их в [[брокер сообщений]].
|
||||
4. После успешной отправки сообщения запись в таблице outbox помечается как обработанная и спустя какое-то время удаляется.
|
||||
|
||||
**Преимущества:**
|
||||
- **Гарантированная доставка сообщений**: сообщения фиксируются вместе с бизнес-операциями, что предотвращает ситуацию, когда данные в базе данных обновлены, а сообщение не отправлено.
|
||||
- **Упрощение архитектуры**: использование таблицы `outbox` вместо распределённых транзакций (2PC) значительно упрощает архитектуру и позволяет избежать сложных механизмов блокировки.
|
||||
|
||||
**Недостатки:**
|
||||
- **Дополнительная задержка**: отправка сообщений через фоновый процесс может вызвать небольшую задержку в доставке сообщений, по сравнению с немедленной отправкой.
|
||||
- **Увеличение нагрузки на базу данных**: таблица `outbox` требует дополнительного хранения и управления, что увеличивает нагрузку на базу данных, особенно при большом объёме сообщений.
|
||||
|
||||
Сначала необходимо создать таблицу `outbox` в вашей базе данных для хранения сообщений, ожидающих отправки в Kafka.
|
||||
|
||||
Возможная структура `outbox` таблицы
|
||||
```sql
|
||||
CREATE TABLE outbox (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
topic VARCHAR(255) NOT NULL,
|
||||
payload TEXT NOT NULL,
|
||||
status VARCHAR(20) DEFAULT 'PENDING',
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
```
|
||||
- `id`: Уникальный идентификатор записи.
|
||||
- `topic`: Название топика/очереди, в который должно быть отправлено событие.
|
||||
- `payload`: данные события.
|
||||
- `status`: Статус обработки (`PENDING`, `SENT`, `FAILED`).
|
||||
- `created_at` и `updated_at`: Временные метки для отслеживания создания и обновления записи.
|
||||
***
|
||||
## Мета информация
|
||||
**Область**:: [[../../meta/zero/00 Архитектура ПО|00 Архитектура ПО]]
|
||||
**Родитель**:: [[Паттерн проектирования]]
|
||||
**Источник**::
|
||||
**Создана**:: [[2024-11-15]]
|
||||
**Автор**::
|
||||
### Дополнительные материалы
|
||||
- [[../../../../_inbox/Transactional Inbox|Transactional Inbox]]
|
||||
|
||||
### Дочерние заметки
|
||||
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
|
||||
|
@ -3,11 +3,21 @@ aliases:
|
||||
tags:
|
||||
- maturity/🌱
|
||||
date: 2024-10-01
|
||||
zero-link:
|
||||
- "[[../garden/ru/meta/zero/00 Архитектура ПО|00 Архитектура ПО]]"
|
||||
parents:
|
||||
linked:
|
||||
---
|
||||
Архитектурная концепция это общая идея или принцип построения архитектуры системы или отдельного компонента системы.
|
||||
|
||||
**Цель**:
|
||||
- Определить базовые принципы, которые будут направлять разработку всей системы.
|
||||
- Решать проблемы на уровне системы, а не отдельных компонентов.
|
||||
|
||||
## Классификация
|
||||
На уровне системы:
|
||||
- [[../../../../wiki/zero/Микросервисная архитектура|Микросервисная архитектура]]
|
||||
- [[../../../../_inbox/Событийно-ориентированное программирование|Событийно-ориентированное программирование]]
|
||||
- [[Асинхронное программирование]]
|
||||
- [[Реактивное программирование|Реактивное программирование]]
|
||||
|
||||
На уровне компонентов системы:
|
||||
- [[Inversion of Control]]
|
||||
- [[Один клиент — один поток]]
|
||||
- [[Много клиентов — один поток]]
|
||||
@ -24,8 +34,11 @@ linked:
|
||||
### Дочерние заметки
|
||||
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
|
||||
<!-- SerializedQuery: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
|
||||
- [[Событийно-ориентированное программирование]]
|
||||
- [[Микросервисная архитектура]]
|
||||
- [[Inversion of Control]]
|
||||
- [[Много клиентов — один поток]]
|
||||
- [[Один клиент — один поток]]
|
||||
- [[Паттерн проектирования]]
|
||||
- [[Асинхронное программирование]]
|
||||
<!-- SerializedQuery END -->
|
||||
|
@ -3,17 +3,14 @@ aliases:
|
||||
tags:
|
||||
- maturity/🌱
|
||||
date: 2024-10-08
|
||||
zero-link:
|
||||
parents:
|
||||
linked:
|
||||
---
|
||||
Асинхронность позволяет задачам выполняться в фоновом режиме, не блокируя основной поток программы. В синхронных операциях задача должна завершиться, прежде чем начнётся следующая, тогда как асинхронные задачи могут выполняться независимо, что особенно полезно для [[../architecture/Блокирующий вызов|блокирующих операций]].
|
||||
Асинхронность позволяет задачам выполняться в фоновом режиме, не блокируя основной поток программы, тем самым реализуя [[Concurrency]]. В синхронных операциях задача должна завершиться, прежде чем начнётся следующая, тогда как асинхронные задачи могут выполняться независимо, что особенно полезно для [[../architecture/Блокирующий вызов|блокирующих операций]].
|
||||
|
||||
Асинхронное программирование делает программы более отзывчивыми, позволяя основному потоку продолжать выполнение других задач, пока асинхронная операция выполняется. После завершения такой операции программа может вернуться к её результатам. В Java для этого используется класс `CompletableFuture`.
|
||||
***
|
||||
## Мета информация
|
||||
**Область**:: [[../../meta/zero/00 Разработка|00 Разработка]]
|
||||
**Родитель**:: [[Concurrency]]
|
||||
**Область**:: [[../../meta/zero/00 Архитектура ПО|00 Архитектура ПО]]
|
||||
**Родитель**:: [[../architecture/Архитектурная концепция|Архитектурная концепция]]
|
||||
**Источник**::
|
||||
**Создана**:: [[2024-10-08]]
|
||||
**Автор**::
|
@ -1,5 +1,6 @@
|
||||
---
|
||||
aliases:
|
||||
aliases:
|
||||
- брокерами сообщений
|
||||
tags:
|
||||
- maturity/🌱
|
||||
date: 2024-07-02
|
||||
|
@ -13,8 +13,8 @@ date: 2024-09-11
|
||||
|
||||
Идемпотентность позволяет системе быть устойчивой к ошибкам и повторам — если запрос случайно повторится, это не приведет к нежелательным изменениям.
|
||||
|
||||
Примеры реализации:
|
||||
- С использованием уникального идентификатора
|
||||
**Примеры реализации:**
|
||||
- [[highload/Идемпотентность на базе уникального идентификатора|Идемпотентность на базе уникального идентификатора]]
|
||||
- Логика приложения устроена таким образом, что выполнение запроса с одними и теми же параметрами всегда приводит к одному и тому же результату.
|
||||
***
|
||||
## Мета информация
|
||||
|
@ -36,7 +36,7 @@ linked:
|
||||
С ростом масштабов приложений, особенно в веб-разработке, стали популярны асинхронные и реактивные подходы, где один поток может обслуживать множество клиентов, не создавая новый поток для каждого запроса. Такие подходы позволяют лучше использовать ресурсы системы:
|
||||
|
||||
- **Асинхронные модели.** Серверы, такие как [[../../meta/zero/00 Nginx|Nginx]], используют [[../../../../_inbox/Событийно-ориентированное программирование|событийно-ориентированную архитектуру]], где запросы обрабатываются без необходимости создавать новый поток на каждый запрос. Это снижает потребление памяти и улучшает масштабируемость.
|
||||
- [[../../../../knowledge/dev/Реактивное программирование|Реактивное программирование]]. В таких фреймворках, как [[../../meta/zero/00 Quarkus|Quarkus]], Vert.x или [[../../meta/zero/00 SpringBoot|Spring]] WebFlux, запросы обрабатываются асинхронно с использованием реактивных потоков, что позволяет эффективно распределять ресурсы даже при высокой нагрузке.
|
||||
- [[Реактивное программирование|Реактивное программирование]]. В таких фреймворках, как [[../../meta/zero/00 Quarkus|Quarkus]], Vert.x или [[../../meta/zero/00 SpringBoot|Spring]] WebFlux, запросы обрабатываются асинхронно с использованием реактивных потоков, что позволяет эффективно распределять ресурсы даже при высокой нагрузке.
|
||||
|
||||
***
|
||||
## Мета информация
|
||||
|
@ -0,0 +1,29 @@
|
||||
---
|
||||
aliases:
|
||||
tags:
|
||||
- maturity/🌱
|
||||
date: 2024-11-15
|
||||
---
|
||||
Отправка сообщений в [[00 Kafka|Kafka]] из [[Транзакция БД|транзакций базы данных]] приводит к проблемам с согласованностью данных между системами, особенно в условиях распределённых систем. Если сначала происходит отправка сообщения в Kafka, а затем транзакция в БД откатывается, то сообщение останется в Kafka, но база данных не зафиксирует изменений, что приведёт к рассинхронизации данных.
|
||||
|
||||
Для обеспечения согласованности данных между базой данных и Kafka необходимо использовать следующие подходы:
|
||||
|
||||
- [[Transactional Outbox|Transactional Outbox]]. Этот подход позволяет отделить запись в базу данных от отправки сообщения в брокер. Изменения сначала фиксируются в основной таблице базы данных, а затем записываются в специальную таблицу "Outbox". Отдельный процесс или сервис асинхронно считывает из таблицы "Outbox" и отправляет сообщения в Kafka, что гарантирует согласованность данных.
|
||||
- Change Data Capture (CDC). Использование CDC с инструментами вроде Debezium позволяет отслеживать изменения в базе данных и публиковать их в Kafka. Это решение подходит для случаев, когда необходимо обеспечить автоматическую синхронизацию изменений, но может потребовать дополнительных настроек и ресурсов.
|
||||
- Распределённые транзакции (двухфазный коммит). Этот метод позволяет гарантировать согласованность между базой данных и Kafka за счёт координации транзакций между ними. Однако этот подход часто считается сложным и менее масштабируемым, особенно в распределённых системах.
|
||||
|
||||
Другая серьёзная проблема связана с возможностью двойной обработки. В случае сбоя приложения или инфраструктуры транзакции могут повторяться, приводя к дублированию событий в Kafka. Дублирование событий может вызвать некорректное состояние системы, повторное выполнение операций. Чтобы предотвратить дублирование, можно использовать следующие подходы:
|
||||
- [[highload/Идемпотентность на базе уникального идентификатора|Идемпотентность на базе уникального идентификатора]]
|
||||
***
|
||||
## Мета информация
|
||||
**Область**:: [[../../meta/zero/00 Архитектура ПО|00 Архитектура ПО]]
|
||||
**Родитель**::
|
||||
**Источник**::
|
||||
**Создана**:: [[2024-11-15]]
|
||||
**Автор**::
|
||||
### Дополнительные материалы
|
||||
-
|
||||
|
||||
### Дочерние заметки
|
||||
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
|
||||
|
@ -1,20 +1,17 @@
|
||||
---
|
||||
aliases:
|
||||
- паттерн
|
||||
- шаблон проектирования
|
||||
tags:
|
||||
- maturity/🌱
|
||||
date: 2023-11-05
|
||||
zero-link:
|
||||
- "[[../../meta/zero/00 Архитектура ПО|00 Архитектура ПО]]"
|
||||
parents:
|
||||
- "[[Архитектурная концепция]]"
|
||||
linked:
|
||||
---
|
||||
- [[Dependency Injection]]
|
||||
- [[Порождающий паттерн проектирования]]
|
||||
- [[Builder Pattern|Builder Pattern]]: строит объекты поэтапно, разделяя процесс создания и внешний вид.
|
||||
|
||||
- Abstract Factory: создаёт группы связанных элементов.
|
||||
- [[Builder Pattern|Builder Pattern]]: строит объекты поэтапно, разделяя процесс создания и внешний вид.
|
||||
- Prototype: создаёт копии полностью подготовленных экземпляров.
|
||||
- Singleton: One and Only — особый класс, имеющий только один экземпляр.
|
||||
- Adapter: Universal Plug — соединяет объекты с разными интерфейсами.
|
||||
@ -32,6 +29,9 @@ linked:
|
||||
- Observer: News Broadcaster — уведомляет классы об изменениях в других объектах.
|
||||
- Visitor: Skillful Guest — добавляет новые операции классу, не изменяя его.
|
||||
|
||||
- [[../../../../_inbox/Transactional Inbox|Transactional Inbox]]
|
||||
- [[Transactional Outbox]]
|
||||
|
||||
***
|
||||
## Мета информация
|
||||
**Область**:: [[../../meta/zero/00 Архитектура ПО|00 Архитектура ПО]]
|
||||
@ -44,6 +44,8 @@ linked:
|
||||
### Дочерние заметки
|
||||
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
|
||||
<!-- SerializedQuery: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
|
||||
- [[MVC]]
|
||||
- [[Dependency Injection]]
|
||||
- [[Порождающий паттерн проектирования]]
|
||||
- [[Transactional Outbox]]
|
||||
<!-- SerializedQuery END -->
|
||||
|
30
dev/architecture/Реактивное программирование.md
Normal file
@ -0,0 +1,30 @@
|
||||
---
|
||||
aliases:
|
||||
- реактивном программировании
|
||||
tags:
|
||||
- maturity/🌱
|
||||
date: "[[2023-10-26]]"
|
||||
zero-link:
|
||||
- "[[../../meta/zero/00 Разработка|00 Разработка]]"
|
||||
parents:
|
||||
- "[[Парадигмы разработки]]"
|
||||
linked:
|
||||
---
|
||||
**Реактивное программирование** — это парадигма, ориентированная на потоки данных и распространение изменений. Она использует асинхронные потоки данных (например, Observables в RxJava), которые позволяют обрабатывать события по мере их поступления с автоматическим управлением параллелизмом и асинхронностью.
|
||||
|
||||
**Реактивное программирование** используется для создания отзывчивых, устойчивых и масштабируемых систем, где важно быстро реагировать на поступающие данные, управляя backpressure (ситуация, когда данные поступают быстрее, чем могут быть обработаны) и обеспечивая неблокирующее взаимодействие.
|
||||
***
|
||||
## Мета информация
|
||||
**Область**:: [[../../meta/zero/00 Разработка|00 Разработка]]
|
||||
**Родитель**:: [[Архитектурная концепция]]
|
||||
**Источник**::
|
||||
**Автор**::
|
||||
**Создана**:: [[2023-10-26]]
|
||||
### Дополнительные материалы
|
||||
- [Реактивное программирование на Java. Будущее, настоящее и прошлое](https://struchkov.dev/blog/ru/overview-of-reactive-programming/)
|
||||
### Дочерние заметки
|
||||
```dataview
|
||||
LIST
|
||||
FROM [[]]
|
||||
WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link)
|
||||
```
|
@ -12,13 +12,13 @@ linked:
|
||||
---
|
||||
Конкурентность — это общий термин, описывающий способность программы обрабатывать несколько задач. ==Это не обязательно означает одновременное выполнение.==
|
||||
|
||||
- [[Parallelism]]. Физическое одновременное выполнение нескольких задач на разных ядрах или процессорах. Параллелизм является формой конкурентности, но требует аппаратной поддержки для одновременного выполнения.
|
||||
[[Parallelism]]. Физическое одновременное выполнение нескольких задач на разных ядрах или процессорах. Параллелизм является формой конкурентности, но требует аппаратной поддержки для одновременного выполнения.
|
||||
|
||||
**Механизмы реализации конкурентности**
|
||||
- [[Многозадачность|Multitasking]].
|
||||
- [[Multithreading]]. Использование нескольких потоков внутри одного процесса. Потоки могут выполняться конкурентно, разделяя память и ресурсы процесса. Также требует механизма переключения контекстов, но на уровне потоков.
|
||||
- [[Асинхронное программирование]]
|
||||
- [[../../../../knowledge/dev/Реактивное программирование|Реактивное программирование]]
|
||||
- [[../architecture/Асинхронное программирование]]
|
||||
- [[../architecture/Реактивное программирование|Реактивное программирование]]
|
||||
|
||||
![[../../meta/files/images/telegram-cloud-photo-size-2-5271536941378167546-y.jpg]]
|
||||
***
|
||||
@ -33,6 +33,5 @@ linked:
|
||||
### Дочерние заметки
|
||||
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
|
||||
<!-- SerializedQuery: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
|
||||
- [[Асинхронное программирование]]
|
||||
- [[Многозадачность]]
|
||||
<!-- SerializedQuery END -->
|
||||
|
@ -89,7 +89,7 @@ private Tuple<String, Integer> fetchUserData() {
|
||||
- Если потребуется передавать данные в другие классы в будущем.
|
||||
- Если работа с данными требует дополнительной логики, такой как валидация или преобразование.
|
||||
## Tuple в реактивном программировании
|
||||
В [[../../../../knowledge/dev/Реактивное программирование|реактивном программировании]], особенно с использованием [[../../meta/zero/00 Quarkus|Quarkus]] и Mutiny, часто возникает необходимость передачи нескольких значений между стадиями реактивного потока данных. `Tuple` может быть удобным решением для объединения значений, особенно когда результат остаётся внутри потока и не становится частью публичного API.
|
||||
В [[../architecture/Реактивное программирование|реактивном программировании]], особенно с использованием [[../../meta/zero/00 Quarkus|Quarkus]] и Mutiny, часто возникает необходимость передачи нескольких значений между стадиями реактивного потока данных. `Tuple` может быть удобным решением для объединения значений, особенно когда результат остаётся внутри потока и не становится частью публичного API.
|
||||
|
||||
Например, в реактивных пайпах могут использоваться такие структуры, как `Tuple2`, `Tuple3` и далее:
|
||||
|
||||
|
51
dev/linux/File Globbing.md
Normal file
@ -0,0 +1,51 @@
|
||||
---
|
||||
aliases:
|
||||
- globbing
|
||||
tags:
|
||||
- maturity/🌱
|
||||
date: 2024-11-14
|
||||
---
|
||||
Глоббинг (globbing) — это техника, используемая в командной оболочке Linux (и других UNIX-подобных системах) для поиска файлов, используя шаблоны вместо перечисления имен файлов. Паттерны глоббинга помогают выполнять операции с несколькими файлами за один раз, что делает работу удобнее и эффективнее.
|
||||
|
||||
**Базовые паттерны глоббинга:**
|
||||
- `*` — Совпадает с любым количеством символов (включая ноль символов). Пример: `file*` найдет `file1.txt`, `fileA`, и любые другие файлы, начинающиеся на "file".
|
||||
- `?` — Совпадает с одним любым символом. Пример: `file?.txt` найдет файлы вроде `file1.txt` или `fileA.txt`, но не `file10.txt`.
|
||||
- `[abc]` — Совпадает с любым из символов, указанных в квадратных скобках. Пример: `file[abc].txt` найдет `filea.txt`, `fileb.txt`, или `filec.txt`.
|
||||
- `[a-z]` — Совпадает с любым символом в указанном диапазоне. Пример: `file[a-z].txt` найдет файлы, такие как `filea.txt`, `filem.txt` и т.д.
|
||||
- `[!abc]` или `[^abc]` — Совпадает с любым символом, не входящим в указанный список. Пример: `file[!a].txt` найдет все файлы, кроме `filea.txt`.
|
||||
|
||||
**Комбинированные паттерны глоббинга:**
|
||||
- `file*` — Найдет все файлы, начинающиеся с "file".
|
||||
- `*.txt` — Найдет все файлы с расширением ".txt".
|
||||
- `file[0-9].txt` — Найдет файлы, такие как `file1.txt`, `file2.txt`, но не `fileA.txt`.
|
||||
- `file{1,2,3}.txt` — Найдет файлы `file1.txt`, `file2.txt`, `file3.txt`.
|
||||
|
||||
**Расширенные паттерны глоббинга:**
|
||||
- `**/*.txt` — Найдет все файлы с расширением ".txt" в текущей директории и всех ее поддиректориях.
|
||||
- `[a-z]*` — Найдет файлы, начинающиеся с любой строчной буквы.
|
||||
- `[[:digit:]]*` — Найдет файлы, начинающиеся с цифры.
|
||||
|
||||
**Использование глоббинга в командах:**
|
||||
- `ls *.txt` — Показать все файлы с расширением `.txt` в текущей директории.
|
||||
- `cp file?.txt /backup/` — Скопировать файлы, такие как `file1.txt` или `fileA.txt` в директорию `/backup/`.
|
||||
- `rm file[0-9]*` — Удалить файлы, начинающиеся с `file` и за которыми следует цифра.
|
||||
- `mv data{1,2,3}.csv /data/archive/` — Переместить файлы `data1.csv`, `data2.csv`, `data3.csv` в `/data/archive/`.
|
||||
- `tar -cvf archive.tar *.log` — Архивировать все `.log` файлы в `archive.tar`.
|
||||
|
||||
**Экранирование специальных символов**
|
||||
Чтобы указать оболочке, что определенные символы не должны интерпретироваться как метасимволы, их необходимо экранировать с помощью обратной косой черты (`\`).
|
||||
- `ls \*.txt` — Найдет файл с именем `*.txt`.
|
||||
- `ls file\?` — Найдет файл с именем `file?`.
|
||||
***
|
||||
## Мета информация
|
||||
**Область**:: [[../../meta/zero/00 Linux|00 Linux]]
|
||||
**Родитель**::
|
||||
**Источник**::
|
||||
**Создана**:: [[2024-11-14]]
|
||||
**Автор**::
|
||||
### Дополнительные материалы
|
||||
-
|
||||
|
||||
### Дочерние заметки
|
||||
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
|
||||
|
@ -16,7 +16,7 @@ date: 2024-11-03
|
||||
|
||||
***
|
||||
## Мета информация
|
||||
**Область**:: [[../../meta/zero/00 System Design|00 System Design]]
|
||||
**Область**:: [[../../meta/zero/00 Архитектура ИС|00 Архитектура ИС]]
|
||||
**Родитель**:: [[Протоколы коммуникаций|Протоколы коммуникаций]]
|
||||
**Источник**::
|
||||
**Создана**:: [[2024-11-03]]
|
||||
|
@ -15,7 +15,7 @@ date: 2024-11-03
|
||||
- Удержание открытого соединения может быть менее эффективным для серверов с ограниченными ресурсами, особенно при большом количестве клиентов.
|
||||
***
|
||||
## Мета информация
|
||||
**Область**:: [[../../meta/zero/00 System Design|00 System Design]]
|
||||
**Область**:: [[../../meta/zero/00 Архитектура ИС|00 Архитектура ИС]]
|
||||
**Родитель**::
|
||||
**Источник**::
|
||||
**Создана**:: [[2024-11-03]]
|
||||
|
@ -16,7 +16,7 @@ date: 2024-11-03
|
||||
![[../../meta/files/images/Pasted image 20241103020635.png]]
|
||||
***
|
||||
## Мета информация
|
||||
**Область**:: [[../../meta/zero/00 System Design|00 System Design]]
|
||||
**Область**:: [[../../meta/zero/00 Архитектура ИС|00 Архитектура ИС]]
|
||||
**Родитель**:: [[Протоколы коммуникаций|Протоколы коммуникаций]]
|
||||
**Источник**::
|
||||
**Создана**:: [[2024-11-03]]
|
||||
|
@ -11,7 +11,7 @@ RPC (удалённый вызов процедур) — это **общая к
|
||||
|
||||
***
|
||||
## Мета информация
|
||||
**Область**:: [[../../meta/zero/00 System Design|00 System Design]]
|
||||
**Область**:: [[../../meta/zero/00 Архитектура ИС|00 Архитектура ИС]]
|
||||
**Родитель**::
|
||||
**Источник**::
|
||||
**Создана**:: [[2024-11-03]]
|
||||
|
@ -17,7 +17,7 @@ date: 2024-11-03
|
||||
- Сложнее тестировать и отлаживать, так как вебхуки зависят от событий, происходящих на сервере.
|
||||
***
|
||||
## Мета информация
|
||||
**Область**:: [[../../meta/zero/00 System Design|00 System Design]]
|
||||
**Область**:: [[../../meta/zero/00 Архитектура ИС|00 Архитектура ИС]]
|
||||
**Родитель**:: [[Протоколы коммуникаций]]
|
||||
**Источник**::
|
||||
**Создана**:: [[2024-11-03]]
|
||||
|
@ -19,7 +19,7 @@ date: 2024-04-12
|
||||
**Балансировка нагрузки L7 vs L4**: Kubernetes обычно использует балансировку нагрузки на уровне 4 (L4), которая перенаправляет трафик на основе информации IP и порта. Однако gRPC полагается на HTTP/2, что требует балансировки на уровне 7 (L7) для эффективного распределения запросов. Это может потребовать дополнительных настроек или использования специализированных ингресс-контроллеров, поддерживающих HTTP/2.
|
||||
***
|
||||
## Мета информация
|
||||
**Область**:: [[../../meta/zero/00 System Design|00 System Design]]
|
||||
**Область**:: [[../../meta/zero/00 Архитектура ИС|00 Архитектура ИС]]
|
||||
**Родитель**:: [[Remote Procedure Call|RPC]], [[Протоколы коммуникаций]]
|
||||
**Источник**::
|
||||
**Автор**::
|
||||
|
@ -23,7 +23,7 @@ date: 2024-11-03
|
||||
- Уведомляет системы при наступлении событий
|
||||
***
|
||||
## Мета информация
|
||||
**Область**:: [[../../meta/zero/00 System Design|00 System Design]]
|
||||
**Область**:: [[../../meta/zero/00 Архитектура ИС|00 Архитектура ИС]]
|
||||
**Родитель**::
|
||||
**Источник**::
|
||||
**Создана**:: [[2024-11-03]]
|
||||
@ -34,9 +34,9 @@ date: 2024-11-03
|
||||
### Дочерние заметки
|
||||
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
|
||||
<!-- SerializedQuery: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
|
||||
- [[RESTful]]
|
||||
- [[GraphQL]]
|
||||
- [[gRPC]]
|
||||
- [[RESTful]]
|
||||
- [[Webhook]]
|
||||
- [[gRPC]]
|
||||
<!-- SerializedQuery END -->
|
||||
|
||||
|
8
meta/files/compression.log
Normal file
@ -0,0 +1,8 @@
|
||||
2024-11-17 19:28:15 Сжат PNG файл: ./images/Pasted image 20240528082025.png на 9.32% (270525 байт -> 245303 байт)
|
||||
2024-11-17 19:28:16 Сжат PNG файл: ./images/Pasted image 20240911091521.png на 59.39% (102395 байт -> 41582 байт)
|
||||
2024-11-17 19:28:16 Сжат PNG файл: ./images/Pasted image 20240911091002.png на 62.61% (110375 байт -> 41264 байт)
|
||||
2024-11-17 19:28:33 Сжат PNG файл: ./images/Pasted image 20240909083940.png на 17.54% (637823 байт -> 525968 байт)
|
||||
2024-11-17 19:28:43 Сжат PNG файл: ./images/Pasted image 20240401205236.png на 10.20% (792209 байт -> 711424 байт)
|
||||
2024-11-17 19:28:49 Сжат PNG файл: ./images/Pasted image 20241103220807.png на 30.29% (1179914 байт -> 822467 байт)
|
||||
2024-11-17 19:29:05 Сжат PNG файл: ./images/Pasted image 20240912082100.png на 0.75% (2371400 байт -> 2353730 байт)
|
||||
2024-11-17 19:29:10 Сжат PNG файл: ./images/Pasted image 20240911091644.png на 16.51% (347231 байт -> 289913 байт)
|
After Width: | Height: | Size: 39 KiB |
After Width: | Height: | Size: 35 KiB |
BIN
meta/files/images/2-find-your-place-cxema-desk-5.4fdlpt..webp
Normal file
After Width: | Height: | Size: 44 KiB |
BIN
meta/files/images/2-find-your-place-cxema-desk-6.bjffhb..webp
Normal file
After Width: | Height: | Size: 41 KiB |
BIN
meta/files/images/2-find-your-place-cxema-desk-7.xj13tx..webp
Normal file
After Width: | Height: | Size: 34 KiB |
BIN
meta/files/images/2-find-your-place-cxema-desk-9.qcef0z..webp
Normal file
After Width: | Height: | Size: 60 KiB |
BIN
meta/files/images/3-prostranstvo-cxema-desk-2.hib0vixppmxe..webp
Normal file
After Width: | Height: | Size: 62 KiB |
BIN
meta/files/images/Pasted image 20240401205236.png
Normal file
After Width: | Height: | Size: 774 KiB |
BIN
meta/files/images/Pasted image 20240909083940.png
Normal file
After Width: | Height: | Size: 623 KiB |
BIN
meta/files/images/Pasted image 20240911091002.png
Normal file
After Width: | Height: | Size: 108 KiB |
BIN
meta/files/images/Pasted image 20240911091521.png
Normal file
After Width: | Height: | Size: 100 KiB |
BIN
meta/files/images/Pasted image 20240911091644.png
Normal file
After Width: | Height: | Size: 339 KiB |
BIN
meta/files/images/Pasted image 20240912082100.png
Normal file
After Width: | Height: | Size: 2.3 MiB |
@ -0,0 +1 @@
|
||||
Ошибка при сжатии ./images/Pasted image 20240401205236.png с помощью pngquant
|
@ -0,0 +1 @@
|
||||
Ошибка при сжатии ./images/Pasted image 20240909083940.png с помощью pngquant
|
BIN
meta/files/images/comp/Pasted image 20240911091002.png
Normal file
After Width: | Height: | Size: 30 KiB |
@ -0,0 +1 @@
|
||||
ea8ce67554b98050754913655b6eb8b7
|
BIN
meta/files/images/comp/Pasted image 20240911091521.png
Normal file
After Width: | Height: | Size: 30 KiB |
@ -0,0 +1 @@
|
||||
60cee70b65a006ad81f28a2ec7c53233
|
BIN
meta/files/images/comp/Pasted image 20240911091644.png
Normal file
After Width: | Height: | Size: 98 KiB |
@ -0,0 +1 @@
|
||||
2e88525b0231dd06ef626e4229f3b6cd
|
BIN
meta/files/images/comp/Pasted image 20240912082100.png
Normal file
After Width: | Height: | Size: 966 KiB |
@ -0,0 +1 @@
|
||||
a1e421cfbdccbf8c93ffd1aad7b5289e
|
BIN
meta/files/images/webp/Pasted image 20240401205236.webp
Normal file
After Width: | Height: | Size: 90 KiB |
@ -0,0 +1 @@
|
||||
2ef9d6fe0205c583e337aadfa00f87c0
|
BIN
meta/files/images/webp/Pasted image 20240909083940.webp
Normal file
After Width: | Height: | Size: 77 KiB |
@ -0,0 +1 @@
|
||||
62f407bcf63e9a3d9db6ef15a51ed10d
|
BIN
meta/files/images/webp/Pasted image 20240911091002.webp
Normal file
After Width: | Height: | Size: 56 KiB |
@ -0,0 +1 @@
|
||||
ea8ce67554b98050754913655b6eb8b7
|
BIN
meta/files/images/webp/Pasted image 20240911091521.webp
Normal file
After Width: | Height: | Size: 57 KiB |
@ -0,0 +1 @@
|
||||
60cee70b65a006ad81f28a2ec7c53233
|
BIN
meta/files/images/webp/Pasted image 20240911091644.webp
Normal file
After Width: | Height: | Size: 60 KiB |
@ -0,0 +1 @@
|
||||
2e88525b0231dd06ef626e4229f3b6cd
|
BIN
meta/files/images/webp/Pasted image 20240912082100.webp
Normal file
After Width: | Height: | Size: 320 KiB |
@ -0,0 +1 @@
|
||||
a1e421cfbdccbf8c93ffd1aad7b5289e
|
327
meta/files/zip_image.sh
Normal file
@ -0,0 +1,327 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Настройки
|
||||
IMAGE_DIR="./images"
|
||||
COMP_DIR="$IMAGE_DIR/comp"
|
||||
WEBP_DIR="$IMAGE_DIR/webp"
|
||||
# Автоматическое определение количества ядер процессора
|
||||
THREADS=$(getconf _NPROCESSORS_ONLN)
|
||||
echo "Используется $THREADS потоков для обработки."
|
||||
# Файлы логирования
|
||||
LOG_FILE="./zip_image_compression.log"
|
||||
ERROR_LOG_FILE="./zip_image_error.log"
|
||||
|
||||
# Экспортируем необходимые переменные и функции для использования в subshell
|
||||
export IMAGE_DIR COMP_DIR WEBP_DIR LOG_FILE ERROR_LOG_FILE
|
||||
|
||||
# Функция для определения размера файла
|
||||
get_file_size() {
|
||||
local file="$1"
|
||||
if [[ "$OSTYPE" == "linux-gnu"* ]]; then
|
||||
stat -c%s "$file"
|
||||
elif [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
stat -f%z "$file"
|
||||
else
|
||||
# Попытка использовать GNU stat, если установлен
|
||||
if command -v gstat &> /dev/null; then
|
||||
gstat -c%s "$file"
|
||||
else
|
||||
# В качестве альтернативы используем wc -c
|
||||
wc -c < "$file" | tr -d ' '
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
export -f get_file_size
|
||||
|
||||
# Функция для логирования успеха
|
||||
log_success() {
|
||||
local message="$1"
|
||||
echo "$message"
|
||||
echo "$(date '+%Y-%m-%d %H:%M:%S') $message" >> "$LOG_FILE"
|
||||
}
|
||||
|
||||
# Функция для логирования ошибок
|
||||
log_error() {
|
||||
local message="$1"
|
||||
echo "$message" >&2
|
||||
echo "$(date '+%Y-%m-%d %H:%M:%S') $message" >> "$ERROR_LOG_FILE"
|
||||
}
|
||||
|
||||
# Экспортируем функции логирования
|
||||
export -f log_success
|
||||
export -f log_error
|
||||
|
||||
# Функция для обработки PNG файлов
|
||||
process_png() {
|
||||
local input_file="$1"
|
||||
local relative_path="${input_file#$IMAGE_DIR/}"
|
||||
local output_file="$COMP_DIR/$relative_path"
|
||||
local output_dir
|
||||
output_dir="$(dirname "$output_file")"
|
||||
|
||||
mkdir -p "$output_dir"
|
||||
|
||||
# Проверка файла ошибки
|
||||
local error_file="${output_file}.error"
|
||||
if [ -f "$error_file" ]; then
|
||||
# Файл ошибки существует, пропускаем обработку
|
||||
return
|
||||
fi
|
||||
|
||||
# Проверка хеша файла
|
||||
local hash_file="${output_file}.md5"
|
||||
local current_hash
|
||||
current_hash="$(md5sum "$input_file" | awk '{print $1}')"
|
||||
|
||||
if [ -f "$hash_file" ]; then
|
||||
local previous_hash
|
||||
previous_hash="$(cat "$hash_file")"
|
||||
if [ "$current_hash" == "$previous_hash" ]; then
|
||||
# Файл не изменился, ничего не делаем
|
||||
return
|
||||
fi
|
||||
fi
|
||||
# Используем временный файл для обработки
|
||||
local temp_output_file="${output_file}.tmp"
|
||||
cp "$input_file" "$temp_output_file"
|
||||
|
||||
# Размер до сжатия
|
||||
local original_size
|
||||
original_size=$(get_file_size "$input_file")
|
||||
|
||||
# Используем pngquant
|
||||
if ! pngquant --quality=90-100 --speed 1 --output "$temp_output_file" --force "$input_file"; then
|
||||
local error_msg="Ошибка при сжатии $input_file с помощью pngquant" log_error "$error_msg"
|
||||
echo "$error_msg" > "$error_file"
|
||||
rm -f "$temp_output_file"
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Дополнительная оптимизация с помощью zopflipng
|
||||
if ! zopflipng -y "$temp_output_file" "$temp_output_file"; then
|
||||
local error_msg="Ошибка при оптимизации $temp_output_file с помощью zopflipng" log_error "$error_msg"
|
||||
echo "$error_msg" > "$error_file"
|
||||
rm -f "$temp_output_file"
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Размер после сжатия
|
||||
local new_size
|
||||
new_size=$(get_file_size "$temp_output_file")
|
||||
|
||||
# Проверка, что original_size не равен нулю
|
||||
if [ "$original_size" -eq 0 ]; then
|
||||
local error_msg="Ошибка: размер оригинального файла равен 0 для $input_file"
|
||||
log_error "$error_msg"
|
||||
echo "$error_msg" > "$error_file"
|
||||
rm -f "$temp_output_file"
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Проверка, уменьшился ли размер файла
|
||||
if [ "$new_size" -ge "$original_size" ]; then
|
||||
log_success "Сжатие не уменьшило размер файла $input_file, пропускаем сохранение"
|
||||
# Сохраняем хеш, чтобы не обрабатывать файл снова
|
||||
echo "$current_hash" > "$hash_file"
|
||||
rm -f "$temp_output_file"
|
||||
return
|
||||
fi
|
||||
|
||||
# Процент сжатия
|
||||
local reduction
|
||||
reduction=$(awk "BEGIN {printf \"%.2f\", (($original_size - $new_size) / $original_size) * 100}")
|
||||
|
||||
log_success "Сжат PNG файл: $input_file на $reduction% ($original_size байт -> $new_size байт)"
|
||||
# Перемещаем временный файл на место выходного
|
||||
mv "$temp_output_file" "$output_file"
|
||||
|
||||
# Сохраняем хеш
|
||||
echo "$current_hash" > "$hash_file"
|
||||
}
|
||||
export -f process_png
|
||||
|
||||
# Функция для обработки JPEG файлов
|
||||
process_jpeg() {
|
||||
local input_file="$1"
|
||||
local relative_path="${input_file#$IMAGE_DIR/}"
|
||||
local output_file="$COMP_DIR/$relative_path"
|
||||
local output_dir
|
||||
output_dir="$(dirname "$output_file")"
|
||||
|
||||
mkdir -p "$output_dir"
|
||||
|
||||
# Проверка файла ошибки
|
||||
local error_file="${output_file}.error"
|
||||
if [ -f "$error_file" ]; then
|
||||
# Файл ошибки существует, пропускаем обработку
|
||||
return
|
||||
fi
|
||||
|
||||
# Проверка хеша файла
|
||||
local hash_file="${output_file}.md5"
|
||||
local current_hash
|
||||
current_hash="$(md5sum "$input_file" | awk '{print $1}')"
|
||||
|
||||
if [ -f "$hash_file" ]; then
|
||||
local previous_hash
|
||||
previous_hash="$(cat "$hash_file")"
|
||||
if [ "$current_hash" == "$previous_hash" ]; then
|
||||
# Файл не изменился, ничего не делаем
|
||||
return
|
||||
fi
|
||||
fi
|
||||
# Используем временный файл для обработки
|
||||
local temp_output_file="${output_file}.tmp"
|
||||
cp "$input_file" "$temp_output_file"
|
||||
|
||||
# Размер до сжатия
|
||||
local original_size
|
||||
original_size=$(get_file_size "$input_file")
|
||||
|
||||
# Используем mozjpeg
|
||||
if ! cjpeg -quality 95 -progressive -optimize -outfile "$temp_output_file" "$input_file"; then
|
||||
local error_msg="Ошибка при сжатии $input_file с помощью mozjpeg" log_error "$error_msg"
|
||||
echo "$error_msg" > "$error_file"
|
||||
rm -f "$temp_output_file"
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Размер после сжатия
|
||||
local new_size
|
||||
new_size=$(get_file_size "$temp_output_file")
|
||||
|
||||
# Проверка, что original_size не равен нулю
|
||||
if [ "$original_size" -eq 0 ]; then
|
||||
local error_msg="Ошибка: размер оригинального файла равен 0 для $input_file"
|
||||
log_error "$error_msg"
|
||||
echo "$error_msg" > "$error_file"
|
||||
rm -f "$temp_output_file"
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Проверка, уменьшился ли размер файла
|
||||
if [ "$new_size" -ge "$original_size" ]; then
|
||||
log_success "Сжатие не уменьшило размер файла $input_file, пропускаем сохранение"
|
||||
# Сохраняем хеш, чтобы не обрабатывать файл снова
|
||||
echo "$current_hash" > "$hash_file"
|
||||
rm -f "$temp_output_file"
|
||||
return
|
||||
fi
|
||||
|
||||
# Процент сжатия
|
||||
local reduction
|
||||
reduction=$(awk "BEGIN {printf \"%.2f\", (($original_size - $new_size) / $original_size) * 100}")
|
||||
|
||||
log_success "Сжат JPEG файл: $input_file на $reduction% ($original_size байт -> $new_size байт)"
|
||||
# Перемещаем временный файл на место выходного
|
||||
mv "$temp_output_file" "$output_file"
|
||||
|
||||
# Сохраняем хеш
|
||||
echo "$current_hash" > "$hash_file"
|
||||
}
|
||||
export -f process_jpeg
|
||||
|
||||
# Функция для конвертации в WebP
|
||||
process_webp() {
|
||||
local input_file="$1"
|
||||
local relative_path="${input_file#$IMAGE_DIR/}"
|
||||
local output_file="$WEBP_DIR/$relative_path"
|
||||
output_file="${output_file%.*}.webp"
|
||||
local output_dir
|
||||
output_dir="$(dirname "$output_file")"
|
||||
|
||||
mkdir -p "$output_dir"
|
||||
|
||||
# Проверка файла ошибки
|
||||
local error_file="${output_file}.error"
|
||||
if [ -f "$error_file" ]; then
|
||||
# Файл ошибки существует, пропускаем обработку
|
||||
return
|
||||
fi
|
||||
|
||||
# Проверка хеша файла
|
||||
local hash_file="${output_file}.md5"
|
||||
local current_hash
|
||||
current_hash="$(md5sum "$input_file" | awk '{print $1}')"
|
||||
|
||||
if [ -f "$hash_file" ]; then
|
||||
local previous_hash
|
||||
previous_hash="$(cat "$hash_file")"
|
||||
if [ "$current_hash" == "$previous_hash" ]; then
|
||||
# Файл не изменился, ничего не делаем
|
||||
return
|
||||
fi
|
||||
fi
|
||||
# Размер до конвертации
|
||||
local original_size
|
||||
original_size=$(get_file_size "$input_file")
|
||||
|
||||
# Создаем временный файл для вывода
|
||||
local temp_output_file="${output_file}.tmp"
|
||||
|
||||
if ! cwebp -mt -af -quiet -m 6 -q 95 -pass 10 "$input_file" -o "$temp_output_file"; then
|
||||
local error_msg="Ошибка при конвертации $input_file в WebP" log_error "$error_msg"
|
||||
echo "$error_msg" > "$error_file"
|
||||
rm -f "$temp_output_file"
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Размер после конвертации
|
||||
local new_size
|
||||
new_size=$(get_file_size "$temp_output_file")
|
||||
|
||||
# Проверка, что original_size не равен нулю
|
||||
if [ "$original_size" -eq 0 ]; then
|
||||
local error_msg="Ошибка: размер оригинального файла равен 0 для $input_file"
|
||||
log_error "$error_msg"
|
||||
echo "$error_msg" > "$error_file"
|
||||
rm -f "$temp_output_file"
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Проверка, уменьшился ли размер файла
|
||||
if [ "$new_size" -ge "$original_size" ]; then
|
||||
log_success "Конвертация в WebP не уменьшила размер файла $input_file, пропускаем сохранение"
|
||||
# Сохраняем хеш, чтобы не обрабатывать файл снова
|
||||
echo "$current_hash" > "$hash_file"
|
||||
rm -f "$temp_output_file"
|
||||
return
|
||||
fi
|
||||
|
||||
# Процент сжатия
|
||||
local reduction
|
||||
reduction=$(awk "BEGIN {printf \"%.2f\", (($original_size - $new_size) / $original_size) * 100}")
|
||||
|
||||
log_success "Конвертирован в WebP: $input_file на $reduction% ($original_size байт -> $new_size байт)"
|
||||
# Перемещаем временный файл на место выходного
|
||||
mv "$temp_output_file" "$output_file"
|
||||
|
||||
# Сохраняем хеш
|
||||
echo "$current_hash" > "$hash_file"
|
||||
}
|
||||
export -f process_webp
|
||||
|
||||
# Обработка PNG файлов
|
||||
find "$IMAGE_DIR" -type f \
|
||||
-not -path "$COMP_DIR/*" \
|
||||
-not -path "$WEBP_DIR/*" \
|
||||
! -name "*-no-comp.*" \
|
||||
-iname "*.png" -print0 | \
|
||||
xargs -0 -P "$THREADS" -I {} bash -c 'process_png "$@"' _ {}
|
||||
|
||||
# Обработка JPEG файлов
|
||||
find "$IMAGE_DIR" -type f \
|
||||
-not -path "$COMP_DIR/*" \
|
||||
-not -path "$WEBP_DIR/*" \
|
||||
! -name "*-no-comp.*" \
|
||||
-iregex '.*\.\(jpg\|jpeg\)' -print0 | \
|
||||
xargs -0 -P "$THREADS" -I {} bash -c 'process_jpeg "$@"' _ {}
|
||||
|
||||
# Конвертация в WebP из исходных файлов
|
||||
find "$IMAGE_DIR" -type f \( -iname '*.jpg' -o -iname '*.jpeg' -o -iname '*.png' \) \
|
||||
-not -path "$COMP_DIR/*" \
|
||||
-not -path "$WEBP_DIR/*" \
|
||||
! -name "*-no-comp.*" \
|
||||
-print0 | \
|
||||
xargs -0 -P "$THREADS" -I {} bash -c 'process_webp "$@"' _ {}
|
@ -1,10 +0,0 @@
|
||||
---
|
||||
aliases:
|
||||
- System Design
|
||||
tags:
|
||||
- type/zero-link
|
||||
title: System Design
|
||||
---
|
||||
- [[../../dev/system-design/Протоколы коммуникаций|Протоколы коммуникаций]]
|
||||
## Полезное
|
||||
- [GitHub - ByteByteGoHq/system-design-101: Explain complex systems using visuals and simple terms. Help you prepare for system design interviews.](https://github.com/ByteByteGoHq/system-design-101)
|
@ -3,7 +3,9 @@ tags:
|
||||
- type/zero-link
|
||||
parents:
|
||||
- "[[00 Разработка]]"
|
||||
title: Архитектура ПО
|
||||
title: System Design
|
||||
aliases:
|
||||
- System Design
|
||||
---
|
||||
Не бывает плохой или хорошей архитектуры, бывает подходящая под ситуацию и не подходящая. Каждая архитектура имеет свои плюсы и минусы. И главная задача хорошего архитектора определить какая архитектура подходит в данной конкретной ситуации.
|
||||
|
||||
@ -15,4 +17,8 @@ title: Архитектура ПО
|
||||
- [Монолитная архитектура](Монолитная%20архитектура.md)
|
||||
- [Микросервисная архитектура](Микросервисная%20архитектура.md)
|
||||
- [Service Oreinted Architecture](Service%20Oreinted%20Architecture.md)
|
||||
- [[00 HighLoad|HighLoad]]
|
||||
- [[00 HighLoad|HighLoad]]
|
||||
|
||||
- [[../../dev/system-design/Протоколы коммуникаций|Протоколы коммуникаций]]
|
||||
## Полезное
|
||||
- [GitHub - ByteByteGoHq/system-design-101: Explain complex systems using visuals and simple terms. Help you prepare for system design interviews.](https://github.com/ByteByteGoHq/system-design-101)
|
@ -8,6 +8,7 @@ zero-link:
|
||||
- [[../../dev/architecture/Архитектурная концепция|Архитектурная концепция]]
|
||||
- [[../../dev/architecture/Паттерн проектирования|Паттерн проектирования]]
|
||||
|
||||
Архитектурные ошибки и проблемы:
|
||||
Частые архитектурные ошибки и проблемы:
|
||||
- [[../../dev/architecture/Протекание абстракций|Протекание абстракций]]
|
||||
- [[../../../../_inbox/Необоснованное использование ORM в слое бизнес-логики|Необоснованное использование ORM в слое бизнес-логики]]
|
||||
- [[../../../../_inbox/Необоснованное использование ORM в слое бизнес-логики|Необоснованное использование ORM в слое бизнес-логики]]
|
||||
- [[../../dev/architecture/Отправка сообщений в Kafka из транзакции БД|Отправка сообщений в Kafka из транзакции БД]]
|
@ -12,7 +12,7 @@ linked:
|
||||
- [Журнал БД](../../dev/database/Журнал%20БД.md)
|
||||
- [Репликация БД](../../dev/architecture/highload/Репликация%20БД.md)
|
||||
- [Резервные копии БД](Резервные%20копии%20БД.md)
|
||||
- [Транзакция БД](../../dev/database/Транзакция%20БД.md)
|
||||
- [[../../../../_inbox/Транзакция БД|Транзакция БД]]
|
||||
- [[../../dev/database/Индекс базы данных|Индекс базы данных]]
|
||||
- [[../../dev/database/postgresql/Индекс в PostgreSQL|Индекс в PostgreSQL]]
|
||||
- [[../../../../_inbox/Индекс в MySQL|Индекс в MySQL]]
|
||||
|
32
meta/zero/00 Ремонт.md
Normal file
@ -0,0 +1,32 @@
|
||||
---
|
||||
tags:
|
||||
- type/zero-link
|
||||
date:
|
||||
- - 2024-07-16
|
||||
---
|
||||
- [Стяжка пола](Стяжка%20пола.md)
|
||||
- [Ремонт стен](Ремонт%20стен.md)
|
||||
- [Ремонт потолка](Ремонт%20потолка.md)
|
||||
- [Ремонт пола](Ремонт%20пола.md)
|
||||
- [[../../repair/Ремонт кухни|Ремонт кухни]]
|
||||
- [Ремонт в ванной](_inbox/Ремонт%20в%20ванной.md)
|
||||
- [Сантехника](Сантехника.md)
|
||||
- [Смеситель](_inbox/Смеситель.md)
|
||||
- [Трубы](_inbox/Трубы.md)
|
||||
- [Электрика](Электрика.md)
|
||||
- [Система отопления](Система%20отопления.md)
|
||||
- [Звукоизоляция квартиры](Звукоизоляция%20квартиры.md)
|
||||
- [Окно](_inbox/Окно.md)
|
||||
- [Входная деверь](_inbox/Входная%20деверь.md)
|
||||
- [Дверной замок](_inbox/Дверной%20замок.md)
|
||||
- [Межкомнатные двери](_inbox/Межкомнатные%20двери.md)
|
||||
- [[../../../../_inbox/Мягкая мебель|Мягкая мебель]]
|
||||
- [[../../../../_inbox/Дизайн квартиры|Дизайн квартиры]]
|
||||
|
||||
Первым делом определитесь с бюджетом. Определитесь сколько у вас есть времени на ремонт.
|
||||
|
||||
Сначала подготавливается план ремонта, - [[../../repair/Дизайн проект|дизайн проект]]. Его можно сделать самостоятельно или нанять дизайнера. Когда дизайн проект готов, то можно приступать к ремонту.
|
||||
|
||||
Первым делом выполняются самые грязные работы: Снос/Постройка стен, Шпаклевка стен, Разводка коммуникаций, Заливка пола, Замена проводки, замена сантехники.
|
||||
|
||||
**Нельзя выбрасывать строительный мусор в обычный контейнер.** Если вы делаете ремонт в старом доме, для вывоза мусора придется заказать специальный бункер. В новостройках общий контейнер для строительного мусора часто устанавливает управляющая компания. Сбор и вывоз строительного мусора оплачивают все собственники — независимо от того, пользовались они контейнером или нет.
|
48
productivity/Принцип "легко взять".md
Normal file
@ -0,0 +1,48 @@
|
||||
---
|
||||
aliases:
|
||||
- принцип «легко взять»
|
||||
tags:
|
||||
- maturity/🌱
|
||||
date: 2024-11-17
|
||||
---
|
||||
Организация хранения вещей на кухне или в других зонах дома должна быть удобной и логичной. Принцип «легко взять» делит пространство на три условные зоны, учитывая частоту использования предметов и легкость доступа к ним.
|
||||
## Вертикальное зонирование
|
||||
Представьте шкаф высотой около двух метров.
|
||||
|
||||
![500](../meta/files/images/2-find-your-place-cxema-desk-2.8ofkbwe96jlj..webp)
|
||||
|
||||
- **Зеленая зона** — это пространство от уровня подбородка до кончиков пальцев опущенных рук. Это самая доступная и удобная зона для хранения. Здесь лучше всего размещать вещи, которые используются ежедневно: тарелки, стаканы, кастрюли, специи.
|
||||
- **Желтая зона** — это пространство на полметра выше или ниже зеленой зоны. Оно подходит для хранения предметов, которые используются периодически. Например, праздничная посуда, кухонные гаджеты, которые вы достаете раз в неделю или реже.
|
||||
- **Красная зона** — это труднодоступные места, такие как верхние полки шкафа или самая нижняя часть под столешницей. Здесь стоит хранить вещи, которые используются редко, например, новогодний сервиз, консервы для долгосрочного хранения или сезонные аксессуары.
|
||||
|
||||
## Горизонтальное зонирование
|
||||
Принцип работает и в глубину шкафов:
|
||||
- Ближайшие к краю полки области — это **зеленая зона**, где можно хранить часто используемые вещи.
|
||||
- Средняя часть глубины шкафа относится к **желтой зоне**. Для доступа к предметам здесь нужно приложить больше усилий, поэтому они используются реже.
|
||||
- Самые дальние области полок — **красная зона**, в которой удобно размещать редко используемые вещи.
|
||||
|
||||
![500](../meta/files/images/2-find-your-place-cxema-desk-4.nm6hnzu58ewy..webp)
|
||||
## Другие примеры
|
||||
![](../meta/files/images/2-find-your-place-cxema-desk-5.4fdlpt..webp)
|
||||
|
||||
![](../meta/files/images/2-find-your-place-cxema-desk-6.bjffhb..webp)
|
||||
|
||||
![](../meta/files/images/2-find-your-place-cxema-desk-7.xj13tx..webp)
|
||||
|
||||
![](../meta/files/images/3-prostranstvo-cxema-desk-2.hib0vixppmxe..webp)
|
||||
|
||||
![](../meta/files/images/2-find-your-place-cxema-desk-9.qcef0z..webp)
|
||||
|
||||
***
|
||||
## Мета информация
|
||||
**Область**:: [[../meta/zero/00 Продуктивность|00 Продуктивность]]
|
||||
**Родитель**::
|
||||
**Источник**::
|
||||
**Создана**:: [[2024-11-17]]
|
||||
**Автор**::
|
||||
### Дополнительные материалы
|
||||
-
|
||||
|
||||
### Дочерние заметки
|
||||
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
|
||||
|
95
repair/Дизайн проект своими силами.md
Normal file
@ -0,0 +1,95 @@
|
||||
---
|
||||
aliases:
|
||||
tags:
|
||||
- maturity/🌱
|
||||
date: 2024-11-17
|
||||
---
|
||||
Создание [[Дизайн проект|дизайн-проекта]] своими силами — это не только увлекательный процесс, но и возможность адаптировать пространство под свои нужды. Чтобы проект был функциональным и удобным, важно проанализировать ряд ключевых аспектов.
|
||||
|
||||
## Замеры
|
||||
При проектировании важно учитывать, что реальные размеры квартиры могут отличаться от указанных в документах. Это характерно как для вторичного жилья, так и для новостроек. Например, параллельные стены могут различаться по длине на несколько сантиметров, или комната, которая на плане выглядит прямоугольной, в реальности окажется асимметричной.
|
||||
|
||||
Такие отклонения влияют на расстановку мебели, укладку отделочных материалов и общий вид интерьера. Чтобы избежать сюрпризов, важно провести точные замеры и внести коррективы еще на этапе планирования.
|
||||
|
||||
- [[Замеры в квартире]]
|
||||
## Вопросы подсказки
|
||||
|
||||
**Назначение и планировка помещений**. Начните с определения, сколько комнат вам нужно и для каких целей они будут использоваться. Подумайте:
|
||||
- Это квартира для жилья или для сдачи в аренду?
|
||||
- Будут ли комнаты проходными или изолированными?
|
||||
- Нужны ли вам объединенные пространства, например, кухня-гостиная?
|
||||
- Хотите ли вы зонировать помещения, например, с помощью перегородок или мебели?
|
||||
- Нужны ли дополнительные пространства, такие как кладовая, гардеробная или постирочная?
|
||||
- Сколько ванных комнат вы планируете?
|
||||
- Как часто к вам приходят гости, и нужно ли предусмотреть гостевую комнату или раскладной диван?
|
||||
- Какой стиль жизни вы ведете: любите проводить время дома или часто путешествуете?
|
||||
|
||||
**Адаптация пространства под изменения**. Важно учитывать не только текущие потребности, но и будущее. Обдумайте, как может измениться ваше жилье со временем.
|
||||
|
||||
- Если вы планируете детей, стоит сразу предусмотреть детскую.
|
||||
- Если вы работаете удаленно, выделите удобное место для домашнего офиса. Это может быть отдельная комната или компактное рабочее место в гостиной или спальне.
|
||||
- Нужна ли вам [[../../../_inbox/Звукоизоляция квартиры|шумоизоляция]] в определенных зонах (например, в спальне или кабинете)?
|
||||
- Сколько лет вы планируете прожить в квартире?
|
||||
|
||||
**Освещение**. Освещение играет ключевую роль в создании уюта и функциональности. Ответьте на вопросы:
|
||||
- Какие зоны нуждаются в дополнительном свете?
|
||||
- Предпочитаете встроенные светильники, подвесные люстры или настенные бра?
|
||||
- Нужно ли предусмотреть регулируемое освещение (например, диммеры для ламп)?
|
||||
- Хотите ли вы подсветку для шкафов, кухонных рабочих поверхностей или ступеней лестницы?
|
||||
- Какие зоны требуют декоративного освещения (например, картины, полки или растения)?
|
||||
|
||||
Обязательно продумайте освещение в спальне у изголовья кровати, в ванной комнате над зеркалом и в коридоре. Настольные лампы и напольные торшеры могут стать отличным решением для создания акцентов.
|
||||
|
||||
**Расположение розеток.** Розетки планируются на основе схемы расстановки мебели. Убедитесь, что они находятся:
|
||||
- Какие бытовые приборы вы используете ежедневно и где они будут находиться?
|
||||
- [[Расположение розеток на кухне]]
|
||||
- Места в которых часто забывают о розетках
|
||||
- У прикроватных тумбочек и возле дивана для зарядки гаджетов.
|
||||
- В ванной над раковиной для фена, бритвы или электрической зубной щетки.
|
||||
- В прихожей для сушки обуви.
|
||||
- Под мойкой на кухне для измельчителя и/или фильтра для воды
|
||||
|
||||
**Выбор сантехники**
|
||||
- Решите, что вам подходит больше — ванна или душ?
|
||||
- Нужна ли большая раковина или важно сохранить свободное пространство?
|
||||
- Продумайте, будет ли унитаз стандартным или подвесным.
|
||||
- Если в вашем районе часто отключают горячую воду, стоит заранее предусмотреть место для бойлера.
|
||||
- Хотите ли вы двойную раковину в ванной комнате?
|
||||
- Планируете ли вы использовать фильтры для воды или систему смягчения воды?
|
||||
|
||||
**Кондиционирование**. Если вы планируете установить кондиционер, важно продумать этот вопрос на этапе проектирования.
|
||||
|
||||
- Нужно ли предусмотреть кондиционирование во всех комнатах или только в определенных?
|
||||
- Хотите ли вы скрытую систему кондиционирования, чтобы не было видно блоков?
|
||||
|
||||
Даже при ограниченном бюджете можно заранее проложить трассы для кондиционера в стенах. Это избавит от необходимости штробить стены после завершения ремонта. Обратите внимание на отвод конденсата: если его не предусмотреть, вода из внешнего блока может испортить фасад или создать неудобства соседям.
|
||||
## Источники вдохновения
|
||||
- **Ищите готовые проекты квартир вашего метража и планировки**.
|
||||
- Смотрите [видеообзоры на «Ютубе»](https://www.youtube.com/results?search_query=%D1%80%D1%83%D0%BC%D1%82%D1%83%D1%80)
|
||||
- Рум-туры в интерьерных журналах [Elle Decoration](https://www.elledecoration.ru/), [AD](https://www.admagazine.ru/), [Salon.](https://salon.ru/)
|
||||
- У издания The Village есть полезная [рубрика «Квартира недели»](https://www.the-village.ru/tag/apartments)
|
||||
- **Собирайте картинки с конкретными решениями.**
|
||||
- Библиотеки интерьеров есть у многих тематических изданий: [Houzz](https://www.houzz.ru/foto/foto-interyery-i-eksteryery-phbr0-bp~), [InMyRoom](https://www.inmyroom.ru/photos), англоязычных [Lonny](https://www.lonny.com/pictures) и [Remodelista.](https://www.remodelista.com/tag/steal-this-look/)
|
||||
- Искать идеи можно и [на «Пинтересте».](https://www.pinterest.ru/)
|
||||
- **Подписывайте, что вам понравилось на фото:** общее настроение интерьера или конкретная люстра. Пересматривая картинки через две недели, вы вполне можете об этом забыть, если перед глазами не будет подсказки.
|
||||
- **Как представить будущий интерьер.**
|
||||
- Интерьерный коллаж, или мудборд, — это микс из фотографий элементов мебели, отделочных материалов и декора, которые вы хотите объединить в интерьере. [Пример](../meta/files/images/Pasted%20image%2020240401205236.png)
|
||||
## Полезный софт
|
||||
Отличный онлайн инструмент, который позволят составить профессиональный дизайн-проект - [RemPlanner](https://remplanner.ru/planner/)
|
||||
|
||||
Также стоит ознакомиться с программами для самостоятельного проектирования, такими как SketchUp или RoomSketcher, и использовать каталоги мебели и отделочных материалов для вдохновения.
|
||||
|
||||
|
||||
|
||||
***
|
||||
## Мета информация
|
||||
**Область**:: [[../meta/zero/00 Ремонт|00 Ремонт]]
|
||||
**Родитель**:: [[Дизайн проект]]
|
||||
**Источник**::
|
||||
**Создана**:: [[2024-11-17]]
|
||||
**Автор**::
|
||||
### Дополнительные материалы
|
||||
-
|
||||
|
||||
### Дочерние заметки
|
||||
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
|
36
repair/Дизайн проект.md
Normal file
@ -0,0 +1,36 @@
|
||||
---
|
||||
aliases:
|
||||
- дизайн-проекта
|
||||
tags:
|
||||
- maturity/🌱
|
||||
date: 2024-11-17
|
||||
---
|
||||
Дизайн-проект — это комплексное руководство для создания функционального и эстетичного интерьера. Его цель — упростить процесс ремонта, сократить затраты и избежать ошибок. Кроме того, он помогает визуализировать конечный результат и заранее предусмотреть все детали.
|
||||
|
||||
Основой любого дизайн-проекта являются [[Замеры в квартире|точные замеры помещений]] и варианты их планировки. К проекту прилагаются чертежи инженерных коммуникаций — например, схемы расположения сантехники, газовых приборов, кондиционеров и прочего оборудования. Отдельно прорабатываются планы электрики, где указываются точки размещения розеток, выключателей и светильников.
|
||||
|
||||
Особое внимание уделяется планировке мебели. Для стандартных элементов разрабатываются схемы размещения, а сложные конструкции, такие как кухни или встроенные шкафы, детализируются до мельчайших размеров, что позволяет изготавливать их на заказ.
|
||||
|
||||
Планы пола, стен и потолков включают рекомендации по отделочным материалам, описания методов укладки и установки. Например, проект может содержать пояснения по стыковке плитки и ламината, выбору плинтусов и потолочных карнизов. Итоговый список комплектации включает материалы, мебель и оборудование с указанием стоимости, что помогает контролировать бюджет.
|
||||
|
||||
- [[Чек-лист для проверки дизайн-проекта]]
|
||||
- [[Дизайн проект своими силами]]
|
||||
- [[Цветовая гамма дизайн проекта|Цветовая гамма дизайн проекта]]
|
||||
***
|
||||
## Мета информация
|
||||
**Область**:: [[../meta/zero/00 Ремонт|00 Ремонт]]
|
||||
**Родитель**::
|
||||
**Источник**::
|
||||
**Создана**:: [[2024-11-17]]
|
||||
**Автор**::
|
||||
### Дополнительные материалы
|
||||
-
|
||||
|
||||
### Дочерние заметки
|
||||
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
|
||||
<!-- SerializedQuery: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
|
||||
- [[Дизайн проект своими силами]]
|
||||
- [[Цветовая гамма дизайн проекта]]
|
||||
- [[Чек-лист для проверки дизайн-проекта]]
|
||||
<!-- SerializedQuery END -->
|
||||
|
46
repair/Замеры в квартире.md
Normal file
@ -0,0 +1,46 @@
|
||||
---
|
||||
aliases:
|
||||
tags:
|
||||
- maturity/🌱
|
||||
date: 2024-11-17
|
||||
---
|
||||
Вот инструкция, по которой удобно снимать замеры:
|
||||
|
||||
- **Замерьте окна.** Уточните следующие размеры:
|
||||
- Расстояния от стен до окна
|
||||
- Высота и ширина оконных проемов.
|
||||
- Расстояние от пола до подоконника.
|
||||
- Расстояние от верхнего края окна до потолка.
|
||||
- Глубина подоконника. Если она достаточно велика (например, в старых домах), это пространство можно использовать, например, как дополнительную рабочую поверхность.
|
||||
- **Замерьте высоту стен.**
|
||||
- **Местоположение коммуникаций**. Расстояния от стен, а также ШхВхГ.
|
||||
- Электрического щитка
|
||||
- Канализации
|
||||
- Вентиляционных отверстий
|
||||
- Радиаторы
|
||||
- Газовая труба
|
||||
- Расположение коробов для кондиционеров
|
||||
- Пожарные датчики, которые нельзя демонтировать.
|
||||
- Газовый котел и гребенка
|
||||
- Электрический щиток
|
||||
|
||||
**Советы по выполнению замеров**
|
||||
- **Отмечайте размеры на черновом плане квартиры.** Используйте схему из договора с застройщиком, выписки Росреестра или создайте собственный план с нуля.
|
||||
- **Начните от входной двери.** Измерьте высоту и ширину дверного проема, затем двигайтесь вдоль стен по часовой стрелке. Замерьте длину каждой стены, включая выступы и ниши.
|
||||
- Замеряйте по нескольку раз, чтобы исключить ошибки, особенно в нестандартных зонах, например, под уклонами потолка.
|
||||
- Если стены имеют неровности, снимите замеры в нескольких точках (например, у пола и на уровне глаз).
|
||||
- Пригласите друга или кого-то из членов семьи. Замеры удобно делать вдвоем. Один измеряет и диктует, второй записывает.
|
||||
- Убедитесь, что записанные данные понятны: отметки на черновом плане должны соответствовать реальным объектам.
|
||||
***
|
||||
## Мета информация
|
||||
**Область**:: [[../meta/zero/00 Ремонт|00 Ремонт]]
|
||||
**Родитель**:: [[Перепланировка квартиры|Перепланировка квартиры]]
|
||||
**Источник**::
|
||||
**Создана**:: [[2024-11-17]]
|
||||
**Автор**::
|
||||
### Дополнительные материалы
|
||||
-
|
||||
|
||||
### Дочерние заметки
|
||||
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
|
||||
|
36
repair/Зона хранения на кухне.md
Normal file
@ -0,0 +1,36 @@
|
||||
---
|
||||
aliases:
|
||||
tags:
|
||||
- maturity/🌱
|
||||
date: 2024-11-17
|
||||
---
|
||||
Зона хранения — это пространство, где размещаются посуда, продукты и мелкая бытовая техника. Важно организовать его так, чтобы все необходимые предметы были легко доступны. В небольших кухнях эффективными решениями станут рейлинги, настенные полки и вертикальные системы хранения. Вместо глубоких шкафов лучше использовать выдвижные ящики или угловые карусели, которые помогут избежать неиспользуемых «мертвых» зон.
|
||||
|
||||
Даже просторная кухня может оказаться неудобной, если неправильно скомпоновать шкафы и ящики. Например, пересекающиеся линии открывания дверей могут создавать препятствия при использовании мебели. Чтобы этого избежать, тщательно продумайте расположение фасадов и механизмов открывания. Глубокие шкафы с распашными дверцами вместо выдвижных ящиков затрудняют доступ к предметам.
|
||||
|
||||
При организации хранения рекомендуется применять [[../productivity/Принцип "легко взять"|принцип «легко взять»]]. Его суть заключается в разделении пространства на зоны в зависимости от частоты использования предметов:
|
||||
- **Зеленая зона**: сюда помещаются вещи, которые вы используете ежедневно. Это наиболее доступные полки и ящики.
|
||||
- **Желтая зона**: для предметов, которыми пользуетесь время от времени. Их можно разместить на средних полках шкафов.
|
||||
- **Красная зона**: предназначена для редко используемых вещей, например, праздничного сервиза. Их стоит хранить на верхних полках или антресолях.
|
||||
|
||||
![](../meta/files/images/3-prostranstvo-cxema-desk-2.hib0vixppmxe..webp)
|
||||
|
||||
Избегайте образования «мертвых» зон в углах кухни. В этих местах можно установить выдвижные ящики нестандартной формы или вращающиеся полки, что позволит максимально использовать доступное пространство. В нижних шкафах вместо полок с распашными дверцами предпочтительнее установить выдвижные ящики — это упростит доступ к содержимому и сократит время на поиск нужных предметов.
|
||||
|
||||
![[../meta/files/images/Pasted image 20240912082100.png]]
|
||||
|
||||
Не рекомендуется использовать систему push-to-open в нижних ящиках, которая открывает их при нажатии. В нижнем ярусе такая система может быть неудобной, так как существует риск случайно задеть ящик ногой, особенно на небольших [[Конфигурация кухни#П-образная кухня|П-образных кухнях]].
|
||||
|
||||
***
|
||||
## Мета информация
|
||||
**Область**:: [[../meta/zero/00 Ремонт|00 Ремонт]]
|
||||
**Родитель**:: [[Зонирование кухни]]
|
||||
**Источник**::
|
||||
**Создана**:: [[2024-11-17]]
|
||||
**Автор**::
|
||||
### Дополнительные материалы
|
||||
-
|
||||
|
||||
### Дочерние заметки
|
||||
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
|
||||
|
31
repair/Зонирование кухни.md
Normal file
@ -0,0 +1,31 @@
|
||||
---
|
||||
aliases:
|
||||
- зоны кухни
|
||||
tags:
|
||||
- maturity/🌱
|
||||
date: 2024-11-17
|
||||
---
|
||||
Продуманное зонирование кухни позволяет оптимизировать рабочее пространство и сделать его комфортным. В любой кухне можно выделить три основные зоны: рабочую, хранения и обеденную.
|
||||
|
||||
- [[Рабочая зона кухни]] — место для готовки, включающее столешницу, мойку, плиту.
|
||||
- [[Зона хранения на кухне]] — шкафы, полки и выдвижные ящики для посуды, продуктов и бытовой техники.
|
||||
- [[Обеденная зона]] — стол и стулья, барная стойка или остров.
|
||||
|
||||
[[Рабочий треугольник кухни|Рабочий треугольник кухни]] связывает три основные зоны и позволяет избежать лишних перемещений.
|
||||
***
|
||||
## Мета информация
|
||||
**Область**:: [[../meta/zero/00 Ремонт|00 Ремонт]]
|
||||
**Родитель**:: [[Эргономика кухни]]
|
||||
**Источник**::
|
||||
**Создана**:: [[2024-11-17]]
|
||||
**Автор**::
|
||||
### Дополнительные материалы
|
||||
-
|
||||
|
||||
### Дочерние заметки
|
||||
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
|
||||
<!-- SerializedQuery: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
|
||||
- [[Рабочая зона кухни]]
|
||||
- [[Обеденная зона]]
|
||||
<!-- SerializedQuery END -->
|
||||
|
69
repair/Конфигурация кухни.md
Normal file
@ -0,0 +1,69 @@
|
||||
---
|
||||
aliases:
|
||||
tags:
|
||||
- maturity/🌱
|
||||
date: 2024-11-17
|
||||
---
|
||||
Выбор подходящей конфигурации помогает максимально эффективно организовать пространство и улучшить комфорт использования. Рассмотрим основные варианты:
|
||||
|
||||
В любом случае важно не забыть про правильно организованный [[Рабочий треугольник кухни|рабочий треугольник кухни]].
|
||||
## Линейная кухня
|
||||
Линейная кухня подразумевает размещение всех элементов вдоль одной стены.
|
||||
|
||||
**Когда использовать:**
|
||||
- В небольших кухнях, где экономия пространства критична.
|
||||
- В квадратных помещениях, где хочется выделить больше места под столовую зону.
|
||||
|
||||
**Преимущества:**
|
||||
- Простота исполнения и меньшие затраты, так как отсутствуют сложные угловые элементы.
|
||||
- Минимизация затрат на дополнительные конструкции.
|
||||
|
||||
## Угловая кухня
|
||||
Угловая кухня занимает две пересекающиеся стены, образуя угол в 90 градусов.
|
||||
|
||||
**Когда использовать:**
|
||||
- При необходимости увеличить объем систем хранения.
|
||||
- При желании разместить мойку или другую рабочую зону у окна.
|
||||
|
||||
**Преимущества:**
|
||||
- Больше полезного пространства для хранения и работы.
|
||||
- Возможность оригинально обыграть пространство, включая размещение коммуникаций.
|
||||
|
||||
## П-образная кухня
|
||||
В этой конфигурации элементы размещаются вдоль трех стен, формируя букву «П»
|
||||
|
||||
![[../meta/files/images/Pasted image 20240909083940.png]]
|
||||
|
||||
**Когда использовать**:
|
||||
- Для просторных кухонь от 15 м².
|
||||
- В объединенных кухнях-гостиных для зонирования пространства.
|
||||
|
||||
**Преимущества**:
|
||||
- Возможность выделить отдельные рабочие зоны (например, для готовки, хранения и подачи).
|
||||
- Использование дополнительных функций, таких как барная стойка за счет свеса столешницы.
|
||||
## Остров
|
||||
Остров — это отдельная часть кухни, не связанная с основными линиями, обычно без верхних ящиков. К любому варианту конфигурации кухни можно сделать остров.
|
||||
|
||||
**Когда использовать:**
|
||||
- В средних и больших кухнях, где достаточно пространства.
|
||||
- В проектах, где важна дополнительная рабочая зона или акцент на современном дизайне.
|
||||
|
||||
**Особенности**:
|
||||
- Остров часто используется для размещения варочной панели, мойки или дополнительной зоны для готовки.
|
||||
- Монтаж коммуникаций под островом может потребовать увеличения бюджета из-за необходимости поднятия уровня пола и проведения дополнительных инженерных работ.
|
||||
***
|
||||
## Мета информация
|
||||
**Область**:: [[../meta/zero/00 Ремонт|00 Ремонт]]
|
||||
**Родитель**:: [[Ремонт кухни|Ремонт кухни]]
|
||||
**Источник**::
|
||||
**Создана**:: [[2024-11-17]]
|
||||
**Автор**::
|
||||
### Дополнительные материалы
|
||||
-
|
||||
|
||||
### Дочерние заметки
|
||||
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
|
||||
<!-- SerializedQuery: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
|
||||
- [[Расположение розеток на кухне]]
|
||||
<!-- SerializedQuery END -->
|
||||
|
20
repair/Обеденная зона.md
Normal file
@ -0,0 +1,20 @@
|
||||
---
|
||||
aliases:
|
||||
tags:
|
||||
- maturity/🌱
|
||||
date: 2024-11-17
|
||||
---
|
||||
**Обеденная зона** определяется размерами кухни. В компактных пространствах можно обойтись складным столом, который при необходимости трансформируется в полноценный обеденный. Барная стойка — отличное решение для объединенной кухни-гостиной: она не только разделяет зоны, но и служит дополнительной рабочей поверхностью.
|
||||
***
|
||||
## Мета информация
|
||||
**Область**:: [[../meta/zero/00 Ремонт|00 Ремонт]]
|
||||
**Родитель**:: [[Зонирование кухни]]
|
||||
**Источник**::
|
||||
**Создана**:: [[2024-11-17]]
|
||||
**Автор**::
|
||||
### Дополнительные материалы
|
||||
-
|
||||
|
||||
### Дочерние заметки
|
||||
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
|
||||
|
34
repair/Перенос стен и дверных проемов.md
Normal file
@ -0,0 +1,34 @@
|
||||
---
|
||||
aliases:
|
||||
tags:
|
||||
- maturity/🌱
|
||||
date: 2024-11-17
|
||||
---
|
||||
Стены могут быть несущими и не несущими. На плане их легко различить: несущие значительно толще. ==Сносить и перемещать не несущие конструкции можно. Несущие — никогда.==
|
||||
|
||||
> [!NOTE] Несущие колонны
|
||||
> В новостройках могут быть не стены, а колонны: при ремонте их зашивают внутрь перегородок или прячут за мебельными конструкциями.
|
||||
|
||||
Для перепланировки не несущих стен потребуется только [[Согласование перепланировки|согласованный проект]]. Сделать в не несущей стене дверь — тоже перепланировка, даже если сама перегородка осталась на месте. Этот вид работ тоже придется согласовать. Межкомнатная дверь обычно открывается в сторону большего по размеру помещения: например, из коридора — в спальню или гостиную, но из туалета — в коридор.
|
||||
|
||||
> [!WARNING] Шумные работы
|
||||
> **Демонтаж относится к шумным работам.** Шумные работы можно проводить строго в определенное время.
|
||||
|
||||
В редких случаях в несущей стене можно сделать дверной проем, но, чтобы перекрытие не обвалилось, потребуется усиление — придется пригласить конструктора и архитектора для расчетов, оплатить металлические конструкции и найти подходящих строителей.
|
||||
|
||||
Усиление очень трудно согласовать — и не факт, что получится. Контролирующие органы почти никогда не согласуют такие перепланировки, но чем выше этаж, тем больше вероятность положительного решения, потому что на стены дома приходится меньше нагрузки. Для вторички контролирующий орган — бюро технической инвентаризации, для новостройки — управляющая компания.
|
||||
|
||||
|
||||
***
|
||||
## Мета информация
|
||||
**Область**:: [[../meta/zero/00 Ремонт|00 Ремонт]]
|
||||
**Родитель**:: [[Перепланировка квартиры]]
|
||||
**Источник**::
|
||||
**Создана**:: [[2024-11-17]]
|
||||
**Автор**::
|
||||
### Дополнительные материалы
|
||||
-
|
||||
|
||||
### Дочерние заметки
|
||||
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
|
||||
|
51
repair/Перепланировка квартиры.md
Normal file
@ -0,0 +1,51 @@
|
||||
---
|
||||
aliases:
|
||||
- Планировка квартиры
|
||||
tags:
|
||||
- maturity/🌱
|
||||
date: 2024-11-17
|
||||
---
|
||||
**Как понять, какая нужна перепланировка**
|
||||
- **Подумайте, чего вам не хватает.** Продумайте и запишите сценарии повседневной жизни всех членов семьи — сначала реальные, а потом и желаемые.
|
||||
- я работаю из дома;
|
||||
- почти не готовлю;
|
||||
- по выходным люблю играть в настольные игры с друзьями;
|
||||
- занимаюсь спортом и хочу выделить для этого место.
|
||||
- **Изучите, какие стены в вашей квартире.** Это поможет понять, что можно сносить, а что придется оставить на месте. Для этого проверьте план квартиры в техпаспорте, его можно получить в БТИ.
|
||||
- **Ориентируйтесь на минимально допустимые размеры комнат и подсобных помещений.** По закону нельзя нарушать [правила пожарной безопасности](https://docs.cntd.ru/document/1200071143), поэтому для каждой комнаты в квартире установлена минимальная площадь. Если не соблюсти эти правила, то перепланировку не согласуют. [п. 5.7 свода правил по многоквартирным домам](https://docs.cntd.ru/document/456054198)
|
||||
- В квартире с одной жилой комнатой ее площадь должна быть не менее 14 м².
|
||||
- А если есть гостиная и спальня, то минимально допустимая площадь спальни — 8 м². При этом в ширину спальня должна быть не менее 2,25 метра. А коридор и прихожая должны быть не менее одного метра в ширину.
|
||||
|
||||
**Когда не стоит делать перепланировку:**
|
||||
- **Небольшой бюджет на ремонт во вторичке.** Демонтаж стен и возведение перегородок — солидный пункт в смете. Например, на «Юду» за демонтаж кирпичных стен [просят от 750 ₽ за квадратный метр](https://remont.youdo.com/facing/walls/dismantling-partitions/price/other/inflat/), за строительство новых — [от 400 ₽ за квадратный метр](https://remont.youdo.com/facing/walls/wall-construction/price/), если речь о перегородках из гипсокартона. А еще нужно заказать строительный материал и оплатить доставку.
|
||||
- **Хорошая отделка.** После демонтажа стен придется перекладывать напольное покрытие, а сами стены нужно будет полностью обновлять, чтобы сделать новые и старые перегородки в одном стиле. Поэтому если планируете сохранить текущую отделку, то от перепланировки лучше отказаться.
|
||||
- **Мало времени на ремонт.** Демонтаж и возведение перегородок может занять от двух недель до двух месяцев — это критично, если нужно срочно переезжать.
|
||||
|
||||
**Самые распространенные виды перепланировки**
|
||||
- объединение туалета и ванной комнаты
|
||||
- присоединение кухни к гостиной
|
||||
- организация гардеробной
|
||||
|
||||
- [[Согласование перепланировки]]
|
||||
- [[Перенос стен и дверных проемов]]
|
||||
- [[Планировка кухни|Перепланировка кухни]]
|
||||
|
||||
***
|
||||
## Мета информация
|
||||
**Область**:: [[../meta/zero/00 Ремонт|00 Ремонт]]
|
||||
**Родитель**::
|
||||
**Источник**::
|
||||
**Создана**:: [[2024-11-17]]
|
||||
**Автор**::
|
||||
### Дополнительные материалы
|
||||
-
|
||||
|
||||
### Дочерние заметки
|
||||
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
|
||||
<!-- SerializedQuery: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
|
||||
- [[Перенос стен и дверных проемов]]
|
||||
- [[Согласование перепланировки]]
|
||||
- [[Планировка кухни]]
|
||||
- [[Замеры в квартире]]
|
||||
<!-- SerializedQuery END -->
|
||||
|
26
repair/Планировка кухни.md
Normal file
@ -0,0 +1,26 @@
|
||||
---
|
||||
aliases:
|
||||
- Перепланировка кухни
|
||||
tags:
|
||||
- maturity/🌱
|
||||
date: 2024-09-09
|
||||
linked:
|
||||
---
|
||||
Кухня относится к категории мокрых зон из-за наличия водных коммуникаций. Ее можно расширить за счет смежных помещений или объединить с гостиной, но с определенными ограничениями. Основное из них — ==запрет на размещение кухни над жилыми комнатами соседей==. Например, если ваша кухня окажется над спальней, это будет нарушением. Исключение составляют квартиры на первом этаже или помещения над нежилыми зонами, такими как магазины.
|
||||
|
||||
Главная сложность при переносе кухни — это организация водоснабжения и канализации. ==Слив и точку входа воды невозможно переместить==, поэтому трубы приходится прокладывать под уклоном, что требует точных расчетов и тщательного выполнения работ. Чем дальше мойка находится от общедомовых коммуникаций, тем сложнее и дороже реализовать проект.
|
||||
|
||||
Кухни с газовым оборудованием подчиняются строгим правилам. Их нельзя объединять с гостиной: между кухней и жилым пространством обязательно должна быть плотно закрывающаяся дверь.
|
||||
|
||||
Перенос газовой колонки возможен, но при этом оборудование должно оставаться в свободном доступе. Трубы, вентиль и саму колонку запрещено прятать за гипсокартоном или закрывать шкафами. Все эти элементы должны быть видимыми для обслуживания и проверок.
|
||||
|
||||
Если вы хотите отказаться от газа в пользу электрической плиты, это потребует дополнительных согласований. Газовую трубу можно обрезать на входе в квартиру, но такой переход повлияет на коммунальные платежи: электричество дороже газа, и ваши расходы могут значительно возрасти.
|
||||
***
|
||||
## Мета информация
|
||||
**Область**:: [[../meta/zero/00 Ремонт|00 Ремонт]]
|
||||
**Родитель**:: [[Ремонт кухни]], [[Перепланировка квартиры]]
|
||||
**Источник**::
|
||||
**Создана**:: [[2024-09-11]]
|
||||
**Автор**::
|
||||
### Дополнительные материалы
|
||||
- [[Рабочий треугольник кухни|Рабочий треугольник кухни]]
|
28
repair/Рабочая зона кухни.md
Normal file
@ -0,0 +1,28 @@
|
||||
---
|
||||
aliases:
|
||||
tags:
|
||||
- maturity/🌱
|
||||
date: 2024-11-17
|
||||
---
|
||||
**Рабочая зона** включает пространство для готовки и мытья посуды. Центральными элементами здесь являются мойка, плита и рабочая поверхность между ними. Чем ближе эти элементы друг к другу, тем меньше усилий потребуется для перемещения. Чтобы использовать место эффективно, можно внедрить встроенные шкафы под столешницей, розетки для мелкой техники и удобные ящики для хранения кухонных принадлежностей.
|
||||
|
||||
Размер рабочей зоны зависит от ваших запросов и образа жизни. Если обычно вы питаетесь в кафе и ресторанах, а дома лишь изредка разогреваете полуфабрикаты, то достаточно и небольшой поверхности. Если вы полноценно готовите, то можете столкнуться с нехваткой рабочей поверхности на маленькой кухне.
|
||||
|
||||
Вот несколько способов освободить пространство кухни:
|
||||
- Откажитесь от полноценного обеденного стола в пользу барной стойки или вынесите столовую зону в гостиную.
|
||||
- Используйте малогабаритную и многофункциональную технику — например, компактную плиту с двумя конфорками вместо привычных четырех или установите духовой шкаф с функцией микроволновки.
|
||||
- Продумайте систему хранения, чтобы максимально освободить рабочую поверхность: предусмотрите подвесные полочки, крючки и крепления для мелкой кухонной утвари и специй.
|
||||
|
||||
***
|
||||
## Мета информация
|
||||
**Область**:: [[../meta/zero/00 Ремонт|00 Ремонт]]
|
||||
**Родитель**:: [[Зонирование кухни]]
|
||||
**Источник**::
|
||||
**Создана**:: [[2024-11-17]]
|
||||
**Автор**::
|
||||
### Дополнительные материалы
|
||||
-
|
||||
|
||||
### Дочерние заметки
|
||||
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
|
||||
|
66
repair/Рабочий треугольник кухни.md
Normal file
@ -0,0 +1,66 @@
|
||||
---
|
||||
aliases:
|
||||
- кухонный треугольник
|
||||
- рабочего треугольника
|
||||
tags:
|
||||
- maturity/🌱
|
||||
date: "[[2023-11-03]]"
|
||||
---
|
||||
Грамотное расположение ключевых элементов кухни — холодильника, мойки и плиты — создает так называемый **«рабочий треугольник»**. Это позволяет минимизировать лишние перемещения и повысить удобство работы.
|
||||
|
||||
Поддерживайте последовательность работы: холодильник → мойка → плита.
|
||||
|
||||
**Оптимальные размеры треугольника** находятся в пределах 1,2–2,5 м между каждой из точек. При таком размещении достаточно лишь повернуться или сделать шаг, чтобы достать необходимые продукты, помыть их и начать готовить.
|
||||
|
||||
**Рекомендации по размещению**
|
||||
- Холодильник у входа: Это облегчает выгрузку продуктов.
|
||||
- Рабочая поверхность рядом с холодильником: Для временного хранения пакетов или подготовки ингредиентов.
|
||||
- Мойка: Центральный элемент, где обрабатываются продукты и моется посуда.
|
||||
- Рабочая зона между мойкой и плитой: Пространство для нарезки и подготовки.
|
||||
- Плита: Находится в конце треугольника, чтобы минимизировать пересечение потоков.
|
||||
|
||||
**Распространенные ошибки при планировке**
|
||||
- Теснота между мойкой и плитой: Если рабочая поверхность между ними меньше 60 см, готовить будет неудобно. Оптимальное расстояние — 60–90 см.
|
||||
- Неудобный доступ к холодильнику: Если холодильник стоит далеко от мойки, процесс готовки усложняется лишними перемещениями.
|
||||
- Холодильник далеко от входа: Это неудобно при выгрузке продуктов из сумок, так как приходится пересекать всю кухню.
|
||||
|
||||
Примеры рабочих треуголников в разных [[Конфигурация кухни|конфигурациях кухни]].
|
||||
|
||||
![[../meta/files/images/Pasted image 20240911091002.png]]
|
||||
|
||||
В [[Конфигурация кухни#Линейная кухня|линейной кухне]] все элементы расположены вдоль одной стены, поэтому рабочий треугольник превращается в прямую линию.
|
||||
|
||||
**Особенности и рекомендации**:
|
||||
- Расположите элементы в последовательности: **холодильник → мойка → плита**. Это минимизирует лишние перемещения и упрощает готовку.
|
||||
- Рабочую поверхность разместите между мойкой и плитой, оставив расстояние 60–90 см. Это создаст удобное пространство для подготовки ингредиентов.
|
||||
- Чтобы сэкономить место, можно использовать выдвижные разделочные доски или складные столешницы.
|
||||
|
||||
В [[Конфигурация кухни#Угловая кухня|угловой кухне]] элементы располагаются вдоль двух смежных стен, что позволяет естественным образом создать рабочий треугольник.
|
||||
|
||||
**Особенности и рекомендации**:
|
||||
- Мойка должна стать центральной точкой треугольника и находиться в углу, между холодильником и плитой.
|
||||
- Убедитесь, что стороны треугольника не слишком длинные: расстояние между холодильником, мойкой и плитой должно оставаться в пределах 1,2–2,5 м.
|
||||
- Используйте угловые модули с каруселями или выдвижными системами для эффективного хранения в углу.
|
||||
|
||||
В [[Конфигурация кухни#П-образная кухня|П-образной кухне]] элементы размещены вдоль трех стен, что позволяет организовать рабочий треугольник более гибко.
|
||||
|
||||
**Особенности и рекомендации**:
|
||||
- Разместите холодильник, мойку и плиту на разных сторонах буквы «П», сохраняя их в пределах треугольника.
|
||||
- Избегайте слишком длинных сторон треугольника, иначе перемещения станут неудобными.
|
||||
- Рабочая поверхность может находиться на третьей стороне, создавая дополнительную зону для нарезки и подготовки.
|
||||
- Если кухня большая, подумайте о включении острова, который может выполнять функции одной из сторон треугольника, например, разместив на нем плиту или мойку.
|
||||
***
|
||||
## Мета информация
|
||||
**Область**:: [[../meta/zero/00 Ремонт|00 Ремонт]]
|
||||
**Родитель**:: [[Эргономика кухни]]
|
||||
**Источник**::
|
||||
**Автор**::
|
||||
**Создана**::
|
||||
### Дополнительные материалы
|
||||
-
|
||||
### Дочерние заметки
|
||||
```dataview
|
||||
LIST
|
||||
FROM [[]]
|
||||
WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link)
|
||||
```
|
35
repair/Расположение розеток на кухне.md
Normal file
@ -0,0 +1,35 @@
|
||||
---
|
||||
aliases:
|
||||
tags:
|
||||
- maturity/🌱
|
||||
date: 2024-11-17
|
||||
---
|
||||
Грамотное планирование розеток на кухне — это залог удобства и безопасности при использовании бытовой техники. Размещение розеток должно учитывать сценарии работы с приборами, их количество и расположение, а также особенности пространства.
|
||||
|
||||
Начните с создания эскиза кухни, на котором будет отмечено расположение всей техники — как крупной, так и мелкой. Подумайте о сценариях использования электроприборов. Например, кто-то может одновременно пользоваться кофемашиной, тостером и электрочайником. Учтите количество членов семьи, которые будут работать на кухне одновременно, чтобы избежать неудобств.
|
||||
|
||||
**Основные рекомендации по размещению розеток**
|
||||
|
||||
- **Учет мелкой бытовой техники**. Мелкие приборы, такие как тостеры, кофемолки, блендеры и кухонные комбайны, часто используются на столешнице. Розетки для них должны быть в зоне легкого доступа, чтобы не приходилось каждый раз переносить приборы или удлинять шнуры. Избегайте размещения розеток в углах или труднодоступных местах — это неудобно и нарушает эргономику.
|
||||
- **Группы розеток на кухонном фартуке** На кухонном фартуке рекомендуется размещать несколько групп розеток (не менее трех в каждой группе). Это особенно важно, так как часть из них будет постоянно занята стационарными приборами, например, электрочайником или кофемашиной. Оставшиеся розетки должны быть свободными для других устройств.
|
||||
- Розетки на кухонном фартуке обычно размещают на высоте 15–20 см от столешницы. Это оптимальная высота, чтобы подключенные приборы не мешали работе и их провода не путались.
|
||||
- **Безопасность и размещение рядом с водой**. ==Розетки не должны находиться ближе 60 см от раковины, даже если они влагозащищенные. ==Такое размещение снижает риск попадания воды и увеличивает безопасность.
|
||||
- **Розетки для встроенной техники**. Розетки для встроенной техники (например, духового шкафа, холодильника или посудомоечной машины) следует размещать сбоку от приборов. Это обеспечит быстрый доступ к ним для обслуживания или отключения. Если розетки спрятаны внутри шкафов, убедитесь, что их расположение не мешает работе и остается удобным.
|
||||
- **Запасные розетки**. Планируйте розетки с запасом. Даже если сейчас кажется, что достаточно минимального количества, со временем список используемой техники может увеличиться.
|
||||
- Размещение розеток на [[Конфигурация кухни#Остров|острове]]. Если на кухне есть остров, важно предусмотреть розетки и для него. Они пригодятся для работы с блендером, миксером или даже зарядки гаджетов.
|
||||
|
||||
![[../meta/files/images/Pasted image 20240911091644.png]]
|
||||
|
||||
***
|
||||
## Мета информация
|
||||
**Область**:: [[../meta/zero/00 Ремонт|00 Ремонт]]
|
||||
**Родитель**:: [[Эргономика кухни]]
|
||||
**Источник**::
|
||||
**Создана**:: [[2024-11-17]]
|
||||
**Автор**::
|
||||
### Дополнительные материалы
|
||||
- [[Розетки и выключатели|Розетки и выключатели]]
|
||||
|
||||
### Дочерние заметки
|
||||
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
|
||||
|
26
repair/Ремонт кухни.md
Normal file
@ -0,0 +1,26 @@
|
||||
---
|
||||
aliases:
|
||||
- Ремонт на кухне
|
||||
tags:
|
||||
- maturity/🌱
|
||||
date: 2024-09-09
|
||||
---
|
||||
- [[Планировка кухни|Планировка кухни]]
|
||||
- [[Конфигурация кухни|Конфигурация кухни]]
|
||||
- [[Эргономика кухни|Эргономика кухни]]
|
||||
- [[Рабочий треугольник кухни|Рабочий треугольник кухни]]
|
||||
- [[Зонирование кухни]]
|
||||
- [[Рабочая зона кухни|Рабочая зона кухни]]
|
||||
- [[Зона хранения на кухне]]
|
||||
- [[Обеденная зона]]
|
||||
- [[Расположение розеток на кухне]]
|
||||
- [[../../../_inbox/Материалы для ремонта кухни|Материалы для ремонта кухни]]
|
||||
- [[Столешница]]
|
||||
## Мета информация
|
||||
**Область**:: [[../meta/zero/00 Ремонт|00 Ремонт]]
|
||||
**Родитель**::
|
||||
**Источник**::
|
||||
**Создана**:: [[2024-09-09]]
|
||||
**Автор**::
|
||||
### Дополнительные материалы
|
||||
-
|
25
repair/Розетки и выключатели.md
Normal file
@ -0,0 +1,25 @@
|
||||
---
|
||||
aliases:
|
||||
tags:
|
||||
- maturity/🌱
|
||||
date: 2024-11-17
|
||||
---
|
||||
При выборе розеток и выключателей лучше смотреть на проверенные бренды. Это Schneider Electric, Legrand, Berker, Gira, ABB, Lezard, Viko. Основной принцип — не экономить и не покупать дешевую продукцию.
|
||||
|
||||
Мастер-выключатель — его ставят на выходе из дома, он обесточивает всю проводку в квартире, кроме неотключаемых линий, например холодильника и сигнализации. Так можно не переживать, что вы ушли, а в какой-то из комнат остался свет или работающий утюг.
|
||||
|
||||
На какой высоте делать розетки и выключатели. Если коротко — на любой. Нормативов на этот счет нет, в новостройках применяют европейское решение: розетки ставят на 25—30 см от уровня пола, выключатели — 90 см от уровня пола.
|
||||
|
||||
***
|
||||
## Мета информация
|
||||
**Область**:: [[../meta/zero/00 Ремонт|00 Ремонт]]
|
||||
**Родитель**:: [[../../../_inbox/Электрика|Электрика]]
|
||||
**Источник**::
|
||||
**Создана**:: [[2024-11-17]]
|
||||
**Автор**::
|
||||
### Дополнительные материалы
|
||||
-
|
||||
|
||||
### Дочерние заметки
|
||||
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
|
||||
|
34
repair/Согласование перепланировки.md
Normal file
@ -0,0 +1,34 @@
|
||||
---
|
||||
aliases:
|
||||
tags:
|
||||
- maturity/🌱
|
||||
date: 2024-11-17
|
||||
---
|
||||
Работы, которые требуют согласования, делят на три типа.
|
||||
- **Переустройство.** Это установка, замена или перенос инженерных сетей, санитарно-технического, электрического или газового оборудования. Проект переустройства нужен, если вы планируете передвинуть мойку в границах кухни, поменять местами ванну и раковину или перевесить на соседнюю стену газовую колонку.
|
||||
- **Перепланировка.** Это любые работы, которые касаются демонтажа или переноса стен. Объединить ванную и туалет, сделать дверной проем между кухней и гостиной, организовать нишу для встроенного шкафа — работы по перепланировке, которые потребуют согласования.
|
||||
- **Работы, затрагивающие облик дома или общедомовое имущество.** Самый редкий и сложный в согласовании вид работ. К ним относят устройство дымохода для камина или постройку лоджии на первом этаже. ==Кроме проекта для таких работ требуется согласие всех собственников дома.==
|
||||
|
||||
**Все виды работ согласуют одинаково:**
|
||||
1. Создают проект перепланировки или переустройства. Этот документ составляет специальная проектная компания. Можно выбрать любую, главное — чтобы она была членом саморегулируемой организации (СРО) иначе при согласовании документы не будут иметь законной силы.
|
||||
2. Собственник получает разрешение жилищной инспекции. Нужно обращаться в МФЦ с готовым пакетом документов или уточнять возможность подать их онлайн — это можно сделать на госуслугах.
|
||||
3. Делают перепланировку или переустройство.
|
||||
4. Собственник оформляет акт о завершенных работах. Для этого по окончании ремонта потребуется пригласить приемочную комиссию из жилищной инспекции, которая подтвердит, что работы соответствуют проекту. Порядок вызова комиссии лучше уточнить при подаче документов.
|
||||
|
||||
- Госорганы согласуют перепланировку бесплатно, но за сами документы придется заплатить.
|
||||
- Вам потребуется техпаспорт квартиры из бюро технической инвентаризации, БТИ, — его выдают за 2400 ₽ в течение 10 дней с момента оплаты заказа. Если техник БТИ осматривал квартиру более пяти лет назад или у вас новостройка, будет дороже — 10 000 ₽. Эту сумму придется заплатить за визит техника, который сделает замеры квартиры и внесет результаты в новый техпаспорт.
|
||||
- Проект перепланировки и техническое заключение от проектной компании обычно стоят от 25 000 ₽. Исключение — сложные перепланировки, например организация проема в несущей стене. В этом случае проект будет стоить от 70 000 ₽.
|
||||
- Обычно решение о согласовании принимают в течение 20 рабочих дней. С этого момента у вас есть год на то, чтобы провести и согласовать остальные работы. В целом на оформление уходит пара месяцев, так что начать собирать документы лучше заранее.
|
||||
***
|
||||
## Мета информация
|
||||
**Область**:: [[../meta/zero/00 Ремонт|00 Ремонт]]
|
||||
**Родитель**:: [[Перепланировка квартиры]]
|
||||
**Источник**::
|
||||
**Создана**:: [[2024-11-17]]
|
||||
**Автор**::
|
||||
### Дополнительные материалы
|
||||
-
|
||||
|
||||
### Дочерние заметки
|
||||
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
|
||||
|
26
repair/Цветовая гамма дизайн проекта.md
Normal file
@ -0,0 +1,26 @@
|
||||
---
|
||||
aliases:
|
||||
tags:
|
||||
- maturity/🌱
|
||||
date: 2024-11-17
|
||||
---
|
||||
Рабочее правило использовать в интерьере не более четырех-пяти цветов: один основной оттенок, два дополнительных и два акцентных.
|
||||
|
||||
Основной оттенок обычно задают стены — как самые крупные поверхности. Дополнительные — мягкая и корпусная мебель, акцентные — мелкий декор вроде диванных подушек и штор. Удачно, когда основной и дополнительные цвета относятся к одной и той же нейтральной гамме, а акцентные расставляют яркие «пятна».
|
||||
|
||||
Бесплатные приложения, которые помогут подобрать цвет:
|
||||
- [Adobe Color Capture](https://color.adobe.com/ru/) подсказывает, какой цвет на картинке
|
||||
- [ColorSnap](https://www.sherwin-williams.com/content/colorsnap.html) находит желаемый цвет в палитрах известных производителей краски.
|
||||
***
|
||||
## Мета информация
|
||||
**Область**:: [[../meta/zero/00 Ремонт|00 Ремонт]]
|
||||
**Родитель**:: [[Дизайн проект|Дизайн проект]]
|
||||
**Источник**::
|
||||
**Создана**:: [[2024-11-17]]
|
||||
**Автор**::
|
||||
### Дополнительные материалы
|
||||
-
|
||||
|
||||
### Дочерние заметки
|
||||
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
|
||||
|
37
repair/Чек-лист для проверки дизайн-проекта.md
Normal file
@ -0,0 +1,37 @@
|
||||
---
|
||||
aliases:
|
||||
tags:
|
||||
- maturity/🌱
|
||||
date: 2024-11-17
|
||||
---
|
||||
Готовый дизайн-проект должен быть не только красивым, но и функциональным. Чтобы убедиться, что проект соответствует всем вашим ожиданиям и требованиям, воспользуйтесь этим чек-листом.
|
||||
|
||||
- [ ] **Полный комплект чертежей и планов.** Полный комплект чертежей упрощает работу для строителей, снижая риск ошибок и недоразумений.
|
||||
- [ ] **Планировки помещений.** Все комнаты, технические зоны и проходы должны быть измерены и отражены в чертежах.
|
||||
- [ ] **Чертежи инженерных коммуникаций.** Убедитесь, что проект включает схемы для сантехники, электрики, вентиляции, кондиционеров и других систем.
|
||||
- [ ] **Планы мебели и отделки.** Размещены ли в проекте все мебельные элементы, указаны ли особенности укладки полов, оформления стен и потолков?
|
||||
- [ ] **Конкретика в выборе материалов и мебели.** Точные данные по материалам помогают избежать задержек, лишних затрат и конфликтов с подрядчиками.
|
||||
- [ ] Указаны ли названия отделочных материалов, их артикулы или производители?
|
||||
- [ ] Есть ли информация о количестве материалов, необходимых для реализации?
|
||||
- [ ] Прописаны ли места приобретения, рекомендации по альтернативам и сроки поставки?
|
||||
- [ ] **Соответствие техническим особенностям помещения**
|
||||
- [ ] Учтены ли реальные размеры помещений, высота потолков и расположение несущих конструкций?
|
||||
- [ ] Отражены ли особенности подключения коммуникаций (например, высота розеток, расположение труб)?
|
||||
- [ ] Учитывает ли проект возможные ограничения, такие как узкие проходы, нестандартные формы комнат или уже существующие инженерные решения?
|
||||
- [ ] **Соответствие вашим пожеланиям**
|
||||
- [ ] Проверено ли, что в проекте учтены ваши требования по стилю, функциональности и цветовым решениям?
|
||||
- [ ] Удовлетворяет ли вас расстановка мебели, выбранные материалы и общее визуальное впечатление?
|
||||
- [ ] Уточнены ли дополнительные детали, такие как встроенные конструкции, умные системы или особенности освещения?
|
||||
***
|
||||
## Мета информация
|
||||
**Область**:: [[../meta/zero/00 Ремонт|00 Ремонт]]
|
||||
**Родитель**:: [[Дизайн проект]]
|
||||
**Источник**::
|
||||
**Создана**:: [[2024-11-17]]
|
||||
**Автор**::
|
||||
### Дополнительные материалы
|
||||
-
|
||||
|
||||
### Дочерние заметки
|
||||
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
|
||||
|
70
repair/Эргономика кухни.md
Normal file
@ -0,0 +1,70 @@
|
||||
---
|
||||
aliases:
|
||||
- высота рабочей поверхности
|
||||
tags:
|
||||
- maturity/🌱
|
||||
date: 2024-11-17
|
||||
---
|
||||
Эргономика кухни — это основа удобства и функциональности. Грамотно спроектированные размеры [[Зонирование кухни|рабочих зон]] и правильное расстояние между ключевыми элементами помогают сократить лишние движения, снизить усталость и сделать процесс готовки комфортным.
|
||||
|
||||
Крайне важно соблюдать принцип [[Рабочий треугольник кухни|рабочего треугольника]].
|
||||
## Размеры рабочих зон
|
||||
**Рабочая поверхность**
|
||||
- **Минимальная длина:** 60 см. Это позволяет разместить разделочную доску и основные инструменты.
|
||||
- **Оптимальная длина:** 90–120 см. Этого достаточно для подготовки нескольких блюд одновременно.
|
||||
|
||||
[[../../../_inbox/Столешница|Столешница]]
|
||||
- **Ширина столешницы:** 60–65 см — стандартный размер, подходящий для большинства кухонь.
|
||||
|
||||
**Мойка**
|
||||
- **Минимальный размер чаши:** 40×40 см. Подходит для небольших кухонь.
|
||||
- **Оптимальный размер:** 50×60 см, чтобы удобно мыть крупные кастрюли и сковороды.
|
||||
- **Высота установки:** Мойка должна находиться немного выше рабочей поверхности, чтобы минимизировать наклоны. Оптимальная высота — 90–95 см.
|
||||
|
||||
**Плита**
|
||||
- **Ширина рабочей зоны рядом с плитой:** минимум 30 см с каждой стороны, чтобы удобно размещать кастрюли и ингредиенты.
|
||||
- **Высота установки:** Должна быть такой же, как у рабочей поверхности, или чуть ниже (85–90 см). Это обеспечивает удобство при перемешивании пищи и снижает нагрузку на запястья.
|
||||
|
||||
**Проходы**
|
||||
- **Минимальная ширина прохода между кухонными модулями:** 90 см.
|
||||
- **Оптимальная ширина:** 100–120 см, чтобы двум людям было удобно перемещаться одновременно.
|
||||
|
||||
Учитывайте высоту встроенной техники: духовых шкафов, посудомоечных машин. Они должны быть расположены так, чтобы не приходилось сильно наклоняться.
|
||||
- Установите микроволновку и духовой шкаф правильно — на уровне от пояса до груди.
|
||||
- Продумайте расположение полок и шкафов на низких ярусах — там, куда легко дотянуться.
|
||||
## Высота кухонной мебели
|
||||
Высота кухонной мебели играет ключевую роль в комфорте использования. Неправильно подобранная высота рабочей поверхности, мойки или плиты может вызвать дискомфорт, усталость и даже проблемы со спиной. Правильный расчет высоты мебели помогает адаптировать кухню под индивидуальные потребности владельцев.
|
||||
|
||||
Оптимальная высота [[../../../_inbox/Столешница|столешницы]] определяется ростом человека. ==Для большинства людей комфортной является высота 85–90 см от пола==. Однако, если ваш рост выше или ниже среднего, стоит отклониться от стандартов. Примерные рекомендации:
|
||||
- Для роста 150–160 см: 82–85 см.
|
||||
- Для роста 160–180 см: 85–90 см.
|
||||
- Для роста выше 180 см: 90–95 см.
|
||||
|
||||
![[Pasted image 20240911091521.png]]
|
||||
## Частые ошибки
|
||||
- Несоблюдение принципа [[Рабочий треугольник кухни|рабочего треугольника]].
|
||||
- **Неправильная высота рабочей поверхности.** Рабочая поверхность слишком низкая или высокая для владельца, что вызывает неудобство и напряжение в спине.
|
||||
- **Отсутствие достаточной рабочей зоны между мойкой и плитой.** Пространство для приготовления пищи либо слишком маленькое, либо отсутствует вовсе.
|
||||
- **Узкие проходы между модулями.** Недостаточная ширина прохода между кухонными элементами, из-за чего затрудняется движение.
|
||||
- Плохая организация [[Зона хранения на кухне|хранения на кухне]]. Глубокие шкафы с распашными дверцами вместо выдвижных ящиков затрудняют доступ к предметам.
|
||||
- Неправильное освещение. Отсутствие локальной подсветки в рабочей зоне или использование одного верхнего светильника.
|
||||
- **Пересекающиеся линии открывания дверей.** Дверцы шкафов или бытовой техники (например, духовки и посудомоечной машины) перекрывают друг друга при открытии.
|
||||
- Неудобное [[Расположение розеток на кухне|расположение розеток]]. Розетки расположены далеко от рабочей зоны или их недостаточно.
|
||||
***
|
||||
## Мета информация
|
||||
**Область**:: [[../meta/zero/00 Ремонт|00 Ремонт]]
|
||||
**Родитель**:: [[../../../repair/Ремонт кухни|Ремонт на кухне]]
|
||||
**Источник**::
|
||||
**Создана**:: [[2024-11-17]]
|
||||
**Автор**::
|
||||
### Дополнительные материалы
|
||||
-
|
||||
|
||||
### Дочерние заметки
|
||||
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
|
||||
<!-- SerializedQuery: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
|
||||
- [[Расположение розеток на кухне]]
|
||||
- [[Зонирование кухни]]
|
||||
- [[Рабочий треугольник кухни]]
|
||||
<!-- SerializedQuery END -->
|
||||
|
@ -24,7 +24,7 @@ linked:
|
||||
- Виртуальные потоки могут дать существенный прирост (в 2 раза) производительности существующему приложению.
|
||||
- Виртуальные потоки легко включить, от разработчика не требуется переписывать существующий код.
|
||||
- Реактивный подход (Spring WebFlux) позволит дать максимальный прирост производительности (в 3.8 раза), но за это придется заплатить.
|
||||
- [[../../../../knowledge/dev/Реактивное программирование|Реактивное программирование]] требует от разработчика изучение новой парадигмы и новых подходов: "функциональный" стиль разработки (Fluent API).
|
||||
- [[../../dev/architecture/Реактивное программирование|Реактивное программирование]] требует от разработчика изучение новой парадигмы и новых подходов: "функциональный" стиль разработки (Fluent API).
|
||||
***
|
||||
## Конспект
|
||||
Автор считает, что Java не самый эффективный язык программирования с точки зрения потребления ресурсов
|
||||
|