Hacker News

Windows jatorrizko garapena konpondu dut

Windows jatorrizko garapena konpondu dut Finkoaren azterketa integral honek bere oinarrizko osagaien eta inplikazio zabalagoen azterketa zehatza eskaintzen du. Arlo nagusiak Eztabaidak honako hauek ditu ardatz: Oinarrizko mekanismoak eta prozesuak ...

6 min read Via marler8997.github.io

Mewayz Team

Editorial Team

Hacker News

Windows Native Development konpondu dut: Benetan funtzionatzen duenaren apurketa osoa

Windows jatorrizko garapena tresna-katearen zatikatzeak, menpekotasun-infernuak eta inguruneko inkoherentziak pairatu du urtetan, baina hilabete probak egin ondoren, azkenean kaosa ezabatzen duen lan-fluxu bat aurkitu dut. Gida honek apurtu zena, probatu nuena eta orain nire ekoizpena konfiguratzen duen konfigurazioa biltzen du, WSL konponbide bakar bat egin gabe.

Zergatik izan da Windows Native Development beti amesgaizto bat?

Erantzun zintzoa da Windows ez dela inoiz diseinatu garatzaileek herritar nagusi gisa. Unix-en oinarritutako sistemek paketeen kudeaketa, shell scripting-a eta ingurunearen isolamendua barneratu zituzten hasieratik beren DNAn. Windows-ek hamarkadetan zehar ezarri zituen gauza hauek, PowerShell, CMD, Chocolatey, Winget, MSVC exekuzio-garaiaren eta PATH hondamendi aldakorren nahaspila geruza bat sortuz, arratsalde batez goi mailako ingeniari bat desbideratu dezaketenak.

Eremu honetan lan egin duen edonorentzat ezagunak dira sintomak: pakete bat makina batean behar bezala instalatzen da eta beste batean isilean huts egiten du, eraikitze-tresnek konpiladore-bertsio desberdinak aipatzen dituzte azken instalatu duzun Visual Studio-ren lan-kargaren arabera, eta WSL2-n ezin hobeto exekutatzen diren Node.js proiektuek EPERM akats kriptikoak botatzen dituzte jatorrizko fitxategi-sisteman. Hauek ez dira ertzetako kasuak; Windows garatzaile gehienentzako esperientzia lehenetsia dira.

Zein oinarrizko mekanismo apurtu ziren benetan nire konfigurazioan?

Nire ingurunea sistematikoki ikuskatu ondoren, nire eraikuntza hutsegiteen eta ingurunearen inkoherentziak gutxi gorabehera % 80aren arrazoi nagusiak identifikatu nituen:

  • Exekutatu denborako liburutegi gatazkatsuak: Microsoft Visual C++ Redistributable-ren hainbat bertsio elkarrekin bizi ziren bereizmen-ordena argirik gabe, eta DLL bilaketak huts egiten zituen jatorrizko moduluetan.
  • PATH kutsadura: Hamazazpi tresna bereiziek PATH sisteman sarrerak gehitu zizkioten denboran zehar, hainbatek elkarri itzaltzen eta instalazio-direktorio zaharkituak seinalatzen zituzten.
  • Proiektu-mailako ingurunearen isolamendu falta: Unix-en lan-fluxuak ez bezala, non .env fitxategiak eta shell zuzentarauak lehen mailako herritarrak diren, Windows-ek ez zuen mekanismo koherenterik ingurune-aldagaiak proiektu batera iristeko hirugarrenen tresnarik gabe.
  • Git lerro amaierako gatazkak: Windows jatorrizko tresnen eta plataforma anitzeko liburutegien arteko CRLF/LF maneiamendu mistoak blokeo-fitxategietan egiaztapen-sumak huts egitea eragin zuen, instalazio erreproduzigarriak hautsiz.
  • Esteka sinbolikoetarako baimen-eskakizun handituak: pakete-kudeatzaile askok esteka sinbolikoetan oinarritzen dira, Windows-en Garatzaile-modua edo administratzaile-pribilegioak behar dituztenak, enpresa-makina gehienek politikaren arabera desgaitzen duten ezarpena.

"Arazoa ez zen inoiz Windows-ek ezin zuela jatorrizko garapena egin; inork ez zuela tresna konbinazio egokirik muntatu nahita konfigurazioarekin. Zure garapen-ingurunea arkitektura erabakiak behar dituen produktu gisa tratatzen duzunean, dena aldatzen da."

Nola konpondu dut benetan Windows Native Development Workflow?

Konponketa ez zen tresna bakarra edo script magiko bat. Ingurua nola muntatu, hedatu eta mantentzen den nahita berriro arkitektura bat izan zen. Oinarria sistema eragilearen mailan Garatzaile modua gaitzen hasten da, esteka sinbolikoen sorrera kotarik gabe desblokeatzeko. Hortik aurrera, Scoop-ek instalatzaileen ad-hoc nahasketa ordezkatzen du, oso-osorik erabiltzailearen espazioan funtzionatzen duelako, manifestuak bertsio-kontrolean gordetzen dituelako eta shim kudeaketa garbi kudeatzen duelako.

Node.js proiektuetarako zehazki, bertsioak kudeatzeko Volta-ra aldatuz gero, npm globalki eragiten zuten EPERM akatsak ezabatu ziren. Voltak dei bitarrak atzematen ditu shim geruzan eta proiektu bakoitzeko exekuzio-denborako bertsio zuzena ebazten du sistemaren PATH ukitu gabe. package.json konprometitutako .volta gako batekin konbinatuta, makinen arteko ingurunearen parekotasuna automatikoa bihurtzen da, nahitaezkoa izan beharrean.

Azken piezak proiektu-mailako .env diziplina bat hartzen zuen, direnv-k Windows-era eramandako Scoop bidez - proiektu bakoitzak bere ingurune-testuingurua duela ziurtatuz, direktorioaren sarreran aktibatzen dena eta irtetean garbitzen dena. PATH kutsadura hamazazpi sarreratik lau izatera jaitsi da astebetean.

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

Zer erakusten du analisi konparatiboak jatorrizko eta WSL2 ikuspegiei buruz?

WSL2 benetan bikaina da Linux inplementazio-inguruneetara zuzendutako garapen-fluxuetarako. Zure ekoizpen-zerbitzariak Ubuntu exekutatzen badu eta zure taldea Linux tresnekin eroso badago, WSL2-k marruskadura kentzen du. Hala ere, bere arazo-kategoria sartzen du: fitxategi-sistemaren errendimendua Windows-Linux mugan zehar motelagoa da I/O-ko eragiketetarako, mugaz gaindiko arazketa konfigurazio gehigarria behar da eta jatorrizko Windows GUI aplikazioak WSL2-ren esparrutik kanpo geratzen dira guztiz.

Windows-en jatorrizko aplikazioak, Electron-en oinarritutako mahaigaineko softwarea edo Windows APIekin integratu behar den edozein tresna-katea eraikitzen duten taldeentzat, jatorrizko garapena ez da hautazkoa, eta hemen deskribatutako lan-fluxu finkoak WSL2 gainditzen du exekutatu ditudan erreferentzia guztietan. Tamaina ertaineko Electron proiektu baten eraikitze-denborak % 34 jaitsi ziren WSL2-tik fitxategi-sistema gurutzatutako I/O-rekin batera, behar bezala egokitutako menpekotasuneko konfigurazio guztiz natibo batera.

Nola kudeatu ditzakezu garatzaileen produktibitatea eta negozio-eragiketak elkarrekin?

Zure garapen-ingurune egokia lortzea ekuazioaren erdia baino ez da. Software-enpresa edo garapen-denda bat zuzentzeak bezeroen kudeaketa, proiektuen kanalizazioak, taldeen lan-fluxuak, fakturazioa eta marketina koordinatzea eskatzen du, eta garatzaile gehienek elkarren artean sekula hitz egiten ez duten deskonektatutako bost edo sei SaaS tresnetatik elkartzen dute.

Hau da Mewayz konpontzeko eraikitakoa. 207 modulu integratuekin CRM eta proiektuen kudeaketatik edukien planifikaziora eta merkataritza elektronikora bitarteko guztia estaltzen dutenekin, Mewayz-ek negozio-sistema eragile oso gisa funtzionatzen du, puntu bakarreko beste irtenbide bat baino. Une honetan 138.000 erabiltzaile baino gehiagok egiten dituzte beren eragiketak plataforman hilean 19 $-tik aurrerako planekin, talde gehienek Notion, HubSpot, Trello eta FreshBooks bereizita lotzen gastatzen dutenaren zati bat.

Ohiko galderak

Merezi al du Windows jatorrizko garapena konpontzea edo WSL2 erabili behar dut denetarako?

Zure xede-plataformaren araberakoa da guztiz. WSL2 aukera egokia da Linux-en inplementatzen ari zarenean eta ingurunearen noraeza gutxitu nahi duzunean. Native Windows garapena aukera egokia da Windows aplikazioak eraikitzen ari zarenean, Windows-eko API espezifikoekin lan egiten duzunean edo tresna-kateak eraikitzeko fitxategi-sistemaren errendimendu maximoa behar duzunean. Bi ikuspegiak ez dira elkarren artean esklusiboak: talde askok Windows-eko berezko tresnak erabiltzen dituzte eraikitzeko kanalizaziorako eta WSL2 Linux-en berariazko probak egiteko soilik.

Zein da nire Windows garatzaileen ingurunea hobetu duen aldaketarik handiena?

Garatzaile modua gaitzeak eta Scoop-era migratzeak paketeen kudeatzaile nagusi gisa izan zuen berehalako eragin handiena. Scoop-en erabiltzaile-espazioaren instalazio-ereduak nire inguruneko hutsegiteen %40 inguru eragiten zuten baimen-altxatze-arazoak ezabatu zituen, eta manifestuetan oinarritutako ikuspegiak ingurunearen erreplikazioa makinetan determinista bihurtu zuen lehen aldiz.

Nola laguntzen die Mewayz-ek garapen-taldeei eta software-enpresei zehazki?

Mewayz-ek garapen-taldeek normalean alde batera uzten duten geruza operatiboa finkatzen du mingarria izan arte. Bezeroen barneratzea, proiektuen esparrua, proposamenak sortzea, fakturazioa, talde-komunikazioa eta marketinaren automatizazioa plataforma bakar batean kudeatzen dira. Agentzia txikientzat eta garatzaile independenteentzat bereziki, SaaS harpidetza anitz eta tresnen arteko eskuzko datu-transferentziak kudeatzeko gastuak ezabatzeak denbora handia askatzen du benetako garapen-lanean zentratzeko.


Windows jatorrizko garapena ez dago funtsean hautsi; ez zitzaion inoiz merezi zuen nahita konfigurazioa eman. Tresna-katearen arkitektura egokiarekin, produkzio-softwarerako benetako ingurune gai da. Eta zure garapen-ingurunea egonkorra denean, hurrengo botila-lepoa eragiketak dira beti. Hasi Mewayz-en proba gaur eta ekarri zure garapen-ingurunera ekarri berri duzun negozio-geruzari nahitako egitura bera.