Add architecture review prompts and responses (Sonnet, GPT SOL)
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
# Ответ GPT SOL по архитектуре
|
||||
|
||||
## 1. Архитектура
|
||||
|
||||
Архитектура верна. Лишнее сейчас: `layout.theme` как система тем и Custom Element. Достаточно CSS-переменных/класса темы.
|
||||
|
||||
## 2. Более простой вариант
|
||||
|
||||
`initFilePicker({ mount, ... })` плюс один ESM-бандл и CSS. IIFE добавлять только для интеграций без ES-модулей.
|
||||
|
||||
## 3. Custom Element
|
||||
|
||||
Сначала фабрика и бандл. Custom Element нужен только при подтверждённом declarative-use кейсе; иначе это второй API для сопровождения.
|
||||
|
||||
## 4. Риски
|
||||
|
||||
- `destroy()` обязан снимать listeners и очищать DOM/state.
|
||||
- `onChange` должен возвращать копию массива, а не внутренний state.
|
||||
- Нужно сохранять исходные `File`; ZIP-элементы ими не являются, поэтому нужен явный тип результата.
|
||||
- Лимиты ZIP: размер, число файлов, суммарный распакованный размер, compression ratio, recursion depth.
|
||||
- `fflate` внутри бандла исключает глобальную зависимость.
|
||||
- CSS изолировать префиксом классов; Shadow DOM пока не нужен.
|
||||
- Не полагаться на абсолютные URL; ассеты должны быть в бандле или URL задаётся интегратором.
|
||||
- Проверить старые браузеры: ES target, `webkitdirectory`, Custom Element.
|
||||
- Для managed Flask достаточно статической раздачи ESM/CSS с корректными MIME и cache/versioning.
|
||||
Reference in New Issue
Block a user