
Kutanthauzira
Zomwe takumana nazo zikuwonetsa kuti otukula omwe si aukadaulo komanso odziphunzitsa okha nthawi zambiri samadalira mfundo zamalingaliro, koma njira zama heuristic.
Ma heuristics ndi machitidwe ndi malamulo otsimikiziridwa omwe wopanga adaphunzira kuchokera muzochita. Iwo sangagwire ntchito mwangwiro kapena pang’onopang’ono, koma amagwira ntchito mokwanira ndipo samafunikira kulingalira mozama. Nazi zitsanzo za heuristics:
- "Gwiritsani ntchito
$(document).ready(function(){})poyambitsa ma code pamasamba a jQuery" - "Kupanga
var self = thismuyenera kuyimba njira mu ntchito yobwereza" - "Ntchito za mivi zilibe ogwiritsa ntchito
return»
Panthawi imodzimodziyo, mfundo yamaganizo ingagwiritsidwe ntchito kupeza njira zothetsera mavuto ena. Ndizowona nthawi zonse ndipo nthawi zambiri zimatsimikizira momwe zinthu zimagwirira ntchito. Mfundo zongoganizira zikuphatikiza, mwachitsanzo:
Chonde dziwani kuti timangoyika zitsanzo za ma heuristics m'ma quotation marks kuti titsimikize luso laukadaulo la ma heuristics poyerekeza ndi kukhwima kwa maziko a chiphunzitso. Palibe zitsanzo za heuristic zomwe zimagwira ntchito padziko lonse lapansi, koma zimagwira ntchito zokwanira zomwe opanga omwe amazigwiritsa ntchito amapeza code yogwirira ntchito osamvetsetsa momwe zimagwirira ntchito.
Mitsutso mokomera njira zongopeka
Nthawi zambiri tapeza kuti opanga omwe si aukadaulo amazengereza kuthetsa mavuto pogwiritsa ntchito mfundo zamalingaliro. Izi nthawi zambiri zimakhala chifukwa analibe mwayi wowaphunzira atangoyamba kumene ntchito zawo, ndipo chifukwa chakuti ma heuristics amagwira ntchito mokhutiritsa, amapitiriza kuwagwiritsa ntchito.
Komabe, ngakhale kuti zikuoneka kuti n’zovuta, kuphunzira chiphunzitsochi kungakhale kothandiza kwambiri. Zachiyani? Chifukwa chiphunzitsocho chidzakulolani kuti mukhale ndi chidaliro kuti yankho lanu likugwira ntchito, komanso kuti mudzipezere nokha mayankho a mafunso atsopano, osayang'ana njira za wina. M'kanthawi kochepa, ma aligorivimu a heuristic angawoneke ngati njira yosavuta komanso yofulumira, koma nthawi zambiri amatsogolera ku mayankho ochepera - ngati alipo.
Komanso, podalira ma heuristics, simudzaphunzira kuthetsa mavuto. Mwina nthawi zambiri mutha kupeza yankho logwira ntchito, koma posachedwa mudzafika kumapeto komwe simudzawona njira yotulukira. Olemba mapulogalamu a C&P amadalira ma heuristics pantchito yawo.
Mulingo wa luso laopanga mapulogalamu
Tikamafunsana ndi omwe akutukula patsogolo, timawapatsa zovuta zamapulogalamu ndikuwauza kuti ali ndi ufulu wogwiritsa ntchito chilichonse, kaya Google kapena Stack Overflow. Mwanjira iyi mutha kudziwa mosavuta ngati woyambitsayo ndi wotsatira wanzeru kapena wazotsatira.
Zoyamba, popanda kuchotserapo, koperani kachidindo kuchokera ku zitsanzo zabwino kapena zochepa kuchokera ku Stack Overflow. Pokhapokha pamene codeyo sikugwira ntchito monga momwe anakonzera m'pamene amayamba kuisintha kuti igwirizane ndi iwo eni. Nthawi zambiri amalephera kuchita zimenezi.
Otsatirawa amakonda kuyang'ana mayankho muzolemba za API. Kumeneko amapeza zambiri za kuchuluka kwa magawo omwe ntchito inayake imatenga, kapena kalembedwe kake ka mawonekedwe amtundu wofunidwa wa CSS.
Kale mu mphindi zisanu zoyambirira za kuyankhulana, mutha kudziwa molondola mtundu wa pulogalamu yomwe mukufunayo.
Chitsanzo:
Tiyeni titenge Bill wopanga mapulogalamu monga chitsanzo. Anatenga maphunziro angapo, anathetsa mavuto angapo a JavaScript, ndipo analemba mawebusaiti pa nthawi yake yaulere, koma "sanaphunzire" JavaScript.
Tsiku lina Bill adakumana ndi chinthu chonga ichi:
const usersById = {
"5": { "id": "5", "name": "Adam", "registered": true },
"27": { "id": "27", "name": "Bobby", "registered": true },
"32": { "id": "32", "name": "Clarence", "registered": false },
"39": { "id": "39", "name": "Danielle", "registered": true },
"42": { "id": "42", "name": "Ekaterina", "registered": false }
}
Chinthu choterocho chikhoza kusonyeza mndandanda wa ogwiritsa ntchito komanso ngati adalembetsa nawo chochitika china.
Tinene kuti Bill akufunika kupezanso mndandanda wa omwe adalembetsa. Mwa kuyankhula kwina, ziseferani. Adapeza njira yomwe adapeza .filter() amagwiritsidwa ntchito kusefa mndandanda. Choncho amayesa zinthu monga:
const attendees = usersById.filter(user => user.registered);Ndipo izi ndi zomwe amapeza:
TypeError: usersById.filter is not a function "Izi ndi zachabechabe," akuganiza Bill, chifukwa adawona malamulo ake .filter() adachita ngati fyuluta.
Vuto ndilakuti Bill adadalira njira yongoyerekeza. Iye samamvetsa izo filter ndi njira yofotokozedwa pamagulu, pomwe usersById - chinthu wamba chomwe chilibe njira filter.
Bill Googles Wosokoneza "fyuluta ya javascript" Amapeza zotchulidwa zambiri zamagulu ndipo amazindikira kuti ayenera kutembenuka usersById ku gulu. Ndiye pa pempho "javascript sinthani chinthu kukhala mndandanda» amapeza zitsanzo pa Stack Overflow pogwiritsa ntchito Object.keys(). Pambuyo pake amayesa:
const attendees = Object.keys(usersById).filter(user => user.registered); Nthawi ino palibe cholakwika chilichonse, koma chodabwitsa cha Bill, mundawu attendees amakhala opanda kanthu.
Point ndi kuti Object.keys() imabweretsanso makiyi a chinthucho, koma osati mfundo zake. Kwenikweni, dzina la variable user zosocheretsa mosavuta chifukwa si chinthu user, ndi chizindikiritso, ndiko kuti, chingwe. Popeza chikhalidwe registered sichikufotokozedwa kwa zingwe, filter amayesa cholowa chilichonse ngati chabodza, ndipo mndandanda umatuluka wopanda kanthu.
Bill amayang'anitsitsa mayankho pa Stack Overflow ndikupanga zotsatirazi:
const attendees = Object.keys(usersById).filter(id => usersById[id].registered); Nthawi ino zotsatira zake ndizabwinoko: ["5", "27", "39"]. Koma Bill ankafuna kutenga zinthu za alendowo, osati ma ID awo.
Kuti mudziwe momwe mungasefe alendo, Bill wokwiya amafufuza "fyuluta ya chinthu cha javascript", imayang'ana zotsatira zakusaka pa Stack Overflow ndikupeza ndi code iyi:
Object.filter = (obj, predicate) =>
Object.keys(obj)
.filter( key => predicate(obj[key]) )
.reduce( (res, key) => (res[key] = obj[key], res), {} );Bill amakopera mizere iyi ndikuyesa:
const attendees = Object.filter(usersById, user => user.registered); Chilichonse chimagwira ntchito - ngakhale sizikudziwika chifukwa chake. Bill sakumvetsa kuti ndi chani reduce ndi momwe amagwiritsidwira ntchito. Komanso, Bill samamvetsetsa kuti amangotanthauzira chinthu chapadziko lonse lapansi Object njira yatsopano yopanda muyezo.
Koma Bill samasamala - zimagwira ntchito! Iye alibe chidwi ndi zotsatira zake panobe.
Bill analakwa chiyani?
Bill adayesa njira yongopeka kuti athetse vutoli ndipo adakumana ndi mavuto awa:
- Kugwiritsa
.filter()pakusintha, Bill adapezaTypeError. Iye sanamvetse zimenezofiltersichipezeka pa zinthu wamba. - Iye anafunsira
Object.keys()"Kutembenuza chinthucho kukhala mndandanda", koma izi zokha sizinabweretse zotsatira. Anafunika kupanga mndandanda wa zinthu zofunika. - Ngakhale atapeza zofunikira ndikuzigwiritsa ntchito ngati zosefera, adangolandira zozindikiritsa m'malo mwa zinthu zomwe zimagwirizanitsidwa ndi zizindikiritsozo. Izi zili choncho chifukwa gulu losefedwa lili ndi ma ID, osati ogwiritsa ntchito.
- Patapita nthawi, Bill anasiya njira imeneyi ndipo anapeza njira yothetsera vutolo pa Intaneti. Komabe, samamvetsetsabe momwe zimagwirira ntchito - ndipo sataya nthawi kuyesa kuzilingalira, chifukwa ali ndi zina zoti azichita.
Ichi ndi chitsanzo chochita kupanga, koma taona opanga akuthetsa mavuto m'njira zomwezo nthawi zambiri. Kuti muwathetse bwino, muyenera kuchoka ku njira zama heuristic ndi chiphunzitso chophunzirira.
Tiyeni titsike ku zoyambira
Ngati Bill akanakhala wochirikiza njira ya chiphunzitsocho, ndondomekoyi ikanawoneka motere:
- Dziwani zomwe zaperekedwa ndikuwonetsetsa zomwe mukufuna - malinga ndi katundu wawo: "Ndili ndi chinthu chomwe makiyi ake ndi zingwe zoyimira ma ID ndipo zomwe mtengo wake ndi zinthu zoyimira ogwiritsa ntchito. Ndikufuna kupeza mndandanda womwe zikhalidwe zake zizikhala zogwiritsa ntchito - koma zolembetsedwa zokha"
- Mvetsetsani kubwerezabwereza kudzera pa chinthu: "Ndikudziwa kuti nditha kupeza makiyi angapo mu chinthu poyimba
Object.keys(). Ndikufuna kupeza mndandanda chifukwa magulu amathandizira iteration ". - Zindikirani kuti njirayi imathandizira kupeza makiyi, ndipo muyenera kusintha makiyi kukhala mfundo, ndikukumbukira
mapndi njira yodziwikiratu yopangira gulu latsopano mwakusintha zikhalidwe za gulu lina:Object.keys(usersById).map(id => usersById[id]) - Onani kuti tsopano muli ndi zinthu zosefera zomwe zili ndi mfundo zomwe mukufuna kusefa:
Object.keys(usersById).map(id => usersById[id]).filter(user => user.registered)
Bill akanapita njira imeneyi akanatithandiza.
Chifukwa chiyani anthu sagwiritsa ntchito nthanthi nthawi zambiri?
Nthawi zina samamudziwa. Nthawi zambiri, amakhala otanganidwa kwambiri kuti atenge nthawi yophunzira njira iyi yothetsera mavuto - amangofunika kuti zinthu ziyende bwino. Amakhala pachiwopsezo chosintha njira iyi kukhala chizolowezi chomwe chitha kukhala cholepheretsa kukulitsa luso lawo.
Kuti mupewe zolakwika zotere, nthawi zonse yambani ndi chiphunzitso. Pa gawo lirilonse la ndondomekoyi, ganizirani za deta yomwe mukuchita nayo. M'malo modalira machitidwe odziwika nthawi zonse, ganizirani mitundu yakale ya data: gulu, chinthu, chingwe, ndi zina. Mukamagwiritsa ntchito ntchito kapena njira, yang'anani zolembedwazo kuti muwonetsetse kuti mukudziwa ndendende mitundu ya data yomwe imathandizira, zotsutsa zomwe zimafunika, ndi zomwe zimatuluka.
Ndi njira iyi, mudzatha kupeza njira yothetsera ntchito pa kuyesa koyamba. Mutha kukhala otsimikiza za kulondola kwake, chifukwa mudasankha zochita zanu potengera zomwe mwapatsidwa komanso zomwe mukufuna kutulutsa. Lowani m'zofunikira zantchito iliyonse (mitundu ya data ndi mayendedwe obweza), m'malo molankhula chilankhulo chabizinesi (monga "olembetsa olembetsa").
Chitsime: www.habr.com
