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
Nofy ratsy izany. Taona maro taty aoriana dia nilazana aho fa nankahala ahy ilay programmer izay nandova ny code-ko.
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.
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.
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
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
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
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.
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.
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΡΠΊΠ°Π·Π°ΡΡ x- ΠΈ y-ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΡΠ΅Π½ΡΡΠ° ΠΊΡΡΠ³Π°, ΠΊΠ°ΠΊ ΡΡΠΎΠΌΡ ΡΡΠΈΡ Π»ΡΠ±ΠΎΠΉ ΡΡΠ΅Π±Π½ΠΈΠΊ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠΈ ΠΈ Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ, ΡΠΏΠΎΠΌΠΈΠ½Π°ΡΡΠΈΠΉ ΠΊΡΡΠ³ΠΈ.
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 "
- 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