Hacker News

Windows-un yerli inkişafını düzəltdim

Windows-un yerli inkişafını düzəltdim Sabitin bu hərtərəfli təhlili onun əsas komponentlərinin və daha geniş təsirlərinin ətraflı araşdırılmasını təklif edir. Əsas Diqqət Sahələri Müzakirə aşağıdakı mövzularda aparılır: Əsas mexanizmlər və proseslər ...

11 min read Via marler8997.github.io

Mewayz Team

Editorial Team

Hacker News

Mən Windows Native İnkişafını Sabitləşdirdim: Əslində İşləyənlərin Tam Dağılımı

Windows-un yerli inkişafı illərdir alətlər silsiləsi parçalanması, asılılıq cəhənnəmi və ətraf mühitin uyğunsuzluğu ilə əziyyət çəkirdi - lakin aylarla davam edən sınaqlardan sonra nəhayət xaosu aradan qaldıran bir iş axını tapdım. Bu bələdçi tam olaraq nəyin pozulduğunu, nələri sınadığımı və indi mənim istehsalımı gücləndirən quraşdırmanı bir WSL həll yolu olmadan qurmağı əhatə edir.

Niyə Windows Native İnkişafı həmişə belə kabus olub?

Dürüst cavab budur ki, Windows heç vaxt əsas vətəndaşlar kimi tərtibatçılar ilə dizayn olunmayıb. Unix-əsaslı sistemlər əvvəldən öz DNT-lərində paketlərin idarə edilməsini, qabıq skriptini və ətraf mühitin izolyasiyasını bişirdi. Windows onilliklər ərzində bunları gücləndirərək PowerShell, CMD, Chocolatey, Winget, MSVC iş vaxtı münaqişələri və PATH dəyişən fəlakətləri yaradaraq böyük mühəndisi günortadan sonra relsdən çıxara bilər.

Semptomlar bu məkanda işləyən hər kəsə tanışdır: paket bir maşında düzgün quraşdırılır və digərində səssizcə uğursuz olur, alətlər qurmaq ən son quraşdırdığınız Visual Studio iş yükündən asılı olaraq müxtəlif kompilyator versiyalarına istinad edir və WSL2-də mükəmməl işləyən Node.js layihələri yerli fayl sistemində sirli EPERM xətaları yaradır. Bunlar kənar hallar deyil - əksər Windows tərtibatçıları üçün defolt təcrübədir.

Mənim quraşdırmamda hansı əsas mexanizmlər pozulub?

Mühitimi sistematik şəkildə yoxladıqdan sonra mən qurduğum nasazlıqların və ətraf mühitdəki uyğunsuzluqların təxminən 80%-nə səbəb olan üç əsas səbəbi müəyyən etdim:

  • Müqavilə zamanı kitabxanalar: Microsoft Visual C++ Yenidən Paylanma proqramının çoxsaylı versiyaları aydın rezolyusiya sırası olmadan mövcud idi və bu, yerli modullarda DLL axtarışında uğursuzluqlara səbəb oldu.
  • PATH çirklənməsi: On yeddi ayrı alət zaman keçdikcə PATH sisteminə girişlər əlavə etdi, bir neçəsi bir-birinə kölgə saldı və köhnə quraşdırma qovluqlarına işarə etdi.
  • Layihə səviyyəsində mühit təcridinin olmaması: .env faylları və qabıq direktivləri birinci dərəcəli vətəndaşlar olduğu Unix iş axınlarından fərqli olaraq, Windows-un üçüncü tərəf alətləri olmadan layihəyə ətraf mühit dəyişənlərini əhatə etmək üçün ardıcıl mexanizm yox idi.
  • Git xəttinin sonunda konfliktlər: Doğma Windows alətləri və platformalararası kitabxanalar arasında qarışıq CRLF/LF idarə edilməsi, təkrarlana bilən quraşdırmaları pozaraq, kilid fayllarında yoxlama məbləğlərinin uğursuz olmasına səbəb oldu.
  • Symlinks üçün yüksəldilmiş icazə tələbləri: Bir çox paket menecerləri Windows-da Tərtibatçı Rejimi və ya administrator imtiyazları tələb edən simvolik keçidlərə etibar edir — bu, əksər müəssisə maşınlarının siyasətlə söndürülməsidir.

"Problem heç vaxt Windows-un yerli inkişaf etdirə bilməməsi deyildi - bu, heç kimin məqsədyönlü konfiqurasiya ilə alətlərin düzgün kombinasiyasını yığmaması idi. Təchizatçı mühitinizi arxitektura qərarlarına ehtiyacı olan bir məhsul kimi qəbul etdikdən sonra hər şey dəyişir."

Mən Windows Native İnkişaf İş Aktını Əslində Necə Düzəltdim?

Düzeltmə tək alət və ya sehrli skript deyildi. Bu, ətraf mühitin necə yığıldığını, əhatə olunduğunu və saxlanmasının qəsdən yenidən memarlığı idi. Əsas, yüksəklik olmadan simvolik əlaqə yaratmağın kilidini açmaq üçün OS səviyyəsində Tərtibatçı Rejimini işə salmaqla başlayır. Oradan Scoop quraşdırıcıların ad-hoc qarışığını əvəz edir, çünki o, tamamilə istifadəçi məkanında işləyir, manifestləri versiyaya nəzarətdə saxlayır və şim idarəçiliyini təmiz idarə edir.

Xüsusən Node.js layihələri üçün versiya idarəçiliyi üçün Volta-ya keçid qlobal miqyasda npm-dən əziyyət çəkən EPERM xətalarını aradan qaldırdı. Volta şim qatında ikili zəngləri kəsir və sistem PATH-ə toxunmadan hər layihə üçün düzgün iş vaxtı versiyasını həll edir. package.json-da sadiq .volta açarı ilə birlikdə maşınlar arasında mühit pariteti arzuolunan deyil, avtomatik olur.

💡 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 →

Son hissə Scoop vasitəsilə Windows-a daşınan direnv tərəfindən tətbiq edilən layihə səviyyəli .env nizam-intizamını mənimsəyirdi - hər bir layihənin kataloqa daxil olduqda aktivləşən və çıxışda təmizlənən öz mühit kontekstini daşımasını təmin edir. PATH çirklənməsi bir həftə ərzində on yeddi girişdən dördə düşdü.

Müqayisəli Analiz Native və WSL2 yanaşmaları haqqında nəyi aşkar edir?

WSL2 Linux yerləşdirmə mühitlərini hədəfləyən inkişaf iş axınları üçün həqiqətən əladır. İstehsal serveriniz Ubuntu ilə işləyirsə və komandanız Linux alətləri ilə rahatdırsa, WSL2 sürtünməni aradan qaldırır. Bununla belə, o, öz problemlər kateqoriyasını təqdim edir: Windows-Linux sərhədində fayl sisteminin performansı I/O-a ağır əməliyyatlar üçün ölçülə biləcək dərəcədə yavaşdır, sərhədlərarası sazlama əlavə quraşdırma tələb edir və yerli Windows GUI proqramları tamamilə WSL2-nin əhatə dairəsindən kənarda qalır.

Windows-da yerli proqramlar, elektron əsaslı masa üstü proqram təminatı və ya Windows API-ləri ilə inteqrasiya etməli olan hər hansı alətlər silsiləsi yaradan komandalar üçün yerli inkişaf isteğe bağlı deyil – və burada təsvir edilən sabit iş axını işlədiyim hər bir meyarda istifadə halları üçün WSL2-dən üstündür. Çarpaz fayl sistemi I/O ilə WSL2-dən düzgün əhatə olunmuş asılılıqlarla tam yerli quraşdırmaya köçürüldükdə orta ölçülü Electron layihəsi üçün tikinti vaxtları 34% azaldı.

Developer məhsuldarlığını və biznes əməliyyatlarını birlikdə necə idarə edə bilərsiniz?

İnkişaf mühitinizi düzgün qurmaq tənliyin yalnız yarısıdır. Proqram təminatı biznesini və ya inkişaf mağazasını idarə etmək müştəri idarəetməsini, layihə boru kəmərlərini, komanda iş axınını, fakturaları və marketinqi əlaqələndirməyi tələb edir – və əksər tərtibatçılar bunu bir-biri ilə heç vaxt danışmayan beş və ya altı kəsilmiş SaaS alətindən birləşdirir.

Bu, məhz Mewayz həll etmək üçün qurulmuşdur. CRM və layihənin idarə edilməsindən tutmuş məzmun planlaşdırmasına və e-ticarətə qədər hər şeyi əhatə edən 207 inteqrasiya modulu ilə Mewayz başqa bir təcrid olunmuş nöqtə həlli deyil, tam bir iş əməliyyat sistemi kimi fəaliyyət göstərir. Hazırda 138 000-dən çox istifadəçi platformada əməliyyatlarını ayda 19 dollardan başlayan planlarla həyata keçirir.

Tez-tez verilən suallar

Windows-un yerli inkişafını düzəltməyə dəyərmi, yoxsa hər şey üçün WSL2-dən istifadə etməliyəm?

Bu, tamamilə hədəf platformanızdan asılıdır. Linux-a yerləşdirərkən və ətraf mühitin sürüşməsini minimuma endirmək istədiyiniz zaman WSL2 düzgün seçimdir. Windows proqramlarını qurarkən, Windows-a xas API-lərlə işləyərkən və ya alətlər silsiləsi qurmaq üçün maksimum fayl sistemi performansına ehtiyacınız olduqda yerli Windows inkişafı düzgün seçimdir. Bu iki yanaşma bir-birini istisna etmir – bir çox komanda öz qurma boru kəməri üçün yerli Windows alətlərindən və yalnız Linux-a xas test üçün WSL2-dən istifadə edir.

Windows dev mühitimi təkmilləşdirən ən böyük dəyişiklik hansıdır?

Tərtibatçı Rejimini aktivləşdirmək və əsas paket meneceri kimi Scoop-a köçürmək ən yüksək ani təsirə malik oldu. Scoop-un istifadəçi məkanı quraşdırma modeli ətraf mühitimdəki nasazlıqlarımın təxminən 40%-nə səbəb olan icazənin yüksəldilməsi problemlərini aradan qaldırdı və onun manifest əsaslı yanaşması ilk dəfə olaraq maşınlar arasında mühitin təkrarlanmasını deterministik etdi.

Mewayz xüsusilə inkişaf qruplarına və proqram təminatı bizneslərinə necə kömək edir?

Mewayz, inkişaf qruplarının adətən ağrılı olana qədər məhəl qoymadığı əməliyyat təbəqəsini birləşdirir. Müştərilərin işə qəbulu, layihənin əhatə dairəsi, təklifin yaradılması, hesab-faktura, komanda ünsiyyəti və marketinqin avtomatlaşdırılması hamısı bir platformada idarə olunur. Xüsusilə kiçik agentliklər və müstəqil tərtibatçılar üçün çoxsaylı SaaS abunəliklərinin idarə edilməsi və alətlər arasında əl ilə məlumat ötürülməsi ilə bağlı əlavə xərclərin aradan qaldırılması faktiki inkişaf işinə diqqət yetirmək üçün əhəmiyyətli vaxtdan azad edir.


Windows-un yerli inkişafı əsaslı şəkildə pozulmayıb - ona layiq olduğu qəsdən quraşdırma heç vaxt verilməyib. Düzgün alət zəncirinin arxitekturası ilə bu, istehsal proqramı üçün həqiqətən bacarıqlı bir mühitdir. İnkişaf mühitiniz sabit olduqdan sonra növbəti darboğaz həmişə əməliyyatlardır. Bu gün Mewayz sınağına başlayın və indicə inkişaf etdirdiyiniz mühitə gətirdiyiniz eyni məqsədyönlü strukturu biznes səviyyənizə gətirin.

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