ІнжынерыяУсё, што мы будуем, у адным рэпазіторыі.

Усе прадукты, сайты, бібліятэкі і ўтыліты NoirSystems жывуць у адным монарэпазіторыі: адзін клон, адзін набор інструментаў, адзін CI. Гэтая старонка і ёсць той рэпазіторый, вымераны ў лічбах.

Рэпазіторый
у лічбах

Падлічана ў галоўнай галіне. Радкі тут азначаюць непустыя радкі зыходнага коду, без lock-файлаў, вынікаў зборкі і скапіяванага старонняга коду.

0

праектаў

0

моў праграмавання

0

камітаў

0

файлаў пад кантролем версій

0+

радкоў коду

Трыццаць праектаў,
пяць каталогаў

Кожны каталог мае адно прызначэнне, і праект ляжыць у тым, назва якога кажа, што ён такое.

 

  • flokzy

    products/flokzy

    • TypeScript
    • Kotlin
  • sunflow

    products/sunflow

    • Go
    • TypeScript
  • crypto-ide

    products/crypto-ide

    • TypeScript
  • lavender

    products/lavender

    • Rust
    • TypeScript
  • kvbnews

    products/kvbnews

    • Go
    • TypeScript
    • Python
  • drukko

    products/drukko

    • TypeScript
  • noir-app

    products/noir-app

    • TypeScript
  • noirwallet

    products/noirwallet

    • TypeScript
  • pikajuoksu

    products/pikajuoksu

    • TypeScript
  • pikajuoksu-server

    products/pikajuoksu-server

    • TypeScript
  • levonne

    products/levonne

    • Go
    • Dart
  • foldtools

    products/foldtools

    • Kotlin
    • Swift
  • noir-bots

    products/noir-bots

    • Python
  • flokzyweb

    products/flokzyweb

    • TypeScript
  • etat

    products/etat

    • Java
    • Python
  • bookdiscord

    products/bookdiscord

    • JavaScript
  • noirsystems-site

    web/noirsystems-site

    • TypeScript
  • noir-bzh

    web/noir-bzh

    • TypeScript
  • redstone-site

    web/redstone-site

    • TypeScript
  • xandra-css

    libs/xandra-css

    • CSS
    • JavaScript
  • pikajuoksu-core

    libs/pikajuoksu-core

    • TypeScript
  • gitcom

    tools/gitcom

    • Python
  • gity

    tools/gity

    • JavaScript
  • migration

    tools/migration

    • Shell
    • Python
  • gopolars

    research/gopolars

    • Go
  • +5

    унутраных праектаў, не паказаных тут

На чым
гэта напісана

Радкі коду па мовах ва ўсім рэпазіторыі.

Радкі коду па мовах ва ўсім рэпазіторыі.
МоваРадкі коду
TypeScript
372 597
Kotlin
75 395
Go
65 277
Python
44 834
Rust
44 535
Java
24 050
JavaScript
23 939
CSS
21 831
Shell
11 234
Іншыя
17 952, C++, SQL, Dart, Swift

У графаняма рэбраў

Nx бачыць трыццаць праектаў і ніводнай залежнасці паміж імі. Такі вымераны стан, і мы яго захоўваем: ніводны прадукт не імпартуе код з іншага прадукту.

Пакіньце граф незвязаным. Не стварайце штучных рэбраў, каб ён выглядаў як монарэпазіторый.

ADR-0002, прынята 20 верасня 2026 года

Адзіная сапраўдная сувязь ідзе праз пратакол

Sunflow звяртаецца да Flokzy па HTTP, праз версіяваны пратакол, тэставую фікстуру і чаргу дастаўкі. Калі дзве праграмы абменьваюцца данымі праз сетку, гэта не імпарт, таму граф слушна не паказвае такую сувязь.

Што дае адзін рэпазіторый

  • Адзін клон
  • Адна наладка інструментаў
  • Адзін CI
  • Адно месца для пошуку

Чатыры правілы,
на якіх усё трымаецца

  • Ніводзін прадукт не імпартуе іншы

    Прадукт можа карыстацца libs/ і ўласным кодам. Паміж сабой прадукты ўзаемадзейнічаюць праз API, кантракт падзей або згенераваны кліент.

  • libs/ трэба заслужыць

    Код пераязджае ў libs/, калі ім ужо карыстаецца другі прадукт з іншай вобласці. Агульнай звалкі для коду тут няма.

  • Кожны праект сам адказвае за сваю ўстаноўку

    У кожнага праекта свой менеджар пакетаў і свой lock-файл. У корані ўсталёўваецца Nx і больш нічога.

  • Сакрэты не трапляюць у рэпазіторый

    Файлы асяроддзя, ключы і сховішчы ключоў git ігнаруе, а пры кожным push уся гісторыя правяраецца на ўцечкі.

Сем каманд
на трыццаць праектаў

Назвы задач аднолькавыя ва ўсіх праектах, што б ні працавала пад імі: Gradle, Go, pnpm, Maven ці pytest.

Аднолькавыя мэты ўсюды

  • build
  • test
  • lint
  • typecheck
  • format
  • dev
  • e2e
  • integration-test
  • package
  • deploy
  • pnpm bootstrap# інструменты, устаноўка, git-хукі, праверка стану
  • pnpm env:check# што не так з гэтай машынай і як гэта выправіць
  • pnpm projects# што ёсць
  • pnpm graph# як усё звязана
  • pnpm affected# лінтынг, праверка тыпаў, тэсты і зборка, толькі для змененага
  • pnpm check# межы залежнасцей і кантракт структуры
  • npx nx run <project>:<target># адзін праект, адна задача

Адзін канвеер
для кожнага push

CI запускае тыя самыя скрыпты, што і вы на сваёй машыне, і толькі для праектаў, якія закранула змена.

  1. Пошук сакрэтаў

    gitleaks правярае ўсю гісторыю пасля кантрольнага тэсту, які даказвае, што ён знаходзіць падкінуты ключ.

    gitleaks git .
  2. Інструменты

    mise усталёўвае дакладна тыя версіі, што зафіксаваны ў mise.toml.

    mise install
  3. Межы

    pnpm check спачатку падкідвае заведама дрэнную залежнасць, таму чысты вынік азначае, што правілы сапраўды спрацавалі.

    pnpm check
  4. Закранутыя праекты

    Nx вызначае, якія праекты закранае змена.

    nx show projects --affected
  5. Устаноўка

    Залежнасці ўсталёўваюць толькі закранутыя праекты.

    pnpm install:affected
  6. Праверка

    Лінтынг, праверка тыпаў, тэсты і зборка, па тры праекты адначасова.

    pnpm affected --parallel=3

Хочаце працавацьу ім?

Цяпер адкрытых вакансій няма, але ініцыятыўныя заяўкі мы чытаем. Напішыце, над якім прадуктам вы хочаце працаваць.