DenoX CLI: Стварэнне праектаў і функцый без адчування пакутнай неконтрольнасці
Установіце DenoX CLI, створыце шаблоны прыкладоў, сгенераваце функцыі на адной з модэлей MVC за дапамою OpenAPI, безпечна адключыце модулі і апдаціруйце файлы, якія належаюць фрэймворку, не чынячы змян у кодзе прыклада.
Крыніцы: DenoX CLI: Productivity without sacrificing conventions
Адзін з галоўных цялей 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: менш шаблонаў, без закрыцьця таго, што зменілася.