Ny hadisoana mahamenatra indrindra amin'ny asa programan'asako (hatramin'izao)

Ny hadisoana mahamenatra indrindra amin'ny asa programan'asako (hatramin'izao)
Araka ny filazan'izy ireo, raha tsy menatra ny code taloha ianao, dia tsy mitombo amin'ny maha-programa anao ianao - ary manaiky an'io hevitra io aho. Nanomboka nanao fandaharana ho an'ny fialamboly aho 40 taona mahery lasa izay, ary 30 taona lasa izay tamin'ny asa matihanina, noho izany dia manana fahadisoana maro aho. betsaka. Amin'ny maha mpampianatra siansa informatika ahy, dia mampianatra ny mpianatro aho mba hianatra amin'ny fahadisoan'izy ireo, ny ahy, ary ny an'ny hafa. Heveriko fa fotoana izao hiresahana ny fahadisoako mba tsy ho very ny fahamaotinana. Manantena aho fa hahasoa olona iray izy ireo.

Toerana fahatelo - Microsoft C compiler

Nino ny mpampianatra ahy fa tsy azo heverina ho loza i Romeo sy Juliet satria tsy nanana fahamelohana mahatsiravina ireo mpilalao - nanao fitondran-tena adaladala izy ireo, toy ny tokony ho an'ny zatovo. Tsy niombon-kevitra taminy aho tamin'izany, fa izao dia hitako fa misy rationalitΓ© amin'ny heviny, indrindra momba ny fandaharana.

Tamin'ny fotoana nahavitako ny taom-pianarana faharoa tao amin'ny MIT, dia mbola tanora aho ary tsy ampy traikefa, na teo amin'ny fiainana na tamin'ny fandaharana. Tamin'ny fahavaratra dia niditra tao amin'ny Microsoft aho, tao amin'ny ekipa mpanangona C. Tamin'ny voalohany dia nanao zavatra mahazatra toy ny fanohanana ny profiling aho, ary avy eo dia nankinina tamin'ny asa amin'ny ampahany mahafinaritra indrindra amin'ny compiler (araka ny noheveriko) - backend optimization. Indrindra indrindra, tsy maintsy nanatsara ny code x86 ho an'ny fanambarana sampana aho.

Tapa-kevitra ny hanoratra ny kaody milina tsara indrindra ho an'ny tranga rehetra azo atao aho, dia natsipy tao anaty dobo. Raha avo ny hakitroky ny fizarana ny soatoavina dia nampidiriko tao latabatra tetezamita. Raha manana divisor mahazatra izy ireo dia nampiasaiko mba hanamafisana ny latabatra (fa raha tsy azo atao ny fizarana fiovΓ na kely). Rehefa herin'ny roa ny soatoavina rehetra dia nanao fanatsarana hafa aho. Raha toa ka tsy mahafeno ny fepetrako ny soatoavina iray, dia nozaraiko ho tranga maromaro azo amboarina izany ary nampiasa ny kaody efa namboarina.

Nofy ratsy izany. Taona maro taty aoriana dia nilazana aho fa nankahala ahy ilay programmer izay nandova ny code-ko.

Ny hadisoana mahamenatra indrindra amin'ny asa programan'asako (hatramin'izao)

Lesona azo

Araka ny nosoratan'i David Patterson sy John Hennessy ao amin'ny Computer Architecture and Computer Systems Design, ny iray amin'ireo fitsipika fototra amin'ny maritrano sy ny famolavolana dia ny mampandeha haingana ny zavatra rehetra.

Ny fanafainganana ny tranga mahazatra dia hanatsara ny fampisehoana amin'ny fomba mahomby kokoa noho ny fanatsarana ny tranga tsy fahita firy. Mampihomehy fa matetika ny tranga mahazatra dia tsotra kokoa noho ny tsy fahita firy. Ity torohevitra lojika ity dia mihevitra fa fantatrao hoe inona no tranga heverina ho mahazatra - ary amin'ny alalan'ny dingan'ny fitiliana sy fandrefesana tsara ihany no azo atao.

Ho fiarovan-tenako, dia niezaka ny hamantatra ny endrik'ireo fanambaran'ny sampana amin'ny fampiharana aho (toy ny isan'ny sampana ary ny fomba nizarana tsy miovaova), saingy tamin'ny 1988 dia tsy nisy izany fampahalalana izany. Na izany aza, tsy tokony nampiana tranga manokana aho isaky ny tsy afaka namorona kaody tsara indrindra ho an'ny ohatra artifisialy novokariko ny compiler amin'izao fotoana izao.

Nila niantso mpamorona za-draharaha aho ary, miaraka aminy, mieritreritra izay tranga mahazatra ary miatrika azy ireo manokana. Hanoratra code kely kokoa aho, fa zavatra tsara izany. Araka ny nosoratan'i Jeff Atwood, mpanorina ny Stack Overflow, ny fahavalo ratsy indrindra amin'ny mpandrindra dia ny mpandrindra ny tenany:

Fantatro fa manana fikasana tsara indrindra ianao, toa antsika rehetra. Mamorona programa izahay ary tia manoratra kaody. Izany no nanaovana antsika. Mihevitra izahay fa ny olana rehetra dia azo vahana amin'ny alalan'ny duct tape, kravaty vita an-trano ary kaody kely. Na dia maharary aza ny coders manaiky izany, ny code tsara indrindra dia ny code izay tsy misy. Ny andalana vaovao tsirairay dia mila debugging sy fanohanana, mila takatra izany. Rehefa manampy kaody vaovao ianao dia tokony hanao izany amin'ny fisalasalana sy rikoriko ianao satria efa lany ny safidy hafa rehetra. Maro ny programmer manoratra code be loatra, ka lasa fahavalontsika izany.

Raha nanoratra kaody tsotra kokoa aho izay nandrakotra tranga mahazatra, dia ho mora kokoa ny fanavaozana raha ilaina izany. Namela korontana tsy nisy te-hiatrika aho.

Ny hadisoana mahamenatra indrindra amin'ny asa programan'asako (hatramin'izao)

Toerana faharoa: dokam-barotra amin'ny tambajotra sosialy

Fony aho niasa tao amin'ny Google tamin'ny dokam-barotra amin'ny media sosialy (tadidio ny Myspace?), nanoratra toy izao tao amin'ny C++ aho:

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

Ny mpandrindra dia mety hahita avy hatrany ny fahadisoana: ny hevitra farany dia tokony ho j, fa tsy i. Tsy nanambara ny hadisoana ny fitiliana unit, ary tsy nisy koa ny mpandinika ahy. Natao ny fandefasana, ary indray alina nankany amin'ny mpizara ny code-ko ary nandrava ny solosaina rehetra tao amin'ny foibe data.

Tsy nisy ratsy nitranga. Tsy nisy na inona na inona tapaka na iza na iza, satria talohan'ny fandefasana eran-tany dia nosedraina tao anatin'ny foibe data iray ny kaody. Raha tsy hoe tsy nitsahatra nilalao billiards nandritra ny fotoana kelikely ny injeniera SRE ary nanao rollback kely. Ny ampitso maraina dia naharay mailaka misy fanariam-pako aho, nanitsy ny kaody ary nanampy fitsapana vondrona izay hahatsikaritra ny fahadisoana. Satria nanaraka ny protocol aho - raha tsy izany dia tsy mandeha fotsiny ny code-ko - tsy nisy olana hafa.

Ny hadisoana mahamenatra indrindra amin'ny asa programan'asako (hatramin'izao)

Lesona azo

Maro no mino fa ny fahadisoana lehibe toy izany dia tsy maintsy handany ny fandroahana ny meloka, fa tsy izany: voalohany, ny programmer rehetra manao fahadisoana, ary faharoa, dia zara raha manao fahadisoana indroa.

Raha ny marina, manana namana programer aho izay injeniera mahay ary voaroaka noho ny fahadisoana tokana. Taorian'izay dia nokaramaina tao amin'ny Google izy (ary tsy ela dia nasondrotra) - niresaka tamim-pahatsorana momba ny fahadisoana nataony tamin'ny tafatafa iray izy, ary tsy noheverina ho mahafaty izany.

Izany no lazao momba an'i Thomas Watson, lehiben'ny IBM malaza:

Nambara ny baikon’ny fanjakana mitentina iray tapitrisa dolara. IBM Corporation - na ny marimarina kokoa, Thomas Watson Sr. manokana - dia tena naniry hahazo izany. Indrisy anefa fa tsy afaka nanao izany ny solontenan'ny varotra ary very ny tolotra IBM. Ny ampitson'iny, niditra tao amin'ny biraon'i Atoa Watson ity mpiasa ity ary nametraka valopy teo amin'ny latabany. Tsy nisalasala nijery an’izany mihitsy Atoa Watson fa niandry mpiasa izy ary fantany fa taratasy fametraham-pialana izany.

Nanontany i Watson hoe inona no tsy nety.

Ny solontenan'ny varotra dia niresaka tamin'ny antsipiriany momba ny fizotry ny tolo-bidy. Notononiny ny fahadisoana natao izay azo nosorohana. Farany, dia hoy izy: β€œAtoa Watson, misaotra anao namela ahy hanazava. Fantatro hoe hatraiza no nilainay ity baiko ity. Fantatro ny maha-zava-dehibe azy”, ary niomana ny handeha.

Nanatona azy teo am-baravarana i Watson, dia nibanjina azy ny masony ary namerina ilay valopy nisy teny hoe: β€œAhoana no hamelako anao handeha? Nampiasa vola iray tapitrisa dolara aho tamin'ny fianaranao.

Manana T-shirt aho izay milaza hoe: "Raha tena mianatra amin'ny fahadisoana ianao dia efa mahay aho." Raha ny marina, raha ny momba ny fahadisoana dia dokotera momba ny siansa aho.

Toerana voalohany: App Inventor API

Ny fahadisoana mahatsiravina dia misy fiantraikany amin'ny mpampiasa marobe, lasa fantatry ny besinimaro, maharitra ela ny fanitsiana, ary ataon'ireo izay tsy afaka nanao izany. Ny fahadisoako lehibe indrindra dia mifanaraka amin'ireo fepetra rehetra ireo.

Ny ratsy no tsara kokoa

Mamaky aho lahatsoratra nosoratan'i Richard Gabriel momba ity fomba fiasa ity tamin'ny taona XNUMX tamin'ny naha-mpianatra nahazo diplaoma azy, ary tiako loatra izany ka manontany an'ireo mpianatro aho. Raha tsy tadidinao tsara dia avereno ny fitadidianao fa kely io. Ity lahatsoratra ity dia mampifanohitra ny faniriana "hahazo izany tsara" sy ny fomba "ratsy kokoa dia tsara kokoa" amin'ny fomba maro, anisan'izany ny fahatsorana.

Ahoana no tokony ho izy: ny famolavolana dia tokony ho tsotra amin'ny fampiharana sy ny interface. Ny fahatsoran'ny interface dia zava-dehibe kokoa noho ny fahatsoran'ny fampiharana.

Ny ratsy kokoa, ny tsara kokoa: ny famolavolana dia tokony ho tsotra amin'ny fampiharana sy ny interface. Ny fahatsoran'ny fampiharana no zava-dehibe kokoa noho ny fahatsoran'ny interface.

Adinontsika iray minitra izany. Indrisy anefa fa hadinoko nandritra ny taona maro izany.

App Mpamorona

Raha niasa tao amin'ny Google aho dia anisan'ny ekipa App Mpamorona. Tamin'ny taona 2009 izany, ary maika izahay hamoaka ny dikan-ny alpha ara-potoana mba amin'ny fahavaratra dia afaka manao kilasy master ho an'ny mpampianatra izay afaka mampiasa ny tontolo iainana rehefa mampianatra amin'ny fararano. Nanolo-tena hampihatra sprites aho, nostalgique momba ny fomba nanoratako lalao tamin'ny TI-99/4. Ho an'ireo izay tsy mahalala, ny sprite dia zavatra ara-tsary misy lafiny roa izay afaka mihetsika sy mifandray amin'ny singa rindrambaiko hafa. Ohatra amin'ny sprite dia misy sambon-danitra, asterΓ΄ida, marbra, ary racket.

Nametraka App Inventor miompana amin'ny zavatra izahay ao Java, noho izany dia misy zavatra maromaro ao. Koa satria ny baolina sy ny sprites dia mitovitovy amin'izany, dia namorona kilasy sprite abstract aho miaraka amin'ny fananana (saha) X, Y, Speed ​​​​(speed) ary Heading (direction). Nanana fomba mitovy amin'izany izy ireo mba hamantarana ny fifandonana, mitsambikina eny amin'ny sisin'ny efijery, sns.

Ny fahasamihafana lehibe eo amin'ny baolina sy ny sprite dia ny tena voasarika - faribolana feno na raster. Satria nampihatra sprites aloha aho, dia lojika ny mamaritra ny x- sy y-coordinate amin'ny zoro havia ambony amin'ny toerana misy ny sary.

Ny hadisoana mahamenatra indrindra amin'ny asa programan'asako (hatramin'izao)
Raha vao niasa ny sprites dia nanapa-kevitra aho fa afaka mametraka zavatra baolina miaraka amin'ny code kely. Ny hany olana dia ny nandehanako ny lalana tsotra indrindra (avy amin'ny fomba fijerin'ny mpampihatra), manondro ny x- sy y-coordinate amin'ny zoro havia ambony amin'ny contour mandrafitra ny baolina.

Ny hadisoana mahamenatra indrindra amin'ny asa programan'asako (hatramin'izao)
На самом Π΄Π΅Π»Π΅ Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ x- ΠΈ y-ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Ρ†Π΅Π½Ρ‚Ρ€Π° ΠΊΡ€ΡƒΠ³Π°, ΠΊΠ°ΠΊ этому ΡƒΡ‡ΠΈΡ‚ любой ΡƒΡ‡Π΅Π±Π½ΠΈΠΊ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΈ любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ источник, ΡƒΠΏΠΎΠΌΠΈΠ½Π°ΡŽΡ‰ΠΈΠΉ ΠΊΡ€ΡƒΠ³ΠΈ.

Ny hadisoana mahamenatra indrindra amin'ny asa programan'asako (hatramin'izao)
Tsy toy ny hadisoako taloha, ity iray ity dia tsy ny mpiara-miasa amiko ihany, fa ny mpampiasa App Inventor an-tapitrisany koa. Maro amin'izy ireo no ankizy na vaovao tanteraka amin'ny fandaharana. Tsy maintsy nanao dingana maro tsy ilaina izy ireo rehefa niasa tamin'ny fampiharana tsirairay izay nisy ny baolina. Raha tsaroako ny fahadisoako hafa amin'ny fihomehezana, dia ity iray ity no mampitsemboka ahy na dia androany aza.

Vao haingana aho no nanamboatra ity bug ity, folo taona taty aoriana. "Patched", fa tsy "fixed", satria araka ny voalazan'i Joshua Bloch dia mandrakizay ny API. Tsy afaka nanao fanovana izay mety hisy fiantraikany amin'ny programa efa misy izahay, nampianay ny fananana OriginAtCenter miaraka amin'ny sanda diso amin'ny programa taloha ary marina amin'ny ho avy rehetra. Mety hametraka fanontaniana lojika ny mpampiasa: iza no nieritreritra ny hametraka ny toerana fiaingana any an-toeran-kafa ankoatra ny foibe. Ho an'iza? Ho an'ny mpandrindra programa iray izay kamo loatra hamorona API mahazatra folo taona lasa izay.

Lesona nianarana

Rehefa miasa amin'ny API (izay saika ataon'ny mpandrindra rehetra indraindray), dia tokony hanaraka ny torohevitra tsara indrindra voasoritra ao amin'ny lahatsarin'i Joshua Bloch "Ahoana ny fomba hamoronana API tsara ary nahoana izany no zava-dehibe"na amin'ity lisitra fohy ity:

  • Ny API dia afaka mitondra tombontsoa lehibe sy loza lehibe ho anao.. Ny API tsara dia mamorona mpanjifa miverimberina. Ny ratsy dia lasa nofy ratsy mandrakizay ho anao.
  • Ny API ho an'ny daholobe, toy ny diamondra, dia maharitra mandrakizay. Omeo ny zava-drehetra: tsy hisy intsony ny fahafahana hanao ny tsara rehetra.
  • НамСтки для API Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΌΠΈ - pejy iray misy sonia sy famaritana kilasy sy fomba, tsy mihoatra ny andalana iray. Izany dia ahafahanao manamboatra mora foana ny API raha toa ka tsy tonga lafatra izany tamin'ny voalohany.
  • Farito ny tranga fampiasanaalohan'ny fampiharana ny API na miasa amin'ny famaritana azy. Amin'izany fomba izany dia hisoroka ny fampiharana sy ny famaritana API tsy miasa tanteraka ianao.

Raha nanoratra synopsis fohy miaraka amin'ny script artifisialy aza aho, dia azo inoana fa ho nahafantatra ny fahadisoana aho ary nanitsy izany. Raha tsy izany, dia azo antoka fa hanao izany ny iray amin'ireo mpiara-miasa amiko. Ny fanapahan-kevitra rehetra misy vokany lehibe dia mila eritreretina mandritra ny iray andro farafahakeliny (tsy mihatra amin'ny fandaharana fotsiny izany).

Ny lohatenin'ny lahatsoratr'i Richard Gabriel, "Ratsy kokoa no tsara kokoa," dia manondro ny tombony azo amin'ny voalohany amin'ny tsena - na dia amin'ny vokatra tsy lavorary aza - raha misy olon-kafa mandany mandrakizay manenjika ny tonga lafatra. Rehefa misaintsaina ny kaody sprite aho dia tsapako fa tsy nila nanoratra fehezan-dalΓ na bebe kokoa akory aho mba hahazoana azy tsara. Na inona na inona holazaina dia diso tanteraka aho.

famaranana

Manao fahadisoana isan'andro ny programmer, na manoratra code buggy izany na tsy te hanandrana zavatra hanatsara ny fahaizany sy ny vokatra. Mazava ho azy fa afaka ny ho programmer ianao nefa tsy manao fahadisoana lehibe tahaka ny nataoko. Saingy tsy azo atao ny ho lasa programmer mahay raha tsy mahafantatra ny fahadisoanao sy mianatra avy amin'izany.

Mifanena hatrany amin'ireo mpianatra izay mahatsapa ho manao fahadisoana be loatra ka noho izany dia tsy voatendry hanao fandaharana. Fantatro ny fahitan'ny syndrome impostor ao amin'ny IT. Manantena aho fa hianatra ireo lesona notanisaiko ianao - fa tsarovy ny lehibe indrindra: samy manao fahadisoana isika - mahamenatra, mahatsikaiky, mahatsiravina. Ho gaga sy ho sosotra aho raha tsy manana fitaovana ampy hanohizana ilay lahatsoratra amin’ny hoavy.

Source: www.habr.com

Add a comment