Hacker News

ʻO nā uku uku hewa ma Zig

ʻO nā uku uku hewa ma Zig Hāʻawi kēia ʻikepili piha o ka hewa i ka nānā kikoʻī o kāna mau ʻāpana kumu a me nā hopena ākea. Nā Wahi Koʻikoʻi Kūkū ka kūkākūkā ma: Nā mīkini kumu a me nā kaʻina hana ʻOiaʻiʻo-...

12 min read Via srcreigh.ca

Mewayz Team

Editorial Team

Hacker News

Uku Hapa ma Zig: Pehea e noʻonoʻo hou ai ʻo Zig i ka lawelawe ʻana i nā hewa no ka Code System Safer

E hiki i nā mea hoʻomohala ke hoʻopili i ka ʻikepili koʻikoʻi i nā koina hewa, e hoʻonā i ka pilikia lōʻihi o ka nalowale ʻana o ka ʻike diagnostic i ka wā e hoʻolaha ana i nā hewa ma o nā waihona kelepona. ʻAʻole like me nā code hewa kuʻuna a i ʻole nā ʻōnaehana hoʻokaʻawale kaumaha, hāʻawi ke ala a Zig iā ʻoe i ka pōʻaiapili hewa i hoʻonohonoho ʻia, hōʻuluʻulu ʻia-manawa me ka ʻole e hoʻolilo i ka hana a i ʻole ka heluhelu ʻana.

He aha nā uku uku hewa a no ke aha e pono ai iā Zig?

Kūkulu ʻia ke kumu hoʻohālike hoʻoponopono hewa a Zig a puni union hewa, kahi kūkulu ʻano-level e koi ai i ka poʻe kelepona e hoʻomaopopo a mālama pono i nā hewa. Hoʻohui ka hui hewa i kahi ʻano hoʻihoʻi maʻamau me kahi hoʻonohonoho hewa, i kākau ʻia ʻo ErrorSet!ReturnType. Ke hāʻule kahi hana, hoʻihoʻi ia i kahi helu kuhi mai ka hoʻonohonoho. ʻO ka paʻakikī i ka wā kahiko ʻo ka loaʻa ʻole o nā helu kuhi hewa ʻole he pōʻaiapili ʻē aʻe: ʻike ʻoe he aha hewa, akā ʻaʻole i hea, no ke aha, a i ʻole me kahi hoʻokomo kikoʻī.

E hoʻoponopono nā uku uku hewa i kēia āpau. Ma ka hoʻopili ʻana i ka ʻike hou aku ma ka ʻaoʻao o ka hōʻailona hewa, hiki i nā mea hoʻomohala ke hoʻolaha i nā diagnostics koʻikoʻi me ka ʻole o ka hoʻohana ʻana i ka mokuʻāina honua, ka waiho ʻana o ka thread-local, a i ʻole nā ​​​​parameters. Mālama kēia ʻano hana i ka manaʻo noʻonoʻo abstraction kumu kūʻai ʻole a Zig no ka mea e hoʻokaʻawale ʻia a hoʻonui ʻia nā uku i ka wā i kū maoli ai ka hewa, ʻaʻole ma ke ala kūleʻa.

Pehea e hoʻohālikelike ai nā Uku Hapa me ka lawelawe ʻana i nā hewa ma nā ʻōlelo ʻē aʻe?

E ʻoi aku ka akaka o ka hoʻomaopopo ʻana i nā koho hoʻolālā a Zig ke hoʻohālikelike ʻoe i kāna kumu hoʻohālike i nā mea ʻē aʻe i loko o ka ʻōnaehana hoʻolālā papahana:

  • C's errno and return codes: Ua mālama ʻia ka pōʻaiapili hewa i loko o kahi ʻano hoʻololi honua, ʻaʻole ia e palekana me ka ʻole o ke aʻo ʻana. ʻAʻohe mea nāna e hoʻokō, no laila, nānā ʻole ʻia nā hewa.
  • ʻokoʻa C++: Lawe nā ʻokoʻa i nā ukana waiwai ma ke ʻano maoli, akā hoʻolauna lākou i ke kahe mana huna, pale i kekahi mau hoʻonui ʻana, a hoʻohui i ka nui binary ma luna. Nui nā hui hoʻomohala pāʻani i hoʻopaʻa ʻia.
  • Ka hopena o Rust: ʻO ka hoʻokokoke ʻana o Rust ka pili pili loa. Loaʻa ka hopena like i nā enum hewa maʻamau me nā ʻikepili pili, akā ʻoi aku ka maʻalahi o nā hoʻonohonoho hewa a Zig a ua hui pū me nā huaʻōlelo try a me catch ma kahi pae syntactic.
  • Ka hoʻihoʻi nui ʻana o Go (waiwai, hewa): Paipai ʻo Go i ka uhi ʻana i nā hewa me fmt.Errorf a i ʻole nā ​​ʻano sentinel, akā ʻaʻole hoʻokō ka mea hoʻopili i ka lawelawe ʻana. ʻO nā hewa he mau waiwai maʻamau me ka nānā ʻole ʻana i ka pau ʻana o ka manawa.
  • ʻO nā hui hewa a Zig me nā ukana: Noho ʻo Zig i ka waena waena, hāʻawi i ka lawelawe ʻana i hoʻokō ʻia e ka mea hōʻuluʻulu, ke kumu kūʻai ʻole ma ke ala kūleʻa, a me ka hiki ke hoʻopili i ka pōʻaiapili i kūkulu ʻia me ka hoʻokaʻawale ʻole ʻana ke hoʻohana ʻia me ka ʻikepili i hoʻopaʻa ʻia.

Hōʻike kēia ʻano kikoʻī i kahi ʻano maʻalahi o ka hoʻolālā ʻōlelo: ke hui nei ka ʻoihana i ka paʻi ʻia ʻana a me ka hoʻokō hewa ʻana, a ʻo Zig e hoʻoikaika hou i kēlā palena ma o ka hoʻolilo ʻana i nā uku i mea hopohopo ergonomic papa mua me ka ʻole o ke koʻikoʻi i ke kumukūʻai o ka wā holo.

He aha ke ʻano o ka hoʻokō ʻana i ka hoʻomaʻamaʻa?

Ma ke code Zig kūpono, hōʻike ʻia nā uku hewa ma o ke ʻano kahi e hoʻihoʻi ai nā hana i kahi hui a i ʻole i hōʻailona ʻia e kāʻei ana i ka helu hewa a me ka ʻikepili hoʻohui. E noʻonoʻo i kahi parser faila e pono e hōʻike ʻaʻole "hōʻano kūpono ʻole" akā ʻo ka byte offset a me ka hōʻailona i manaʻo ʻole ʻia. Ma mua o ka hoʻopaʻa inoa ʻana i stderr a i ʻole ka waiho ʻana i nā kikoʻī ma kahi alahele ʻaoʻao, e hoʻihoʻi ka hana i kahi kūkulu uku e loaʻa ana ka offset, ka hoʻonohonoho hōʻailona i manaʻo ʻia, a me nā bytes maoli i loaʻa.

Ka try hua'ōlelo hoʻolaha i kēia mau hewa i hoʻonui ʻia i ke kaulahao kelepona, a ma ka luna hoʻokele kiʻekiʻe, hiki iā ʻoe ke hoʻohālikelike i ka hōʻailona hewa a unuhi i ka uku no ka hoʻopaʻa inoa ʻana, hōʻike, a i ʻole ka loiloi hoʻihoʻi. ʻO kēia ka mea e hiki ai ke hoʻopau i nā codebase Zig no ka mea, ʻo kēlā me kēia ala hewa e lawe ana i kona ala forensic ponoʻī.

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

ʻIke Koʻikoʻi: ʻO ka pōmaikaʻi ʻoi loa o ka hoʻouka hewa ʻana ʻaʻole ia ka hana manawa holo; he noonoo. Ke lawe ʻia kēlā me kēia hewa i kona pōʻaiapili, hoʻemi ka manawa o nā mea hoʻomohala e hana hou i nā hemahema a ʻoi aku ka manawa e hoʻoponopono ai. Hoʻololi nā ukana hewa i "ua hewa kekahi mea" i "ua hewa kēia mea kikoʻī ma ʻaneʻi, me kēia mau mea hoʻokomo," e hoʻohiolo ana i ka pōʻaiapili debug mai nā hola a i nā minuke.

He aha nā hopena o ka honua ma nā ʻōnaehana hana?

Nā pūʻulu e hoʻohana ana iā Zig no ka hoʻomohala ʻana, mai nā lawelawe pūnaewele a i ka firmware i hoʻokomo ʻia, e hōʻike i nā hoʻomaikaʻi ana i ka manawa i ka hoʻonā (MTTR) ke hoʻohana ʻia nā uku hewa. Paipai ke kumu i ka hoʻopaʻi ʻana i kēlā me kēia hana i hiki ʻole ke hōʻole i nā palapala pehea hiki ʻole ai me ka paʻakikī like me kāna ʻaelike kūleʻa.

No nā hui e hoʻokele ana i nā ʻōnaehana paʻakikī, hōʻike kēia i ka ʻoiaʻiʻo o ka hana ʻoi aku ka nui: ʻo ka pōʻaiapili hewa i kūkulu ʻia he mea hoʻonui ikaika no ka ʻenekinia hilinaʻi. Inā ʻoe e ʻimi nei i kahi pākeʻe hewa ʻole ma o ka waihona pūnaewele a i ʻole ke ʻike ʻana i kahi hāʻule ʻole o ka hoʻonohonoho ʻana i kahi paipu hoʻolālā, ʻo ka ʻokoʻa ma waena o kahi helu kuhi hewa ʻole a me kahi uku, a me ka ʻokoʻa ma waena o ke ala hoʻoponopono i manaʻo ʻia. ʻehā hola hoʻokolokolo.

Ma waho aʻe o nā ʻōlelo papahana. ʻO kēlā me kēia ʻōnaehana e kōkua iā ʻoe e hopu, hoʻolaha, a hana i ka pōʻaiapili i kūkulu ʻia ke hele hewa nā mea, mai ka hoʻouka hewa ʻana i ke code a hiki i nā dashboard hana i nā mea hana ʻoihana, e hōʻemi nui i ke kumukūʻai o ka hāʻule ʻole.

Nīnau pinepine

Ua hoʻokaʻawale ʻia nā ukana hewa ma Zig heap?

ʻAʻole pono. Hāʻawi ʻo Zig i nā mea hoʻomohala i ka mana ma luna o ka hoʻolālā hoʻokaʻawale. Hiki i nā uku uku ke noho ma ka waihona inā pili ko lākou ola i ka hana o kēia manawa a i ʻole e hoʻokaʻawale ʻia inā pono lākou e hoʻomau i nā palena kelepona. ʻO kēia maʻalahi ka mea e pale aku ai ʻoe i ka hoʻokaʻawale puʻupuʻu implicit i hoʻokomo ʻia nā ʻōnaehana kumu ʻokoʻa ma C++ a i ʻole Java. Ma nā ala koʻikoʻi o ka hana, hoʻohui nā ukana i hoʻopaʻa ʻia i ka hoʻopaʻa ʻana i ka ʻole o ka hoʻokaʻawale ʻana ma luna o ke ala hewa.

Pehea e launa pū ai nā ukana hewa me nā hiʻohiʻona o ka manawa hana o Zig?

Na Zig's compile-time execution model e 'ae i ka ho'opa'a 'ia 'ana o nā ho'onohonoho hewa a me ko lākou mau 'ano uku uku i ka manawa hui. Hiki i ka mea hōʻuluʻulu ke hōʻoia i kēlā me kēia hōʻailona hewa i loko o kahi hoʻonohonoho he mea hoʻoponopono kūpono a ua hoʻopau pololei ʻia nā ʻano uku uku ma kēlā me kēia kahua kelepona. Hoʻopau kēia i ka papa holoʻokoʻa o nā kahaha i ka wā holo kahi i loaʻa ai kahi hewa akā ua kuhi hewa ʻia a nānā ʻole ʻia kāna uku, kahi kumu maʻamau o ka hāʻule leo ʻole i nā ʻōnaehana kuhi hewa ʻole.

Pono au e hoʻohana i nā uku uku hewa no kēlā me kēia hana hiki ke hāʻule?

E hoʻohana i nā uku uku ke kōkua nui ka pōʻaiapili hewa i ka hoʻihoʻi ʻana a i ʻole ka hoʻopau ʻana o ka mea kelepona. No nā hana maʻalahi kahi liʻiliʻi o ka hoʻonohonoho hewa a wehewehe ponoʻī iā ia iho, e like me ka hāʻule ʻole ʻana, ua lawa ka hōʻailona hemahema. Hoʻokaʻawale i nā uku uku no nā hana i hilinaʻi ʻia ke ʻano hemahema i ke kūlana hoʻokomo: parsing, validation, I/O me nā pahuhopu kikoʻī, a i ʻole ka lawelawe ʻana i ka protocol. Hoʻonui ka leo me ka hoʻomaikaʻi ʻole i ka debuggability.

Kūkulu i nā ʻōnaehana ʻoi aku ka maikaʻi me nā mea hana pono

Ke kākau nei ʻoe i nā lawelawe Zig kūpaʻa a i ʻole ka hoʻokele ʻana i nā hana ʻoihana paʻakikī, pili ka kūleʻa i ka loaʻa ʻana o nā ʻōnaehana i kūkulu ʻia e hōʻike i ka ʻike kūpono i ka manawa kūpono. Hāʻawi ʻo Mewayz i kēlā manaʻo like i ka hoʻokele ʻoihana: 207 mau modules i hoʻohui ʻia i hoʻolālā ʻia e hāʻawi i kāu hui i ka pōʻaiapili i hoʻonohonoho ʻia ma kēlā me kēia kaʻina hana, mai ka hoʻopaʻa ʻana i ka papahana a i ka kamaʻilio ʻana o nā mea kūʻai aku. E hui pū me 138,000 mea hoʻohana i pani i ka hana kuhi me ka maopopo. E hoʻomaka i kāu hoʻāʻo manuahi ma app.mewayz.com a e ʻike i kahi OS ʻoihana i kūkulu ʻia no nā hui hōʻole e lele makapō.