Рэпазіторый
у лічбах
Падлічана ў галоўнай галіне. Радкі тут азначаюць непустыя радкі зыходнага коду, без lock-файлаў, вынікаў зборкі і скапіяванага старонняга коду.
праектаў
моў праграмавання
камітаў
файлаў пад кантролем версій
радкоў коду
Трыццаць праектаў,
пяць каталогаў
Кожны каталог мае адно прызначэнне, і праект ляжыць у тым, назва якога кажа, што ён такое.
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
унутраных праектаў, не паказаных тут
На чым
гэта напісана
Радкі коду па мовах ва ўсім рэпазіторыі.
| Мова | Радкі коду |
|---|---|
| 372 597 | |
| 75 395 | |
| 65 277 | |
| 44 834 | |
| 44 535 | |
| 24 050 | |
| 23 939 | |
| 21 831 | |
| 11 234 | |
| 17 952, C++, SQL, Dart, Swift |
У графаняма рэбраў
Nx бачыць трыццаць праектаў і ніводнай залежнасці паміж імі. Такі вымераны стан, і мы яго захоўваем: ніводны прадукт не імпартуе код з іншага прадукту.
Пакіньце граф незвязаным. Не стварайце штучных рэбраў, каб ён выглядаў як монарэпазіторый.
Адзіная сапраўдная сувязь ідзе праз пратакол
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 запускае тыя самыя скрыпты, што і вы на сваёй машыне, і толькі для праектаў, якія закранула змена.
Пошук сакрэтаў
gitleaks правярае ўсю гісторыю пасля кантрольнага тэсту, які даказвае, што ён знаходзіць падкінуты ключ.
gitleaks git .Інструменты
mise усталёўвае дакладна тыя версіі, што зафіксаваны ў mise.toml.
mise installМежы
pnpm check спачатку падкідвае заведама дрэнную залежнасць, таму чысты вынік азначае, што правілы сапраўды спрацавалі.
pnpm checkЗакранутыя праекты
Nx вызначае, якія праекты закранае змена.
nx show projects --affectedУстаноўка
Залежнасці ўсталёўваюць толькі закранутыя праекты.
pnpm install:affectedПраверка
Лінтынг, праверка тыпаў, тэсты і зборка, па тры праекты адначасова.
pnpm affected --parallel=3
Хочаце працавацьу ім?
Цяпер адкрытых вакансій няма, але ініцыятыўныя заяўкі мы чытаем. Напішыце, над якім прадуктам вы хочаце працаваць.