Ga si Wozãna Ðe Mɔfiame Mɔmakpɔmakpɔ Ŋu le Gbeɖuɖɔ Me | Mewayz Blog Skip to main content
Hacker News

Ga si Wozãna Ðe Mɔfiame Mɔmakpɔmakpɔ Ŋu le Gbeɖuɖɔ Me

Nyaŋuɖoɖowo

13 min read Via blog.sebastiansastre.co

Mewayz Team

Editorial Team

Hacker News
<ŋutilã>

Abstraction ƒe asi: Indirection gɔmesese le Rust me

Rust nye gbegbɔgblɔ si wotu ɖe ŋugbedodo sẽŋu aɖe dzi: zero-cost abstractions. Enaa dɔwɔlawo te ŋu ŋlɔa kɔpi si le ɖoƒe kɔkɔ, si le dedie, eye wòɖea nu me fiana evɔ womaxe dɔwɔwɔ ƒe tohehe le ewɔwɔɣi o. Xexemenunya siae nye nu vevitɔ le nusita Rust bi ɖe dɔwɔɖoɖowo ƒe ɖoɖowɔwɔ me, tso dɔwɔɖoɖowo dzi va ɖo fefewɔmɔ̃wo dzi. Ke hã, nukpɔsusu si nye "indirection" bɔbɔ nɔ mɔdodo ƒe tsatsam dodzidzɔname aɖe dzi le Rust ƒe aɖaŋuwɔwɔ me. Togbɔ be ele vevie zi geɖe be woate ŋu atrɔ ɖe nɔnɔmewo ŋu ahanɔ dedie hã la, menye ɣesiaɣie womexɔa ga aɖeke le mɔ gbegblẽ nu o, eye eŋudɔwɔwɔ le mɔ gbegblẽ nu ate ŋu agblẽ dɔwɔwɔ si tututu Rust xɔ ŋkɔ le la me le ɖoɖoezizi me. Le mɔ̃wo abe Mewayz, modular business OS afisi dɔwɔwɔ nyuie kple nunɔamesiwo zazã si woate ŋu agblɔ ɖi le vevie wu ene la, gazazã sia gɔmesese menye sukudede o—ele vevie ŋutɔ na asitsatsa ƒe susuŋudɔwɔwɔ sesẽ, si woate ŋu atrɔ asi le.

Nukae nye Mɔmaɖemaɖeɖenuŋu kple Nukatae Míehiãe?

Indirection nye ɖoɖowɔɖi ƒe mɔnu si me nèyɔa nane menye tẽ o, ke boŋ to domenɔla ƒe ƒuƒoƒo aɖe dzi. Le Rust me la, nɔnɔme siwo bɔ wue nye nufiamɔ̃wo, nufiamewo, nɔnɔmenuwo, kple nufiamɔ̃ siwo me nunya le abe `Box`, `Rc`, alo `Arc`. Dɔwɔnu siawo hiã vevie ŋutɔ. Wonana be nuwɔna si trɔna, heap mama, nutɔnyenye si woama, kple nɔnɔme vovovowo ƒe nɔnɔme te ŋu wɔa dɔ. Le kpɔɖeŋu me, `Vec>` ɖe mɔ na wò be nàdzra ƒomevi vovovowo ƒe ƒuƒoƒo si katã wɔa `Draw` nɔnɔme, si nye kpɔɖeŋu si bɔ le UI ɖoɖowo alo plugin xɔtuɖaŋuwo me. Ne womewɔ tẽ o la, nuŋɔŋlɔ si te ŋu trɔna bɔbɔe, si nye modular code asesẽ ŋutɔ.

"Abstraction nye aɖaŋu si wotsɔ ɣla nusiwo sesẽ, eye indirection nye eƒe dɔwɔnu vevitɔ. Le Rust me la, kuxia enye be woawɔ dɔwɔnu sia ŋudɔ evɔ màɖe mɔ abstraction ƒe gazazã nazu runtime tax o."

Dɔwɔwɔ ƒe Adzɔ Ɣaɣla

Togbɔ be abstraction la nyea "zero-cost" zi geɖe le nusi nàte ŋu ate ŋu aŋlɔ kple asi gome hã la, indirection ŋutɔ toa tangible overhead vɛ. Gazazã sia dzena le nu vevi geɖewo me:

    ƒe nyawo
  • Memory Access (Cache Misses): Fiadzesi dzi wɔwɔ bia be nàti kpo ayi ŋkuɖodzi adrɛs bubu dzi. Esia ateŋu aɖu CPU cache prefetching dzi, si ana nuxexlẽ nayi blewu ŋutɔ ne wotsɔe sɔ kple nyatakaka siwo tsiã ɖe enu, siwo le fli me.
  • Dynamic Dispatch: Nɔnɔme nusiwo (`dyn Trait`) zãa virtual tables (vtables) tsɔ kpɔa mɔnu yɔyɔwo gbɔ le dɔwɔwɔɣi. Esia tsɔa gazazã sue aɖe kpena ɖe nufiamɔ̃ ƒe didi ŋu eye wòxea mɔ na nuƒoƒoƒula ƒe inlining, si ateŋu anye nyonyo wula gã aɖe na hot loops.
  • Heap Allocation: Ƒomeviwo abe `Box` fia heap allocation, si le blewu wu stack allocation le ɖoɖo nu eye wòtsɔa nyaƒoɖeamenu kpena ɖe allocator ŋu.
  • Indirection Chains: Indirection ƒe ƒuƒoƒo geɖe (e.g., `Box` si me `Rc` le yi struct si me `Vec` si nye trait objects le) ƒoa gazazã siawo nu ƒu, si wɔnɛ be nyatakakawo xɔxɔ ƒe mɔwo nɔa blewu eye womate ŋu agblɔe ɖi o.
ƒe nyawo |

Aɖaŋuwo na Ðeɖekpɔkpɔ le Wò Codebase me

Menye taɖodzinuae nye be woaɖe mɔmaɖemaɖeɖenuŋu ɖa o—ema manya wɔ alo didi hã o—ke boŋ be woatsɔe awɔ dɔe le nunya me. Mɔnu veviwoe nye esi:

Gbã la, di generics wu trait objects le afisi wòanya wɔ le. Generics zãa monomorphization, wowɔa code vovovo, si wowɔ wònyo wu na kɔnkrit ƒomevi ɖesiaɖe le nuƒoƒoƒuɣi. Esia léa static dispatch ɖe te eye wònaa inlining te ŋu wɔa dɔ. Evelia, xɔ aɖaŋuɖoɖo si wotu ɖe nyatakakawo dzi. Dzra nyatakakawo ɖo ɖe ƒuƒoƒo siwo tsiã ɖe wo nɔewo ŋu, siwo sɔ na cache (`Vec`) tsɔ wu be nàdzra aɖakawo ƒe ƒuƒoƒo siwo do ƒome kplii ɖo. Wɔ nyatakakawo ŋudɔ le hatsotsowo me, ke menye to kɔsɔkɔsɔ siwo me wowɔa kaƒoƒo ŋutɔŋutɔwo dzi o. Etɔ̃lia, profile madzudzɔmadzudzɔe. Zã dɔwɔnuwo abe `cargo flamegraph` tsɔ de dzesii nenye be mɔmaɖemaɖeɖenuŋue nye aŋetu ŋutɔŋutɔ; zi geɖe la, ga si woatsɔ awɔe la medea naneke kura o vaseɖe esime wòɖo mɔ vevi aɖe dzi.

Lean Modular System tutu kple Mewayz

Gɔmesese sue sia si ku ɖe gazazã ŋu tsɔ wu alesi woate ŋu atrɔ ɖe nɔnɔmewo ŋui la naa nyanya nuƒolanɔƒe abe Mewayz ene ƒe xɔtuɖaŋu tẽ. Ne wole module aɖe wɔm na Mewayz OS la, wodea dzi ƒo na dɔwɔlawo be woazã generics kple static dispatch na core, performance-sensitive interfaces—abe data transformation pipelines alo calculation engines ene. Le ɣeyiɣi sia me la, nɔnɔmenuwo kple agbatsɔtsɔ si trɔna gakpɔtɔ de blibo na plugin ɖoɖo siwo le ɖoƒe kɔkɔtɔ, siwo zãla ate ŋu akeke ɖe enu afisi asitɔtrɔ le nɔnɔmewo ŋu nye nudidi vevitɔ le. To tiatia siwo woɖo koŋ wɔ le mɔmaɖemaɖeɖenuŋu ŋu me la, Mewayz modules ate ŋu ana abstraction sesẽ si asitsalawo hiã evɔ womatsɔ deterministic dɔwɔwɔ si dzi woɖoa ŋu ɖo la asa vɔe o. Nusi dona tso emee nye modular business OS si le ablaɖeɖe me eye wòwɔa dɔ nyuie le dzɔdzɔme nu, afisi abstraction ƒe gazazã nyea gadede asi le nyanya me ɣesiaɣi, ke menye fetu ɣaɣla o.

💡 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

Nyabiase Siwo Wobiana Enuenu

Abstraction ƒe asi: Indirection gɔmesese le Rust me

Rust nye gbegbɔgblɔ si wotu ɖe ŋugbedodo sẽŋu aɖe dzi: zero-cost abstractions. Enaa dɔwɔlawo te ŋu ŋlɔa kɔpi si le ɖoƒe kɔkɔ, si le dedie, eye wòɖea nu me fiana evɔ womaxe dɔwɔwɔ ƒe tohehe le ewɔwɔɣi o. Xexemenunya siae nye nu vevitɔ le nusita Rust bi ɖe dɔwɔɖoɖowo ƒe ɖoɖowɔwɔ me, tso dɔwɔɖoɖowo dzi va ɖo fefewɔmɔ̃wo dzi. Ke hã, nukpɔsusu si nye "indirection" bɔbɔ nɔ mɔdodo ƒe tsatsam dodzidzɔname aɖe dzi le Rust ƒe aɖaŋuwɔwɔ me. Togbɔ be ele vevie zi geɖe be woate ŋu atrɔ ɖe nɔnɔmewo ŋu ahanɔ dedie hã la, menye ɣesiaɣie womexɔa ga aɖeke le mɔ gbegblẽ nu o, eye eŋudɔwɔwɔ le mɔ gbegblẽ nu ate ŋu agblẽ dɔwɔwɔ si tututu Rust xɔ ŋkɔ le la me le ɖoɖoezizi me. Le mɔ̃wo abe Mewayz, modular business OS afisi dɔwɔwɔ nyuie kple nunɔamesiwo zazã si woateŋu agblɔ ɖi le vevie wu ene la, gazazã sia gɔmesese menye sukudede o—ele vevie na asitsatsa ƒe susu sesẽ, si woateŋu akeke ɖe enu tutu.

Nukae Nye Mɔfiame Mɔmakpɔmakpɔ Kple Nukatae Míehiãe?

Indirection nye ɖoɖowɔɖi ƒe mɔnu si me nèyɔa nane menye tẽ o, ke boŋ to domenɔla ƒe ƒuƒoƒo aɖe dzi. Le Rust me la, nɔnɔme siwo bɔ wue nye nufiamɔ̃wo, nufiamewo, nɔnɔmenuwo, kple nufiamɔ̃ siwo me nunya le abe `Box`, `Rc`, alo `Arc`. Dɔwɔnu siawo hiã vevie ŋutɔ. Wonana be nuwɔna si trɔna, heap mama, nutɔnyenye si woama, kple nɔnɔme vovovowo ƒe nɔnɔme te ŋu wɔa dɔ. Le kpɔɖeŋu me, `Vec` ɖe mɔ na wò be nàdzra ƒomevi vovovowo ƒe ƒuƒoƒo si katã wɔa `Draw` nɔnɔme, si nye kpɔɖeŋu si bɔ le UI ɖoɖowo alo plugin xɔtuɖaŋuwo me. Ne womewɔ tẽ o la, nuŋɔŋlɔ si te ŋu trɔna bɔbɔe, si nye modular code asesẽ ŋutɔ.

Dɔwɔwɔ ƒe Adzɔ Ɣaɣla

Togbɔ be abstraction la nyea "zero-cost" zi geɖe le nusi nàte ŋu aŋlɔ kple asi gome hã la, indirection ŋutɔ toa tangible overhead vɛ. Gazazã sia dzena le nu vevi geɖewo me:

Aɖaŋuwo na Ðeɖekpɔkpɔ le Wò Codebase me

Taɖodzinua menye be woaɖe mɔmaɖemaɖeɖenuŋu ɖa o—ema manya wɔ alo didi hã o—ke boŋ be woawɔ eŋudɔ le nunya me. Mɔnu veviwoe nye esi:

Lean Modular System tutu kple Mewayz

Gɔmesese sue sia si ku ɖe gazazã ŋu tsɔ wu alesi woate ŋu atrɔ ɖe nɔnɔmewo ŋui la naa nyanya nuƒolanɔƒe abe Mewayz ene ƒe xɔtuɖaŋu tẽ. Ne wole module aɖe wɔm na Mewayz OS la, wodea dzi ƒo na dɔwɔlawo be woazã generics kple static dispatch na core, performance-sensitive interfaces—abe data transformation pipelines alo calculation engines. Le ɣeyiɣi sia me la, nɔnɔmenuwo kple agbatsɔtsɔ si trɔna gakpɔtɔ de blibo na plugin ɖoɖo siwo le ɖoƒe kɔkɔtɔ, siwo zãla ate ŋu akeke ɖe enu afisi asitɔtrɔ le nɔnɔmewo ŋu nye nudidi vevitɔ le. To tiatia siwo woɖo koŋ wɔ le mɔmaɖemaɖeɖenuŋu ŋu me la, Mewayz modules ate ŋu ana abstraction sesẽ si asitsalawo hiã evɔ womatsɔ deterministic dɔwɔwɔ si dzi woɖoa ŋu ɖo la asa vɔe o. Nusi dona tso emee nye modular business OS si le ablaɖeɖe me eye wòwɔa dɔ nyuie le dzɔdzɔme nu, afisi abstraction ƒe gazazã nyea gadede asi le nyanya me ɣesiaɣi, ke menye fetu ɣaɣla o.

Tsɔ Wò Dɔwɔƒea Naɖɔ Ðo kple Mewayz

Mewayz tsɔa asitsatsa ƒe modules 208 vaa mɔnu ɖeka dzi — CRM, fexexe, dɔa dzikpɔkpɔ, kple bubuwo. Wɔ ɖeka kple zãla 138,000+ siwo na woƒe dɔwɔwɔ le bɔbɔe.

Dze egɔme Femaxee Egbe →
ƒe nyawo

Try Mewayz Free

All-in-one platform for CRM, invoicing, projects, HR & more. No credit card required.

Start managing your business smarter today

Join 6,209+ businesses. Free forever plan · No credit card required.

Ready to put this into practice?

Join 6,209+ 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