Izvo zvinonyadzisa kukanganisa mubasa rangu rekugadzira (kusvika ikozvino)

Izvo zvinonyadzisa kukanganisa mubasa rangu rekugadzira (kusvika ikozvino)
Sezvavanotaura, kana iwe usinganyari nekodhi yako yekare, saka hausi kukura semugadziri wepurogiramu - uye ndinobvumirana nemafungiro aya. Ndakatanga hurongwa hwekunakidzwa makore anopfuura makumi mana apfuura, uye nehunyanzvi makore makumi matatu apfuura, saka ndine zvikanganiso zvakawanda. zvikuru kwazvo. Sapurofesa wesainzi yekombuta, ndinodzidzisa vadzidzi vangu kudzidza kubva mukukanganisa-yavo, yangu, uye yevamwe. Ndinofunga kuti ndiyo nguva yokuti nditaure pamusoro pezvikanganiso zvangu kuti ndisarasikirwa nemwero. Ndinovimba vachabatsira mumwe munhu.

Nzvimbo yechitatu - Microsoft C compiler

Mudzidzisi wangu wechikoro aidavira kuti Romeo naJuliet vaisagona kurangarirwa sengwavaira nemhaka yokuti vatambi vacho vakanga vasina mhaka inosuruvarisaβ€”vaingoita zvoupenzi, sezvinofanira kuita pwere. Ndakanga ndisingabvumirani naye panguva iyoyo, asi iye zvino ndinoona mutsara wezviyo mumaonero ake, kunyanya maererano nepurogiramu.

Panguva yandakapedza gore rangu rechipiri paMIT, ndakanga ndichiri mudiki uye ndisina ruzivo, zvese muhupenyu uye mukuronga. Muchirimo, ndakapinda paMicrosoft, pachikwata chechikwata cheC. Pakutanga ndakaita zvinhu zvenguva dzose sekutsigira profiling, uye ipapo ndakapiwa basa rekushanda pane chikamu chinonakidza chemugadziri (sezvandaifunga) - backend optimization. Kunyanya, ini ndaifanira kuvandudza iyo x86 kodhi yezvirevo zvebazi.

Ndakatsunga kunyora iyo yakakwana kodhi yemuchina kune yega yega nyaya, ndakazvikandira mudziva nemusoro. Kana iyo density yekugovera yemitengo yaive yakakwira, ndakaipinda tafura yekuchinja. Dai vaive neyakajairwa divisor, ndakaishandisa kuita kuti tafura iwedzere (asi chete kana kupatsanurwa kwaigona kuitwa uchishandisa bit shift) Kana hunhu hwese hwaive masimba maviri, ndakaita imwe optimization. Kana seti yemakoshero isina kugutsa mamiriro angu, ndakaipatsanura kuita akati wandei akakwenenzverwa makesi uye ndikashandisa iyo yakatogadziridzwa kodhi.

Zvaive zvikukutu. Makore akawanda gare gare ndakaudzwa kuti programmer uyo akagara nhaka code yangu akandivenga.

Izvo zvinonyadzisa kukanganisa mubasa rangu rekugadzira (kusvika ikozvino)

Chidzidzo chakadzidzwa

Sezvo David Patterson naJohn Hennessy vanonyora muComputer Architecture uye Computer Systems Dhizaini, imwe yemisimboti mikuru yekuvaka uye dhizaini ndeyekuita kuti zvinhu zvishande nekukurumidza sezvinobvira.

Kumhanyisa nyaya dzakajairwa kuchavandudza kuita zvakanyanya pane kukwirisa zvisingawanzo zviitiko. Sezvineiwo, zviitiko zvakajairika kazhinji zviri nyore pane zvisingawanzo. Iri zano rine musoro rinofungidzira kuti unoziva kuti ndeipi nyaya inoonekwa seyakajairika - uye izvi zvinogoneka chete kuburikidza nemaitiro ekunyatso kuyedza uye kuyerwa.

Mukuzvidzivirira kwangu, ndakaedza kuona kuti mashoko ebazu airatidzika sei mukushanda (zvakadai semapazu mangani uye kuti zvinoramba zvichiparadzirwa zvakaparadzirwa sei), asi muna 1988 aya mashoko akanga asipo. Nekudaro, ini ndanga ndisingafanire kunge ndakawedzera akakosha makesi pese apo iyezvino compiler yaisakwanisa kuburitsa yakakwana kodhi yemuenzaniso wekugadzira wandakauya nawo.

Ini ndaifanira kufonera mugadziri ane ruzivo uye, pamwe chete naye, funga nezve izvo zvakajairika nyaya uye kubata nazvo zvakananga. Ini ndaizonyora kodhi shoma, asi icho chinhu chakanaka. Sezvo Stack Overflow muvambi Jeff Atwood akanyora, muvengi akaipisisa wemugadziri ndiye programmer iye pachake:

Ndinoziva kuti une vavariro dzakanakisisa, sezvatinoita tose. Isu tinogadzira zvirongwa uye tinoda kunyora kodhi. Ndiwo masikirwo atakaitwa. Isu tinofunga kuti chero dambudziko rinogona kugadziriswa ne duct tepi, crutch yekumba uye pinch yekodhi. Kunyangwe zvichirwadza macoders kuti abvume, iyo yakanakisa kodhi ndiyo kodhi iyo isipo. Imwe neimwe mutsara mutsva unoda debugging nerutsigiro, inoda kunzwisiswa. Paunowedzera kodhi nyowani, iwe unofanirwa kuzviita nekuzeza uye kusemesa nekuti dzimwe sarudzo dzese dzapera. Vazhinji vanogadzira mapurogiramu vanonyora kodhi yakawandisa, vachiiita muvengi wedu.

Dai ndakanga ndanyora kodhi yakapfava iyo yakavhara zviitiko zvakajairika, zvingadai zvakave nyore kugadzirisa kana zvichidikanwa. Ndakasiya nyonganyonga yaisada munhu.

Izvo zvinonyadzisa kukanganisa mubasa rangu rekugadzira (kusvika ikozvino)

Nzvimbo yechipiri: kushambadzira pasocial network

Pandakanga ndichishanda paGoogle pasocial media advertising (yeuka Myspace?), Ndakanyora chimwe chinhu chakadai muC ++:

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)) {
  }
}

Vagadziri vanogona kuona pakarepo kukanganisa: nharo yekupedzisira inofanira kuva j, kwete i. Kuongororwa kweyuniti hakuna kuburitsa chikanganiso, uye muongorori wangu haana kuburitsawo. Kuvhurwa kwakaitwa, uye humwe husiku kodhi yangu yakaenda kune sevha ndokupwanya makomputa ese ari munzvimbo yedata.

Hapana chakaipa chakaitika. Hapana chakaputsika kune chero munhu, nekuti kusati kwatanga pasi rose kodhi yakaedzwa mukati meimwe data data. Kunze kwekunge mainjiniya eSRE vakambomira kutamba mabhiridha kwekanguva uye vakaita kudzoreredza zvishoma. Mangwanani akatevera ndakagamuchira email ine tsaona yekurasa, ndikagadzirisa kodhi uye nekuwedzera mayunitsi bvunzo aizobata kukanganisa. Sezvo ini ndakatevera protocol - zvikasadaro kodhi yangu yaizongotadza kumhanya - pakanga pasina mamwe matambudziko.

Izvo zvinonyadzisa kukanganisa mubasa rangu rekugadzira (kusvika ikozvino)

Chidzidzo chakadzidzwa

Vakawanda vane chokwadi chokuti kukanganisa kukuru kwakadaro kuchadhura kudzingwa kwemhosva, asi izvi hazvina kudaro: chekutanga, vese vanogadzira mapurogiramu vanokanganisa, uye chechipiri, havawanzoita chikanganiso chimwe chete kaviri.

Muchokwadi, ndine shamwari yangu yepurogiramu aive injinjiniya akangwara uye akadzingwa basa nekukanganisa kumwe chete. Mushure maizvozvi, akabhadharwa kuGoogle (uye nokukurumidza akasimudzirwa) - akataura nokutendeseka pamusoro pechikanganiso chaakaita mubvunzurudzo, uye hazvina kuonekwa sekuuraya.

Ndizvo tell nezvaThomas Watson, mukuru ane mukurumbira weBMM:

Mutemo wehurumende unokosha miriyoni yemadhora wakaziviswa. IBM Corporation - kana kuti, Thomas Watson Sr. pachake - aida chaizvo kuiwana. Nehurombo, mumiriri wekutengesa haana kukwanisa kuita izvi uye IBM yakarasa bhidhi. Mangwana acho, mushandi uyu akauya muhofisi yaVaWatson ndokuisa hamvuropu padhesiki ravo. VaWatson havana kana kumbozvinetsa nekuzvitarisa - vakamirira mushandi vakaziva kuti yaive tsamba yekusiya basa.

Watson akabvunza kuti chii chakanga chaitika.

Mumiriri wekutengesa akataura zvakadzama nezve kufambira mberi kwetenda. Akadoma zvikanganiso zvakaitwa zvaigona kudziviswa. Pakupedzisira, akati, β€œVaWatson, maita basa nokuita kuti nditsanangure. Ndinoziva kuti taida zvakadii odha iyi. Ndinoziva kukosha kwaaiita,” ndokugadzirira kuenda.

Watson akaenda kwaari pamusuo, akamutarisa mumaziso ndokudzorera hamvuropu yacho nemashoko okuti: β€œNdingakurega sei uchienda? Ndangoisa miriyoni yemadhora mudzidzo yako.

Ndine T-shirt inoti: β€œKana ukanyatsodzidza kubva pazvikanganiso, saka ndatova shasha.” Muchokwadi, kana zvasvika pakukanganisa, ini ndiri chiremba wesainzi.

Nzvimbo yekutanga: App Inventor API

Zvikanganiso zvakaipisisa zvinobata huwandu hukuru hwevashandisi, kuve ruzivo rweveruzhinji, kutora nguva yakareba kugadzirisa, uye kunoitwa neavo vangadai vasina kuzviita. Chikanganiso changu chikuru chinokodzera zvese izvi maitiro.

Kuipa kuri nani

Ndakaverenga chinyorwa naRichard Gabriel nezve nzira iyi mumakore makumi mapfumbamwe semudzidzi akapedza kudzidza, uye ndinoifarira zvakanyanya zvekuti ndinoibvunza kuvadzidzi vangu. Kana ukasazvirangarira zvakanaka, zorodza ndangariro yako, idiki. Ichi chinyorwa chinosiyanisa chishuvo che "kuzviwana" uye nzira "yakaipisisa" nenzira dzakawanda, kusanganisira nyore.

Zvazvinofanira kunge zviri: dhizaini inofanira kunge iri nyore mukuita uye interface. Kureruka kweiyo interface kwakakosha pane kuve nyore kwekuita.

Izvo zvakanyanya, zviri nani: iyo dhizaini inofanira kunge iri nyore mukuita uye interface. Kureruka kwekuita kwakakosha pane kuve nyore kweiyo interface.

Ngatimbokanganwa nezvazvo kweminiti. Zvinosuruvarisa, ndakakanganwa nezvazvo kwemakore akawanda.

App Inventor

Ndichiri kushanda kuGoogle, ndaive chikamu chechikwata App Inventor, inzvimbo yekukwevera-uye-kudonhedza online yekusimudzira yevanoshuvira Android Developers. Yakanga iri 2009, uye takanga tichikurumidza kuburitsa alpha vhezheni nenguva kuitira kuti muzhizha tigone kubata master makirasi evadzidzisi vaigona kushandisa zvakatipoteredza pakudzidzisa mukudonha. Ini ndakazvipira kuita sprites, nostalgic pamanyorero andaiita mitambo paTI-99/4. Kune avo vasingazive, sprite chinhu chine mativi maviri-chifananidzo chinogona kufamba uye kupindirana nemamwe masoftware. Mienzaniso yemasprites inosanganisira spaceships, asteroids, marbles, uye rackets.

Isu takaita-yakatarisana neApp Inventor muJava, saka kunongova neboka rezvinhu imomo. Sezvo mabhora nemasprites achiita zvakafanana, ndakagadzira abstract sprite class ine zvivakwa (minda) X, Y, Speed ​​​​(kumhanya) uye Heading (direction). Vaive nenzira dzakafanana dzekuona kudhumhana, kubhuroka kumucheto kwechidzitiro, nezvimwe.

Musiyano mukuru pakati pebhora uye sprite ndizvo chaizvo zvinodhonzwa - denderedzwa rakazara kana raster. Sezvo ini ndakashandisa sprites kutanga, zvaive zvine musoro kutsanangura x- uye y-makongisheni ekumusoro kuruboshwe kona yekwaive nemufananidzo.

Izvo zvinonyadzisa kukanganisa mubasa rangu rekugadzira (kusvika ikozvino)
Pane imwe nguva sprites yakanga ichishanda, ndakasarudza kuti ndaigona kushandisa zvinhu zvebhora nekodhi shoma. Dambudziko chete nderekuti ini ndakatora nzira yakapusa (kubva pakuona kwemushandisi), ichiratidza iyo x- uye y-marongedzero ekumusoro kwekona yekuruboshwe yecontour inoronga bhora.

Izvo zvinonyadzisa kukanganisa mubasa rangu rekugadzira (kusvika ikozvino)
Muchokwadi, zvaive zvakafanira kuratidza x- uye y-makongisheni epakati pedenderedzwa, sekudzidziswa mune chero bhuku remasvomhu uye chero kumwe kunobva kunotaura madenderedzwa.

Izvo zvinonyadzisa kukanganisa mubasa rangu rekugadzira (kusvika ikozvino)
Kusiyana nezvikanganiso zvangu zvekare, iyi yakabata kwete chete vandaishanda navo, asiwo mamirioni evashandisi veApp Inventor. Vazhinji vavo vaive vana kana vatsva chose kuchirongwa. Vaifanira kuita nhanho dzakawanda dzisingakoshi pakushanda pane imwe neimwe application umo bhora raivepo. Kana ndikarangarira mamwe mamistakes angu nekuseka, zvino iyi inondibuditsa dikita nanhasi.

Ini ndakazogadzirisa iyi bug nguva pfupi yadarika, makore gumi gare gare. "Yakasungwa", kwete "yakagadziriswa", nekuti sekutaura kwaJoshua Bloch, APIs ndeyekusingaperi. Hatikwanise kuita shanduko yaizokanganisa zvirongwa zviripo, isu takawedzera iyo OriginAtCenter pfuma ine kukosha kwenhema muzvirongwa zvekare uye ichokwadi mune zvese zviri mberi. Vashandisi vanogona kubvunza mubvunzo une musoro: ndiani akambofunga kuisa pekutangira kumwe kusiri kwepakati. Kunaani? Kune mumwe programmer aive neusimbe kugadzira yakajairika API makore gumi apfuura.

Zvidzidzo Zvakadzidzwa

Paunenge uchishanda pama APIs (ayo anenge ese epurogiramu anofanira kuita dzimwe nguva), iwe unofanirwa kutevedzera zvakanakisa zano rinotsanangurwa muvhidhiyo yaJoshua Bloch "Maitiro ekugadzira yakanaka API uye nei yakakosha"kana mune iyi pfupi rondedzero:

  • An API inogona kukuunzira iwe mese kubatsirwa kukuru uye kukuvadza kukuru.. A API yakanaka inogadzira vanodzokorora vatengi. Wakaipa anova hope dzako dzekusingaperi.
  • Public APIs, semadhaimani, anogara nekusingaperi. Ipa zvese zvako: hapazovi nemumwe mukana wekuita zvese nemazvo.
  • API zvinyorwa zvinofanirwa kunge zvipfupi - peji imwe ine kirasi uye nzira masiginicha uye tsananguro, isingatore kupfuura mutsara. Izvi zvinokutendera iwe kuti ugadzirise nyore API kana ikasabuda yakakwana kekutanga.
  • Tsanangura nyaya dzekushandisausati waita iyo API kana kunyange kushanda pane yayo yakatarwa. Nenzira iyi iwe unodzivirira kuita uye kutsanangura zvachose isiri-inoshanda API.

Dai ndakanga ndanyora kunyange pfupiso pfupi ine chinyorwa chekugadzira, pamwe ndingadai ndakaziva chikanganiso uye nekuchigadzirisa. Kana zvisina kudaro, mumwe wevandinoshanda navo aizozviita. Chero sarudzo ine mhedzisiro inosvika kure inoda kufungwa nezvayo kwerinenge zuva (izvi hazvishande kuchirongwa chete).

Musoro werondedzero yaRichard Gabriel, "Zvakaipa Zvirinani," unoreva mukana unoenda pakuva wekutanga kumusika-kunyangwe nechigadzirwa chisina kukwana-apo mumwe munhu achipedza nekusingaperi achidzingirira akakwana. Ndichifunga nezve sprite kodhi, ndinoona kuti ini handina kana kufanira kunyora yakawanda kodhi kuti ikwane. Chero zvingataurwa nomunhu, ndakanga ndakanganisa zvikuru.

mhedziso

Vagadziri vezvirongwa vanoita zvikanganiso mazuva ese, kungave kunyora buggy kodhi kana kusada kuyedza chimwe chinhu chinovandudza hunyanzvi hwavo nekubudirira. Ehe, unogona kuve mugadziri wepurogiramu usingaite zvikanganiso zvakakomba sezvandakaita. Asi hazvibviri kuve mugadziri wemapurogiramu asina kuziva kukanganisa kwako uye kudzidza kubva kwavari.

Ndinogara ndichisangana nevadzidzi vanonzwa sekunge vanokanganisa zvakanyanya uye nekudaro havana kuchekwa kuronga. Ndinoziva kuti impostor syndrome yakajairika sei muIT. Ndinovimba uchadzidza zvidzidzo zvandakanyora - asi yeuka chikuru: mumwe nemumwe wedu anokanganisa - zvinonyadzisa, zvinosetsa, zvinotyisa. Ndichashamiswa uye kugumbuka kana mune ramangwana ndisina zvinhu zvakakwana zvekuenderera mberi nechinyorwa.

Source: www.habr.com

Voeg