Files
huncode 2c7f9d37d7
Build and deploy / deploy (push) Successful in 22s
revise September 2018 environment articles
2026-07-31 09:52:09 +03:00

80 lines
13 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Сентябрь 2018 — черновое тройное ревью «Воспроизводимое окружение Windows»
Пакет автономный и предназначен для отдельной интеграции:
- <code>editorial-2018-09-practice-windows-dev-env</code>
- <code>editorial-2018-09-mechanism-windows-dev-env</code>
- <code>editorial-2018-09-field-windows-dev-env</code>
В этой партии созданы только:
- <code>web/scripts/upgrade-2018-09.mjs</code>;
- три SVG в <code>web/public/assets/editorial/2018/</code>;
- этот файл ревью.
<code>web/data/articles.json</code>, реестр ревизий, аудит, стандарт качества, очередь и Git не менялись. Дата ревью: 31 июля 2026 года.
## 1. Факты и техника — пройдено
### Граница и первичные источники
| Утверждение в статье | Чем сверено | Оговорка в тексте |
| --- | --- | --- |
| В Windows у переменных среды есть Machine, User и Process scopes; дочерние процессы наследуют переменные родителя | [about_Environment_Variables](https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_environment_variables?view=powershell-5.1), [Win32 Environment Variables](https://learn.microsoft.com/en-us/windows/win32/procthread/environment-variables) | Статья не утверждает, что старое окно мгновенно получает постоянную правку; проверка идёт в новом сеансе |
| <code>PATH</code> задаёт каталоги поиска, а <code>PATHEXT</code> — исполняемые расширения | [about_Environment_Variables](https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_environment_variables?view=powershell-5.1) | Это не единственный слой выбора в PowerShell: отдельно названы alias, функции, cmdlet и внешние приложения |
| <code>Get-Command -All</code> показывает несколько одноимённых команд в порядке выбора PowerShell | [Get-Command](https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/get-command?view=powershell-5.1) | <code>where.exe</code> не выдан за эквивалент: он помогает увидеть файлы в текущем каталоге и <code>PATH</code> |
| <code>chcp</code> показывает активную кодовую страницу; смена относится к программам, стартующим после неё | [chcp](https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/chcp) | Кодовая страница консоли не приравнена к кодировке файла или настройке вывода .NET |
| JSON-снимок и дифф строятся стандартными PowerShell-командами | [ConvertTo-Json](https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/convertto-json?view=powershell-5.1), [Compare-Object](https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/compare-object?view=powershell-5.1) | Сравнение показывает различающиеся строки, а не доказывает причину без повторного запуска исходной команды |
### Технический проход
- Скрипт экспортирует три ревизии и не меняет архив при import.
- Контракт CLI проверен отдельно: <code>--print-revisions</code> выдал только валидный JSON из трёх объектов, без строки Usage и без stderr.
- В примерах нет команды, отключающей execution policy, антивирус, проверку сертификатов или иной механизм безопасности.
- Опасные данные ограничены заранее выбранными полями. В тексте отдельно сказано, что <code>PATH</code> может раскрыть имя пользователя и внутренние каталоги, поэтому JSON нужно просмотреть перед передачей.
- Поля <code>PATH</code>, кодовая страница, найденный кандидат и результат <code>--version</code> не смешаны в один «универсальный диагноз». Каждая статья называет следующий наблюдаемый шаг.
- Пути и версии в полевом разборе прямо помечены учебными. Они не приписываются реальному пользователю, команде или измерению.
- В рабочей среде нет Windows PowerShell 5.1, поэтому примеры не объявлены выполненными на другой ОС. Их синтаксис, параметры и фактические утверждения сверены с первичной документацией; перед публикацией на Windows нужен отдельный локальный прогон учебных <code>.ps1</code>.
## 2. Редактура и голос М1 — пройдено
| Ревизия | Один вопрос | Симптом и цена в начале | Освоенное умение 2018 года | Основной текст |
| --- | --- | --- | --- | --- |
| Практика | Какой минимальный снимок позволяет повторить запуск | Команда не находит инструмент или выбирает другой; риск — случайная глобальная правка и утечка переменных | PowerShell-скрипт, JSON и ручная проверка пути | 5 866 знаков без кода и источников |
| Механизм | Как PowerShell выбирает команду и где участвует кодовая страница | Версия отличается и текст нечитаем; риск — исправить не тот бинарник или повредить текст | <code>Get-Command -All</code>, <code>where.exe</code>, процессный <code>PATH</code> | 6 864 знака без кода и источников |
| Поле | Как найти различие между двумя машинами без переустановки | Одинаковая команда расходится; риск — стереть след случайными установками | Снимок, <code>Compare-Object</code>, обратимый опыт в новом сеансе | 7 343 знака без кода и источников |
- Голос удержан на М1: инженерская заметка 2018 года идёт от наблюдаемой ошибки к короткой команде, затем к ручной проверке.
- Не добавлены поздние роли, SLO, Kubernetes, контейнерные платформы, продуктовые метрики или непроверяемые истории внедрения.
- В каждом тексте есть один рисунок с осмысленным <code>alt</code> и подписью, одна доступная таблица, воспроизводимый PowerShell-фрагмент, нумерованный порядок действий, ограничения и точный заголовок <code>&lt;h2&gt;Проверяемые источники&lt;/h2&gt;</code>.
- Убраны общие вводные и обещания «универсального решения». Утверждения ограничены версией, текущим процессом, конкретной командой или учебным примером.
### Третий редакторский проход — пройдено
- Независимый draft-gate вернул замечание только к <code>editorial-2018-09-field-windows-dev-env</code>: в первых 800 знаках был сценарий, но не было явного маркера проблемы.
- Первое предложение заменено минимально: оно начинается с <code>Симптом:</code>, сохраняет две Windows-машины, расходящийся запуск и цену поспешной переустановки.
- Остальная структура, объём, источники, визуал и тон М1 не менялись. Повторный <code>npm run audit:draft -- scripts/upgrade-2018-09.mjs</code> из <code>web/</code> прошёл для всех трёх slug: 8 086 / 7 690 / 8 745 знаков body; <code>node --check scripts/upgrade-2018-09.mjs</code> также завершился успешно.
## 3. Визуал и выпуск — пройдено
- <code>windows-dev-env-snapshot-2018.svg</code> объясняет состав минимального снимка и границу с секретными данными.
- <code>windows-dev-env-resolution-2018.svg</code> разделяет поиск команды и проверку кодовой страницы; это предотвращает неверный вывод, что <code>where.exe</code> полностью описывает PowerShell.
- <code>windows-dev-env-diff-2018.svg</code> показывает порядок полевого разбора: одинаковая команда → очищенные снимки → одно отличие → обратимый опыт → повтор.
- Все схемы имеют адаптивный viewBox шириной 720px, используют контрастный текст и не содержат текста, который является единственным носителем смысла: связи также видны по группам и стрелкам.
- SVG открыты через локальный Quick Look в масштабе 1200px. При первом просмотре нижняя строка схемы полевого разбора выходила за правую границу; текст сокращён, схема отрендерена повторно без обрезания. На трёх схемах проверены стрелки, контраст, кириллица и отсутствие клиппинга.
### Выполненные команды и результат
node --check web/scripts/upgrade-2018-09.mjs
node web/scripts/upgrade-2018-09.mjs --print-revisions
node --input-type=module -e "import('./web/scripts/upgrade-2018-09.mjs').then(({revisions}) => { if (revisions.length !== 3) process.exit(1); })"
xmllint --noout web/public/assets/editorial/2018/windows-dev-env-snapshot-2018.svg
xmllint --noout web/public/assets/editorial/2018/windows-dev-env-resolution-2018.svg
xmllint --noout web/public/assets/editorial/2018/windows-dev-env-diff-2018.svg
- Все шесть команд завершились успешно. Отдельно проверены чистый import, точный порядок трёх slug, 5 000–15 000 знаков основного текста, 8 / 8 / 9 смысловых заголовков, по два блока кода, figure с непустым alt и подписью, таблица с thead, нумерованный маршрут, точный раздел источников и 4 / 5 / 5 внешних первичных ссылок.
- <code>git diff --check</code> по пяти файлам партии прошёл без пробелов и конфликтных маркеров. В статусе партии — ровно эти пять новых файлов; скрипт не импортирует и не записывает архив, реестр, аудит, стандарт, очередь или Git-историю.
- После интеграции основной редактор повторно прогнал strict audit через реестр ревизий и production build. Сборка прошла и сгенерировала 374 статические страницы.
Статус: принят в публикационный слой 31 июля 2026 года. Ревизии накладываются только по стабильным slug, без изменения даты, автора и базового архива.