Zolakwitsa zochititsa manyazi kwambiri pantchito yanga yopanga mapulogalamu (mpaka pano)

Zolakwitsa zochititsa manyazi kwambiri pantchito yanga yopanga mapulogalamu (mpaka pano)
Monga akunena, ngati simukuchita manyazi ndi code yanu yakale, ndiye kuti simukukula ngati wolemba mapulogalamu - ndipo ndikugwirizana ndi maganizo awa. Ndinayamba kupanga pulogalamu yosangalatsa zaka 40 zapitazo, komanso mwaukadaulo zaka 30 zapitazo, kotero ndili ndi zolakwa zambiri. kwambiri. Monga pulofesa wa sayansi ya makompyuta, ndimaphunzitsa ophunzira anga kuti aphunzire kuchokera ku zolakwa-zawo, zanga, ndi za ena. Ndikuganiza kuti ndi nthawi yoti ndilankhule za zolakwa zanga kuti ndisataye kudzichepetsa. Ndikukhulupirira kuti adzakhala othandiza kwa wina.

Malo achitatu - Microsoft C compiler

Aphunzitsi anga akusukulu ankakhulupirira kuti Romeo ndi Juliet sangaonedwe ngati tsoka chifukwa otchulidwawo analibe liwongo lomvetsa chisoni - anangochita zinthu zopusa, monga momwe achinyamata ayenera kuchitira. Sindinagwirizane naye panthawiyo, koma tsopano ndikuwona njere yamalingaliro m'malingaliro ake, makamaka pokhudzana ndi mapulogalamu.

Pamene ndinamaliza chaka changa chachiwiri ku MIT, ndinali wamng'ono komanso wosadziŵa zambiri, m'moyo komanso m'mapulogalamu. M'chilimwe, ndinalowa ku Microsoft, pa gulu la compiler C. Poyamba ndinachita zinthu zachizolowezi monga kuthandizira kufotokozera, ndiyeno ndinapatsidwa ntchito yogwira ntchito yosangalatsa kwambiri ya compiler (monga momwe ndimaganizira) - kukhathamiritsa kwa backend. Makamaka, ndidayenera kukonza khodi ya x86 pamawu anthambi.

Nditatsimikiza mtima kulemba nambala yabwino yamakina pazochitika zilizonse, ndidadziponya m'dziwe molunjika. Ngati kachulukidwe kachulukidwe kazabwinoko kunali kwakukulu, ndidawalowetsa tebulo la kusintha. Ngati anali ndi chogawa wamba, ndidachigwiritsa ntchito kuti patebulo likhale lolimba (koma pokhapokha ngati magawowo atha kuchitidwa pogwiritsa ntchito kusintha pang'ono). Pamene zikhalidwe zonse zinali mphamvu ziwiri, ndidachitanso kukhathamiritsa kwina. Ngati zikhalidwe zingapo sizinakwaniritsire zikhalidwe zanga, ndidazigawa m'magawo angapo otheka ndikugwiritsa ntchito nambala yomwe idakonzedwa kale.

Zinali zomvetsa chisoni. Patapita zaka zambiri ndinauzidwa kuti wolemba mapulogalamu amene anatengera code yanga amadana nane.

Zolakwitsa zochititsa manyazi kwambiri pantchito yanga yopanga mapulogalamu (mpaka pano)

Phunziro

Monga David Patterson ndi John Hennessy amalembera mu Computer Architecture ndi Computer Systems Design, imodzi mwa mfundo zazikuluzikulu zamamangidwe ndi kapangidwe kake ndikupangitsa kuti zinthu ziziyenda mwachangu momwe zingathere.

Kufulumizitsa milandu wamba kumapangitsa kuti magwiridwe antchito azikhala bwino kuposa kukhathamiritsa zochitika zomwe zimachitika kawirikawiri. Chodabwitsa n'chakuti, milandu yofala nthawi zambiri imakhala yosavuta kusiyana ndi yachilendo. Malangizo omveka awa akuganiza kuti mukudziwa kuti ndi vuto liti lomwe limawonedwa ngati lofala - ndipo izi ndizotheka pokhapokha poyeserera mosamala komanso kuyeza.

Podzitetezera, ndinayesa kudziŵa mmene ziganizo zanthambi zimawonekera m’ntchito (monga ngati nthambi zake zinali zingati ndi mmene zokhazikika zinagaŵidwira), koma mu 1988 chidziŵitso chimenechi chinalibe. Komabe, sindikanati ndiwonjezere milandu yapadera nthawi iliyonse yomwe wopangayo sakanatha kupanga nambala yabwino yachitsanzo chopanga chomwe ndidapeza.

Ndinafunika kuyimbira foni katswiri wodziwa zambiri ndipo, pamodzi ndi iye, tiganizire za milandu wamba ndikuthana nayo mwachindunji. Ndikhoza kulemba code yochepa, koma ndicho chinthu chabwino. Monga woyambitsa Stack Overflow Jeff Atwood adalemba, mdani woyipitsitsa wa mapulogalamu ndi wopanga mapulogalamu mwiniwake:

Ndikudziwa kuti muli ndi zolinga zabwino, monganso tonsefe. Timapanga mapulogalamu ndimakonda kulemba ma code. Umo ndi momwe ife tinapangidwira. Tikuganiza kuti vuto lililonse litha kuthetsedwa ndi tepi yolumikizira, ndodo yodzipangira tokha komanso ma code angapo. Ngakhale zimawawa ma coders kuvomereza, code yabwino kwambiri ndi code yomwe kulibe. Mzere watsopano uliwonse umafunika kuwongolera ndi kuthandizidwa, uyenera kumveka. Mukawonjezera nambala yatsopano, muyenera kutero monyinyirika komanso monyansidwa chifukwa zosankha zina zonse zatha. Opanga mapulogalamu ambiri amalemba ma code ochulukirapo, kuwapanga kukhala mdani wathu.

Ndikadalemba ma code osavuta omwe amakhudza milandu wamba, zikadakhala zosavuta kusintha ngati kuli kofunikira. Ndinasiya chisokonezo chomwe palibe amene ankafuna kuthana nacho.

Zolakwitsa zochititsa manyazi kwambiri pantchito yanga yopanga mapulogalamu (mpaka pano)

Malo achiwiri: kutsatsa pamasamba ochezera

Pamene ndinali kugwira ntchito ku Google pa malonda ochezera a pa Intaneti ( mukukumbukira Myspace?), Ndinalemba motere mu C ++:

for (int i = 0; i < user->interests->length(); i++) {
  for (int j = 0; j < user->interests(i)->keywords.length(); j++) {
      keywords->add(user->interests(i)->keywords(i)) {
  }
}

Okonza mapulogalamu amatha kuwona cholakwikacho: mkangano womaliza uyenera kukhala j, osati i. Kuyesa kwa mayunitsi sikunawulule cholakwikacho, komanso wowunika wanga. Kukhazikitsa kunachitika, ndipo usiku wina code yanga idapita ku seva ndikugwetsa makompyuta onse pa data center.

Palibe choipa chinachitika. Palibe chomwe chinasweka kwa aliyense, chifukwa chisanayambe kukhazikitsidwa kwapadziko lonse code inayesedwa mkati mwa deta imodzi. Pokhapokha ngati mainjiniya a SRE adasiya kusewera mabiliyoni kwakanthawi ndikubweza pang'ono. M'mawa wotsatira ndinalandira imelo yokhala ndi kutayika kwangozi, ndikuwongolera code ndikuwonjezera mayeso a unit omwe angagwire cholakwikacho. Popeza ndimatsatira protocol - apo ayi nambala yanga ingangolephera kuthamanga - panalibe zovuta zina.

Zolakwitsa zochititsa manyazi kwambiri pantchito yanga yopanga mapulogalamu (mpaka pano)

Phunziro

Ambiri amatsimikiza kuti kulakwitsa kwakukulu koteroko kudzawonongera wolakwayo, koma izi siziri choncho: choyamba, onse opanga mapulogalamu amalakwitsa, ndipo kachiwiri, nthawi zambiri amalakwitsa kawiri kawiri.

M'malo mwake, ndili ndi mnzanga wina wopanga mapulogalamu omwe anali injiniya wanzeru ndipo adachotsedwa ntchito chifukwa cholakwitsa kamodzi. Pambuyo pake, adalembedwa ntchito ku Google (ndipo posakhalitsa adakwezedwa) - adalankhula moona mtima za cholakwika chomwe adachita muzoyankhulana, ndipo sichinaganizidwe kuti ndi chakupha.

Ndicho chimene uzani za Thomas Watson, mutu wodziwika wa IBM:

Lamulo la boma la ndalama zokwana pafupifupi madola milioni imodzi linalengezedwa. IBM Corporation - kapena m'malo, Thomas Watson Sr. mwiniwake - ankafunadi kupeza. Tsoka ilo, woimira malonda sanathe kuchita izi ndipo IBM inataya ndalamazo. Tsiku lotsatira, wogwira ntchitoyo anabwera muofesi ya Bambo Watson ndikuyika envelopu pa desiki lawo. A Watson sanavutike ngakhale kuyang'ana - amadikirira wantchito ndipo adadziwa kuti iyi ndi kalata yochotsa ntchito.

Watson anafunsa chomwe chavuta.

Woimira malonda adalankhula mwatsatanetsatane za momwe ma tender akuyendera. Anatchula zolakwa zomwe zikanapeŵeka. Kenako anati: “Bambo Watson, zikomo pondilola kuti ndifotokoze. Ndikudziwa kuchuluka kwa zomwe timafunikira. Ndikudziwa kufunika kwake,” ndipo anakonzekera kuchoka.

Watson anamuyandikira pakhomo, n’kumuyang’ana m’maso n’kubweza envelopuyo ndi mawu akuti: “Ndingakusiye bwanji? Ndangoyikapo ndalama zokwana madola milioni ku maphunziro anu.

Ndili ndi T-shirt yomwe imati: "Ngati mumaphunziradi kuchokera ku zolakwa, ndiye kuti ndine katswiri." Ndipotu, zikafika pa zolakwika, ndine dokotala wa sayansi.

Malo oyamba: App Inventor API

Zolakwa zoopsa kwambiri zimakhudza anthu ambiri ogwiritsa ntchito, zimadziwidwa ndi anthu, zimatenga nthawi yayitali kuti zikonze, ndipo zimapangidwa ndi omwe sakanatha kuzipanga. Cholakwika changa chachikulu chikugwirizana ndi zonsezi.

Zoyipa ndizabwinoko

ndinawerenga wolemba Richard Gabriel za njira imeneyi mu nineties monga wophunzira omaliza maphunziro, ndipo ine ndimakonda kwambiri kuti ndikupempha kwa ophunzira anga. Ngati simukukumbukira bwino, tsitsimutsani kukumbukira kwanu, ndizochepa. Nkhaniyi ikusiyanitsa chikhumbo chofuna "kuchita bwino" komanso "choyipa kwambiri" m'njira zambiri, kuphatikizapo kuphweka.

Momwe ziyenera kukhalira: mapangidwewo ayenera kukhala osavuta pakukhazikitsa ndi mawonekedwe. Kuphweka kwa mawonekedwe ndikofunika kwambiri kuposa kuphweka kwa kukhazikitsa.

Choyipa, chabwino: kapangidwe kake kayenera kukhala kosavuta pakukhazikitsa ndi mawonekedwe. Kusavuta kukhazikitsa ndikofunika kwambiri kuposa kuphweka kwa mawonekedwe.

Tiyeni tiyiwale za izo kwa miniti. Tsoka ilo, ndinayiwala za izo kwa zaka zambiri.

Woyambitsa App

Ndikugwira ntchito ku Google, ndinali m'gululi Woyambitsa App, malo otukuka pa intaneti kwa omwe akufuna kupanga mapulogalamu a Android. Munali 2009, ndipo tinali kufulumira kumasula Baibulo la alpha mu nthawi kuti m'chilimwe tithe kukhala ndi makalasi ambuye a aphunzitsi omwe angagwiritse ntchito chilengedwe pophunzitsa m'dzinja. Ndinadzipereka kuti ndigwiritse ntchito sprites, nostalgic momwe ndinkalembera masewera pa TI-99/4. Kwa omwe sakudziwa, sprite ndi chinthu chojambula chamitundu iwiri chomwe chimatha kusuntha ndikulumikizana ndi zinthu zina zamapulogalamu. Zitsanzo za ma sprites ndi monga zombo, ma asteroids, mabulo, ndi ma rackets.

Tidakhazikitsa App Inventor yolunjika ku Java, ndiye kuti muli zinthu zambiri mmenemo. Popeza mipira ndi ma sprites amachita chimodzimodzi, ndidapanga kalasi ya sprite yokhala ndi katundu (minda) X, Y, Speed ​​​​(liwiro) ndi Heading (kuwongolera). Iwo anali ndi njira zomwezo zodziwira kugunda, kudumpha m'mphepete mwa chinsalu, ndi zina zotero.

Kusiyana kwakukulu pakati pa mpira ndi sprite ndizomwe zimakokedwa - bwalo lodzaza kapena raster. Popeza ndidayambitsa ma sprites poyamba, zinali zomveka kutchula ma x- ndi y-coordinates pakona yakumanzere komwe kunali chithunzicho.

Zolakwitsa zochititsa manyazi kwambiri pantchito yanga yopanga mapulogalamu (mpaka pano)
Ma sprites atagwira ntchito, ndinaganiza kuti nditha kugwiritsa ntchito zinthu za mpira ndi code yochepa kwambiri. Vuto lokhalo linali loti ndidatenga njira yosavuta kwambiri (kuchokera pakuwona kwa wogwiritsa ntchito), kuwonetsa ma x- ndi y-coordinates pakona yakumanzere yakumanzere kwa mizere yopangira mpira.

Zolakwitsa zochititsa manyazi kwambiri pantchito yanga yopanga mapulogalamu (mpaka pano)
M'malo mwake, kunali kofunikira kuwonetsa ma x- ndi y-makontrakitala apakati pa bwalo, monga momwe amaphunzitsira m'mabuku aliwonse a masamu ndi gwero lina lililonse lomwe limatchula zozungulira.

Zolakwitsa zochititsa manyazi kwambiri pantchito yanga yopanga mapulogalamu (mpaka pano)
Mosiyana ndi zolakwa zanga zam'mbuyomu, izi sizinakhudze anzanga okha, komanso mamiliyoni a ogwiritsa ntchito App Inventor. Ambiri a iwo anali ana kapena atsopano ku mapulogalamu. Anayenera kuchita zinthu zambiri zosafunikira pogwira ntchito iliyonse yomwe mpirawo unalipo. Ngati ndikumbukira zolakwa zanga zina ndikuseka, ndiye kuti izi zimanditulutsa thukuta ngakhale lero.

Pomaliza ndidakonza cholakwikacho posachedwa, patatha zaka khumi. "Zigamba", osati "zokhazikika", chifukwa monga Joshua Bloch amanenera, ma API ndi amuyaya. Polephera kusintha zomwe zingakhudze mapulogalamu omwe analipo kale, tawonjezera katundu wa OriginAtCenter ndi mtengo wabodza m'mapulogalamu akale komanso zowona m'mapulogalamu onse amtsogolo. Ogwiritsa atha kufunsa funso lomveka: ndani adaganiza zoyika poyambira kwinakwake osati pakati. Kwa ndani? Kwa wopanga mapulogalamu wina yemwe anali waulesi kwambiri kuti apange API yabwinobwino zaka khumi zapitazo.

Maphunziro

Mukamagwira ntchito pa ma API (omwe pafupifupi aliyense wopanga mapulogalamu amayenera kuchita nthawi zina), muyenera kutsatira malangizo abwino omwe afotokozedwa muvidiyo ya Joshua Bloch "Momwe mungapangire API yabwino komanso chifukwa chake ndiyofunikira"Kapena pamndandanda waufupi uwu:

  • API ikhoza kukubweretserani phindu lalikulu komanso kuvulaza kwakukulu.. API yabwino imapanga makasitomala obwereza. Choyipacho chimakhala maloto anu osatha.
  • Ma API apagulu, ngati diamondi, amakhala kosatha. Perekani zonse: sipadzakhalanso mwayi wina wochita zonse bwino.
  • Zolemba za API ziyenera kukhala zazifupi - tsamba limodzi lokhala ndi ma siginecha a kalasi ndi njira ndi mafotokozedwe, osapitilira mzere. Izi zikuthandizani kuti musinthe API mosavuta ngati sizikhala bwino koyamba.
  • Fotokozani zochitika zogwiritsidwa ntchitomusanayambe kugwiritsa ntchito API kapena ngakhale kugwira ntchito zake. Mwanjira iyi mudzapewa kukhazikitsa ndi kutchula API yosagwira ntchito.

Ndikadalemba ngakhale mawu achidule achidule okhala ndi cholembera, mwachiwonekere ndikadazindikira cholakwikacho ndikuwongolera. Ngati sichoncho, ndiye kuti m'modzi mwa anzanga angachitedi. Chisankho chilichonse chomwe chili ndi zotsatira zazikulu chiyenera kuganiziridwa kwa tsiku limodzi (izi sizikugwira ntchito kokha pamapulogalamu).

Mutu wa nkhani ya Richard Gabriel, "Woyipa Ndi Bwino," umatanthawuza ubwino womwe umapita kukukhala woyamba kugulitsa - ngakhale ndi mankhwala opanda ungwiro - pamene wina amathera kwamuyaya kuthamangitsa wangwiro. Poganizira za sprite code, ndikuzindikira kuti sindinkafunikanso kulemba ma code ambiri kuti ndikonze. Chilichonse chimene wina anganene, ndinalakwitsa kwambiri.

Pomaliza

Olemba mapulogalamu amalakwitsa tsiku lililonse, kaya akulemba khodi ya ngolo kapena osafuna kuyesa china chake chomwe chingawathandize kukhala ndi luso komanso zokolola. Inde, mutha kukhala wopanga mapulogalamu osapanga zolakwika zazikulu monga momwe ndinachitira. Koma n’zosatheka kukhala wolemba mapulogalamu abwino popanda kuzindikira zolakwa zanu ndi kuphunzira kwa iwo.

Nthawi zonse ndimakumana ndi ophunzira omwe amadzimva ngati amalakwitsa zambiri ndipo sanasankhidwe kupanga mapulogalamu. Ndikudziwa momwe impostor syndrome imakhalira mu IT. Ndikukhulupirira kuti muphunzira maphunziro omwe ndalemba - koma kumbukirani chachikulu: aliyense wa ife amalakwitsa - zochititsa manyazi, zoseketsa, zowopsa. Ndidzadabwa ndi kukhumudwa ngati m'tsogolomu ndilibe zinthu zokwanira kuti ndipitirize nkhaniyo.

Source: www.habr.com

Kuwonjezera ndemanga