Hacker News

Vodada ƒe payloads le Zig

Vodada ƒe payloads le Zig Vodada ŋuti numekuku blibo sia na wodzro eƒe akpa veviwo me tsitotsito kple gɔmesese siwo keke ta wu. Nu Vevi Siwo Ŋu Wòalé Be Na Numedzodzroa ku ɖe: Mɔnu veviwo kple dɔwɔwɔwo Nyateƒe-...

12 min read Via srcreigh.ca

Mewayz Team

Editorial Team

Hacker News

Vodada ƒe Agbawo le Zig me: Alesi Zig Gbugbɔ Bu Vodadawo Gbɔkpɔkpɔ Ŋu na Dɔwɔɖoɖo siwo Le Dedie Wu ƒe Kɔda

Vodada ƒe fetu siwo le Zig me ɖea mɔ na dɔwɔlawo be woatsɔ nya siwo ƒo xlãe ƒe nyatakakawo akpe ɖe vodada ƒe asixɔxɔwo ŋu, si kpɔa kuxi si nɔ anyi ɣeyiɣi didi aɖe si nye be woabu dɔléle ŋuti nyatakakawo ne wole vodadawo kakam to yɔyɔ ƒe ƒuƒoƒo me gbɔ. To vovo na vodada ƒe kɔda xoxowo alo kpekpewo ƒe vovototodedeameme ƒe ɖoɖowo, Zig ƒe mɔnu naa vodada ƒe nɔnɔme si woɖo, si woƒo ƒu-ɣeyiɣi-lé ŋku ɖe eŋu evɔ màtsɔ dɔwɔwɔ alo nuxexlẽ asa vɔe o.

Nukae Nye Vodada ƒe Agbawo Kple Nukatae Zig Hiã Wo?

Wotu Zig ƒe vodadawo gbɔkpɔkpɔ ƒe kpɔɖeŋu ɖe vodada ƒe habɔbɔwo dzi, si nye ƒomevi ƒe ɖoɖo si zi yɔlawo dzi be woalɔ̃ ɖe vodadawo dzi ahakpɔ wo gbɔ tẽ. Vodada ƒe ƒuƒoƒo ƒoa tɔtrɔgbɔ ƒomevi si sɔ kple vodada ƒe ƒuƒoƒo, si woŋlɔ be ErrorSet!ReturnType. Ne dɔwɔwɔ aɖe do kpo nu la, etrɔa vodada ƒe asixɔxɔ tso ƒuƒoƒoa me. Kuxia le ŋutinya me enye be vodada ƒe dzesi ƒuƒluwo metsɔa nya siwo ƒo xlãe bubu aɖeke kpena ɖe eŋu o: ènya nuka gblẽ, gake mènya afika, nukata, alo nya tɔxɛ si wotsɔ de eme o.

Vodada ƒe fetuwo kpɔa dometsotso sia gbɔ. To nyatakaka kpeɖeŋutɔ ƒoƒo ƒu ɖe vodada ƒe dzesi ŋu me la, dɔwɔlawo ate ŋu akaka dɔlélewo didi siwo ŋu gɔmesese le evɔ womawɔ xexeame katã ƒe nɔnɔme, thread-local storage, alo out-parameters ŋudɔ o. Mɔnu sia nana Zig ƒe zero-cost abstraction xexemenunya nɔa anyi elabena ne vodada aɖe dzɔ ŋutɔŋutɔ ko hafi womaa payloads eye wotsɔa wo yɔa wo me, ke menye le dzidzedzekpɔkpɔ ƒe mɔ dzi o.

Aleke Vodada ƒe Agbawo Sɔ Kple Vodadawo Dzikpɔkpɔ le Gbe Bubuwo Me?

Zig ƒe aɖaŋu tiatia gɔmesese va kɔna wu ne ètsɔ eƒe vodada ƒe kpɔɖeŋu sɔ kple mɔnu bubu siwo le ɖoɖowo ƒe ɖoɖowɔɖi ƒe lãwo ƒe agbenɔnɔ me:

    ƒe nyawo
  • C ƒe errno kple return codes: Wodzraa vodada ƒe nɔnɔme ɖo ɖe xexeame katã ƒe tɔtrɔɖenu me, si wɔe be wònye thread-unsafe tohehe nyuie manɔmee. Nuƒoƒoƒula ƒe sedziwɔwɔ aɖeke meli o, eyata woŋea aɖaba ƒua vodadawo dzi le mɔ si mehiã o nu.
  • C++ ƒe vovototowo: Nusiwo to vovo tsɔa agba siwo me viɖe le le dzɔdzɔme nu, gake wotoa dziɖuɖu ƒe sisi ɣaɣla vɛ, xea mɔ na nyonyo aɖewo, eye wotsɔa binary size kpena ɖe eŋu. Embedded kple game development team geɖewo wɔa wo nuwɔametɔwo keŋkeŋ.
  • Rust ƒe Emetsonu: Rust ƒe mɔnu ye nye ƒometɔ si te ɖe eŋu wu. Vodada enum siwo wowɔ ɖe ɖoɖo nu kple nyatakaka siwo do ƒome kplii la kpɔa ŋusẽ ma tɔgbe, gake Zig ƒe vodada ƒe hatsotsowo le bɔbɔe wu eye wowɔa ɖeka kple gbea ƒe try kple catch nya veviwo le nyagɔmeɖegbalẽ ƒe ɖoɖo nu.
  • Go ƒe tɔtrɔ geɖe (asixɔxɔ, vodada): Go dea dzi ƒo be woaxatsa vodadawo kple fmt.Errorf alo sentinel ƒomeviwo, gake nuƒoƒoƒula mezi edzi o. Vodadawo nye ŋgɔdonya ƒe asixɔxɔ siwo nɔa anyi edziedzi siwo me womekpɔa nuƒoƒoƒu-ɣeyiɣi ƒe nuwuwu ƒe dodokpɔ aɖeke o.
  • Zig ƒe vodadawo ƒe ɖekawɔwɔ kple payloads: Zig xɔa titina, enaa nuƒoƒoƒula-zidziɖedzi ƒe dɔwɔwɔ, zero-cost le dzidzedzekpɔkpɔ mɔ dzi, kple ŋutete be woatsɔ structured context akpe ɖe heap allocation manɔmee ne wozãe kple stack-scoped data.
ƒe nyawo |

Aleke Dɔwɔwɔa Le Nyateƒee Le Dɔwɔwɔ Me?

Le Zig code ŋutɔŋutɔ me la, vodada ƒe viɖewo dzena to kpɔɖeŋu si me dɔwɔwɔwo trɔa struct alo tagged union si xatsa vodada ƒe hatsotso kple kpeɖeŋutɔ nyatakaka siaa. Bu file parser si hiã be wòagblɔ menye "invalid format" ɖeɖeko o ke boŋ byte offset kple token si womele mɔ kpɔm na o si wodo goe. Le esi teƒe be nàge ɖe stderr me alo aɣla nyatakakawo ɖe axadzimɔ aɖe me la, dɔwɔwɔa trɔa payload struct si me offset, token set si wokpɔ mɔ na, kple byte ŋutɔŋutɔ siwo wokpɔ le.

Nya vevi try kaka vodada siawo siwo wodo ŋusẽe ɖe yɔyɔ ƒe kɔsɔkɔsɔa dzi le eɖokui si, eye le dziƒoxɔdzikpɔla la, àteŋu awɔ kpɔɖeŋu-sɔsɔ le vodada ƒe dzesi dzi eye nàɖe payload la hena nuŋlɔɖi, ɖeɖefia, alo gbugbɔgaxɔ ƒe susu. Esia na be Zig codebases te ŋu ɖɔa vodadawo ɖo wòɖe dzesi elabena vodadamɔ ɖesiaɖe tsɔa eya ŋutɔ ƒe forensic trail.

ƒe nyawo

Key Insight: Viɖe si kpɔa ŋusẽ ɖe vodada ƒe fetu dzi wu menye dɔwɔwɔ le dɔwɔwɔ me o; enye sidzedze ƒe nuwɔna. Ne vodada ɖesiaɖe tsɔ eƒe nya siwo ƒo xlãe la, dɔwɔlawo zãa ɣeyiɣi ʋɛ aɖewo tsɔ gbugbɔa kpododonuwo gbugbɔna wɔna eye wozãa ɣeyiɣi geɖe tsɔ ɖɔa wo ɖo. Vodada ƒe fetuwo trɔa "nane gblẽ" wòzua "nu tɔxɛ sia gblẽ le afisia, kple nyawo tsɔtsɔ de eme siawo," si mua vodadawo ɖeɖeɖa ƒe tsatsam tso gaƒoƒo yi aɖabaƒoƒo me.

💡 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 →
ƒe nyawo

Nukae Nye Xexeame Ŋutɔŋutɔ ƒe Gɔmesese Na Nuwɔwɔ ƒe Dɔwɔɖoɖowo?

Akpa siwo xɔ Zig na nuwɔwɔ ƒe xɔtuɖoɖowo, tso network dɔwɔnawo dzi va ɖo embedded firmware dzi, ka nya ta be ŋgɔyiyi siwo woate ŋu adzidze le mean time to resolution (MTTR) me ne wozã vodada ƒe viɖewo le ɖoɖo nu. Kpɔɖeŋua dea dzi ƒo na amehehe si me dɔwɔwɔ ɖesiaɖe si ateŋu ado kpo nu la ŋlɔa alesi wòdo kpo nu kple sesẽ ma ke abe eƒe dzidzedzekpɔkpɔ ƒe nubabla ene.

Na habɔbɔ siwo le ɖoɖo sesẽwo dzi kpɔm la, esia ɖea dɔwɔwɔ ƒe nyateƒe si keke ta wu fiana: vodada ƒe nɔnɔme si woɖo ɖe ɖoɖo nu nye ŋusẽ ƒe dzidziɖedzi na kakaɖedzi ƒe mɔ̃ɖaŋu. Eɖanye be èle packet si mewɔ dɔ nyuie o yome tim to network stack me alo nèle ɖoɖowɔɖi ƒe vovototodedeameme ƒe kpododonu dim le dɔwɔwɔ ƒe pɔmpi me o, vovototo si le vodada ƒe kɔpi ƒuƒlu kple fetu si si faɛl ƒe mɔ, fli ƒe xexlẽdzesi, kple esi wokpɔ mɔ na dome schema nye vovototo si le aɖabaƒoƒo atɔ̃ ƒe ɖɔɖɔɖo kple gaƒoƒo ene ƒe numekuku dome.

Gɔmeɖose sia keke ta yi ŋgɔ wu ɖoɖowɔɖi ƒe gbegbɔgblɔwo. Nuɖoanyi ɖesiaɖe si akpe ɖe ŋuwò nàlé, akaka, eye nàwɔ nu ɖe nɔnɔme si woɖo ɖe ɖoɖo nu dzi ne nuwo meva yi nyuie o, tso vodada ƒe fetu siwo le kɔpi me dzi va ɖo dɔwɔwɔ ƒe dashboard siwo le asitsadɔwɔnuwo me dzi la ɖea kpododonu ƒe gazazã dzi kpɔtɔna ŋutɔ.

Nyabiase Siwo Wobiana Enuenu

Ðe vodada ƒe fetu siwo le Zig me la nye heap-allocated?

Menye kokoko o. Zig naa dɔwɔlawo kpɔa ŋusẽ ɖe mama ƒe aɖaŋu dzi. Payloads ateŋu anɔ stack la dzi ne woƒe agbenɔƒe ƒe didime le dɔwɔwɔ si li fifia nu alo woamae tẽ ne ehiã be woayi edzi anɔ yɔyɔ ƒe liƒowo dzi. Trɔtrɔ sia fia be èƒo asa na heap allocation si me kɔ si exception-based systems le C++ alo Java me zinɛ. Le dɔwɔwɔ-vevie mɔwo me la, stack-scoped payloads tsɔ zero allocation overhead kpena ɖe vodadamɔa ŋu.

Aleke vodada ƒe payloads wɔa dɔ kple Zig ƒe comptime ƒe nɔnɔmewo?

Zig ƒe nuƒoƒoƒu-ɣeyiɣi ƒe dɔwɔwɔ ƒe kpɔɖeŋu ɖe mɔ be woaɖo kpe vodada ƒe hatsotsowo kple woƒe fetu ƒomevi siwo do ƒome kplii dzi le nuƒoƒoƒuɣi. Nuƒoƒoƒula ateŋu aɖo kpe edzi be vodada ƒe dzesi ɖesiaɖe si le ƒuƒoƒo aɖe me la ƒe asiléƒe si sɔ eye be wogblẽ payload ƒomeviwo me nyuie le yɔyɔ teƒe ɖesiaɖe. Esia ɖea dɔwɔwɔ ƒe ɣeyiɣi ƒe nukunuwo ƒe hatsotso blibo aɖe ɖa le afisi wolé vodada aɖe le gake woɖe eƒe fetu la gɔme bubui alo woŋe aɖaba ƒu edzi, si nye nusi bɔ tso kpododonu le ɖoɖoezizi me le vodada ƒe ɖoɖo siwo woŋlɔ ɖe mɔ̃ dzi bɔbɔe me.

Ðe wòle be mazã vodada ƒe fetu na dɔwɔwɔ ɖesiaɖe si ateŋu ado kpo nua?

Zã payloads ne vodada ƒe nɔnɔme kpe ɖe yɔla ƒe gbugbɔgaxɔ alo vodadawo ɖeɖeɖa ŋu gɔmesesetɔe. Le dɔwɔwɔ bɔbɔe siwo me vodada ƒe ƒuƒoƒoa le sue eye wòɖea eɖokui me, abe mama ƒe kpododonu ene la, vodada ƒe dzesi ƒuƒlu sɔ gbɔ. Dzra payloads ɖo na dɔwɔwɔ siwo me kpododonu ƒe nɔnɔme nɔ te ɖe nyawo tsɔtsɔ de eme ƒe nɔnɔme dzi: parsing, validation, I/O with specific targets, alo protocol handling. Dɔwɔnu siwo mehiã o zazã fũ akpa tsɔa toɣliɖeɖe kpena ɖe eŋu evɔ menaa vodadawo ɖeɖeɖa ƒe ŋutete nyona ɖe edzi o.

Tu Dɔwɔɖoɖo Nyuitɔwo Kple Dɔwɔnu Nyuiwo

Eɖanye Zig ƒe dɔwɔna siwo te ŋu nɔa te ɖe nɔnɔme sesẽwo nu ŋlɔm alo nèle asitsadɔ sesẽwo dzi kpɔm o, dzidzedzekpɔkpɔ nɔ te ɖe ɖoɖo siwo woɖo ɖe ɖoɖo nu siwo ɖea nyatakaka nyuitɔwo ɖe go le ɣeyiɣi nyuitɔ dzi dzi. Mewayz tsɔ xexemenunya ma ke va asitsanyawo dzikpɔkpɔ me: 207 modules ƒokpli siwo wowɔ be woana wò ƒuƒoƒoa nawɔ ɖoɖo ɖe nɔnɔme si ƒo xlãe ŋu le dɔwɔwɔ ɖesiaɖe me, tso dɔa yometiti dzi va ɖo asisiwo ƒe kadodo dzi. Wɔ ɖeka kple ezãla 138,000 siwo tsɔ dɔwɔwɔ ƒe akɔntabubuwo ɖɔ li wo me kɔ. Dze wò dodokpɔ femaxee gɔme le app.mewayz.com eye nàkpɔ asitsatsa ƒe OS si wotu na ƒuƒoƒo siwo gbe yameʋuɖoɖo ŋkuagbãtɔe.

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