Hacker News

Би Windows-ийн үндсэн хөгжүүлэлтийг зассан

Би Windows-ийн үндсэн хөгжүүлэлтийг зассан Тогтмол байдлын энэхүү иж бүрэн дүн шинжилгээ нь түүний үндсэн бүрэлдэхүүн хэсгүүд болон илүү өргөн хүрээний үр нөлөөг нарийвчлан судлах боломжийг олгодог. Анхаарах гол чиглэлүүд Хэлэлцүүлэг нь: Үндсэн механизм ба үйл явц ...

1 min read Via marler8997.github.io

Mewayz Team

Editorial Team

Hacker News

Би Windows-ийн төрөлх хөгжүүлэлтийг зассан: Бодитоор ажиллаж байгаа зүйлийн бүрэн задаргаа

Windows-ын уугуул хөгжүүлэлт нь олон жилийн турш багажны гинжний хуваагдал, хараат байдлын там, хүрээлэн буй орчны үл нийцэл зэргээс болж зовж шаналж байсан боловч хэдэн сар туршсаны эцэст би эмх замбараагүй байдлыг арилгах ажлын урсгалыг олсон. Энэ гарын авлагад яг юу эвдэрсэн, миний оролдсон зүйл, одоо миний үйлдвэрлэлийг идэвхжүүлж байгаа тохиргоог WSL-ийн нэг ч шийдэлгүйгээр бүтээдэг.

Яагаад Windows-ийн уугуул хөгжил үргэлж ийм хар дарсан зүүд байсаар ирсэн бэ?

Шударга хариулт бол Windows-ийг хэзээ ч анхан шатны иргэн болгон хөгжүүлэгчидтэй хамт зохион бүтээгээгүй гэсэн үг юм. Unix-д суурилсан системүүд нь багцын удирдлага, бүрхүүлийн скрипт, хүрээлэн буй орчны тусгаарлалтыг эхнээс нь ДНХ-дээ оруулсан. Windows нь эдгээр зүйлсийг олон арван жилээр хөгжүүлж, PowerShell, CMD, Chocolatey, Winget, MSVC ажиллах үеийн зөрчил, PATH хувьсах гамшгийг бий болгож, ахлах инженерийг үдээс хойш замаас нь салгаж болно.

Энэ талбарт ажиллаж байсан хэн бүхэнд шинж тэмдгүүд нь танил юм: багц нь нэг машин дээр зөв суулгаж, нөгөө машин дээр чимээгүйхэн бүтэлгүйтдэг, хамгийн сүүлд суулгасан Visual Studio ажлын ачааллаас хамааран өөр өөр хөрвүүлэгчийн хувилбаруудыг бүтээх хэрэгслүүд, WSL2 дээр төгс ажилладаг Node.js төслүүд эх файлын системд нууцлагдмал EPERM алдаа гаргадаг. Эдгээр нь захын тохиолдол биш бөгөөд ихэнх Windows хөгжүүлэгчдэд зориулсан өгөгдмөл туршлага юм.

Миний тохиргоонд ямар үндсэн механизмууд эвдэрсэн бэ?

Орчноо системтэйгээр шалгаж үзсэнийхээ дараа би барилгын бүтэлгүйтлийн 80 орчим хувь болон орчны зөрчилтэй холбоотой гурван үндсэн шалтгааныг олж тогтоосон:

  • Зөрчилтэй ажиллах үеийн номын сангууд: Microsoft Visual C++ Дахин түгээх боломжтой олон хувилбарууд нь тодорхой нарийвчлалын дараалалгүйгээр зэрэгцэн оршиж байсан нь үндсэн модулиудад DLL хайлт хийхэд алдаа гарсан.
  • PATH бохирдол: Арван долоон тусдаа хэрэгсэл нь PATH системд цаг хугацааны явцад оруулгууд хавсаргасан бөгөөд хэд хэдэн нь бие биенээ сүүдэрлэж, хуучирсан суулгацын лавлахуудыг зааж өгсөн.
  • Төслийн түвшний орчны тусгаарлалт дутмаг: .env файлууд болон бүрхүүлийн удирдамжууд нь нэгдүгээр зэрэглэлийн иргэд байдаг Unix-ийн ажлын урсгалуудаас ялгаатай нь Windows-д гуравдагч талын хэрэгсэлгүй төсөлд орчны хувьсагчдыг хамрах тогтвортой механизм байгаагүй.
  • Git шугамын төгсгөлийн зөрчил: Windows-ийн уугуул хэрэгслүүд болон платформ хоорондын сангуудын хооронд CRLF/LF-ийн холимог зохицуулалт нь түгжээтэй файлууд дээр шалгах нийлбэр амжилтгүй болж, дахин давтагдах суулгацуудыг эвдэхэд хүргэсэн.
  • Symlinks-д тавигдах зөвшөөрлийн өндөр шаардлага: Олон багц менежерүүд Windows дээр хөгжүүлэгчийн горим эсвэл администраторын эрхийг шаарддаг симбол холбоосууд дээр тулгуурладаг. Энэ нь ихэнх байгууллагын машиныг бодлогоор идэвхгүй болгодог.

"Асуудал нь хэзээ ч Windows нь эх хөгжүүлэлтийг хийж чадахгүй байсан - хэн ч зориудаар тохируулсан хэрэгслүүдийн зөв хослолыг угсарч байгаагүй явдал байв. Нэгэнт та өөрийн хөгжүүлэлтийн орчинг архитектурын шийдвэр гаргах шаардлагатай бүтээгдэхүүн гэж үзэх юм бол бүх зүйл өөрчлөгддөг."

Би Windows-ын төрөлх хөгжүүлэлтийн ажлын урсгалыг хэрхэн зассан бэ?

Засвар нь ганц хэрэгсэл эсвэл шидэт скрипт биш байсан. Энэ нь хүрээлэн буй орчныг хэрхэн угсарч, хамрах хүрээг хамарч, арчлах талаар зориуд дахин хийсэн архитектур байв. Үндэслэл нь OS-ийн түвшинд Хөгжүүлэгчийн горимыг идэвхжүүлснээр симлинк үүсгэх түгжээг дээшлүүлээгүйгээс эхэлдэг. Тэндээс Scoop нь бүхэлдээ хэрэглэгчийн орон зайд ажилладаг, манифестуудыг хувилбарын удирдлагад хадгалж, жийргэвчний удирдлагыг цэвэрхэн зохицуулдаг тул суулгагчдын түр зуурын холимогийг орлодог.

Ялангуяа Node.js төслүүдийн хувьд хувилбарын удирдлагад зориулж Volta руу шилжсэнээр npm-ийг дэлхий даяар зовоодог EPERM алдааг арилгасан. Вольта нь хоёртын дуудлагыг жийргэвчний давхарга дээр таслан зогсоож, системийн PATH-д хүрэлгүйгээр төсөл тус бүрийн зөв ажиллах цагийн хувилбарыг шийддэг. package.json-д тохирсон .volta түлхүүртэй хослуулснаар машин хоорондын орчны тэгш байдал нь хүсэл тэмүүлэлтэй бус автомат болж хувирдаг.

Эцсийн хэсэг нь direnv-ээр хэрэгжүүлсэн төслийн түвшний .env сахилга батыг Scoop-ээр дамжуулан Windows-д шилжүүлсэн бөгөөд төсөл бүр сан руу орох үед идэвхжиж, гарах үед арилдаг өөрийн орчны контекстийг агуулсан байхыг баталгаажуулсан. 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 нь Линуксыг байршуулах орчинд чиглэсэн хөгжүүлэлтийн ажлын урсгалд үнэхээр тохиромжтой. Хэрэв таны үйлдвэрлэлийн сервер Ubuntu-г ажиллуулдаг бөгөөд танай баг Линукс хэрэгслийг ашиглахад тохиромжтой бол WSL2 үрэлтийг арилгадаг. Гэсэн хэдий ч, энэ нь өөрийн гэсэн асуудлын ангилалыг танилцуулж байна: Windows-Linux-ийн зааг дээрх файлын системийн гүйцэтгэл нь I/O-ийн ачаалал ихтэй үйлдлүүдэд хэмжигдэхүйц удааширдаг, хил дамнасан дибаг хийх нь нэмэлт тохиргоог шаарддаг бөгөөд Windows-ийн үндсэн GUI програмууд нь WSL2-ийн хамрах хүрээнээс бүхэлдээ гадуур үлддэг.

Windows-д суурилсан программууд, электрон-д суурилсан ширээний программ хангамж эсвэл Windows API-тай нэгтгэх ёстой аливаа хэрэгслийн сүлжээг бүтээж буй багуудын хувьд үндсэн хөгжүүлэлт нь сонголт биш бөгөөд энд тайлбарласан тогтмол ажлын урсгал нь миний хэрэгжүүлсэн жишиг болгон дээрх хэрэглээний тохиолдлуудын хувьд WSL2-ээс давж гардаг. Дунд хэмжээний Electron төслийг бүтээх хугацаа нь файл хоорондын I/O-той WSL2-с зохих хамрах хүрээтэй хамаарал бүхий бүрэн эх тохиргоо руу шилжсэнээр 34%-иар буурсан.

Хөгжүүлэгчийн бүтээмж болон бизнесийн үйл ажиллагааг хамтдаа хэрхэн удирдах вэ?

Хөгжлийн орчноо зөв болгох нь тэгшитгэлийн зөвхөн тал нь юм. Програм хангамжийн бизнес эсвэл хөгжүүлэлтийн дэлгүүр ажиллуулахын тулд үйлчлүүлэгчийн удирдлага, төслийн шугам хоолой, багийн ажлын урсгал, нэхэмжлэх, маркетинг зэргийг зохицуулах шаардлагатай байдаг ба ихэнх хөгжүүлэгчид хоорондоо огт ярьдаггүй тав, зургаан салангид SaaS хэрэгслээр үүнийг нэгтгэдэг.

Энэ бол яг л Mewayz-г шийдэхийн тулд бүтээгдсэн зүйл юм. CRM, төслийн менежментээс эхлээд агуулгын хуваарь, цахим худалдаа зэрэг бүх зүйлийг хамарсан 207 нэгдсэн модулиудаар Mewayz нь өөр тусгаарлагдсан цэгийн шийдэл биш харин бизнесийн иж бүрэн үйлдлийн систем болж ажилладаг. Одоогоор 138,000 гаруй хэрэглэгч платформ дээр үйл ажиллагаагаа сард 19 доллараас эхэлдэг бөгөөд энэ нь ихэнх багууд Notion, HubSpot, Trello болон FreshBooks-ийг тусад нь нийлүүлэхэд зарцуулдаг мөнгөний багахан хэсэг юм.

Байнга асуудаг асуултууд

Windows-ын үндсэн хөгжүүлэлтийг засах нь зүйтэй болов уу эсвэл би бүх зүйлд WSL2 ашиглах ёстой юу?

Энэ нь таны зорилтот платформоос бүрэн хамаарна. Та Linux-д суулгаж, орчны шилжилтийг багасгахыг хүсч байгаа үед WSL2 нь зөв сонголт юм. Windows программуудыг бүтээх, Windows-д зориулсан API-уудтай ажиллах эсвэл багаж хэрэгслийн сүлжээг бүтээхэд файлын системийн хамгийн их гүйцэтгэл шаардлагатай үед Windows-ийн төрөлх хөгжүүлэлт нь зөв сонголт юм. Энэ хоёр арга нь бие биенээсээ үл хамаарах зүйл биш - олон багууд өөрсдийн бүтээх шугам хоолойд Windows-ийн эх хэрэгслийг ашигладаг бол WSL2-г зөвхөн Линукс-д зориулсан туршилтын зорилгоор ашигладаг.

Миний Windows хөгжүүлэлтийн орчинг сайжруулсан хамгийн том өөрчлөлт юу вэ?

Хөгжүүлэгчийн горимыг идэвхжүүлж, үндсэн багц менежерийн хувьд Scoop руу шилжүүлснээр шууд нөлөөлсөн. Scoop-ийн хэрэглэгчийн орон зайд суулгах загвар нь миний орчны доголдлын 40 орчим хувийг үүсгэсэн зөвшөөрлийн өргөлтийн асуудлыг арилгаж, манифестт суурилсан арга барил нь анх удаа машин хоорондын орчны хуулбарыг тодорхойлогч болгосон.

Mewayz нь хөгжүүлэлтийн баг болон програм хангамжийн бизнесүүдэд хэрхэн тусалдаг вэ?

Mewayz нь хөгжүүлэлтийн багууд ихэвчлэн үл тоомсорлодог үйл ажиллагааны давхаргыг өвдөлттэй болох хүртэл нэгтгэдэг. Үйлчлүүлэгчийг элсүүлэх, төслийн хамрах хүрээ, санал гаргах, нэхэмжлэх, багтай харилцах, маркетингийн автоматжуулалтыг нэг платформ дээр гүйцэтгэдэг. Ялангуяа жижиг агентлагууд болон бие даасан хөгжүүлэгчдийн хувьд олон тооны SaaS захиалгыг удирдах болон хэрэгслүүдийн хооронд гар аргаар өгөгдөл дамжуулах зардлыг арилгах нь бодит хөгжүүлэлтийн ажилд анхаарлаа төвлөрүүлэхэд ихээхэн цаг зарцуулдаг.


Windows-ын үндсэн хөгжүүлэлт нь үндсэндээ эвдэрсэн зүйл биш бөгөөд энэ нь зохих ёсоор зориудаар тохируулаагүй. Зөв багажийн гинжний архитектуртай бол энэ нь үйлдвэрлэлийн програм хангамжийн жинхэнэ чадвартай орчин юм. Нэгэнт таны хөгжлийн орчин тогтвортой байвал дараагийн саад бэрхшээл нь үргэлж үйл ажиллагаа юм. Өнөөдөр Mewayz-ийн туршилтаа эхлүүлээрэй, өөрийн хөгжүүлэлтийн орчинд саяхан авчирсан санаатай бүтцийг өөрийн бизнесийн давхаргад авчир.

Try Mewayz Free

All-in-one platform for CRM, invoicing, projects, HR & more. No credit card required.

Start managing your business smarter today

Join 30,000+ businesses. Free forever plan · No credit card required.

Ready to put this into practice?

Join 30,000+ businesses using Mewayz. Free forever plan — no credit card required.

Start Free Trial →

Ready to take action?

Start your free Mewayz trial today

All-in-one business platform. No credit card required.

Start Free →

14-day free trial · No credit card · Cancel anytime