Hacker News

ខ្ញុំបានជួសជុលការអភិវឌ្ឍន៍ដើមរបស់ Windows

ខ្ញុំបានជួសជុលការអភិវឌ្ឍន៍ដើមរបស់ Windows ការវិភាគដ៏ទូលំទូលាយនៃថេរនេះផ្តល់នូវការពិនិត្យលម្អិតនៃសមាសធាតុស្នូលរបស់វា និងផលប៉ះពាល់យ៉ាងទូលំទូលាយ។ តំបន់សំខាន់ៗនៃការផ្តោតអារម្មណ៍ ការពិភាក្សាផ្តោតលើ៖ យន្តការ និងដំណើរការស្នូល ...

1 min read Via marler8997.github.io

Mewayz Team

Editorial Team

Hacker News

ខ្ញុំបានជួសជុល Windows Native Development៖ ការវិភាគពេញលេញនៃអ្វីដែលពិតជាដំណើរការ

ការអភិវឌ្ឍន៍ដើមរបស់ Windows ត្រូវបានញាំញីដោយការបែកខ្ញែកនៃ toolchain ស្ថាននរកភាពអាស្រ័យ និងភាពមិនស៊ីសង្វាក់គ្នានៃបរិស្ថានអស់ជាច្រើនឆ្នាំ — ប៉ុន្តែបន្ទាប់ពីការធ្វើតេស្តជាច្រើនខែ ទីបំផុតខ្ញុំបានរកឃើញលំហូរការងារដែលលុបបំបាត់ភាពវឹកវរ។ មគ្គុទ្ទេសក៍នេះគ្របដណ្តប់យ៉ាងពិតប្រាកដនូវអ្វីដែលខូច អ្វីដែលខ្ញុំបានព្យាយាម និងការរៀបចំដែលឥឡូវនេះផ្តល់ថាមពលដល់ការផលិតរបស់ខ្ញុំដោយមិនមានដំណោះស្រាយ WSL តែមួយ។

ហេតុអ្វីបានជាការអភិវឌ្ឍន៍ដើមរបស់ Windows តែងតែជាសុបិន្តអាក្រក់បែបនេះ?

ចម្លើយដ៏ស្មោះត្រង់គឺថា Windows មិនដែលត្រូវបានរចនាជាមួយអ្នកអភិវឌ្ឍន៍ជាពលរដ្ឋចម្បងនោះទេ។ ប្រព័ន្ធដែលមានមូលដ្ឋានលើយូនីកបានដុតនំការគ្រប់គ្រងកញ្ចប់ ស្គ្រីបសែល និងការញែកបរិស្ថានចូលទៅក្នុង DNA របស់ពួកគេតាំងពីដំបូង។ វីនដូបានបិទបាំងអ្វីៗទាំងនេះអស់ជាច្រើនទសវត្សរ៍ ដោយបង្កើតភាពរញ៉េរញ៉ៃជាស្រទាប់នៃ PowerShell, CMD, Chocolatey, Winget, ជម្លោះពេលដំណើរការ MSVC និងគ្រោះមហន្តរាយអថេរ PATH ដែលអាចធ្វើអោយវិស្វករជាន់ខ្ពស់ធ្លាក់នៅពេលរសៀល។

រោគសញ្ញាគឺស៊ាំជាមួយនរណាម្នាក់ដែលបានធ្វើការក្នុងចន្លោះនេះ៖ កញ្ចប់ដំឡើងត្រឹមត្រូវនៅលើម៉ាស៊ីនមួយ ហើយមិនដំណើរការដោយស្ងៀមស្ងាត់នៅលើម៉ាស៊ីនផ្សេងទៀត បង្កើតឧបករណ៍យោងកំណែចងក្រងផ្សេងៗគ្នាអាស្រ័យលើបន្ទុកការងារ Visual Studio ដែលអ្នកបានដំឡើងចុងក្រោយ ហើយគម្រោង Node.js ដែលដំណើរការយ៉ាងល្អឥតខ្ចោះក្នុង WSL2 បោះចោលកំហុស EPERM សម្ងាត់នៅលើប្រព័ន្ធឯកសារដើម។ ទាំងនេះមិនមែនជាករណីគែមនោះទេ វាជាបទពិសោធន៍លំនាំដើមសម្រាប់អ្នកអភិវឌ្ឍន៍វីនដូភាគច្រើន។

តើយន្តការស្នូលអ្វីខ្លះត្រូវបានខូចនៅក្នុងការដំឡើងរបស់ខ្ញុំ?

បន្ទាប់​ពី​ធ្វើ​សវនកម្ម​បរិស្ថាន​របស់​ខ្ញុំ​ជា​ប្រព័ន្ធ ខ្ញុំ​បាន​រក​ឃើញ​មូលហេតុ​ឫសគល់​បី​ដែល​ទទួល​ខុស​ត្រូវ​ប្រហែល 80% នៃ​ការ​បរាជ័យ​ក្នុង​ការ​សាង​សង់​របស់​ខ្ញុំ និង​ភាព​មិន​ស៊ីសង្វាក់​នៃ​បរិស្ថាន៖

  • បណ្ណាល័យពេលដំណើរការមានជម្លោះ៖ កំណែជាច្រើននៃ Microsoft Visual C++ អាចចែកចាយឡើងវិញបានរួមរស់ជាមួយគ្នាដោយគ្មានលំដាប់ដំណោះស្រាយច្បាស់លាស់ ដែលបណ្តាលឱ្យមានការបរាជ័យក្នុងការស្វែងរក DLL នៅក្នុងម៉ូឌុលដើម។
  • PATH pollution៖ ឧបករណ៍ដាច់ដោយឡែកចំនួនដប់ប្រាំពីរបានបញ្ចូលធាតុបន្ថែមទៅប្រព័ន្ធ PATH ជាបន្តបន្ទាប់ ដោយមានស្រមោលជាច្រើនដាក់គ្នាទៅវិញទៅមក និងចង្អុលទៅថតការដំឡើងដែលជាប់គាំង។
  • កង្វះភាពឯកោនៃបរិស្ថានកម្រិតគម្រោង៖ មិនដូចលំហូរការងាររបស់យូនីក ដែលឯកសារ .env និងការណែនាំសែលជាពលរដ្ឋលំដាប់ទីមួយនោះ Windows មិនមានយន្តការជាប់លាប់ក្នុងការកំណត់អថេរបរិស្ថានចំពោះគម្រោងដោយគ្មានឧបករណ៍ភាគីទីបីទេ។
  • ជម្លោះបញ្ចប់បន្ទាត់ Git៖ ការដោះស្រាយ CRLF/LF ចម្រុះរវាងឧបករណ៍ Windows ដើម និងបណ្ណាល័យឆ្លងវេទិកាបានបណ្តាលឱ្យ checksums បរាជ័យលើឯកសារចាក់សោ ដោយបំបែកការដំឡើងដែលអាចផលិតឡើងវិញបាន។
  • តម្រូវការការអនុញ្ញាតកម្រិតខ្ពស់សម្រាប់ symlinks៖ អ្នកគ្រប់គ្រងកញ្ចប់ជាច្រើនពឹងផ្អែកលើតំណភ្ជាប់និមិត្តសញ្ញា ដែលនៅលើ Windows ទាមទារមុខងារអ្នកអភិវឌ្ឍន៍ ឬសិទ្ធិជាអ្នកគ្រប់គ្រង ដែលជាការកំណត់ម៉ាស៊ីនសហគ្រាសភាគច្រើនបិទដោយគោលការណ៍។

"បញ្ហា​មិន​ដែល​ថា Windows មិន​អាច​បង្កើត​ការ​អភិវឌ្ឍ​ដើម​បាន​ទេ នោះ​គឺ​ថា​គ្មាន​អ្នក​ណា​បាន​ផ្គុំ​ឧបករណ៍​ដែល​ត្រូវ​បាន​ផ្សំ​ដោយ​ការ​កំណត់​រចនាសម្ព័ន្ធ​ដោយ​ចេតនា។ នៅ​ពេល​ដែល​អ្នក​ចាត់​ទុក​បរិស្ថាន​អភិវឌ្ឍន៍​របស់​អ្នក​ជា​ផលិតផល​ដែល​ត្រូវ​ការ​ការ​សម្រេច​ចិត្ត​ស្ថាបត្យកម្ម អ្វីៗ​នឹង​ផ្លាស់​ប្តូរ។

តើ​ខ្ញុំ​ពិត​ជា​បាន​ជួសជុល​ដំណើរ​ការ​អភិវឌ្ឍន៍​ដើម​របស់ Windows ដោយ​របៀប​ណា?

ការជួសជុលមិនមែនជាឧបករណ៍តែមួយ ឬស្គ្រីបវេទមន្តទេ។ វាគឺជាស្ថាបត្យកម្មឡើងវិញដោយចេតនានៃរបៀបដែលបរិស្ថានត្រូវបានប្រមូលផ្តុំ វិសាលភាព និងថែរក្សា។ មូលដ្ឋានគ្រឹះចាប់ផ្តើមជាមួយនឹងការបើករបៀបអ្នកអភិវឌ្ឍន៍នៅកម្រិត OS ដើម្បីដោះសោការបង្កើត symlink ដោយគ្មានការកើនឡើង។ ពីទីនោះ Scoop ជំនួសកម្មវិធីដំឡើងដោយ ad-hoc ព្រោះវាដំណើរការទាំងស្រុងក្នុងទំហំអ្នកប្រើប្រាស់ រក្សាទុក manifests នៅក្នុងការគ្រប់គ្រងកំណែ និងគ្រប់គ្រង shim យ៉ាងស្អាត។

សម្រាប់គម្រោង Node.js ជាពិសេស ការប្តូរទៅ Volta សម្រាប់ការគ្រប់គ្រងកំណែបានលុបបំបាត់កំហុស EPERM ដែលញាំញី npm ទូទាំងពិភពលោក។ Volta ស្ទាក់​ចាប់​ការ​ហៅ​ទូរសព្ទ​គោល​ពីរ​នៅ​ស្រទាប់ shim និង​ដោះស្រាយ​កំណែ​ពេល​ដំណើរការ​ត្រឹមត្រូវ​ក្នុង​មួយ​គម្រោង​ដោយ​មិន​ចាំបាច់​ប៉ះ​ប្រព័ន្ធ PATH។ រួមបញ្ចូលជាមួយសោ .volta ដែលបានប្តេជ្ញាចិត្តនៅក្នុង package.json ភាពស្មើគ្នានៃបរិស្ថាននៅលើម៉ាស៊ីននឹងក្លាយទៅជាដោយស្វ័យប្រវត្តិជាជាងការប្រាថ្នា។

ផ្នែកចុងក្រោយគឺការទទួលយកវិន័យកម្រិតគម្រោង .env ដែលអនុវត្តដោយ direnv បញ្ជូនទៅកាន់ Windows តាមរយៈ Scoop — ធានាថារាល់គម្រោងទាំងអស់ផ្ទុកនូវបរិបទបរិស្ថានផ្ទាល់ខ្លួនដែលដំណើរការលើការចូលថត និងសម្អាតនៅពេលចេញ។ ការបំពុលរបស់ PATH បានធ្លាក់ចុះពីដប់ប្រាំពីរធាតុមក 4 ក្នុងរយៈពេលមួយសប្តាហ៍។

💡 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 vs. WSL2?

WSL2 គឺពិតជាល្អឥតខ្ចោះសម្រាប់លំហូរការងារអភិវឌ្ឍន៍ដែលកំណត់គោលដៅលើបរិស្ថាននៃការប្រើប្រាស់លីនុច។ ប្រសិនបើម៉ាស៊ីនមេផលិតកម្មរបស់អ្នកដំណើរការអ៊ូប៊ុនទូ ហើយក្រុមរបស់អ្នកមានផាសុកភាពជាមួយឧបករណ៍លីនុច WSL2 ដកការកកិតចេញ។ ទោះជាយ៉ាងណាក៏ដោយ វាណែនាំប្រភេទបញ្ហាផ្ទាល់ខ្លួនរបស់វា៖ ដំណើរការប្រព័ន្ធឯកសារឆ្លងកាត់ព្រំដែន Windows-Linux គឺយឺតជាងសម្រាប់ប្រតិបត្តិការ I/O-heavy ការកែកំហុសឆ្លងព្រំដែនទាមទារការដំឡើងបន្ថែម ហើយកម្មវិធី Windows GUI ដើមនៅតែស្ថិតនៅក្រៅវិសាលភាពរបស់ WSL2 ទាំងស្រុង។

សម្រាប់ក្រុមដែលបង្កើតកម្មវិធីដើមរបស់ Windows កម្មវិធីកុំព្យូទ័រលើតុដែលមានមូលដ្ឋានលើអេឡិចត្រុង ឬខ្សែសង្វាក់ឧបករណ៍ណាមួយដែលត្រូវតែរួមបញ្ចូលជាមួយ Windows APIs ការអភិវឌ្ឍន៍ដើមមិនមែនជាជម្រើសទេ ហើយលំហូរការងារថេរដែលបានពិពណ៌នានៅទីនេះមានប្រសិទ្ធភាពជាង WSL2 សម្រាប់ករណីប្រើប្រាស់ទាំងនោះនៅគ្រប់ស្តង់ដារដែលខ្ញុំបានដំណើរការ។ ពេលវេលាបង្កើតសម្រាប់គម្រោងអេឡិចត្រុងខ្នាតមធ្យមបានធ្លាក់ចុះ 34% នៅពេលផ្លាស់ប្តូរពី WSL2 ជាមួយប្រព័ន្ធឯកសារឆ្លង I/O ទៅជាការរៀបចំដើមទាំងស្រុងជាមួយនឹងភាពអាស្រ័យដែលមានវិសាលភាពត្រឹមត្រូវ។

តើអ្នកអាចគ្រប់គ្រងផលិតភាពរបស់អ្នកអភិវឌ្ឍន៍ និងប្រតិបត្តិការអាជីវកម្មរួមគ្នាដោយរបៀបណា?

ការទទួលបានបរិយាកាសអភិវឌ្ឍន៍របស់អ្នកឱ្យបានត្រឹមត្រូវគឺត្រឹមតែពាក់កណ្តាលនៃសមីការប៉ុណ្ណោះ។ ការដំណើរការអាជីវកម្មផ្នែកទន់ ឬហាងអភិវឌ្ឍន៍តម្រូវឱ្យមានការសម្របសម្រួលការគ្រប់គ្រងអតិថិជន បំពង់បង្ហូរគម្រោង លំហូរការងារជាក្រុម វិក្កយបត្រ និងទីផ្សារ ហើយអ្នកអភិវឌ្ឍន៍ភាគច្រើនធ្វើការរួមគ្នាពីឧបករណ៍ SaaS ចំនួនប្រាំ ឬប្រាំមួយដែលត្រូវបានផ្តាច់ ដែលមិនធ្លាប់និយាយជាមួយគ្នា។

នេះជាអ្វីដែល Mewayz ត្រូវបានបង្កើតឡើងដើម្បីដោះស្រាយ។ ជាមួយនឹងម៉ូឌុលរួមបញ្ចូលគ្នាចំនួន 207 ដែលគ្របដណ្តប់លើអ្វីៗគ្រប់យ៉ាងចាប់ពី CRM និងការគ្រប់គ្រងគម្រោង រហូតដល់ការកំណត់ពេលមាតិកា និងពាណិជ្ជកម្មអេឡិចត្រូនិក Mewayz មានមុខងារជាប្រព័ន្ធប្រតិបត្តិការអាជីវកម្មពេញលេញជាជាងដំណោះស្រាយចំណុចដាច់ឆ្ងាយផ្សេងទៀត។ បច្ចុប្បន្ននេះអ្នកប្រើប្រាស់ជាង 138,000 នាក់កំពុងដំណើរការប្រតិបត្តិការរបស់ពួកគេនៅលើវេទិកាតាមគម្រោងដែលចាប់ផ្តើមពី $19 ក្នុងមួយខែ — ប្រភាគនៃអ្វីដែលក្រុមភាគច្រើនចំណាយក្នុងការដេរភ្ជាប់ Notion, HubSpot, Trello និង FreshBooks ដាច់ដោយឡែកពីគ្នា។

សំណួរដែលគេសួរញឹកញាប់

តើ​វា​មាន​តម្លៃ​ក្នុង​ការ​ជួសជុល​ការ​អភិវឌ្ឍ​ដើម​របស់ Windows ឬ​ខ្ញុំ​គួរ​តែ​ប្រើ WSL2 សម្រាប់​អ្វី​គ្រប់​យ៉ាង?

វាអាស្រ័យទាំងស្រុងលើវេទិកាគោលដៅរបស់អ្នក។ WSL2 គឺជាជម្រើសដ៏ត្រឹមត្រូវនៅពេលអ្នកកំពុងដាក់ពង្រាយទៅលីនុច ហើយចង់កាត់បន្ថយការរសាត់នៃបរិស្ថាន។ ការអភិវឌ្ឍន៍ Windows ដើមគឺជាជម្រើសត្រឹមត្រូវ នៅពេលអ្នកកំពុងបង្កើតកម្មវិធី Windows ធ្វើការជាមួយ APIs ជាក់លាក់របស់ Windows ឬត្រូវការដំណើរការប្រព័ន្ធឯកសារអតិបរមាសម្រាប់ build toolchains។ វិធីសាស្រ្តទាំងពីរនេះមិនផ្តាច់មុខទៅវិញទៅមកទេ — ក្រុមជាច្រើនប្រើឧបករណ៍ Windows ដើមសម្រាប់បង្កើតបំពង់បង្ហូរប្រេងរបស់ពួកគេ និង WSL2 សម្រាប់តែការសាកល្បងលីនុចជាក់លាក់ប៉ុណ្ណោះ។

តើ​អ្វី​ទៅ​ជា​ការ​ផ្លាស់​ប្តូរ​ដ៏​ធំ​បំផុត​តែ​មួយ​ដែល​ធ្វើ​ឲ្យ​បរិស្ថាន​អ្នក​អភិវឌ្ឍន៍​វីនដូ​របស់​ខ្ញុំ​ប្រសើរ​ឡើង?

ការបើករបៀបអ្នកអភិវឌ្ឍន៍ និងការផ្ទេរទៅ Scoop ជាអ្នកគ្រប់គ្រងកញ្ចប់ចម្បងមានផលប៉ះពាល់ភ្លាមៗខ្ពស់បំផុត។ គំរូនៃការដំឡើងទំហំអ្នកប្រើប្រាស់របស់ Scoop បានលុបបំបាត់បញ្ហាការកើនឡើងនៃការអនុញ្ញាត ដែលបណ្តាលឱ្យប្រហែល 40% នៃការបរាជ័យបរិស្ថានរបស់ខ្ញុំ ហើយវិធីសាស្រ្តផ្អែកលើការបង្ហាញរបស់វាបានធ្វើឱ្យការចម្លងបរិស្ថានឆ្លងកាត់ម៉ាស៊ីនកំណត់ជាលើកដំបូង។

តើ Mewayz ជួយក្រុមអភិវឌ្ឍន៍ និងអាជីវកម្មផ្នែកទន់យ៉ាងដូចម្ដេច?

Mewayz បង្រួបបង្រួមស្រទាប់ប្រតិបត្តិការ ដែលក្រុមអភិវឌ្ឍន៍ជាធម្មតាមិនអើពើ រហូតដល់វាក្លាយជាការឈឺចាប់។ ដំណើរការអតិថិជន វិសាលភាពគម្រោង ការបង្កើតសំណើ វិក្កយបត្រ ទំនាក់ទំនងក្រុម និងស្វ័យប្រវត្តិកម្មទីផ្សារត្រូវបានគ្រប់គ្រងទាំងអស់នៅក្នុងវេទិកាតែមួយ។ សម្រាប់ទីភ្នាក់ងារតូចៗ និងអ្នកអភិវឌ្ឍន៍ឯករាជ្យ ជាពិសេស ការលុបបំបាត់ការចំណាយលើការគ្រប់គ្រងការជាវ SaaS ច្រើន និងការផ្ទេរទិន្នន័យដោយដៃរវាងឧបករណ៍ ផ្តល់ពេលវេលាដ៏សំខាន់ក្នុងការផ្តោតលើការងារអភិវឌ្ឍន៍ជាក់ស្តែង។

<ម៉ោង>

ការ​អភិវឌ្ឍ​ដើម​របស់ Windows មិន​ត្រូវ​បាន​ខូច​ជា​មូលដ្ឋាន​ទេ — វា​គ្រាន់​តែ​មិន​ដែល​បាន​ផ្តល់​ឱ្យ​នូវ​ការ​រៀបចំ​ដោយ​ចេតនា​ដែល​វា​សម​នឹង​ទទួល​បាន​។ ជាមួយនឹងស្ថាបត្យកម្ម toolchain ត្រឹមត្រូវ វាគឺជាបរិយាកាសដែលមានសមត្ថភាពពិតប្រាកដសម្រាប់កម្មវិធីផលិត។ ហើយនៅពេលដែលបរិយាកាសអភិវឌ្ឍន៍របស់អ្នកមានស្ថេរភាព ឧបសគ្គបន្ទាប់គឺតែងតែដំណើរការ។ ចាប់ផ្តើមការសាកល្បង 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