Анализ страницы https://mizzy.org/notes/
Основное Готовность: 100%
Домен
mizzy.org
Состояние доменного имени
?
Проверяем корректность доменного имени и наличие технических проблем на уровне домена.
Домен второго уровня идеален для продвижения.
Отличный запоминающийся домен.
Ответ сервера
200 Успешный ответ
HTTP-код ответа и цепочка редиректов
?
Код 200 — страница доступна. Коды 3xx — редиректы (цепочки замедляют загрузку и размывают ссылочный вес). Коды 4xx/5xx — ошибки, поисковик не сможет проиндексировать страницу.
Сервер настроен корректно.
Безопасность
Сайт безопасен
Использование HTTPS и SSL-сертификат
?
HTTPS — обязательный стандарт. Google и Яндекс отдают предпочтение защищённым сайтам. Отсутствие SSL или просроченный сертификат ведут к предупреждениям в браузере и снижению позиций.
Не настроен HSTS (Strict-Transport-Security) — рекомендуется включить.
На сайте работает защищенный протокол ssl и сайт открывается по https.
Ssl-сертификат действителен до 18.11.2026 17:39:21.
Поздравляем! Сайт не содержится в реестре РКН.
Кодировка
utf-8
Кодировка символов страницы
?
Стандарт — UTF-8. Неправильная кодировка вызывает нечитаемые символы и мешает поисковику корректно распознать текст страницы.
Указана кодировка на странице utf-8.
Язык
ja
Атрибут lang в HTML-теге
?
Атрибут lang (<html lang="ru">) сообщает поисковикам и браузерам, на каком языке написана страница. Помогает при ранжировании в региональном поиске.
Язык документа указан явно: ja.
Скорость загрузки
~0,28сек
Время отклика сервера (TTFB)
?
Time To First Byte — время до получения первого байта от сервера. Норма до 200 мс. Медленный отклик ухудшает пользовательский опыт и ранжирование: Яндекс и Google учитывают скорость страниц.
Скорость загрузки сайта 0,28сек оптимальна.
Объем документа
54Кб
Размер HTML-кода страницы
?
Слишком большой HTML замедляет парсинг браузером и сканирование поисковым роботом. Рекомендуется не более 200 Кб.
Объем html-документа 54Кб оптимален.
Структура html-документа корректна.
Ресурсы
Ресурсы: 1
Внешние ресурсы страницы (CSS, JS, изображения)
?
Количество и тип подключённых ресурсов влияют на скорость загрузки. Большое число запросов увеличивает время рендеринга страницы.
Кол-во файлов ресурсов 1 достаточно.
Показать полный список ресурсов
| Тип | Название | Значение |
|---|---|---|
| stylesheet | /notes/notes.css |
Серверные заголовки
Кол-во: 17
HTTP-заголовки ответа сервера
?
Заголовки сервера передают браузеру и поисковику служебную информацию: кеширование, безопасность (CSP, HSTS), сжатие (gzip). Правильная настройка ускоряет загрузку и повышает защищённость.
Найдены серверные заголовки 17шт. Подробнее про серверные заголовки.
Показать полный список серверных заголовков
| Ключ | Значение |
|---|---|
| Server | GitHub.com |
| Access-Control-Allow-Origin | * |
| ETag | "6a824f81-13c65" |
| Cache-Control | max-age=600 |
| x-proxy-cache | MISS |
| x-github-request-id | EC42:2840:11DB75:131D43:6A892688 |
| x-github-edge-region | swedencentral |
| Accept-Ranges | bytes |
| Age | 0 |
| Date | Sat, 22 Aug 2026 04:33:21 GMT |
| Via | 1.1 varnish |
| X-Served-By | cache-bma-essb1270064-BMA |
| X-Cache | MISS |
| x-cache-hits | 0 |
| x-timer | S1787373201.406474,VS0,VE121 |
| Vary | Accept-Encoding |
| x-fastly-request-id | c3ea19c47caffdc930e20b705c284a39ddb24076 |
CMS
Не определена
Система управления сайтом (движок)
?
CMS — это движок, на котором работает сайт (WordPress, 1C-Bitrix, Tilda и др.). Знание CMS помогает понять возможности SEO-оптимизации и подобрать подходящие инструменты. «Не определена» — вероятно, самописный сайт или нестандартная сборка.
CMS не определена. Вероятно, сайт самописный либо движок надёжно скрыт. Это не ошибка.
Веб-сервер
GitHub.com
Программное обеспечение сервера
?
Веб-сервер — это ПО, которое отдаёт страницы посетителям (nginx, Apache, IIS, LiteSpeed и др.). Определяется по серверным заголовкам ответа (Server, X-Powered-By и т.п.). «Не определён» — сервер намеренно скрывает эти заголовки, это нормальная практика безопасности.
В заголовке Server указано: GitHub.com.
Мета-теги Готовность: 48%
Title
notes
Заголовок страницы в браузере и поисковой выдаче
?
Title — главный SEO-заголовок страницы. Влияет на CTR в поиске и ранжирование. Оптимальная длина: 50–70 символов. Ключевые слова — ближе к началу.
Необходимо увеличить число символов в title (текущее значение мало: 5, минимум: 25, оптимально: от 40 до 45)
Дублей словоформ в title не найдено.
Description
メモ置き場。1枚1概念で書いて、互いにリンクしている。
Описание страницы в поисковой выдаче (сниппет)
?
Meta Description — текст под заголовком в выдаче. Напрямую на позиции не влияет, но влияет на CTR. Оптимальная длина: 120–160 символов.
Необходимо увеличить число символов в description (текущее значение мало: 27, минимум: 80, оптимально: от 120 до 130)
Keywords
Список ключевых слов страницы (устаревший тег)
?
Meta Keywords не учитывается Яндексом и Google для ранжирования с 2009–2012 годов. Заполнение не обязательно, но не вредит. Конкурент может использовать содержимое для анализа.
Установите мета-тег keywords!
Канонический Url
Указывает поисковику основную версию страницы
?
Canonical (rel=canonical) предотвращает проблему дублей страниц. Должен точно совпадать с URL проверяемой страницы. Неправильный canonical может передать ссылочный вес на другую страницу.
Рекомендуем прописать канонический Url.
Robots
Ошибок нет
Директивы для поисковых роботов на уровне страницы
?
Meta Robots управляет индексацией конкретной страницы: index/noindex — индексировать ли, follow/nofollow — следовать ли по ссылкам. Noindex полностью исключает страницу из поиска.
Meta-тег robots не указан. Страница свободна для индексации.
Адаптивность
width=device-width, initial-scale=1
Настройка масштабирования на мобильных устройствах
?
Тег viewport (<meta name="viewport">) сообщает браузеру, как масштабировать страницу на мобильных. Стандарт: width=device-width, initial-scale=1. Отсутствие — признак отсутствия мобильной версии.
Meta-тег viewport со значением-константой width=device-width задаёт ширину страницы в соответствии с размером экрана.
Meta-тег viewport со значением initial-scale=1.0 определяет масштаб 1:1, т.е. «не масштабировать».
Разметка OpenGraph
Кол-во: 6
Мета-теги для красивых превью в соцсетях
?
OpenGraph (og:title, og:description, og:image) управляет тем, как страница выглядит при репосте в социальных сетях и мессенджерах. Отсутствие OG-тегов — невзрачный превью при шеринге.
Разметка OpenGraph задана. Страница оптимизирована под социальные сети.
Показать полный список og мета-тегов
| Тип | Значение |
|---|---|
| og:title | notes |
| og:type | website |
| og:url | https://mizzy.org/notes/ |
| og:image | https://mizzy.org/notes/ogp/index.png |
| og:description | メモ置き場。1枚1概念で書いて、互いにリンクしている。 |
| og:site_name | notes — mizzy.org |
Все мета-теги
Кол-во: 11
Полный список мета-тегов страницы
?
Таблица всех meta-тегов, включая нестандартные. Позволяет найти опечатки, дубли и лишние теги.
Найдены мета-теги 11шт. Мета-теги не видимы для человека и предназначены для обмена информацией между веб-страницей и поисковыми системами, браузерами и другими веб-службами. С ними роботы 🤖 и устройства ведут себя более ожидаемо.
Показать полный список мета-тегов
| Тип | Название | Значение |
|---|---|---|
| name | viewport | width=device-width, initial-scale=1 |
| name | description | メモ置き場。1枚1概念で書いて、互いにリンクしている。 |
| name | twitter:card | summary_large_image |
| name | twitter:title | notes |
| name | twitter:image | https://mizzy.org/notes/ogp/index.png |
| property | og:title | notes |
| property | og:type | website |
| property | og:url | https://mizzy.org/notes/ |
| property | og:image | https://mizzy.org/notes/ogp/index.png |
| property | og:description | メモ置き場。1枚1概念で書いて、互いにリンクしている。 |
| property | og:site_name | notes — mizzy.org |
Оптимизация Готовность: 55%
Структура
Ошибок нет
Семантические HTML-элементы страницы
?
Проверяет наличие основных структурных элементов: nav, header, footer, main. Корректная семантическая структура помогает поисковику понять архитектуру страницы.
Структура документа корректна (теги <html> и <body> присутствуют в единственном экземпляре).
Контент
Есть ошибки
Объём и качество текстового содержимого
?
Анализирует объём полезного текста на странице. Слишком мало — страница может считаться малополезной. Слишком много — ухудшается читаемость и восприятие.
Слова из title 1 встречаются в тексте редко. Добавьте в контент страницы слова из тега <title>!
Среднее число слов в абзаце 2 слишком мало. Сделайте контент более читаемым!
Кол-во слов 795 не очень много. Добавьте побольше текста (хотя бы 800 слов)!
Абзацев с текстом 109 достаточно.
Кол-во знаков контента 14150 на странице оптимально.
Заголовки
Ошибок нет
Иерархия заголовков H1–H6
?
H1 должен быть один и содержать ключевой запрос. H2–H6 описывают подразделы. Пропуск уровней (H1 → H3) и несколько H1 — типичные ошибки, снижающие понятность страницы для поисковика.
На странице присутствуют заголовки <h1> 1. Это прекрасно.
На странице присутствуют заголовки <h2> 106. Это хорошо.
На странице присутствуют заголовки <h3> 4.
Тошнота
5,57
Насколько одно слово доминирует в тексте
?
Классическая тошнота = √(частота самого повторяющегося слова). Норма до 7–8: текст воспринимается естественно. Выше — поисковик может счесть страницу переспамленной.
Тошнота превышает норму 5. Измените текст страницы!
Академич. тошнота
40,13%
Насколько текст перенасыщен ключевыми словами
?
Академическая тошнота = (частота слова / общее количество слов) × 100%. Показывает долю конкретного слова в тексте. Норма 5–15%.
Академическая тошнота превышает норму 5-15%. Измените текст страницы!
Семантическое ядро
20
Наиболее часто встречающиеся слова на странице
?
Топ слов по частоте использования. Показывает, какие слова доминируют в тексте с точки зрения поисковика.
Контент страницы содержит осмысленный текст и слова.
Показать список слов
| Слово | Кол-во | Частота |
|---|---|---|
| #型システム | 31 | 3,90% |
| #peitho | 8 | 1,01% |
| #コンパイラ | 8 | 1,01% |
| #unknown | 7 | 0,88% |
| #予測可能性 | 6 | 0,75% |
| #バグクラス | 5 | 0,63% |
| #apply | 4 | 0,50% |
| #identity | 4 | 0,50% |
| #リファクタリング | 4 | 0,50% |
| #state | 4 | 0,50% |
| iac言語は二段階の言語である | 3 | 0,38% |
| #carina | 3 | 0,38% |
| #トレードオフ | 3 | 0,38% |
| source | 3 | 0,38% |
| 構成記述系dsl | 3 | 0,38% |
| 実行前に結果が読めることがiacの根本価値である | 2 | 0,25% |
| 予測可能性はgraph形状と属性値の二側面を持つ | 2 | 0,25% |
| 結果予測性に効く記述自由度は三つに絞れる | 2 | 0,25% |
| 記述自由度は「言語が決める」か「規約に委ねる」かの二層に分かれる | 2 | 0,25% |
| 「dslだから読みやすい」のではない | 2 | 0,25% |
Индексация Готовность: 50%
Индексирование
Ошибок нет
Разрешено ли индексирование страницы
?
Проверяет, не закрыта ли страница от индексации через robots.txt, meta robots или X-Robots-Tag. Страница, закрытая от индексации, не появится в поисковой выдаче.
Анкоров на странице 137 оптимально. Поисковые роботы обязательно проиндексируют сайт.
Robots.txt
Не найден
Файл управления сканированием сайта роботами
?
Robots.txt указывает поисковым роботам, какие страницы сканировать, а какие — нет. Ошибки в файле могут случайно закрыть важные разделы от индексации.
Файл robots.txt не найден (ошибка 404). Крайне рекомендуем добавить файл robots.txt, это правило хорошего тона для поисковых роботов.
Sitemap
Кол-во: 0
XML-карта сайта для поисковиков
?
Sitemap.xml помогает поисковику быстрее находить и индексировать страницы. Особенно важен для крупных сайтов и новых страниц, на которые ещё нет входящих ссылок.
Robots.txt не содержит ссылку на карту сайта. Рекомендуется добавить карту сайта и указать ссылку на нее в robots.txt.
Внутренние ссылки
Кол-во: 137
Ссылки на другие страницы своего сайта
?
Внутренние ссылки распределяют ссылочный вес между страницами и помогают поисковику обходить сайт. Пустые анкоры и ссылки на запрещённые robots.txt страницы — типичные ошибки.
Внутренних ссылок на странице 137 оптимально.
Показать первые 100 внутренних ссылок
| Url | Анкор | Состояние |
|---|---|---|
| /notes/ |
notes
|
|
| / |
mizzy.org
|
|
| /notes/predictability-is-the-core-value.html |
実行前に結果が読めることがIaCの根本価値である
|
|
| /notes/graph-shape-vs-attribute-value.html |
予測可能性はgraph形状と属性値の二側面を持つ
|
|
| /notes/three-freedoms-of-description.html |
結果予測性に効く記述自由度は三つに絞れる
|
|
| /notes/locus-of-descriptive-freedom.html |
記述自由度は「言語が決める」か「規約に委ねる」かの二層に分かれる
|
|
| /notes/readability-comes-from-the-locus-not-the-language.html |
「DSLだから読みやすい」のではない
|
|
| /notes/boring-verbatim-beats-clever-abstraction.html |
IaCでは賢い抽象より退屈で逐語的な記述の方が価値が高い
|
|
| /notes/abstraction-boundary-opacity.html |
抽象化境界の透明性は記述自由度とは独立した軸である
|
|
| /notes/ai-context-window-is-a-locality-constraint.html |
AIのコンテキスト窓は人の局所読解と同質の制約である
|
|
| /notes/predictability-rationale-shifts-under-ai.html |
AI時代に予測可能性の根拠は組み替わるが重要性は落ちない
|
|
| /notes/two-stage-language.html |
IaC言語は二段階の言語である
|
|
| /notes/plan-is-compilation.html |
planはコンパイルである
|
|
| /notes/plan-as-ir-properties.html |
planはSSA的で直列化可能なIRである
|
|
| /notes/apply-is-linker-and-loader.html |
applyはリンカ兼ローダである
|
|
| /notes/relocation-without-verification.html |
再配置後に検証がないのは型検査済みIRの不変条件の破壊である
|
|
| /notes/analogy-that-predicts-bugs.html |
良い類比は実バグを予言する
|
|
| /notes/where-the-analogy-breaks.html |
類比が切れるのはターゲットが生きている場所である
|
|
| /notes/semantic-typing.html |
型は値の分類器である(意味論的型付け)
|
|
| /notes/value-based-checking-needs-totality.html |
値ベースの全数検査は停止性の配当である
|
|
| /notes/static-stage-totality.html |
静的段階の全域性は構文制限だけでは得られない
|
|
| /notes/two-stage-language.html |
IaC言語は二段階の言語である
|
|
| /notes/unknown-is-the-window-between-stages.html |
Unknownは二段階の間に開いた窓である
|
|
| /notes/the-window-is-narrower-than-it-looks.html |
未知値の周りは無検査ではない
|
|
| /notes/checking-completeness-is-time-indexed.html |
「全数検査」は検証ステップの時点で確定している値に限られる
|
|
| /notes/graph-is-the-semantic-core.html |
IaC言語の意味的本体はリソース定義と依存グラフだけである
|
|
| /notes/evaporation-condition.html |
言語機能はグラフへ消える糖衣である限りで許される
|
|
| /notes/bounded-composition-is-enough.html |
IaCが必要とする再利用は検証済みパターンのパラメータ付き合成であって任意計算ではない
|
|
| /notes/higher-order-functions-unnecessary.html |
IaCで高階関数は「あれば嬉しいが必須ではない」かもしれない
|
|
| /notes/function-values-must-not-reach-graph-shape.html |
高階関数の境界条件は「関数値がgraph形状決定位置に到達しない」ことである
|
|
| /notes/hybrid-quadrant-convergence.html |
5つのDSLが独立に「抽象化追加だけ規約寄り」へ収束した
|
|
| /notes/two-by-two-is-per-freedom.html |
ツール=1象限という前提は粗い — 象限は自由度ごとに落ちる
|
|
| /notes/predictability-has-two-sources.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>予測可能性には二つの源がある</h2>
<p>コードを読めば分かることと、moduleを使い慣れているから分かっていること。体感は同じでも、成果物に宿るか個人に宿るかで性質がまるで違う。</p>
<span class="tags"><span>#予測可能性</span> <span>#抽象化</span> <span>#設計判断</span></span>
</span>
|
|
| /notes/toctou-drift-detection-bounds-the-window-it-cannot-close.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>TOCTOUドリフト検出は窓を閉じずに、窓が動いたことだけを告げる</h2>
<p>planはロックを取らず、serialとlineageの2つだけで「誰かが書いた」ことを事後に報告する。名前が付いている段と、実際に陳腐化を食い止めている段は別である。</p>
<span class="tags"><span>#plan</span> <span>#apply</span> <span>#occ</span> <span>#toctou</span></span>
</span>
|
|
| /notes/silent-drop-is-the-worst-failure-mode.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>黙って捨てるのは、落とすことより悪い</h2>
<p>失敗の悪さは損失の大きさではなく、気付けるかどうかで決まる。溢れた内容を無言で捨てる設計が最悪なのはそのため。</p>
<span class="tags"><span>#設計原則</span> <span>#型安全</span> <span>#peitho</span></span>
</span>
|
|
| /notes/the-template-is-the-schema.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>契約を別ファイルに切り出すと必ずずれる</h2>
<p>テンプレートがスキーマを兼ねる設計。同居できない言語境界では、片方を正として生成する。狙いはどちらも同じ。</p>
<span class="tags"><span>#設計原則</span> <span>#契約</span> <span>#peitho</span></span>
</span>
|
|
| /notes/content-derived-identity-unsticks-silently.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>内容から導いた識別子は、内容を直した瞬間に静かに外れる</h2>
<p>タイトルのslugをキーにすると、誤字を直しただけで上書きが的を失う。IaCの論理IDと同じ問題の別領域での再演。</p>
<span class="tags"><span>#identity</span> <span>#リファクタリング</span> <span>#peitho</span></span>
</span>
|
|
| /notes/cascade-replaces-accumulated-state.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>出力先に重ねる層があるなら、状態を溜めずに済む</h2>
<p>純粋性は意志の問題ではない。stateは本質的な必要物ではなく、出力先が非合成的であることへの補償である。</p>
<span class="tags"><span>#state</span> <span>#設計原則</span> <span>#peitho</span></span>
</span>
|
|
| /notes/order-instead-of-observe.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>競合は観測では閉じない。順序づけでしか閉じない</h2>
<p>痕跡の不在が「やっていない」と同値でない時点で、観測は判定器になりえない。二度捕まえ損ねた実測記録。</p>
<span class="tags"><span>#並行性</span> <span>#設計原則</span> <span>#peitho</span></span>
</span>
|
|
| /notes/absolute-state-over-coalescing-channel.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>まとめられる通り道にトグルを流してはいけない</h2>
<p>差分は失うと戻らない。絶対状態を、一度ではなく毎回送ることで初めて収束する。宣言的であることの実務上の利得。</p>
<span class="tags"><span>#並行性</span> <span>#宣言的</span> <span>#peitho</span></span>
</span>
|
|
| /notes/shell-executes-ui-only-requests.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>遷移を実行する場所を一箇所に閉じ込める</h2>
<p>本体がシェルを知らないのは行儀ではなく、配布物にシェルが入っていないための必要条件である。</p>
<span class="tags"><span>#設計原則</span> <span>#アーキテクチャ</span> <span>#peitho</span></span>
</span>
|
|
| /notes/variance-is-forced-by-position.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>変性は選ぶものではなく、位置が決めるものである</h2>
<p>共変・反変・不変の三択は好みではない。型引数が出てくる位置にあるか、入っていく位置にあるかで決まってしまう。</p>
<span class="tags"><span>#型システム</span> <span>#部分型</span> <span>#型理論</span></span>
</span>
|
|
| /notes/variance-is-implicit-not-absent.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>変性は書かれていないだけで、既に決まっている</h2>
<p>List/Mapは全て共変で、Mapはキーも共変。だがそれを確定させたのは変性を決めるための検討ではなく、別目的の修正の副産物だった。</p>
<span class="tags"><span>#型システム</span> <span>#部分型</span> <span>#設計負債</span></span>
</span>
|
|
| /notes/ref-carina-issue-index.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>探索から出たissue索引</h2>
<p>これらの探索から起票された、あるいは探索中に参照されたissueの一覧。各項目に「何のissueか」と「どの概念ノートに属するか」を付す。</p>
<span class="tags"><span>#参照</span> <span>#issue</span> <span>#carina</span></span>
</span>
|
|
| /notes/abstract-to-concrete-leak.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>同値関係を方向付き判定に流用すると抽象から具体への代入が漏れる</h2>
<p>公称識別の軸ごとの包摂は、設計としては方向付きである。受け側が特定している軸は送り側も一致していなければならず、受け側が特定していない軸は問わない。ところがその判定に使われている関数は対称な同値関係として書かれている。</p>
<span class="tags"><span>#型システム</span> <span>#バグクラス</span> <span>#部分型</span></span>
</span>
|
|
| /notes/four-kinds-of-undetermined.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>「未確定」を表す表現が四つあるのは漸進的型付けの境界が引けていない徴候である</h2>
<p>目指す形は設計文書で決まっている。だが3か月弱を経て、コードは1つも動いていない。四つは四つのままである。</p>
<span class="tags"><span>#型システム</span> <span>#漸進的型付け</span> <span>#設計負債</span></span>
</span>
|
|
| /notes/unknown-reasons-are-not-one-kind.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>Unknownの理由は「誰がいつ埋めるか」の分類である</h2>
<p>10変種を解決経路で並べると三群+誤りに割れる。二段階の間の窓に当たるのは上流参照系の3つだけで、1つは時間の向きが逆である。</p>
<span class="tags"><span>#unknown</span> <span>#型システム</span> <span>#段階分離</span> <span>#carina</span></span>
</span>
|
|
| /notes/preview-does-not-run-the-callback.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>previewはapplyのコールバックを近似しない、実行しない</h2>
<p>入力が未知のとき、previewはコールバックに一歩も入らない。評価されるのは精度の落ちたプログラムではなく、長さの違うプログラムである。</p>
<span class="tags"><span>#unknown</span> <span>#plan</span> <span>#iac</span></span>
</span>
|
|
| /notes/unknown-token-output-trilemma.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>未知値の規律と段階分離は三すくみである</h2>
<p>段階を跨ぐ値(applyまで決まらない値)の扱いに、IaCツールの設計差が最も鮮明に現れる。</p>
<span class="tags"><span>#unknown</span> <span>#比較</span> <span>#iac</span></span>
</span>
|
|
| /notes/monad-is-not-a-box.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>モナドは箱ではなく合成戦略である</h2>
<p>箱の比喩はIOや関数モナドで壊れる。実態は「次に何をするか」の繋ぎ方の共通形で、文脈固有のロジックはbindの定義1箇所に入る。</p>
<span class="tags"><span>#モナド</span> <span>#構造</span> <span>#型システム</span></span>
</span>
|
|
| /notes/state-blocks-decouple-code-from-reality.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>import / removed / moved は現実を動かさずに帳簿だけを書き換える</h2>
<p>コードの整理が本番の作り直しになると、誰も整理しなくなる。stateだけを書き換える3つのブロックが、その結びつきを切っている。</p>
<span class="tags"><span>#state</span> <span>#リファクタリング</span> <span>#plan</span> <span>#iac</span></span>
</span>
|
|
| /notes/monoid-and-monad.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>モノイドとモナドを分けるのは継続を持てるかどうかである</h2>
<p>繋ぐものが値か関数か。この一点が、planを表示してレビューできるかどうかを決めている。モナドは劣った構造ではなく、強すぎる。</p>
<span class="tags"><span>#モナド</span> <span>#構造</span> <span>#plan</span></span>
</span>
|
|
| /notes/iac-processor-does-not-end-at-evaluation.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>構成データ出力DSLから貰えるのは評価段階だけである</h2>
<p>「グラフだから使えない」は言い過ぎ。貰えるのは評価段階だけで、identity・差分・state・Unknownは残り、エッジの検査は言語境界で失われる。</p>
<span class="tags"><span>#dsl</span> <span>#設計判断</span> <span>#段階分離</span></span>
</span>
|
|
| /notes/adopting-a-language-means-subtracting-from-it.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>既存言語を採用してもフル機能は使わせられない</h2>
<p>既存言語をfront endに採ると、蒸発しない機能を禁止して回ることになる。「別言語を作るのと同じ」では済まず、作った上でホスト言語の面積も抱え続ける。</p>
<span class="tags"><span>#dsl</span> <span>#設計判断</span> <span>#言語設計</span></span>
</span>
|
|
| /notes/where-the-analogy-breaks.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>類比が切れるのはターゲットが生きている場所である</h2>
<p>「planはコンパイルである」という類比が切れる場所は散らばっていない。すべて一つの原因に帰着する — ターゲットが受動的なメモリではなく、生きた外部世界であること。切れ目は三つある。</p>
<span class="tags"><span>#iac</span> <span>#コンパイラ</span> <span>#限界</span></span>
</span>
|
|
| /notes/unknown-is-the-window-between-stages.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>Unknownは二段階の間に開いた窓である</h2>
<p>静的段階では値が決まらないものがある。上流スタックのapply結果への参照、まだ作られていないリソースの属性、for展開の変数などで、Terraformの「(known after apply)」に相当する。</p>
<span class="tags"><span>#unknown</span> <span>#型システム</span> <span>#段階分離</span></span>
</span>
|
|
| /notes/two-stage-language.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>IaC言語は二段階の言語である</h2>
<p>Carinaのようなインフラ記述言語は「実行時に型を検査する動的型付き言語」ではないし、古典的な静的型付き言語でもない。静的段階と動的段階という二つの段階を持つ言語として読むのが正確である。</p>
<span class="tags"><span>#iac</span> <span>#型システム</span> <span>#段階分離</span></span>
</span>
|
|
| /notes/totality-value-depends-on-what-it-gates.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>全域性の価値は「何をゲートするか」で決まる</h2>
<p>全域性は、それ自体が普遍的に望ましい性質なのではない。静的段階が何の門番をしているかによって、その価値が変わる。</p>
<span class="tags"><span>#全域性</span> <span>#pkl</span> <span>#設計判断</span></span>
</span>
|
|
| /notes/totality-cannot-be-retrofitted.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>全域性は後付けできない</h2>
<p>静的段階の全域性は、実装を頑張れば手に入る種類の性質ではない。言語設計の選択そのものに由来するため、汎用言語に埋め込む方式を選んだ時点で原理的に取れなくなる。</p>
<span class="tags"><span>#全域性</span> <span>#言語設計</span> <span>#iac</span></span>
</span>
|
|
| /notes/plan-is-compilation.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>planはコンパイルである</h2>
<p>carina planは、ソース言語(.crn)のプログラムを、検査を通しながら中間言語(Effectのリスト + 依存DAG)へ翻訳するコンパイラである。applyはその中間言語の実行系である。</p>
<span class="tags"><span>#iac</span> <span>#コンパイラ</span> <span>#plan</span></span>
</span>
|
|
| /notes/plan-as-ir-properties.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>planはSSA的で直列化可能なIRである</h2>
<p>中間表現としてのplanは、コンパイラのIRが持つ古典的な性質をいくつも備えている。単一定義性、直列化可能性、そして「検査済みであること」の三つである。</p>
<span class="tags"><span>#plan</span> <span>#ir</span> <span>#コンパイラ</span></span>
</span>
|
|
| /notes/make-the-broken-state-unrepresentable.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>typestateで壊れた状態を書けなくする</h2>
<p>Carinaの処理系は「処理が進むと値の型が変わる」typestateパターンを系統的に使っている。狙いは一貫していて、静的段階の内部不変条件を、実装言語の型でコンパイル時に固定することである。</p>
<span class="tags"><span>#typestate</span> <span>#型安全</span> <span>#設計原則</span></span>
</span>
|
|
| /notes/general-purpose-embedding-tradeoff.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>汎用言語埋め込みとの取引は構造的に対称、価値づけは非対称</h2>
<p>汎用言語埋め込みと専用全域言語の取引は、構造としてはきれいに相補的である。</p>
<span class="tags"><span>#トレードオフ</span> <span>#設計判断</span> <span>#比較</span></span>
</span>
|
|
| /notes/evaporation-condition.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>言語機能はグラフへ消える糖衣である限りで許される</h2>
<p>IaC言語に機能を足してよいかどうかには、はっきりした判定条件がある。言語機能は、静的段階の終わりまでにグラフへ正規化されて消える糖衣である限りで許容される。以後これを蒸発条件と呼ぶ。</p>
<span class="tags"><span>#設計原則</span> <span>#蒸発条件</span> <span>#dsl</span></span>
</span>
|
|
| /notes/effects-as-free-monoid.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>効果の具体化 — planは効果の自由モノイドである</h2>
<p>静的段階の出力であるplanは、Read / Create / Update / Delete / Import / Remove / Move / Wait / DeferredCreate / DeferredReplaceの10種のEffect値の列である。</p>
<span class="tags"><span>#効果</span> <span>#代数</span> <span>#plan</span></span>
</span>
|
|
| /notes/diffing-is-instruction-selection.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>差分計算は命令選択である</h2>
<p>IaCの差分エンジンがやっていることは、コンパイラの命令選択(instruction selection)の変種として読める。命令セットは <code>Effect</code> の10種で、Replaceはその中に無い — 置換はCreate/Deleteの対へ展開される複合命令である。</p>
<span class="tags"><span>#plan</span> <span>#コンパイラ</span> <span>#差分</span></span>
</span>
|
|
| /notes/bounded-composition-is-enough.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>IaCが必要とする再利用は検証済みパターンのパラメータ付き合成であって任意計算ではない</h2>
<p>IaCが本当に必要とする再利用は、検証済みパターンのパラメータ付き合成であって、任意計算ではない。それはモジュール・for・exportsという有界な合成手段 — すべて蒸発条件を満たす — で足りる。</p>
<span class="tags"><span>#設計原則</span> <span>#再利用</span> <span>#dsl</span></span>
</span>
|
|
| /notes/stringly-typed-assignability.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>型名の文字列比較で代入可能性を決めるのは構造を捨てている</h2>
<p>代入可能性判定の最終アームは、二つの型の表示用の名前を文字列として比較するものになっている。</p>
<span class="tags"><span>#型システム</span> <span>#設計負債</span> <span>#部分型</span></span>
</span>
|
|
| /notes/ref-source-pointers.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>ソース調査ポインタ集</h2>
<p>このノートは腐る。 行番号は当時のリポジトリのスナップショットであり、対象リポジトリが更新されれば合わなくなる。</p>
<span class="tags"><span>#参照</span> <span>#ポインタ</span></span>
</span>
|
|
| /notes/open-questions.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>未解決の問い</h2>
<p>これらの探索で答えが出なかった問いの一覧。概念ノートではなく、次に調べるべきことのリストである。既に解決したものは各概念ノートに事実として書かれているのでここには含まない。</p>
<span class="tags"><span>#未解決</span> <span>#todo</span></span>
</span>
|
|
| /notes/identity-is-what-the-engine-considers-the-same-resource.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>identityは「何を同一資源と見なすか」の規則であり、stateとは独立軸である</h2>
<p>identityとは「何を同一資源と見なすか」の規則である。stateをどこに置き誰が運用責任を負うかという問い(章4の主題)とは別の独立軸であり、同じツールでも別々に設計できる。</p>
<span class="tags"><span>#identity</span> <span>#iac</span> <span>#リファクタリング</span></span>
</span>
|
|
| /notes/graph-output-vs-config-data-output.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>構成データ出力DSLとgraph出力DSLはレイヤが違う</h2>
<p>構成記述系DSLを「何を出力するか」で分けると、3自由度では捉えきれない別レイヤの差が浮上する。</p>
<span class="tags"><span>#dsl</span> <span>#分類</span> <span>#設計空間</span></span>
</span>
|
|
| /notes/escape-hatch-tradeoff.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>逃げ道の有無が表現力の上限と組織コストを交換する</h2>
<p>記述自由度の二層は、逃げ道の有無という一点でトレードオフを作る。</p>
<span class="tags"><span>#トレードオフ</span> <span>#組織</span> <span>#dsl</span></span>
</span>
|
|
| /notes/empty-quadrant-selection-pressure.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>「外部DSL × 規約に委ねる」が空席なのは淘汰圧の結果である</h2>
<p>記述言語と記述自由度の所在の2×2で、「外部DSL × 規約に委ねる」— 動的なsourceと任意関数を持つ専用DSL — に該当するツールがない。これは偶然の空白ではなく淘汰圧の結果である。</p>
<span class="tags"><span>#設計空間</span> <span>#dsl</span> <span>#淘汰圧</span></span>
</span>
|
|
| /notes/empty-quadrant-embedded-total.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>「汎用言語 × 言語が決める」の空席は偶然ではない</h2>
<p>「汎用言語 × 言語が決める」象限に該当するIaCツールは、確認できる範囲で存在しない。これは偶然ではなく、ホスト言語をサブセット化しない限り埋まらないという構造から来る。</p>
<span class="tags"><span>#設計空間</span> <span>#dsl</span> <span>#全域性</span></span>
</span>
|
|
| /notes/world-acquisition-is-the-bottleneck.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>「信頼できるworld = 全リソースの同期GET」という等式をほどく</h2>
<p>IaCのコンパイルは二引数plan(source, world)である。このうちworldの取得が遅い。</p>
<span class="tags"><span>#plan</span> <span>#性能</span> <span>#設計</span></span>
</span>
|
|
| /notes/plan-is-prediction-apply-is-truth.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>planは予測であり、真実はapplyが確立する</h2>
<p>planはロックを取らず、applyがロック下で差分を再計算する。この契約を意識的に推すと、plan時のworldの鮮度は正しさの問題ではなくUXの問題だと正当化できる。</p>
<span class="tags"><span>#plan</span> <span>#apply</span> <span>#occ</span></span>
</span>
|
|
| /notes/plan-as-a-standing-query.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>純粋性はplanを常駐クエリに変える前提条件である</h2>
<p>worldを変更イベントで維持される実体化ビューにするという構図は、データベースの増分ビュー維持(incremental view maintenance)そのものである。</p>
<span class="tags"><span>#増分計算</span> <span>#純粋性</span> <span>#plan</span></span>
</span>
|
|
| /notes/ownership-proves-you-need-not-read.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>排他所有が証明できれば読まなくてよい</h2>
<p>worldを速くする三つの攻め口のうち、最も踏み込んだものは「読まなくてよい条件を作る」である。自分しか書かないリソースについては、自分の記録が真であり、クラウドAPIを叩く必要がない。</p>
<span class="tags"><span>#所有権</span> <span>#型システム</span> <span>#分散システム</span></span>
</span>
|
|
| /notes/dirty-bit-for-the-cloud.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>クラウドのdirty bitはAPI呼び出しログではなくリソース指向の変更フィードである</h2>
<p>CPUはメモリの全走査をしない。ページテーブルのdirty bitが「変わったページ」だけを教え、キャッシュ一貫性プロトコル(MESI系)は無効化通知を受けたキャッシュ行だけを再取得する。</p>
<span class="tags"><span>#増分計算</span> <span>#aws</span> <span>#確認済み経験</span></span>
</span>
|
|
| /notes/bounded-staleness-is-what-you-can-buy.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>買えるのは「有界の古さ+変更量比例のコスト+applyでの最終検証」である</h2>
<p>world取得を速くする三つの攻め口を一つの設計に落とすと、三層になる。</p>
<span class="tags"><span>#限界</span> <span>#plan</span> <span>#分散システム</span></span>
</span>
|
|
| /notes/verify-at-the-trust-boundary.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>信頼境界を越えるデータは境界で再検証する</h2>
<p>「一度検査したのだから、あとは信用してよい」は、データが同じ信頼領域に留まっている間だけ成り立つ。</p>
<span class="tags"><span>#型システム</span> <span>#信頼境界</span> <span>#設計原則</span></span>
</span>
|
|
| /notes/value-based-checking-needs-totality.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>値ベースの全数検査は停止性の配当である</h2>
<p>Carinaの型検査は、項(構文)にラベルを付ける体系ではなく、評価済みの値がその型に属するかを判定する様式を取る。これができるのは静的段階が全域的だからで、値ベースの検査様式は停止性の配当として読める。</p>
<span class="tags"><span>#型システム</span> <span>#全域性</span> <span>#契約検査</span></span>
</span>
|
|
| /notes/untagged-union-discrimination.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>タグなし合併の判別はヒューリスティックに頼るしかない</h2>
<p>CarinaのUnion(Vec<AttributeType>)はタグなし合併(untagged union)である。「いずれかのメンバが受理すれば妥当」という集合論的合併の意味論を持つ。これには理論的な代償がある。</p>
<span class="tags"><span>#型システム</span> <span>#合併型</span> <span>#設計負債</span></span>
</span>
|
|
| /notes/type-erasure-at-plugin-boundary.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>プラグイン境界の型消去は事故クラスを予測する</h2>
<p>WASMプラグイン境界(WITプロトコル)では、型情報の一部が不可逆に消える。</p>
<span class="tags"><span>#型消去</span> <span>#プラグイン</span> <span>#バグクラス</span></span>
</span>
|
|
| /notes/type-directed-equality.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>等価判定は正規形へ簡約してから型ごとに行う</h2>
<p>差分計算の中核にあるのは、等価性が型ごとに定義される(type-directed equality)という原則である。同じ値の組でも、期待される型によって判定が変わる。</p>
<span class="tags"><span>#差分</span> <span>#等価性</span> <span>#型システム</span></span>
</span>
|
|
| /notes/type-checking-reduces-to-nodes-and-edges.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>検査対象はノード上の値とエッジ両端の型の二種に還元できる</h2>
<p>IaC言語の型検査が項ベースの型体系をほぼ必要としないのは、実装上の手抜きではなく、意味的本体がグラフだけであることの帰結である。型を付けるべき「プログラム」が実質存在しないので、検査対象はグラフそのものになる。</p>
<span class="tags"><span>#型システム</span> <span>#設計原則</span> <span>#グラフ</span></span>
</span>
|
|
| /notes/two-type-languages-asymmetry.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>型注釈の言語とスキーマ型は別の言語である</h2>
<p>Carinaには型を表す言語が二つある。ユーザーが書く型注釈の言語(TypeExpr)と、プロバイダのスキーマが表すスキーマ型(AttributeType)である。</p>
<span class="tags"><span>#型システム</span> <span>#設計負債</span> <span>#非対称</span></span>
</span>
|
|
| /notes/two-axis-config-language-genealogy.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>「専用言語か」と「全域か」は独立した二軸である</h2>
<p>設定記述言語の系譜は「汎用言語に埋め込むか、専用言語を作るか」の一本の線ではない。「専用言語かどうか」と「全域的かどうか」は独立した選択であり、その二軸が張る空間として見た方が正確である。</p>
<span class="tags"><span>#dsl</span> <span>#系譜</span> <span>#設計空間</span></span>
</span>
|
|
| /notes/the-window-is-narrower-than-it-looks.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>未知値の周りは無検査ではない</h2>
<p>Unknownの素通しは「未解決の値の周りは無検査」という意味ではない。値が無くても宣言型どうしを照合する別経路の検査が走るため、静的近似が本当に確定できない窓は見かけより狭い。</p>
<span class="tags"><span>#unknown</span> <span>#型システム</span> <span>#検査</span></span>
</span>
|
|
| /notes/static-stage-totality.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>静的段階の全域性は構文制限だけでは得られない</h2>
<p>「静的段階の評価が必ず停止する」という性質は、一般再帰を禁じてループを有限に限るだけでは出てこない。構文制限と参照グラフの非循環性強制という二本の柱で初めて成り立つ。</p>
<span class="tags"><span>#全域性</span> <span>#dsl</span> <span>#型システム</span></span>
</span>
|
|
| /notes/single-definition-checker.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>検査器が二系統あるのは設計負債である</h2>
<p>静的検査器が二系統ある — plan/validate経路とLSP経路 — というのは、機能の重複ではなく理論的な負債である。同じ検査の二重実装であり、意味論の一致(パリティ)を規約と試験で維持している。</p>
<span class="tags"><span>#設計負債</span> <span>#lsp</span> <span>#コンパイラ</span></span>
</span>
|
|
| /notes/semantic-typing.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>型は値の分類器である(意味論的型付け)</h2>
<p>Carinaの型付けの様式は、型を「項に付く構文的な札」ではなく「値の集合(値の分類器)」とみなし、型付けを所属判定として与える意味論的型付け(semantic typing)の系譜である。</p>
<span class="tags"><span>#型システム</span> <span>#型理論</span> <span>#cue</span></span>
</span>
|
|
| /notes/relocation-without-verification.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>再配置後に検証がないのは型検査済みIRの不変条件の破壊である</h2>
<p>「well-typedなIRだけがバックエンドに渡る」というのがコンパイラの標準的な契約である。しかしapplyの再配置はIRに新しい値を書き込む。</p>
<span class="tags"><span>#バグクラス</span> <span>#型システム</span> <span>#apply</span></span>
</span>
|
|
| /notes/refinement-types-as-constrained-base.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>カスタム型は独立の構成子ではなく篩型である</h2>
<p>Carinaに「カスタム型」という独立した型構成子はない。代わりにString / Int / Floatの各変種が制約を持ち運ぶ。</p>
<span class="tags"><span>#型システム</span> <span>#篩型</span> <span>#型理論</span></span>
</span>
|
|
| /notes/provenance-should-be-a-type.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>属性の出所は型に昇格させるべきモダリティである</h2>
<p>「この属性は誰が書くのか」— ユーザー指定か、プロバイダ算出か、サーバ既定か — という区別が、Carinaでは型に乗っていない。フラグと投影で表現されている。これが理論的な負債になっている。</p>
<span class="tags"><span>#型システム</span> <span>#差分</span> <span>#設計方向</span></span>
</span>
|
|
| /notes/optimistic-check-conservative-equality.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>検査は素通し、等価性は不成立 — Unknownの一貫した保守性</h2>
<p>Unknownの扱いは、検査では楽観的に、等価性では悲観的に振る舞う。方向が逆に見えるが、どちらも「インフラを壊さない側」に倒すという一つの原則の現れである。</p>
<span class="tags"><span>#unknown</span> <span>#健全性</span> <span>#差分</span></span>
</span>
|
|
| /notes/nominal-axis-subtyping.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>公称軸ごとの幅部分型付けが再利用と混同防止を両立する</h2>
<p>列挙やカスタム文字列型にはTypeIdentity { provider, segments, kind }という公称的な識別が付く(providerは省略可能)。</p>
<span class="tags"><span>#型システム</span> <span>#部分型</span> <span>#公称型</span></span>
</span>
|
|
| /notes/named-mu-types-iso-recursive.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>循環スキーマは名前付きμ型で明示展開する</h2>
<p>CloudFormationのWAFv2 Statement → AndStatement → List<Statement> のような循環スキーマを表すため、スキーマは</p>
<span class="tags"><span>#型システム</span> <span>#再帰型</span> <span>#型理論</span></span>
</span>
|
|
| /notes/monoid-artifact-vs-monad-artifact.html |
<span class="rule" aria-hidden="true"></span>
<span class="body">
<h2>デプロイ計画がモノイドかモナドかで見通しが決まる</h2>
<p>未知値をめぐる三すくみは、構造の言葉で言い直せる。鍵になる区別は、デプロイ計画が「平らな宣言の集まり」か「継続のつながり」かである。</p>
<span class="tags"><span>#モナド</span> <span>#構造</span> <span>#plan</span></span>
</span>
|
|
Внешние ссылки
Не найдено
Ссылки на сторонние сайты
?
Исходящие внешние ссылки передают часть ссылочного веса на чужие сайты. Ссылки на авторитетные ресурсы безопасны; ссылки на мусорные сайты могут навредить репутации страницы.
Внешних ссылок на странице не найдено.
Конкуренты Готовность: 0%
Конкуренты в Яндексе
Кол-во: 0
Топ сайтов-конкурентов в Яндексе
?
Сайты, чаще всего появляющиеся в ТОПе Яндекса по запросам из семантического ядра этой страницы.
Мы не нашли у вас конкурентов в Яндексе. Сайт или очень молодой или плохо продвигается.
Конкурентов в ТОП-10 Яндекса не нашлось.
Конкуренты в Google
Кол-во: 0
Топ сайтов-конкурентов в Google
?
Сайты, чаще всего появляющиеся в ТОПе Google по запросам из семантического ядра этой страницы.
Конкуренты в Google тоже не найдены. Займитесь продвижением сайта!
Конкурентов в ТОП-10 Google не нашлось.
ЗоЗПП: права потребителей Готовность: 100%
Нарушения
Не выявлены
Признаков дистанционной продажи товаров (интернет-магазина) не обнаружено — требования ЗоЗПП о раскрытии информации продавца к сайту не применяются. Нарушений нет.
ФЗ-149: рекомендательные технологии Готовность: 100%
Нарушения
Не выявлены
Рекомендательные блоки («с этим покупают», «похожие товары» и т.п.) на сайте не обнаружены — требования ст. 10.7 ФЗ-149 к сайту не применяются. Нарушений нет.
ФЗ-38: реклама Готовность: 100%
Нарушения
Не выявлены
Рекламных тематик с обязательными оговорками (медицина, БАД, кредиты и займы, новостройки) на сайте не обнаружено. Нарушений нет.
ФЗ-436: защита детей Готовность: 100%
Нарушения
Не выявлены
Признаков информационной продукции (новости, видео, книги, игры, курсы) не обнаружено — обязательная возрастная маркировка по ФЗ-436 сайту не требуется. Нарушений нет.
Вердикт
Страница https://mizzy.org/notes/ готова к продвижению на 63%. Чтобы еще улучшить страницу и попасть на первые места поисковой выдачи необходимо:
Исправьте ошибки в мета-тегах.
Исправьте ошибки оптимизации.
Исправьте ошибки индексации.
Поделитесь с друзьями: