Hacker News

HN күрсәт: Rev-dep - Goда 20x тизрәк knip.dev альтернатив төзү

Аңлатмалар

2 min read Via github.com

Mewayz Team

Editorial Team

Hacker News

Everyәр үсә торган программа командасына яшерен салым

Озак яшәгән һәрбер программа проекты ахыр чиктә шул ук тыныч кризис белән очраша: код базасы команда аңлаганнан тизрәк үсә башлый. Функцияләр беркем дә шалтыратмый, 2022-нче елда җибәрелгән һәм тыныч кына искергән функция өчен ясалган экспорт, дискта яшәгән, ләкин беркайчан да браузерга кермәгән компонентлар. Бу тайгаклык түгел - бу физика. Командалар тиз хәрәкәт итәләр, таләпләр үзгәрәләр, антропия туктаусыз. Сорау сезнең код базасында үлгән код бармы-юкмы. Сорау - хәзерге вакытта сезгә күпме тора.

Google инженерлык җитештерүчәнлеге коллективы тикшеренүләре буенча, уйлап табучылар уртача кодлаштыру вакытының 42% яңа функция язу урынына булган кодны уку һәм аңлау белән үткәрәләр. Бу булган код меңләгән сызыкны үз эченә алгач, алар бернинди максатка хезмәт итмиләр, бу процент тагын да югарырак. Ун инженер командасы өчен, бу дүрт тулы көндезге эшче уңышлы эшләми - ялкау булганга түгел, ә кораллары программа яше тизлегенә туры килмәгәнгә.

Шуңа күрә Go һәм Рөстәм кебек система телләренә корылган яңа коралландыру дулкыны инженерлык түгәрәкләрендә чын дулкынлану тудыра. Rev-dep кебек кораллар - популяр JavaScript нигезендә knip.dev белән чагыштырганда, 20х тизрәк эшләргә дәгъва итүче кире бәйләнеш анализаторы - арту яхшырту гына түгел. Алар үсеш процессын үзебез ничек кораллавыбыз турында төптән уйлануны сигнал итәләр.

Кире бәйләнеш анализы нәрсә эшли

Тизлекнең ни өчен шулкадәр мөһимлеген аңлар алдыннан, бу бәйләнеш анализы коралларының нәрсә эшләгәнен аңларга ярдәм итә. JavaScript яки TypeScript проектында һәр файл бүтән файллардан импортлана. Модульдән экспортланган һәр функция, класс яки даими потенциаль бәйләнеш тудыра - код базасының бүтән өлешләренә таянырга мөмкин. "Кире" бәйләнеш анализы бу перспективаны юнәлтә: "бу модуль нәрсәгә бәйле" дип сорау урынына "бу модульгә нәрсә бәйле?"

Әгәр бу икенче сорауга җавап "бернәрсә" булмаса, сез үлгән кодны таптыгыз. Импорт булмаган әйбер экспорт. Бернәрсә дә чакырмый торган функция - айлык процент ставкасы булган техник бурыч. Кире бәйләнеш кораллары сезнең проект графигыгызны системалы рәвештә йөртәләр, модульләр арасындагы бәйләнешне картага кертәләр, керү бәйләнешләре булмаган төеннәрне өскә куялар. Нәтиҗә - сезнең код базасында куркынычсыз бетерелергә мөмкин булган бар нәрсәнең төгәл аудиты.

Knip.dev моны JavaScript һәм TypeScript проектлары өчен яхшы эшли, һәм ул җәмгыятьтә киң хөрмәт ителә. Ләкин ул JavaScript белән язылган, димәк, ул Node.js'та эшли, димәк, ул зур масштаблы файл системасы траверсаль һәм символ анализы ясаганда Node'ның бер җепле эш чикләүләрен мирас итеп ала. 500 файллы проект өчен бу әйбәт. 50,000 файллы проект өчен - SaaS продуктларын реаль предприятиягә бирүче монорепо төре - анализ берничә минут дәвам итә ала. Minutesәм минутлар, заманча CI / CD торбалары эшли, килешү бозучы.

Нигә бару исәпләүне үзгәртә

Бару бәйләнеш анализы таләп итә торган эш төре өчен җирдән ясалган: тиз I / O файл, искиткеч туры килү примитивлары, һәм минималь эш вакыты. Кайда Node.js бер эшне бер җептә эшкәртә һәм кире шалтыратуларга таяна һәм ялган параллелизмга вәгъдә бирә, Go барлык үзәк эшкәрткеч җайланмалар үзәкләре буенча параллель рәвештә чынлап башкарылган меңләгән горутиннарны чыгарырга мөмкин. Йөзләгән файлларны уку, аларның АСТларын анализлау һәм символ мөнәсәбәтләре графигын төзүне үз эченә алган бирем өчен бу архитектура аермасы турыдан-туры стена сәгатенә тәрҗемә ителә.

Rev-dep таләп иткән 20х тизлек тылсым түгел - дөрес телне дөрес проблемага туры китергәндә нәрсә була. Go-ның тупланган табигате шулай ук ​​JIT җылыту штрафы юк дигәнне аңлата. Салкын баштан тулы анализга кадәр, Go бинар иң югары күрсәткечтә эшли. Практик нәтиҗә шунда: төенгә нигезләнгән коралда 90 секунд вакыт алган анализ 5 секунд эчендә яхшы тормышка ашырылган Go эквивалентында тәмамлана ала. Бу, эшкәртүчеләр сикереп торган чек арасындагы аерма, чөнки ул "мәңгегә кирәк" һәм һәрбер эшне башкаручы, беркем дә сизми торып.

"Иң яхшы уйлап табучы коралы - бу юлдан чыга торган корал. Әгәр сезнең анализ комплекты һәр CI торбасына өч минут өстәсә, уйлап табучылар аны үткәрү юлларын табарлар. Тизлек әйбәт түгел - бу кабул итүнең шарты."

Codebase гигиена өчен бизнес очраклары

Deadле код ясаучы эстетика проблемасы гына түгел - аның конкрет бизнес нәтиҗәләре бар, вакыт узу белән. Оешкан код базаларының оешмаларга нинди бәя биргәнен карагыз:

  • Озынрак төзү вакыты урнаштыру торбаларын әкренләтә һәм команда атнага куркынычсыз җибәрә ала торган чыгарылышлар санын киметә
  • борттагы инженерлар өчен югары танып белү йөге , алар актив үрнәкләрне ташландыклардан аерып берничә атна үткәрергә тиеш
  • Кушымталарның зурлыгын арттыру кушымталарның эшенә зыян китерә, аеруча веб-кушымталарда, һәр килобайт йөкләү вакытына һәм конверсия темпларына тәэсир итә
  • Куркынычсызлык өслеген киңәйтү - бәйләнешне үз эченә алган үлгән код әле дә шул пакетлардагы зәгыйфьлекләр өчен вектор булып тора
  • Тест сюитасы блот , анда бетерелгән функцияләр өчен сынаулар дәвам итә, CI минутларын куллана, һәм кайвакыт буталчык юлларда уңышсыз була
  • Ялган катлаулылык сигналлары архитектура карарларын катлауландыра, чөнки нинди йөкле һәм вестигаль нәрсә аңлашылмый

DevOps тикшеренүләр һәм бәяләү (DORA) төркеме тарафыннан 2023-нче елда үткәрелгән тикшеренүдә ачыкланганча, кодның сыйфатлы практикасы булган командалар - регуляр рәвештә үлгән кодны бетерүне дә кертеп, 2.4х ешрак җибәрелә һәм техник бурычлар тупларга рөхсәт иткән командаларга караганда 7х түбән үзгәрү ставкалары булган. Корреляция очраклы түгел. Чиста код базалары турында уйлау җиңелрәк, сынау җиңелрәк, куркынычсыз үзгәрү җиңелрәк.

Мевайз кебек платформаларда эшләүче бизнес өчен - бу CRM, хезмәт хакы, флот белән идарә итү һәм био-коралларга кадәр булган 207 төрле бизнес-модуль буенча 138,000 кулланучыга көч бирә - код базасы сәламәтлеге күп тапкырлар артты. Сезнең платформа күп функциональ доменнарны үз эченә алганда, модульләр арасындагы интеграция өслеге бик зур. Төп модульдә кулланылмаган экспорт бәйләнешле модульләр өчен ялган өметләр тудырырга, UI катламында кирәксез ре-рендерларны җибәрергә һәм киләчәк үзгәрешләрне куркыныч астына куярга бәйле бәйләнеш графигын катлауландырырга мөмкин.

Бәйләнеш анализын хәзерге үсеш эш процессына интеграцияләү

Rev-dep кебек тиз кораллануның реаль көче ул бер тапкыр чистарту түгел - бу сезнең гадәти үсеш циклы кысаларында өзлексез анализ ясау мөмкинлеге. Codeле кодны сканерлау 4 минут урынына 4 секунд алса, сез аны алдан ук калькаларга өсти аласыз. 4 минут урынына 4 секунд кирәк булганда, сезнең CI үткәргечегез тавышсыз җыелырга рөхсәт итмичә, яңа кулланылмаган экспортны кертә торган тарту соравын үти ала.

💡 DID YOU KNOW?

Mewayz replaces 8+ business tools in one platform

CRM · Invoicing · HR · Projects · Booking · eCommerce · POS · Analytics. Free forever plan available.

Start Free →

"квартал чистарту вакыйгасы" ннан "өзлексез сыйфатлы капкага" күчү бу линейкалар IDE-ның һәр баскычында тиз йөгереп киткәндә булганга охшаш. ESLint реаль вакытта эшләгәнче, код стиле периодик код карау белән кулланыла иде. Аннан соң, ул әйләнә-тирәгә әйләнде - код язу вакытында кичергән кире әйләнеш ясаучыларның бер өлеше, соңыннан түгел. Тиз бәйләнеш анализы үлгән код тирәсендә шул ук тирәлектәге сыйфат басымын ясарга мөмкин.

Бу эш процессын көйләү гадәттә өч компонентны үз эченә ала:

  1. Төп анализ : булган үлгән кодның масштабын аңлар өчен, коралны хәзерге код базасына каршы эшләгез. Барысын да берьюлы төзәтергә тырышмагыз - модуль буенча триаг һәм риск буенча өстенлек бирегез.
  2. CI үтәү : анализны сезнең торбагызга бусага белән өстәгез - яңа кертелгән экспортта уңышсыз булыгыз, ләкин аларны чистартканчы булганнарыгызда уңышсыз калмагыз.
  3. Планлаштырылган чистарту спринтлары : Коралның чыгышын регуляр чистарту эшенә юл күрсәтегез, вакыт узу белән коллективның сәламәтлек үлчәве буларак үлгән код санын күзәтегез.

SaaS Төзүчеләре өчен Яңарыш Яңарыш Сигналлары

Rev-dep - эшкәртүче кораллауда киңрәк үрнәкнең бер өлеше: Go яки Рөстәмдә төзелгән JavaScript коралларына югары җитештерүчән альтернативалар һәр категориядә пәйда була. Биом күп командалар өчен ESLint һәм Prettier алыштырды. Turbopack һәм Rspack Веб-пакетның төшке ашын ашыйлар. Bun Node.js үзенә каршы. Гомуми җеп - бу кораллар артуны яхшырту гына тәкъдим итми - алар практиканы үзгәртә торган адым-функция яхшырту тәкъдим итә.

Катлаулы, күп модульле продуктлар төзүче SaaS компанияләре өчен бу коралландыру яңарышы инженерлык тизлегенә турыдан-туры тәэсир итә. Mewayz-ның 207-модуль архитектурасы - кадрлар һәм хезмәт хакыннан бронь системалары һәм аналитика такталарына кадәр булган бар нәрсәне үз эченә ала - тиз, төгәл бәйләнеш анализы оператив критик булган зур, үзара бәйләнгән код базасын күрсәтә. Уртак коммуналь модульгә үзгәрешләр теоретик яктан дистәләгән функция модуллары аша үтеп китә алса, бәйләнеш графигына тиз арада күренү уңайлы түгел - бу кыйммәтле җитештерү вакыйгаларын булдырмый торган инфраструктура төре.

"Бу функцияне нәрсә куллана" биш минут эчендә түгел, биш секунд эчендә җавап бирү сәләте инженерларның карар кабул итүен үзгәртә. Бу тикшерү бәясен киметә, димәк, инженерлар ешрак тикшерәләр, димәк, алар яхшырак карарлар кабул итәләр. Бу тиз коралландыруга инвестицияләр кертүдән арткан табыш, оешмалар җитештерүчәнлек чыгымнары турында уйлаганда еш игътибарсыз калалар.

Сезнең инженерлык культурасының үлгән кодын бетерү өлеше ясау

Технология генә чиста код базаларын төзми - культура. Rev-dep кебек кораллар мөмкинлек бирә, ләкин бу сәләтне эзлекле практикага әйләндерү оештыру бурычы таләп итә. Иң эффектив коллективлар үлгән код кодексларына тестны каплаган кебек карыйлар: инженерлык җыелышларында карала һәм спринт планлаштыруга кертелгән кодбаз сәламәтлегенең күренгән, күзәтелгән күрсәткече.

Яхшы эшли торган кайбер мәдәни практикалар "кодны бетерү көннәре" - вакыт-вакыт вакыйгалар, анда ачык максат - кодны өстәү түгел, ә бетерү. Netlify моны челтәр сызыкларын күзәтүче лидер такталарын эшләтеп билгеле итеп уйнады. Стрип кодны бетерү практикасы турында ачыктан-ачык язды, беренче класслы инженер өлеше, эшнең бәясенә тигез. Иң яхшы кодның булмаган код булуын тану таләп ителә: сез язмаган һәр сызык - сез беркайчан да сакларга, сынап карарга, төзәтергә яки яңа прокатка аңлатырга тиеш булмаган сызык.

Катлаулы бизнес операцияләре белән идарә итүче продукт компанияләре өчен параллель инженерлыктан тыш ук гыйбрәтле. Кодбазларны сәламәтләндерә торган шул ук дисциплиналар - регуляр аудитлар, ачык хуҗалык итү, беркем дә кулланмаган әйберләрне бетерү - бизнес процессларын да сәламәтләндерә. Mewayz кебек платформалар бизнеска шундый ачыклык бирү өчен төгәл төзелгән: нинди кораллар кулланыла, кайсы эш процессы кыйммәт бирә, һәм оешманың үле авырлыгы җыелган бердәм күренеш. Сез кулланылмаган программа экспортын яки кулланылмаган бизнес процессларын аудитлыйсызмы, төп дисциплина бер үк.

Кораллар тизрәк бара, кире элемтә әйләнеше көчәя бара, һәм бүгенге көндә код базасы гигиена инфраструктурасына инвестиция салучы командалар еллар дәвамында дивидендлар түли торган өстәмә өстенлек булдыралар. Rev-dep һәм аның Go-power белән эшләүче кораллар төркеме кызыклы күрсәткечләр генә түгел - алар тотрыклы программа тизлеген мөмкин итә торган инфраструктура катламы. Итерация тизлеге программа бизнесы өчен төп көндәшлек өстенлеге булган дөньяда бу периферия проблемасы түгел. Бу бөтен уен.

Еш бирелә торган сораулар

Rev-depны knip.dev-тан тизрәк нәрсә итә?

Rev-dep Go-та төзелгән, тупланган система теле, туры килү һәм чимал башкару тизлеге өчен оптимальләштерелгән, ә knip.dev Node.js. Бу архитектура аермасы Rev-depка бәйләнеш графикларын анализларга һәм үлгән кодны 20х га кадәр тизрәк табарга мөмкинлек бирә. Зур монорепослар яки катлаулы код базалары өчен - 207-модульле архитектура кебек, Mewayz бизнес-OS-ны app.mewayz.com сайтында эшләтеп җибәрә - бу җитештерү аермасы һәр CI эшләгән вакытта сакланган реаль вакытка тәрҗемә ителә.

Типик үсә торган проект күпме үлгән код туплый?

Тикшеренүләр һәм инженер коллективларының анекдоталь отчетлары җитлеккән код базалары 10% тан 35% ка кадәр кулланылмаган яки ирешеп булмый торган кодны йөртә ала. Командалар масштабы белән проблема берләшә - функцияләр искерә, API үзгәрә, модульләр чистартмыйча ташлана. Mewayz кебек платформалар, 207-дән артык бизнес-модульне бер $ 19 / ай операцион системасына туплыйлар, код базасын аракы һәм тотрыклы тоту өчен системалы үлгән кодны ачыклауга таяналар.

Rev-dep JavaScript яки TypeScript кулланмаган командалар өчен яраклымы?

Rev-dep хәзерге вакытта JavaScript һәм TypeScript экосистемаларына юнәлтелгән, аны шул мохит өчен knip.devга туры альтернатива итә. Проект җиткәч, өстәмә телләргә ярдәм киңәя ала. Әгәр сезнең команда веб-продуктлар яки SaaS кораллары төзи икән - Mewayz үзенең тулы бизнес OS-ны app.mewayz.com сайтына китергән кебек - һәм сезнең стекка JS / TS авыр булса, Rev-dep бүген сезнең уйлап табучы кораллар челтәре кысаларында бәяләнергә тиеш.

Rev-depны мин булган CI / CD торбасына интеграцияли аламмы?

Әйе. Rev-dep CLI коралы буларак эшләнгән, CI / CD торбасына сезнең туры килү һәм сынау адымнары белән турыдан-туры төшү. Аның тизлек өстенлеге автоматлаштырылган торба үткәргечләрендә аеруча кыйммәтле, анда тизрәк кире әйләнеш эшкәртүченең көтү вакытын киметә. Сез аракы стартап эшлисезме яки Mewayzның $ 19 / ай бизнес-ОС кебек тулы үзенчәлекле платформасы белән идарә итәсезме, үлгән код анализын сезнең торбагызга интеграцияләү һәр кушылуда код базасы гигиенасын кулланырга ярдәм итә.