DenoX CLI: Стварэнне проектаў і функцый без адчування пакутнай неконтрольнасці
Установіце DenoX CLI, створыце шаблоны прыкладоў, сгенераваце функцыі на адной з модэлей MVC за дапамою OpenAPI, безпечна адключыце модулі і апдаціруйце файлы, якія належаюць фрэймворку, не чынячы змян у коде прыклада.
Адзін з галоўных цялей DenoX — скасаваць павтаральную роботу пад час разработкі, не пазбавляючы інжынераў контролю. Шаблон выдае свой сабэйсны CLI у вачынку адного файла TypeScript, які можа ствараць проекты, генераваць всі неабходныя функцыі, безпечна адключаць модулі та апгрэйдаваць сам шаблон.
У працоўнасці з адміністрацыяй DenoX CLI, на вядома адзіну частку, паслужаюць власныя можлівасці Deno, на адзінаку ад багато сучасных CLIs, які выкарыстоўваюць дзесяткі пакетаў.
Інсталляцыя
Інсталюйце за адным камандам:
deno install -grA -n denox https://raw.githubusercontent.com/olavomello/denox/main/cli/main.ts
Альбо запускайце яго без інсталляцыі:
deno run -A https://raw.githubusercontent.com/olavomello/denox/main/cli/main.ts new my-shop
CLI — это самодостатні файл: няма зовнішняй залежнасці і няма імпортаў з самага шаблону.
Стварэнне проекта
Створэнне новага прыкладу аплікацыі — за адной камандай:
denox new my-shop
Скрафтінг — гэта не проста ягоўка шаблона на дыск. Ён запускае офіцыйны стартэр, адмахвае історыю змян у Git гэтага стартэра, стварае чысты репазітарый, вяртае значэнне поля версіі на 0.1.0, ачышчае лог змян, перапісвае файл README пад новую назву і відпаведна правяе файл denox.config.ts.
Рэзультат готавы да розрабоцы і вже праходзіць перакананні deno task ci проекта без неабяжной ручнай чысткі.
Работаюць таксама спецыяльныя шаблоны:
denox new my-app --template=<repository>
Стварэнне цэлага фічырскага модуля
Сярод найсильнейшых можаўкаў CLI — стварэнне цэлага фічырскага модуля на адной командзе.
denox g feature reviews
У зяместо пустых месцаў для заполнення, пры гэнераванні выдаецца цэлы фрагмент API у формате MVC: модель і DTO, інтэрфейс репазітарыя плюс рэалізацыі ў памяці та Deno KV, сервіс, кантролер, маршруты, апісацыя OpenAPI, якая знаходзится праз адны файл з кодам, і шаблон тэста на інтеграцыю.
Рэгістрацыя ў src/api/main.ts адбываецца автаматычна, таму да гэтай функцыі можна з’явіцца без дадатковых налаштаванняў.
OpenAPI ўбудована
Każна створаная функцыя мае свою апісацыю OpenAPI.
Паследкі:
- Дакументацыя знаходзится праз адны файл з рэалізацыяй
- Тэсты на парнасць маршрутаў продовжаюць праходзіць
- Пры запуску:
deno task insomnia
автаматычна гэнеруе колекцыю Insomnia.
Няма неабходнасці вручную падтрымваць окремую дакументацыю API.
Безпечнае гэнераванне коду
CLI застаецца абераглівым пад час змены існуючага коду.
Калі знак // denox:features не існуець або зменены, адказвальны прыстрык адмовяецца ствараць тачку вставкі.
Ён усё раве запішае новыя файлы з функцыйямі, выведзе точныя рэядкі, якія трэба вставіць вручную, і не чапаецца за жадным існуючым файлам з кодам.
Неправільныя назвы або дублікаты ідэнтыфікатораў функцыйяў зупіняюць каманду перад тым, як будзе здарыцца змена структуры.
Адключэнне функцыйі
Зворачная операцыя мае такое ж значэнне, як і стварэнне.
denox rm feature reviews
Адключэнне праглядаеся так, каб утримаць проекты цэлымі.
CLI спачатку адключае ўсія звязкі рутэраў з данай функцыйяй.
Лішынь пасля таго, калі прыстрык абсолютна ад’юнкураваны, файлы выкарыстоўваюцца.
Нават якщо процес зупініцца на паўпацёку, у проекте ніколі не застануцца імпорты, якія вядуць да відсутняых файлаў.
Пасля завершэння src/api/main.ts падпараджаецца стану да стварэння: няма самотных імпортаў і няма зайвых порожніх рэядкаў.
Перад пераглядам выкорыстоўваюцца:
denox rm feature reviews --dry-run
Кансольныя модулі застаюцца заблокаванымі. Спробы выдаліць вбудованыя элементы — такія як аутэнтыкацыя, корыстуначы, тавары, платежы, медычныя даны і кантакты — адхіляюцца.
Апдэйт фреймворку
Ўтримайце проекты у актуальным стане за дапамою:
denox upgrade
Апдэйты не перазапішуць усю структуру. Зменяюцься толькі шляхі, якія належаюць фреймворку.
Этыя шляхі чытальна пераказаны ў файле .denox-core.json.
Усё, што знаходзіцца за межамі гэтага файла, застаецца недастрымленым, укладаючы:
- Створаныя функцыі
- Канфігурацыя проекта
- Файлы сераўнавання
- Код, спецыфічны для прыемлівача
Дадатковыя режымы апдэйту:
denox upgrade --dry-run
denox upgrade --interactive
denox upgrade --ref=v1.2.0
Перад апдэйтом інструментарый лінія команд пераканальваецца, чы не є брудным рабочы лес Git. Незадафіксаваныя змены спакоюўваюць процэс, якщо толькі не будзе зроблена прымусовая дзейнасць, чым утрамаджваецца запобежэнне випадковай втраты дакументацыі.
Стварэнне сторанак
CLI таксама падтрымлівае маршрутызаванне на адварыс файлах у фрэймворку.
denox g page docs/faq
альбо
denox g page items/[id]
Пасля стварэння сторанкі таблыца маршрутаў автаматычна перагенеруецца.
Філасофія DenoX CLI
CLI адпаваюць фрэймворку: прынцып «звычай працоўвае лепш за настройкі», але без адказвання за контроль.
Этыя прынцыпы выражаюцца ў конкрэтных правілах: існуючыя файлы не чынюцца зменамі, рукамі адредагаваныя кантэнты не перапісуюцца, разрушальныя каманды падтрымліваюць параметр --dry-run, модулі, якія належаць фрэймворку, не можна проста адмахнуцца, OpenAPI застаецца супакоўаным з маршрутамі, а файлы фрэймворку застаюцца окремымі ад коду прыемлівача.
Усе гэта дае маленькі, прыемлівы CLI: менш шаблонаў, без закрыцьця таго, што зменілася.