Ես շտկել եմ Windows-ի բնիկ զարգացումը
Ես շտկել եմ Windows-ի բնիկ զարգացումը Ֆիքսվածի այս համապարփակ վերլուծությունը առաջարկում է դրա հիմնական բաղադրիչների և ավելի լայն հետևանքների մանրամասն ուսումնասիրություն: Ուշադրության հիմնական ոլորտները Քննարկումը կենտրոնացած է. Հիմնական մեխանիզմներ և գործընթացներ ...
Mewayz Team
Editorial Team
Ես շտկեցի Windows Native Development. Իրականում աշխատողի ամբողջական բաշխում
Windows-ի բնիկ զարգացումը տարիներ շարունակ տառապում էր գործիքների շղթայի մասնատմամբ, կախվածության դժոխքով և շրջակա միջավայրի անհամապատասխանություններով, բայց ամիսներ շարունակ փորձարկումներից հետո ես վերջապես գտա աշխատանքային հոսք, որը վերացնում է քաոսը: Այս ուղեցույցն ընդգրկում է հենց այն, ինչ խափանվել է, ինչ եմ փորձել, և այն կարգավորումները, որոնք այժմ ապահովում են իմ արտադրությունը, առանց մեկ WSL-ի լուծումների:
Ինչո՞ւ է Windows Native-ի մշակումը միշտ եղել նման մղձավանջ:
Ազնիվ պատասխանն այն է, որ Windows-ը երբեք չի նախագծվել ծրագրավորողներով որպես հիմնական քաղաքացիներ: Unix-ի վրա հիմնված համակարգերն ի սկզբանե իրենց ԴՆԹ-ում ներդրեցին փաթեթների կառավարում, կեղևի սցենարավորում և շրջակա միջավայրի մեկուսացում: Windows-ը պտտեց այս բաները տասնամյակների ընթացքում՝ ստեղծելով PowerShell, CMD, Chocolatey, Winget, MSVC գործարկման ժամանակի կոնֆլիկտների և PATH փոփոխական աղետների շերտավոր խառնաշփոթ, որոնք կարող են շեղել ավագ ինժեներին կեսօրից հետո:
Ախտանիշները ծանոթ են բոլոր նրանց, ովքեր աշխատել են այս տարածքում. փաթեթը ճիշտ է տեղադրվում մի մեքենայի վրա և լուռ ձախողվում է մյուսի վրա, կառուցման գործիքները վկայակոչում են կոմպիլյատորների տարբեր տարբերակներ՝ կախված նրանից, թե որ վերջին անգամ եք տեղադրել Visual Studio-ի աշխատանքային ծանրաբեռնվածությունը, և Node.js նախագծերը, որոնք հիանալի աշխատում են WSL2-ում, EPERM սխալներ են նետում հայրենի ֆայլային համակարգի վրա: Սրանք եզրային դեպքեր չեն. դրանք Windows-ի մշակողների մեծամասնության համար լռելյայն փորձն են:
Ի՞նչ հիմնական մեխանիզմներն են իրականում կոտրվել իմ կարգավորումներում:
Իմ միջավայրը համակարգված ստուգելուց հետո ես հայտնաբերեցի երեք հիմնական պատճառ, որոնք պատասխանատու են իմ կառուցման ձախողումների և շրջակա միջավայրի անհամապատասխանությունների մոտավորապես 80%-ի համար.
- Հակասական աշխատաժամանակի գրադարաններ. Microsoft Visual C++ Redistributable-ի բազմաթիվ տարբերակներ գոյակցում էին առանց հստակ լուծման կարգի՝ առաջացնելով DLL որոնման ձախողումներ բնիկ մոդուլներում:
- PATH աղտոտում. Տասնյոթ առանձին գործիքներ ժամանակի ընթացքում ավելացրել են մուտքեր PATH համակարգին, որոնցից մի քանիսը ստվերում են միմյանց և մատնացույց անում հնացած տեղադրման գրացուցակները:
- Ծրագրի մակարդակով միջավայրի մեկուսացման բացակայություն. ի տարբերություն Unix-ի աշխատանքային հոսքերի, որտեղ
.envֆայլերը և shell հրահանգները առաջին կարգի քաղաքացիներ են, Windows-ը չուներ շրջակա միջավայրի փոփոխականները նախագծին առանց երրորդ կողմի գործիքների ընդգրկելու հետևողական մեխանիզմ: - Git-ի տողերի ավարտի հակասություններ. Windows-ի բնիկ գործիքների և միջպլատֆորմային գրադարանների միջև CRLF/LF-ի խառը կառավարումը հանգեցրել է կողպեքի ֆայլերի ստուգման գումարների ձախողմանը` ընդհատելով վերարտադրվող տեղադրումները:
- Սիմհղումների համար թույլտվության բարձր պահանջներ. Փաթեթի շատ կառավարիչներ հիմնվում են խորհրդանշական հղումների վրա, որոնք Windows-ում պահանջում են Մշակողի ռեժիմ կամ ադմինիստրատորի արտոնություններ, մի պարամետր, որը ձեռնարկության մեքենաների մեծ մասն անջատված է ըստ քաղաքականության:
«Խնդիրը երբեք այն չէր, որ Windows-ը չկարողացավ կատարել բնօրինակ զարգացում, դա այն էր, որ ոչ ոք չէր հավաքել գործիքների ճիշտ համակցությունը կանխամտածված կազմաձևմամբ: Երբ դուք վերաբերվեք ձեր մշակողի միջավայրին որպես արտադրանքի, որը պահանջում է ճարտարապետության որոշումներ, ամեն ինչ փոխվում է:
Ինչպե՞ս եմ իրականում շտկել Windows Native Development Workflow-ը:
Ստուգումը մեկ գործիք կամ կախարդական սցենար չէր: Դա կանխամտածված վերաճարտարապետություն էր, թե ինչպես է շրջակա միջավայրը հավաքվում, ծավալվում և պահպանվում: Հիմնադրամը սկսվում է ՕՀ-ի մակարդակում Developer Mode-ի հնարավորություն տալով՝ բացելու սիմհղման ստեղծումն առանց բարձրացման: Այնտեղից, Scoop-ը փոխարինում է տեղադրողների ad-hoc խառնուրդը, քանի որ այն ամբողջությամբ գործում է օգտատերերի տարածքում, պահում է դրսևորումները տարբերակների վերահսկման մեջ և մաքուր կերպով կառավարում է շիմերի կառավարումը:
Հատկապես Node.js նախագծերի համար, տարբերակի կառավարման համար Volta-ին անցնելը վերացրեց EPERM-ի սխալները, որոնք պատուհասում էին npm-ին ամբողջ աշխարհում: Volta-ն ընդհատում է երկուական զանգերը շիմի շերտում և լուծում է յուրաքանչյուր նախագծի ճիշտ գործարկման տարբերակը՝ առանց դիպչելու համակարգի PATH-ին: Համակցված .volta ստեղնի հետ package.json-ում, շրջակա միջավայրի հավասարությունը մեքենաների միջև դառնում է ավտոմատ, այլ ոչ թե ձգտում:
Վերջնական հատվածը նախագծի մակարդակի .env կարգապահության ընդունումն էր, որը պարտադրվում է direnv-ի կողմից, որը տեղափոխվում է Windows Scoop-ի միջոցով. ապահովելով, որ յուրաքանչյուր նախագիծ կրում է իր միջավայրի համատեքստը, որն ակտիվանում է գրացուցակի մուտքի ժամանակ և մաքրվում է ելքի ժամանակ: PATH-ի աղտոտվածությունը մեկ շաբաթվա ընթացքում տասնյոթ մուտքից նվազել է չորսի:
💡 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 →Ի՞նչ է բացահայտում համեմատական վերլուծությունը Native-ի ընդդեմ WSL2 մոտեցումների մասին:
WSL2-ն իսկապես հիանալի է մշակման աշխատանքային հոսքերի համար, որոնք ուղղված են Linux-ի տեղակայման միջավայրերին: Եթե ձեր արտադրական սերվերը գործարկում է Ubuntu-ն, և ձեր թիմին հարմար է Linux-ի գործիքակազմը, WSL2-ը հեռացնում է շփումը: Այնուամենայնիվ, այն ներկայացնում է խնդիրների իր կատեգորիան. Windows-Linux-ի սահմաններում ֆայլային համակարգի կատարումը չափելիորեն ավելի դանդաղ է I/O-ծանր գործառնությունների համար, միջսահմանային վրիպազերծումը պահանջում է լրացուցիչ կարգավորում, իսկ բնիկ Windows GUI հավելվածները մնում են ամբողջությամբ WSL2-ի շրջանակից դուրս:
Windows-ի վրա հիմնված հավելվածներ, էլեկտրոնի վրա հիմնված աշխատասեղանի ծրագրակազմ կամ ցանկացած գործիքաշղթա կառուցող թիմերի համար, որոնք պետք է ինտեգրվեն Windows API-ների հետ, բնօրինակ մշակումն ընտրովի չէ, և այստեղ նկարագրված ֆիքսված աշխատանքային հոսքը գերազանցում է WSL2-ին այն օգտագործման դեպքերի համար, որոնք ես գործարկեցի յուրաքանչյուր հենանիշում: Միջին չափի Էլեկտրոնային նախագծի համար կառուցման ժամանակները նվազել են 34%-ով, երբ WSL2-ից փոխադրվել է միջֆայլային համակարգով I/O-ով լիովին բնիկ կարգավորում՝ պատշաճ շրջանակներով կախվածություններով:
Ինչպե՞ս կարող եք միասին կառավարել մշակողի արտադրողականությունը և բիզնես գործառնությունները:
Ձեր զարգացման միջավայրը ճիշտ դարձնելը հավասարման միայն կեսն է: Ծրագրային ապահովման բիզնես կամ մշակման խանութ վարելը պահանջում է հաճախորդի կառավարման, նախագծերի խողովակաշարերի, թիմային աշխատանքի հոսքերի, հաշիվ-ապրանքագրերի և շուկայավարման համակարգում, և ծրագրավորողներից շատերը դա համատեղում են հինգ կամ վեց անջատված SaaS գործիքներից, որոնք երբեք չեն խոսում միմյանց հետ:
Սա հենց այն է, ինչ լուծելու համար ստեղծվել է Mewayz-ը: 207 ինտեգրված մոդուլներով, որոնք ընդգրկում են ամեն ինչ՝ սկսած CRM-ից և նախագծերի կառավարումից մինչև բովանդակության պլանավորում և էլեկտրոնային առևտուր, Mewayz-ը գործում է որպես ամբողջական բիզնես օպերացիոն համակարգ, այլ ոչ թե մեկ այլ մեկուսացված կետային լուծում: Ավելի քան 138,000 օգտատերեր ներկայումս իրականացնում են իրենց գործունեությունը հարթակում ամսական $19-ից սկսած պլաններով, ինչը թիմերի մեծամասնության ծախսերի մի մասն է` համատեղելով Notion, HubSpot, Trello և FreshBooks առանձին-առանձին:
Հաճախակի տրվող հարցեր
Արդյո՞ք արժե շտկել Windows-ի բնօրինակ մշակումը, թե՞ պարզապես պետք է օգտագործեմ WSL2-ը ամեն ինչի համար:
Դա ամբողջությամբ կախված է ձեր թիրախային հարթակից: WSL2-ը ճիշտ ընտրություն է, երբ դուք տեղակայվում եք Linux-ում և ցանկանում եք նվազագույնի հասցնել շրջակա միջավայրի շեղումը: Native Windows-ի մշակումը ճիշտ ընտրություն է, երբ դուք կառուցում եք Windows հավելվածներ, աշխատում եք Windows-ի հատուկ API-ների հետ կամ անհրաժեշտ է ֆայլային համակարգի առավելագույն կատարողականություն կառուցման գործիքների շղթաների համար: Երկու մոտեցումները միմյանց բացառող չեն. շատ թիմեր օգտագործում են Windows-ի բնիկ գործիքավորումն իրենց կառուցման խողովակաշարի համար, իսկ WSL2-ը միայն Linux-ին հատուկ փորձարկման համար:
Ո՞րն է ամենամեծ փոփոխությունը, որը բարելավեց իմ Windows մշակողի միջավայրը:
Մշակողի ռեժիմը միացնելը և Scoop տեղափոխումը որպես հիմնական փաթեթի կառավարիչ ամենաբարձր ազդեցությունն ունեցան: Scoop-ի օգտատերերի տարածքի տեղադրման մոդելը վերացրեց թույլտվության բարձրացման խնդիրները, որոնք առաջացրել էին իմ միջավայրի խափանումների մոտավորապես 40%-ը, և դրա մանիֆեստի վրա հիմնված մոտեցումն առաջին անգամ որոշիչ դարձրեց միջավայրի կրկնօրինակումը մեքենաների միջև:
Ինչպե՞ս է Mewayz-ն օգնում մշակող թիմերին և ծրագրային ապահովման բիզնեսներին հատուկ:
Mewayz-ը համախմբում է գործառնական շերտը, որը մշակողների թիմերը սովորաբար անտեսում են այնքան ժամանակ, մինչև այն դառնում է ցավոտ: Հաճախորդների տեղադրումը, նախագծի շրջանակը, առաջարկների ստեղծումը, հաշիվ-ապրանքագրերը, թիմային հաղորդակցությունը և մարքեթինգային ավտոմատացումը բոլորն էլ իրականացվում են մեկ հարթակի շրջանակներում: Հատկապես փոքր գործակալությունների և անկախ ծրագրավորողների համար SaaS-ի մի քանի բաժանորդագրությունների կառավարման և գործիքների միջև տվյալների ձեռքով փոխանցման ծախսերի վերացումը զգալի ժամանակ է ազատում իրական զարգացման աշխատանքի վրա կենտրոնանալու համար:
Windows-ի բնիկ զարգացումը հիմնովին կոտրված չէ, այն պարզապես երբեք չի տրվել այն կանխամտածված կարգավորումը, որին արժանի էր: Գործիքների շղթայի ճիշտ ճարտարապետությամբ այն իսկապես ունակ միջավայր է արտադրական ծրագրային ապահովման համար: Եվ երբ ձեր զարգացման միջավայրը կայուն է, հաջորդ խոչընդոտը միշտ գործառնությունն է: Սկսեք ձեր Mewayz-ի փորձարկումն այսօր և բերեք նույն միտումնավոր կառուցվածքը ձեր բիզնեսի շերտում, որը դուք նոր բերեցիք ձեր մշակողի միջավայր:
We use cookies to improve your experience and analyze site traffic. Cookie Policy