Python Ƒomevi Dzrola ƒe Sɔsɔ: Nugoe Ƒuƒlu ƒe Nutsotso
Nyaŋuɖoɖowo
Mewayz Team
Editorial Team
Nusita Nugoe Ƒuƒluwo Gblẽa Python Ƒomevi Dzesidelawo — Kple Nusi Nàte Ŋu Awɔ Tso Eŋu
Python ƒe ŋɔŋlɔdzesiwo ŋɔŋlɔ vivivi ƒe ɖoɖoa tsi ŋutɔ tso esime PEP 484 to type hints vɛ le ƒe 2015. Egbea la, ewɔla miliɔn geɖe ɖoa ŋu ɖe static type checkers ŋu be woalé vodadawo hafi woadze ewɔwɔ gɔme. Gake dzogoe aɖe li si menya kpɔna dzea sii bɔbɔe o, si tea ɖeɖi ame ŋu le agbalẽŋɔŋlɔ ƒe ɖoɖoa me si gakpɔtɔ klia mɔ̃ɖaŋudɔwɔla bibiwo gɔ̃ hã: ƒomevi kae le nugoe ƒuƒlu me? Ne èŋlɔ x = [] nuŋlɔɖi manɔmee la, ele be wò ŋɔŋlɔdzesiwo me dzodzrola nasusu — eye ɖaseɖigbalẽvi vovovowo asusui le mɔ vovovowo nu. Masɔmasɔ sia hea kuxi ŋutɔŋutɔwo vɛ na ƒuƒoƒo siwo léa be na codebase gãwo, afisi tɔtrɔ alo ƒomevi ƒe dodokpɔwɔlawo ƒoƒo ƒu ateŋu ado vodada alafa geɖe siwo womele mɔ kpɔm na o ɖe go le zã ɖeka me.
|Kuxi Vevitɔ: Nugoe ƒuƒluwo nye esiwo me mekɔ o le dzɔdzɔme nu
Bu Python ƒe fli sia si me afɔku mele o ŋu kpɔ: results = []. Ðe emetsonuwo nye ŋlɔɖi[int]a? ŋlɔɖi[str] aɖe? ŋkɔ [dict[str, Any]] aɖe? Ne nya siwo ƒo xlãe bubuwo mele eme o la, le nyateƒe me la, mɔ aɖeke meli si dzi woato anya o. Python ƒe dɔwɔwɔ metsɔ ɖeke le eme o — xexlẽdzesiwo nye heterogeneous le dzɔdzɔme nu — gake static type checkers hiã be woade concrete type na variable ɖesiaɖe be woawɔ woƒe dɔ. Esia hea masɔmasɔ vevi aɖe vɛ le Python ƒe ŋusẽ ƒe asitɔtrɔ kple kakaɖedzi siwo static analysis dzea agbagba be yeana dome.
Kuxia va kpena ɖe nyagɔmeɖegbalẽwo kple ƒuƒoƒo ŋu. Le nyateƒe me la, woɖea {} ƒuƒlu abe dict ene, ke menye set o, si tsɔa nyagɔmeɖegbalẽ ƒe vovototodedeameme kpena ɖe ƒomevi-dzidzenu ƒe vovototodedeameme ŋu. Eye nugoe siwo le atɔ me — bu defaultdict(list) alo results = {k: [] na k le safuiwo me} — ƒoa nutsotso ƒe mɔ̃wo ɖe woƒe seɖoƒewo. Type checker ɖesiaɖe to eya ŋutɔ ƒe heuristics vɛ, eye vovototoawo ɖe dzesi wu alesi developer akpa gãtɔ kpɔe dze sii.
Le nuwɔwɔ ƒe ɖoɖo siwo le dɔwɔwɔ ƒe agba ŋutɔŋutɔwo ŋudɔ wɔm — eɖanye CRM si kpɔa asisiwo ƒe nuŋlɔɖiwo gbɔ, invoicing module si wɔa line items, alo analytics pipeline si ƒoa metrics nu ƒu o — nugoe ƒuƒluwo dzena ɣesiaɣi abe gɔmedzedze ƒe ɖoɖowo ene. Woƒe ƒomeviwo xɔxɔ vodadatɔe mehea linter nuxlɔ̃amewo vɛ ko o; ateŋu atsyɔ nu gbegblẽ vavã siwo ƒua du toa dɔwɔwɔ me.
Nya ɣaɣla: Nutsotso si Wohe Ðe Edzi Kple Nusianu Si Me Womegblɔ O
Mypy, si nye Python ƒomeviwo me toto xoxotɔ kekeake eye woxɔe se wu, wɔa mɔnu si mebɔbɔ o vie ɖe nugoe ƒuƒluwo ŋu. Ne edo go x = [] le dɔwɔwɔ ƒe kekeme me la, edzea agbagba be yea he ƒomevi ƒe nyametsotso eye yeaƒo nya ta le element ƒomevi ŋu tso zazã si kplɔe ɖo me. Ne èŋlɔ x = [] eye x.append(42) kplɔe ɖo la, mypy aƒo nya ta be list[int]. "Ƒo ƒu" ƒe mɔnu sia wɔa dɔ nyuie nukutɔe na nya siwo le tẽ siwo me wotsɔa nugoe la yɔa teƒe ɖeka ma ke.
Ke hã, mypy ƒe nuwɔna trɔna ŋutɔ le nya siwo ƒo xlãe kple strictness ƒe ɖoɖowo nu. Le module scope (top-level code), alo ne wotsɔ nugoe la yi na dɔwɔwɔ bubu hafi woyɔe la, mypy trɔna yia list[Any] zi geɖe. Le --strict aflaga te la, esia hea vodada vɛ, gake le nɔnɔme gbãtɔ me la, etoa eme kpoo. Esia fia be ƒuƒoƒo siwo le mypy zãm mɔnu sesẽ aɖeke manɔmee ateŋu aƒo nugoe gbogbo aɖewo siwo woŋlɔ ɖe mɔ si me kɔ nu nu ƒu siwo wɔa dɔ abe sisi ƒe ʋuƒo ene tso ŋɔŋlɔdzesiwo ƒe ɖoɖoa me, aɖu eƒe taɖodzinu dzi.
Nuwɔna ɖeka si menya kpɔna dzea sii bɔbɔe o: mypy ƒe tɔtrɔ siwo do ŋgɔ na 0.990 aƒo nya ta ɣeaɖewoɣi be list[Unknown] le ememe eye emegbe woakeke ɖe enu ɖe list[Any] le dɔdasi me. Le ƒe 0.990 megbe la, wosẽ nutsotsoa me, gake tɔtrɔa gblẽ xexeame ŋutɔŋutɔ ƒe kɔdaɖoɖowo ƒe xexlẽme wɔnuku aɖe si nɔ ŋu ɖom ɖe mɔɖeɖe ƒe nuwɔna ŋu evɔ womenya o. Esia nye tanya si gbugbɔna — tɔtrɔwo ɖe nugoe ƒuƒlu ƒe nutsotso ŋu le type checker ƒe tɔtrɔ siwo gblẽa nu wu dome elabena kpɔɖeŋuawo le afisiafi ale gbegbe.
Pyright: Nutsotso sesẽ kple "Womenya o" Ƒomevi
Pyright, si Microsoft to vɛ eye wòna ŋusẽ Pylance le VS Code me la, xɔa xexemenunya ƒe nɔnɔme si to vovo kura. Le esi teƒe be pyright nagbugbɔ adze anyi le ɖoɖoezizi me ayi Any dzi la, edea vovototo Unknown (ƒomevi si womeɖo haɖe o) kple Any (si nye vovototodedeameme tẽ le ƒomevi me toto me) dome. Ne èŋlɔ x = [] le pyright ƒe nɔnɔme sesẽ me la, eƒoa nya ta be list[Unknown] eye wògblɔa dɔléle ŋuti nyatakaka, si zi dziwò be nàna nuŋlɔɖi.
Pyright hã nyea adã wu le narrowing within scope ŋu. Ne èŋlɔ be:
- ƒe nyawo
- x = [] kplɔe ɖo kple x.append("hello") — pyright ƒo nya ta be ŋlɔɖi[str]
- x = [] kplɔe ɖo kple x.append(1) emegbe x.append("hello") — pyright ƒo nya ta be list[int | str] ƒe nya
- x = [] wotsɔe yi na dɔwɔwɔ si le mɔ kpɔm na list[int] — pyright ƒo nya ta tso list[int] tso yɔyɔ-teƒe ƒe nɔnɔme me
- x = [] wogbugbɔ tso dɔwɔwɔ me si me tɔtrɔgbɔ ƒomevi ƒe nuŋlɔɖi mele o — pyright ka nya ta tso vodada ŋu tsɔ wu be wòasusu
Aɖaŋu eve ƒe nutsotso sia (si zãa zazã si kplɔe ɖo kple ƒomevi siwo wokpɔ mɔ na tso yɔyɔ teƒewo siaa) na pyright ɖe dzesi ŋutɔ be ede pɛpɛpɛ wu mypy na nugoe ƒuƒluwo. Asitsatsa la nye nyagbɔgblɔ: pyright ƒe strict mode flags abe 30-40% geɖe wu nya le unannotated codebase si bɔ dzi ne wotsɔe sɔ kple mypy ƒe strict mode, le numekuku si tso ʋuʋu ƒe nyatakaka geɖe siwo le ʋuʋu ɖi me nu. Le ƒuƒoƒo siwo le megbeɖoɖo sesẽwo tum — ne míagblɔe la, mɔ̃ si kpɔa modules 207 siwo do ƒome kple wo nɔewo siwo keke CRM, fetu, kple numekukuwo dzi — pyright ƒe sesẽ léa ŋgɔdonya ƒe masɔmasɔ siwo menya kpɔna dzea sii bɔbɔe o siwo nutsotso fafɛ ato.
Pytype kple Pyre: Mɔ siwo dzi womezɔna boo o
Google ƒe pytype la xɔa ɖewohĩ mɔnu si wɔa dɔ wu. Le esi teƒe be wòabia nuŋlɔɖiwo alo atrɔ ayi Any dzi la, pytype zãa wɔɖoɖo bliboa me dzodzro tsɔ léa ŋku ɖe alesi wozãa nugoe le dɔwɔwɔ ƒe liƒowo dzi ŋu. Ne èwɔ xexlẽdzesi ƒuƒlu le dɔwɔwɔ ɖeka me eye nètsɔe yi na bubu si tsɔ xexlẽdzesi blibowo kpee la, zi geɖe la, pytype ateŋu aƒo nya ta le list[int] me nuŋlɔɖi aɖeke kura manɔmee. Cross-function inference sia xɔ asi le akɔntabubu nu — pytype le blewu ŋutɔ wu mypy alo pyright le codebases gãwo dzi — gake ewɔa alakpa nyui ʋɛ aɖewo le code si womeŋlɔ ɖi o dzi.
Pytype hã to nukpɔsusu si nye "afã ƒomeviwo" vɛ na nugoe ƒuƒluwo. [] si wowɔ yeyee la xɔa ƒomevi ƒe akpa aɖe si wogbugbɔ trɔ asi le vivivi ne ɖaseɖigbalẽvi la do go zazã geɖe. Esia nye nu dzeani le susu me gake ateŋu ahe vodada ƒe gbedasi tɔtɔamewo vɛ ne womateŋu akpɔ akpa aɖe ƒe ƒomevi gbɔ bliboe o, abe ne nugoe ƒuƒlu aɖe sina to dɔwɔwɔ geɖewo me evɔ womeyɔe fũu gbeɖe o.
Meta ƒe dzodoƒe, le ɣeyiɣi sia me la, hews te ɖe mypy ƒe nuwɔna ŋu gake kple defaults sesẽtɔwo. Pyre wɔa nu ɖe x = [] ŋu abe list[unknown] ene eye wòbiaa nuŋlɔɖi le nya siwo ƒo xlãe akpa gãtɔ me. Afisi pyre to vovo le enye alesi wòwɔa nu ɖe nyagɔmeɖegbalẽ me nya ƒuƒlu siwo wozãna abe kwargs ene ŋu — si nye kpɔɖeŋu si bɔ le nyatakakadzraɖoƒe ƒe ɖoɖowo me. Pyre ƒe susu le nya tɔxɛwo me be wòaƒo nya ta tso nyagɔmeɖegbalẽ ƒomeviwo ŋu tso nya veviwo ƒe nyaʋiʋli ƒe nɔnɔmewo me, si ɖea nuŋlɔɖi ƒe agba dzi kpɔtɔna le ɖoɖowɔɖi-kpekpewo ƒe kɔdabasewo me. Esi wònye be egbegbe nyatakakadzraɖoƒe ƒe dɔwɔɖoɖo akpa gãtɔ lɔ nyagɔmeɖegbalẽ ɖeɖeɖa zazã vevie ɖe eme hena ɖoɖowɔwɔ kple biabiawo gbɔ kpɔkpɔ ta la, nuwɔna sia xea fe.
💡 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 →Xexeme Ŋusẽkpɔɖeamedzi Nyateƒetɔ: Ne Nutsotso ƒe Masɔmasɔ ɖu
Vovototo siwo le type checkers dome ateŋu adze abe sukudede ene vaseɖe esime nàkpɔ wo le production codebase me. Bu kpɔɖeŋu si bɔ le asitsatsa ƒe dɔwɔwɔwo me ŋu: nyatakaka ƒe ɖoɖo si xɔa amewo yɔ fũ le nɔnɔme nu la gɔmedzedze.
ƒe nyawoƒe nyawoNugoe ƒuƒlu siwo me afɔku le wu la menye esiwo ƒomevi checkers ƒe aflaga o — woawoe nye esiwo toa kpoo kple Any ƒomevi si wosusu, si ɖea mɔ na nyatakaka siwo mewɔ ɖeka o be woaƒo ƒu nuxlɔ̃ame manɔmee vaseɖe esime dɔwɔwɔ si le anyime la dze anyi le dɔwɔwɔɣi kple TypeError si manya wɔ kloe be woatrɔ ayi eƒe dzɔtsoƒe o.
Kpɔɖeŋu ŋutɔŋutɔ: ƒuƒoƒo aɖe si le fintech gɔmedzedze aɖe ka nya ta be yewozã ŋkeke etɔ̃ tsɔ ɖɔ nuwɔwɔ ƒe nya aɖe ɖo afisi woƒo nya ta be xexlẽdzesi ƒuƒlu, si wodze egɔme le fexexe ƒe dɔwɔwɔ ƒe dɔwɔwɔ me, nye list[Any] to mypy dzi. Woɖoe be Decimal nusiwo le xexlẽdzesiawo me na ga homewo, gake kɔdamɔ aɖe nɔ float ƒe asixɔxɔwo kpem ɖe eŋu boŋ. Mypy ƒe nutsotso si me mekɔ o la ɖe mɔ ɖe eŋu le ɖoɖoezizi me. Ne vodada siwo wowɔ le rounding me le float arithmetic me na vovototo si nye $0.01 le invoice 12,000 ƒe hatsotso aɖe me ko hafi vodadaa do mo ɖa. Ne ɖe wozã pyright le nɔnɔme sesẽ me, alo woŋlɔ nu tso xexlẽdzesi ƒuƒlu la ŋu ko be list[Decimal] la, anye ne wolé vodadaa le ŋgɔyiyiɣi.
| Nuŋɔŋlɔ ƒe amehehe sesẽ ƒo xlã nugoe ƒe gɔmedzedze nye mɔ̃ɖaŋudɔwɔwɔ "kuviawɔwɔ" mawo dometɔ ɖeka si xea mɔ na nuwɔwɔ ƒe nudzɔdzɔ dodzidzɔnamewo.Nuwɔna Nyuitɔ Kekeake na Ametakpɔkpɔ ƒe Agoe Gɔmedzedze
Eɖanye type checker ka kee wò ƒuƒoƒoa zã o, mɔnu ŋutɔŋutɔwo li siwo dzi nàto aɖe nugoe ƒuƒlu ƒe masɔmasɔ ɖa keŋkeŋ. Taɖodzinua enye be màɖo ŋu ɖe nutsotso ŋu gbeɖe na nugoe ƒuƒluwo o — na ƒomevi la nadze ƒã ale be wò kɔda nate ŋu atsɔe le ɖaseɖigbalẽviwo katã me eye wòanɔ dedie tso nutsotso ƒe nuwɔna ƒe tɔtrɔ le tɔtrɔwo dome.
- ƒe nyawo
- Ŋlɔ nugoe ƒuƒlu ƒe tɔtrɔwo ɣesiaɣi. Ŋlɔ emetsonuwo: list[int] = [] ɖe emetsonuwo = [] teƒe. Verbosity ƒe gazazã suea mele vevie o ne wotsɔe sɔ kple debugging time si wodzra ɖo. Nuwɔna ɖeka sia ɖea nugoe ƒuƒlu ƒe nutsotso ƒe nya siwo ade 80% ɖa.
- Zã dɔwɔƒe ƒe dɔwɔwɔwo na nugoe sesẽwo. Le cache = {} teƒe la, ŋlɔ dɔwɔwɔ abe def make_cache() -> dict[str, list[UserRecord]]: trɔ {}. Trɔtrɔ ƒomevi ƒe nuŋlɔɖi na be ƒomevi si woɖo la me mekɔ o eye wòŋlɔa eɖokui.
- Tia xɔtunu siwo woŋlɔ ɖe mɔ̃ dzi wu literals na ƒomevi siwo menye nu tsɛwo o. Ŋlɔ nu: set[int] = set() tsɔ wu be nàɖo ŋu ɖe set gɔmesese ƒe nutsotso ŋu. Le defaultdict kple Akɔntabubu gome la, na ƒomevi ƒe nɔnɔmetata ɣesiaɣi: xexlẽmewo: Xexlẽme[str] = Xexlẽdzesi().
- Trɔ asi le wò ƒomevidzidzenu ƒe nɔnɔme sesẽ ŋu na kɔda yeye. Mypy kple pyright siaa doa alɔ faɛl ɖesiaɖe alo agbalẽdzraɖoƒe ɖesiaɖe ƒe ɖoɖowɔwɔ. Na be nàlé ŋku ɖe module yeyewo ŋu vevie esime nèle domenyinu ƒe kɔpi ʋum vivivi. Esia xea mɔ na nugoe yeye siwo woŋlɔ ɖe mɔ si me kɔ nu ƒe ƒuƒoƒo.
- Tsɔ type checker tsɔtsɔ sɔ kple wò CI pipeline. Mypy kple pyright siaa ƒe duƒuƒu le wò codebase dzi léa inference divergence kaba. Ne kpɔɖeŋu aɖe to ɖaseɖigbalẽvi ɖeka ŋu gake edo kpo nu bubu la, enye dzesi be ƒomevi la me mekɔ tututu o.
Nɔnɔmetata Gãtɔ: Ŋlɔ Dzesidede Abe Ƒuƒoƒo ƒe Nuwɔna ene
Nu ƒuƒlu ƒe nutsotso nye kuxi gãtɔ ƒe nu sue aɖe mlɔeba le Python ƒe ƒomevi ƒe ɖoɖoa me: masɔmasɔ si le alesi wòanɔ bɔbɔe kple dedienɔnɔ dome. Python ƒe xexemenunya si nye "mí katã míenye ame tsitsi siwo lɔ̃ ɖe edzi" wɔa dɔ nyuie na kpɔɖeŋuwɔwɔ kple nuŋɔŋlɔwo, gake nuwɔwɔ ƒe ɖoɖo siwo subɔa zãla akpe geɖe hiã kakaɖedzi sesẽwo. Nyateƒe si wònye be ƒomeviwo dzikpɔla gã ene ƒe susu mewɔ ɖeka le nane si le vevie abe [] ƒe ƒomevi ene ŋu o la te gbe ɖe edzi be Python ŋɔŋlɔdzesiwo ƒe lãwo ƒe agbenɔnɔ ƒe ɖoɖoa gakpɔtɔ le tsitsim.
| woate ŋu atsɔ mɔ̃ aɖo kpe edzi. Aɖabaƒoƒo atɔ̃ siwo nèzã tsɔ ŋlɔ list[Invoice] ɖe [] teƒe la ana nàkpɔ gaƒoƒo geɖe le vodadawo ɖɔɖɔɖo me ne wò codebase dzidze.Esi PEP 696 (default type parameters) kple PEP 695 (type parameter syntax) yi edzi le ɖiɖim ɖe Python ƒe tɔtrɔ yeyewo me la, ergonomics si le ŋɔŋlɔdzesi tẽe me ayi edzi anɔ nyonyom ɖe edzi. Vovototo si le "annotated" kple "unnotated" Python dome la aɖiɖi. Gake vaseɖe gbemagbe la, nugoe ƒomevi siwo dze ƒã gakpɔtɔ nye nuwɔna siwo ƒe ROI kɔkɔ wu le Python dɔwɔla ƒe dɔwɔnuwo me la dometɔ ɖeka — nusɔsrɔ̃ sue aɖe si xea deme si woƒo ƒu ɖe module ɖesiaɖe, duƒuƒu ɖesiaɖe, kple nuwɔwɔ ƒe dɔwɔwɔ ɖesiaɖe me.
Tu Wò Dɔwɔƒe ƒe OS Egbea
Tso dɔwɔla siwo le wo ɖokui si dzi va ɖo dɔwɔƒewo dzi la, Mewayz naa ŋusẽ asitsaha 138,000+ kple modules 207 siwo wotsɔ wɔ ɖekae. Dze egɔme femaxee, do ŋgɔ ne ètsi.
Wɔ Akɔntabubu Femaxee →Nyabiase Siwo Wobiana Enuenu
Nukatae ŋɔŋlɔdzesiwo dzikpɔlawo mateŋu alɔ̃ ɖe xexlẽdzesi ƒuƒlu ƒe ƒomevi dzi o?
Ne èŋlɔ `x = []` la, ele be ƒomevi ƒe dodokpɔwɔla naƒo nya ta be ƒomevi aɖe si me aɖaŋuɖoɖo siwo me kɔ o. Dzesidela vovovowo zãa mɔnu vovovowo: ame aɖewo ƒoa nya ta be `list[Any]` (nusianu ƒe xexlẽdzesi), gake bubuwo ateŋu aƒo nya ta be ƒomevi aɖe si le tẽ wu gake mesɔ o abe `list[None]` ene. Xexeame katã ƒe dzidzenu ƒe anyimanɔmanɔ sia tae womelɔ̃ ɖe edzi o. Le dɔ siwo zãa ɖaseɖigbalẽvi geɖewo gome la, masɔmasɔ sia ateŋu anye taɖuame gã aɖe, si agbã numekuku le dɔwɔnu ɖeka me si toa bubu me.
Nukae nye mɔ bɔbɔetɔ si dzi woato aɖɔ nugoe ƒuƒlu ƒe vodadawo ɖo?
Egbɔkpɔnu si le tẽ wu enye be nàna ƒomevi ƒe nuŋlɔɖi si me kɔ. Le esi teƒe be nàŋlɔ `my_list = []` la, ŋlɔ `my_list: list[str] = []` be nàɖe gbeƒã ƒomevi si nèdi la tẽ. Esia ɖea nusiwo katã me mekɔ o ɖa na ƒomevi ƒe dodokpɔwɔla, si kpɔa egbɔ be nuwɔna si mewɔa tɔtrɔ o le dɔwɔnu vovovowo abe mypy, Pyright, kple Pyre ene me. Wokafu nuwɔna sia na nugoe ƒuƒlu ƒe gɔmedzedzewo katã be woaxe mɔ ɖe nutsotso ƒe vodadawo nu.
Aleke mawɔ akpɔ nugoe ƒuƒluwo gbɔ le klass ƒe gɔmesesewo me?
Esia nye nya si bɔ elabena nuŋlɔɖi siwo le klasswo me hiã be woawɔ dɔ tɔxɛ. Ele be nàzã `from __future__ import annotations` import alo `ClassVar` ƒe nuŋlɔɖi ne woɖoe be xexlẽdzesia nanye klass ƒe nɔnɔme. Le kpɔɖeŋu me, `klas NyeKlas: nye_ŋkɔ: KlasVar [ŋlɔɖi [str]] = []`. Esia manɔmee la, ƒomevi ƒe dodokpɔwɔla ateŋu aʋli vevie be yeaƒo nya ta nyuie le ƒomevi la ŋu, si ahe vodadawo vɛ.
Ðe dɔwɔnu aɖewo li siwo akpe ɖe ŋuwò nàkpɔ nuŋɔŋlɔ ƒe kuxi siawo gbɔ le dɔ gãwo mea?
Ẽ, type checkers deŋgɔwo abe Pyright (si naa ŋusẽ Pylance le VS Code me) nyo ŋutɔ le nutsotso sesẽwo gbɔ kpɔkpɔ me. Le codebase gãwo gome la, platforms abe Mewayz (si naa numekuku modules 207 ɖe $19/ɣleti nu) ateŋu ana type checking si de to wu, si mewɔa tɔtrɔ o eye wòakpe ɖe ŋuwò nàwɔ annotation practices dzi le wò team bliboa me, aɖe masɔmasɔ siwo ŋu woƒo nu tsoe le nyatia me dzi akpɔtɔ.
Try Mewayz Free
All-in-one platform for CRM, invoicing, projects, HR & more. No credit card required.
Get more articles like this
Weekly business tips and product updates. Free forever.
You're subscribed!
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 →Related articles
Hacker News
Mothers Defense (YC X26) Is Hiring in Austin
Mar 14, 2026
Hacker News
XML Is a Cheap DSL
Mar 14, 2026
Hacker News
Megadev: A Development Kit for the Sega Mega Drive and Mega CD Hardware
Mar 14, 2026
Hacker News
Mouser: An open source alternative to Logi-Plus mouse software
Mar 13, 2026
Hacker News
Hammerspoon
Mar 13, 2026
Hacker News
1M context is now generally available for Opus 4.6 and Sonnet 4.6
Mar 13, 2026
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