Kutheni i-Go imbi kubaProgram be-Unsmart

Eli nqaku labhalwa njengempendulo kwinqaku elipapashwe ngaphambili inqaku le-antipodean.

Kutheni i-Go imbi kubaProgram be-Unsmart

Kule minyaka mibini idlulileyo kunye nangaphezulu bendisebenzisa iGo ukuphumeza iseva ekhethekileyo yeRADIUS enenkqubo yokuhlawula ephuhlisiwe. Ekuhambeni kwexesha, ndifunda ukuntsonkotha kolwimi ngokwalo. Iiprogram ngokwazo zilula kakhulu kwaye azikho injongo yeli nqaku, kodwa amava okusebenzisa i-Go ngokwayo ifanelwe amagama ambalwa ekukhuseleni kwayo. I-Go iya isiba lulwimi oluxhaphakileyo kwikhowudi enzulu, enokunyuka. Ulwimi lwenziwe nguGoogle, apho lusetyenziswa ngokusebenzayo. Ezantsi, ndicinga ngokunyanisekileyo ukuba uyilo lolwimi lweGo alubi kubadwelisi benkqubo abakrelekrele.

Yenzelwe abadwelisi benkqubo ababuthathaka?

Ababuthathaka bathetha ngeengxaki. Intetho eyomeleleyo malunga nemibono kunye namaphupha...

I-Go kulula kakhulu ukuyifunda, kulula kakhulu ukuba unokufunda ikhowudi ngaphandle koqeqesho kwaphela. Olu phawu lolwimi lusetyenziswa kwiinkampani ezininzi zehlabathi xa ikhowudi ifundwa kunye neengcali ezingekho ngundoqo (abaphathi, abathengi, njl.). Oku kulula kakhulu kwiindlela ezinje ngoPhuhliso oluqhutywayo loYilo.
Nditsho nabadwelisi benkqubo abaqalayo ukuvelisa ikhowudi efanelekileyo emva kweveki okanye ezimbini. Incwadi endifunde kuyo ithi β€œGo Programming” (kaMark Summerfield). Le ncwadi intle kakhulu, ichukumisa amacango amaninzi olwimi. Emva kweelwimi ezintsonkothileyo ngokungeyomfuneko njengeJava, i-PHP, ukungabikho komlingo kuyahlaziya. Kodwa kungekudala okanye kamva, abaninzi abadwelisi benkqubo abancinci banombono wokusebenzisa iindlela zakudala kwindawo entsha. Ngaba oku kuyimfuneko ngokwenene?

URob Pike (oyena mbono uphambili wolwimi) wenze ulwimi lwesiGo njengolwimi lwemizi-mveliso ekulula ukuluqonda nolusebenzayo ukulusebenzisa. Ulwimi lwenzelwe imveliso ephezulu kumaqela amakhulu kwaye akukho mathandabuzo ngalo. Abaninzi abadwelisi beprogram abaqalayo bakhalaza ukuba zininzi izinto abaziphosayo. Lo mnqweno wokulula wawusisigqibo esinengqiqo ngabaqulunqi bolwimi, kwaye ukuze siqonde ngokupheleleyo ukuba kutheni bekufuneka, kufuneka siqonde inkuthazo yabaphuhlisi kunye noko bebezama ukufezekisa kwi-Go.

Ngoko kutheni yenziwe yalula kangaka? Nazi iingcaphuno ezimbalwa ezivela kuRob Pike:

Inqaku eliphambili apha kukuba abadwelisi bethu benkqubo abangabaphandi. Bona, njengomthetho, bancinci kakhulu, beza kuthi emva kokufunda, mhlawumbi bafunda iJava, okanye iC / C ++, okanye iPython. Abakwazi ukuqonda ulwimi olukhulu, kodwa kwangaxeshanye sifuna ukuba benze isoftware elungileyo. Yiyo loo nto ulwimi kufuneka kube lula ukuluqonda nokufunda.

Ufanele ukuba uqhelene, athethe ngokufana noC. Abadwelisi benkqubo abasebenza kuGoogle baqala imisebenzi yabo kwangoko kwaye baqhelene kakhulu neelwimi zenkqubo, ngakumbi usapho lwakwaC. Imfuno yemveliso ekhawulezileyo kulwimi olutsha lokuprograma ithetha ukuba ulwimi akufuneki lube lukhulu kakhulu.

Amazwi obulumko, akunjalo?

I-Artifacts yoBulula

Ukulula yimeko efunekayo yobuhle. Lev Tolstoy.

Ukuyigcina ilula yenye yezona njongo zibalulekileyo kulo naluphi na uyilo. Njengoko uyazi, iprojekthi epheleleyo ayiyona iprojekthi apho kungekho nto yokongeza, kodwa enye apho kungekho nto yokususa. Abantu abaninzi bakholelwa ukuba ukuze ucombulule (okanye uveze) iingxaki ezintsonkothileyo, kufuneka isixhobo esintsonkothileyo. Nangona kunjalo, akunjalo. Makhe sithathe ulwimi lwePERL umzekelo. Iingcamango zolwimi zazikholelwa ukuba umdwebi wenkqubo kufuneka ubuncinane abe neendlela ezintathu ezahlukeneyo zokusombulula ingxaki enye. Iingcamango zolwimi lwesiGo zathatha indlela eyahlukileyo; zagqiba kwelokuba indlela enye, kodwa elunge ngokwenene, yayanele ukufikelela usukelo. Le ndlela inesiseko esinzulu: ekuphela kwendlela kulula ukufunda kwaye kunzima ukulibala.

Abantu abaninzi abafudukela kwamanye amazwe bakhalazela ukuba olu lwimi alunamagama anqabileyo. Ewe, oku kuyinyaniso, kodwa le yenye yeenzuzo eziphambili zolwimi. Ulwimi luqulathe ubuncinci bomlingo - ngoko ke akukho lwazi lunzulu lufunekayo ukufunda inkqubo. Ngokubhekiselele kwi-verbosity yekhowudi, oku akuyongxaki kwaphela. Inkqubo yeGolang ebhalwe kakuhle ifundeka ngokuthe nkqo, inolwakhiwo oluncinci okanye olungekhoyo. Ukongezelela, isantya sokufunda inkqubo ubuncinane sinomyalelo wobukhulu obukhulu kunesantya sokuyibhala. Ukuba ucinga ukuba yonke ikhowudi inofomatho olufanayo (lwenziwe kusetyenziswa umyalelo we-gofmt eyakhelwe-ngaphakathi), ngoko ukufunda imigca embalwa eyongezelelweyo akuyongxaki kwaphela.

Ayibonakali kakhulu

Ubugcisa abunyamezeli xa inkululeko yayo icinezelwe. Ukuchaneka akuloxanduva lwakhe.

Ngenxa yomnqweno wokulula, i-Go iswele ulwakhiwo oluthi kwezinye iilwimi luqondwe njengento yendalo ngabantu abayiqhelileyo. Ekuqaleni inokuba yinto engathandekiyo, kodwa emva koko uqaphela ukuba inkqubo ilula kakhulu kwaye ifundeka ngakumbi.

Umzekelo, into eluncedo yeconsole efunda i-stdin okanye ifayile esuka kwiingxoxo zomgca womyalelo inokujongeka ngolu hlobo:

package main

import (
    "bufio"
    "flag"
    "fmt"
    "log"
    "os"
)

func main() {

    flag.Parse()

    scanner := newScanner(flag.Args())

    var text string
    for scanner.Scan() {
        text += scanner.Text()
    }

    if err := scanner.Err(); err != nil {
        log.Fatal(err)
    }

    fmt.Println(text)
}

func newScanner(flags []string) *bufio.Scanner {
    if len(flags) == 0 {
        return bufio.NewScanner(os.Stdin)
    }

    file, err := os.Open(flags[0])

    if err != nil {
        log.Fatal(err)
    }

    return bufio.NewScanner(file)
}

Isisombululo kwingxaki efanayo kwi-D, nangona ikhangeleka imfutshane noko, akukho lula ukuyifunda

import std.stdio, std.array, std.conv;

void main(string[] args)
{
    try
    {
        auto source = args.length > 1 ? File(args[1], "r") : stdin;
        auto text   = source.byLine.join.to!(string);

        writeln(text);
    }
    catch (Exception ex)
    {
        writeln(ex.msg);
    }
}

Isihogo sokukopa

Umntu uthwala isihogo ngaphakathi kwakhe. UMartin Luther.

Abasaqalayo bahlala bekhalaza malunga neGo malunga nokungabikho kweegenerics. Ukusombulula lo mba, uninzi lwazo zisebenzisa ikhowudi yokukopa ngokuthe ngqo. Umzekelo, umsebenzi wokushwankathela uluhlu lwee-integers, eziya kuba ziingcali zikholelwa ukuba ukusebenza akunakuphunyezwa ngayo nayiphi na enye indlela ngaphandle kokuncamathisela ngokulula kuhlobo lwedatha nganye.

package main

import "fmt"

func int64Sum(list []int64) (uint64) {
    var result int64 = 0
    for x := 0; x < len(list); x++ {
        result += list[x]
    }
    return uint64(result)
}

func int32Sum(list []int32) (uint64) {
    var result int32 = 0
    for x := 0; x < len(list); x++ {
        result += list[x]
    }
    return uint64(result)
}

func main() {

    list32 := []int32{1, 2, 3, 4, 5}
    list64 := []int64{1, 2, 3, 4, 5}

    fmt.Println(int32Sum(list32))
    fmt.Println(int64Sum(list64))
}

Ulwimi luneendlela ezaneleyo zokuphumeza ezo zakhiwo. Umzekelo, inkqubo yegeneric iya kulunga.

package main

import "fmt"

func Eval32(list []int32, fn func(a, b int32)int32) int32 {
    var res int32
    for _, val := range list {
        res = fn(res, val)
    }
    return res
}

func int32Add(a, b int32) int32 {
    return a + b
}

func int32Sub(a, b int32) int32 {
    return a + b
}

func Eval64(list []int64, fn func(a, b int64)int64) int64 {
    var res int64
    for _, val := range list {
        res = fn(res, val)
    }
    return res
}

func int64Add(a, b int64) int64 {
    return a + b
}

func int64Sub(a, b int64) int64 {
    return a - b
}

func main() {

    list32 := []int32{1, 2, 3, 4, 5}
    list64 := []int64{1, 2, 3, 4, 5}

    fmt.Println(Eval32(list32, int32Add))
    fmt.Println(Eval64(list64, int64Add))
    fmt.Println(Eval64(list64, int64Sub))
}

Kwaye, nangona ikhowudi yethu iye yande kancinci kunemeko yangaphambili, iye yenziwa ngokubanzi. Ngoko ke, akuyi kuba nzima kuthi ukuphumeza yonke imisebenzi ye-arithmetic.

Abaninzi baya kuthi inkqubo kwi-D ibonakala imfutshane kakhulu, kwaye iya kuba ichanekile.

import std.stdio;
import std.algorithm;

void main(string[] args)
{
    [1, 2, 3, 4, 5].reduce!((a, b) => a + b).writeln;
}

Nangona kunjalo, imfutshane kuphela, kodwa ayichanekanga ngakumbi, ekubeni ukuphunyezwa kwe-D akuyihoyi ngokupheleleyo ingxaki yokuphatha iimpazamo.

Kubomi bokwenene, njengoko ubunzima bengqiqo bukhula, i-gap iyancipha ngokukhawuleza. Isikhewu sivaleka ngokukhawuleza ngakumbi xa ufuna ukwenza isenzo esingenakwenziwa kusetyenziswa abasebenzisi bolwimi abasemgangathweni.

Ngokumalunga nokugcinwa, ukwandiswa, kunye nokufundeka, ngokombono wam, ulwimi lweGo luyaphumelela, nangona lulahlekelwa kwi-verbosity.

Udweliso lwenkqubo ngokubanzi kwezinye iimeko lusinika izibonelelo ezingenakuphikiswa. Oku kuboniswa ngokucacileyo ngephakheji yokuhlela. Ngoko ke, ukuhlela naluphi na uluhlu, kufuneka nje siphumeze ujongano lohlobo.

import "sort"

type Names []string

func (ns Names) Len() int {
    return len(ns)
}

func (ns Names) Less(i, j int) bool {
    return ns[i] < ns[j]
}

func (ns Names) Swap(i, j int) {
    ns[i], ns[j] = ns[j], ns[i]
}

func main() {
    names := Names{"London", "Berlin", "Rim"}
    sort.Sort(names)
}

Ukuba uthatha nayiphi na iprojekthi yomthombo ovulekileyo kwaye usebenzise i-grep "i-interface{}" -R umyalelo, uya kubona ukuba kusetyenziswa kangakanani na ujongano oludidayo. Amaqabane asondeleleneyo aya kuthi ngoko nangoko yonke le nto ibangelwa kukunqongophala kwamayeza enziwe afana nalawo aveliswe ngabenzi. Noko ke, oku akusoloko kunjalo. Makhe sithathe i-DELPHI njengomzekelo. Ngaphandle kobukho bezi generics zifanayo, iqulethe uhlobo olukhethekileyo lwe-VARIANT kwimisebenzi eneentlobo zedata ezingafanelekanga. Ulwimi lwesiGo lwenza okufanayo.

Ukusuka kwinkanunu ukuya koongqatyana

Kwaye i-straitjacket kufuneka ilingane nobukhulu bokuphambana. UStanislav Lec.

Abalandeli abaninzi abagqithisayo banokubanga ukuba iGo inenye indlela yokwenza iigenerics- reflection. Kwaye baya kuba belungile ... kodwa kwiimeko ezinqabileyo kuphela.

URob Pike uyasilumkisa:

Esi sisixhobo esinamandla ekufuneka sisetyenziswe ngononophelo. Ifanele iphetshwe ngaphandle kokuba kuyimfuneko ngokungqongqo.

I-Wikipedia isixelela oku kulandelayo:

Ukucamngca kubhekiselele kwinkqubo apho inkqubo inokubeka iliso kwaye iguqule ulwakhiwo nokuziphatha kwayo ngexesha lokuqhutywa. I-paradigm yeprogramu esisiseko sokubonisa ibizwa ngokuba yinkqubo ebonakalisayo. Olu luhlobo lwemetaprogramming.

Nangona kunjalo, njengoko uyazi, kufuneka uhlawule yonke into. Kule meko yile:

  • ubunzima ekubhaleni iinkqubo
  • isantya sokwenziwa kwenkqubo

Ke ngoko, ukucamngca kufuneka kusetyenziswe ngononophelo, njengesixhobo somgangatho omkhulu. Ukusetyenziswa kokucamngca ngokungenangqondo kukhokelela kwiiprogram ezingafundekiyo, iimpazamo eziqhubekayo kunye nesantya esiphantsi. Into nje yokuba umdwelisi wenkqubo we-snob akwazi ukubonisa ikhowudi yakhe phambi kwabanye, oogxa bakhe bepragmatic ngakumbi kunye nabathozamileyo.

Imithwalo yenkcubeko evela eXi? Hayi, kwiilwimi ezininzi!

Kunye nethamsanqa, amatyala nawo ashiyelwa kwiindlalifa.

Nangona abaninzi bakholelwa ukuba ulwimi lusekelwe ngokupheleleyo kwilifa le-C, oku akunjalo. Ulwimi lubandakanya iinkalo ezininzi zezona lwimi zibalaseleyo zokucwangcisa.

I-Syntax

Okokuqala, i-syntax yezakhiwo zegrama isekelwe kwi-syntax yolwimi C. Noko ke, ulwimi lwaseDELPI nalo lwalunempembelelo enkulu. Ngaloo ndlela, sibona ukuba ii-parentheses ezingafunekiyo, ezinciphisa kakhulu ukufundwa kweprogram, zisuswe ngokupheleleyo. Ulwimi lukwanalo no-β€œ:=” umsebenzisi ohambelana nolwimi lwe-DELPI. Umbono weepakethi ubolekwe kwiilwimi ezifana ne-ADA. Ukubhengezwa kwamaqumrhu angasetyenziswanga kubolekwe kulwimi lwePROLOG.

Iimbono

Iipakethe bezisekelwe kwisemantics yolwimi lweDELPHI. Iphakheji nganye ifaka idatha kunye nekhowudi kwaye iqulethe amaziko abucala kunye noluntu. Oku kukuvumela ukuba unciphise ujongano lwephakheji ubuncinci.

Indlela yokuphumeza ngokuthunywa ibibolekwe kulwimi lwase-DELPI.

Ukudityaniswa

Akunjalo ngaphandle kwesizathu ukuba kukho isiqhulo: iGo yaphuhliswa ngelixa inkqubo yeC yayiqulunqwa. Olunye lwamandla olwimi kukuhlanganiswa kwalo olukhawulezayo. Lo mbono wabolekwa kulwimi lwaseDELPI. Iphakheji nganye yeGo ihambelana nemodyuli ye-DELPI. Ezi phakheji ziphinda zenziwe kwakhona xa kuyimfuneko. Ngoko ke, emva kokuhlelwa okulandelayo, akukho mfuneko yokuba uqokelele udweliso lwenkqubo luphela, kodwa endaweni yoko qokelela kuphela iipakethe ezitshintshiweyo kunye neepakethe ezixhomekeke kwezi mpahla zitshintshiweyo (kwaye nangona kunjalo, kuphela ukuba ujongano lwephakheji lutshintshile).

Ulwakhiwo olukumgangatho ophezulu

Ulwimi luqulethe uninzi olwahlukileyo lolwakhiwo olukwinqanaba eliphezulu olunganxulumananga nangayiphi na indlela neelwimi ezikumgangatho ophantsi njengoC.

  • Iintambo
  • Iitafile zeHash
  • Izilayi
  • Ukuchwetheza idada kubolekwe kwiilwimi ezifana ne-RUBY (leyo, ngelishwa, abaninzi abayiqondi okanye bayisebenzise ngokupheleleyo).

Ulawulo lwenkumbulo

Ulawulo lwememori ngokubanzi lufanele inqaku elahlukileyo. Ukuba kwiilwimi ezinje ngeC ++, ulawulo lushiywe ngokupheleleyo kumphuhlisi, emva koko kwiilwimi ezinje nge-DELPI, imodeli yokubala isetyenzisiwe. Ngale ndlela, iimbekiselo zomjikelo azizange zivunyelwe, ekubeni amaqela eenkedama ayenziwe, emva koko i-Go iye yakha uchongo lwamaqela anjalo (njenge-C #). Ukongeza, umqokeleli wenkunkuma usebenza ngokufanelekileyo kunokuphunyezwa okuninzi okwaziwayo ngoku kwaye sele esetyenziselwe imisebenzi emininzi yexesha langempela. Ulwimi ngokwalo luqaphela iimeko xa ixabiso lokugcina into eguquguqukayo linokwabelwa kwisitaki. Oku kunciphisa umthwalo kumphathi wememori kwaye kwandisa isantya seprogram.

Concurrency kunye Concurrency

Ukuhambelana nokukhuphisana kolwimi kungaphaya kokunconywa. Alukho ulwimi olukwinqanaba elisezantsi olunokukhuphisana ukude neGo. Ukulunga, kuyafaneleka ukuba uqaphele ukuba imodeli ayizange yenziwe ngababhali bolwimi, kodwa ibolekwe nje kulwimi oludala lwe-ADA. Ulwimi luyakwazi ukucubungula izigidi zoqhagamshelo olunxuseneyo lusebenzisa zonke ii-CPU, ngelixa lunomyalelo wobungakanani beengxaki ezintsonkothileyo kunye neemeko zobuhlanga eziqhelekileyo kwikhowudi enemisonto emininzi.

Iinzuzo ezongezelelweyo

Ukuba iyingenelo, wonke umntu uya kungazicingeli.

Ulwimi lukwabonelela ngenani leenzuzo ezingathandabuzekiyo:

  • Ifayile enye ephunyezwayo emva kokwakha iprojekthi yenza lula kakhulu ukuthunyelwa kwezicelo.
  • Ukuchwetheza okuzinzileyo kunye nohlobo lokutshonisa kunokunciphisa kakhulu inani leempazamo kwikhowudi yakho, nangaphandle kovavanyo lokubhala. Ndiyazi abanye abadwelisi benkqubo abenza ngaphandle kokubhala iimvavanyo konke konke kwaye umgangatho wekhowudi yabo awusokoli kakhulu.
  • Ukuhlanganiswa okulula kakhulu kunye nokuphatheka kakuhle kwethala leencwadi elisemgangathweni, elenza lula kakhulu uphuhliso lwezicelo zeqonga.
  • I-RE2 iintetho eziqhelekileyo zikhuselekile kwaye zinamaxesha aqikelelweyo okwenziwa.
  • Ilayibrari esemgangathweni enamandla evumela iiprojekthi ezininzi ukuba zenze ngaphandle kwezakhelo zeqela lesithathu.
  • Ulwimi lunamandla ngokwaneleyo ukuba lugxininise kwingxaki kunokuba luyisombulule njani, kodwa lukumgangatho ophantsi ngokwaneleyo ukuba ingxaki ingasonjululwa ngokufanelekileyo.
  • Inkqubo ye-Go eco sele iqulethe izixhobo eziphuhlisiwe ngaphandle kwebhokisi kuzo zonke izihlandlo: iimvavanyo, amaxwebhu, ulawulo lwephakheji, iilitha ezinamandla, ukuveliswa kwekhowudi, i-detector yeemeko zobuhlanga, njl.
  • I-Go inguqulo ye-1.11 yazisa ulawulo lokuxhomekeka kwe-semantic eyakhelwe-ngaphakathi, eyakhelwe phezu kwe-VCS ethandwayo yokusingatha. Zonke izixhobo ezenza i-Go ecosystem zisebenzisa ezi nkonzo ukukhuphela, ukwakha, kunye nokufaka ikhowudi kuzo kwi-swoop enye. Kwaye kulungile. Ngokufika kwenguqulo 1.11, ingxaki yoguqulelo lwephakheji nayo yasonjululwa ngokupheleleyo.
  • Kuba umbono ophambili wolwimi kukunciphisa umlingo, ulwimi lukhuthaza abaphuhlisi ukuba benze iimpazamo ngokucacileyo. Kwaye oku kuchanekile, kuba kungenjalo, iyakulibala ngokuphatha iimpazamo ngokupheleleyo. Enye into kukuba uninzi lwabaphuhlisi aluhoyi ngabom ukuphatha impazamo, bekhetha endaweni yokuyicubungula ukuhambisa impazamo phezulu.
  • Ulwimi alusebenzisi indlela ye-OOP yakudala, kuba kwimo ecocekileyo akukho nyani kwi-Go. Nangona kunjalo, oku akuyongxaki xa usebenzisa i-interfaces. Ukungabikho kwe-OOP kunciphisa kakhulu umqobo ekungeneni kwabaqalayo.

Ubulula ukuze kuxhamle uluntu

Kulula ukwenza nzima, kunzima ukwenza lula.

I-Go yenzelwe ukuba ibe lula kwaye iyaphumelela kuloo njongo. Yabhalelwa abadwelisi benkqubo abakrelekrele abaqonda izibonelelo zokusebenza kunye kwaye badiniwe kukuguquguquka okungapheliyo kweelwimi zenqanaba loShishino. Ukuba neseti encinci yezakhiwo ze-syntactic kwi-arsenal yayo, ayixhomekekanga kutshintsho ngokuhamba kwexesha, ke abaphuhlisi banexesha elininzi elikhululelwe uphuhliso, kwaye hayi ukufunda ngokungapheliyo iinguqulelo zolwimi.

Iinkampani nazo zifumana inani leenzuzo: umqobo wokungena ophantsi uvumela ukuba bafumane ngokukhawuleza ingcali, kwaye ukungaguquki kolwimi kuvumela ukuba basebenzise ikhowudi efanayo nangemva kweminyaka eyi-10.

isiphelo

Ubungakanani bengqondo enkulu ayizange yenze nayiphi na indlovu iphumelele iBhaso leNobel.

Kwabo badwelisi abanomdla wabo wobuqu uthatha indawo yokuqala kunomoya weqela, kunye neengcali zethiyori abathanda imingeni yezemfundo kunye "nokuphucula ukuziphucula" okungapheliyo, ulwimi lubi kakhulu, kuba lulwimi oluyinjongo ngokubanzi olungakuvumeli ukuba ufumane. Ulonwabo lobuhle obuvela kwisiphumo somsebenzi wakho kwaye uzibonise ubuchwephesha phambi koogxa bakho (ngaphandle kokuba silinganisa ubukrelekrele ngezi ndlela, hayi nge-IQ). Njengayo yonke into ebomini, ngumbandela wezinto ezibalulekileyo zobuqu. Njengazo zonke iinguqulelo ezixabisekileyo, ulwimi sele luhambe umgama omde ukusuka ekukhanyeni kwendalo ukuya kulwamkelo olukhulu. Ulwimi lunobuchule ngokulula, kwaye, njengoko usazi, yonke into enobuchule ilula!

umthombo: www.habr.com

Yongeza izimvo