Namai Plėtra Greitas atsakymas: duomenų bazės derinimo ir profiliavimo pagalba

Greitas atsakymas: duomenų bazės derinimo ir profiliavimo pagalba

Anonim

Autorius „Techopedia“ darbuotojai, 2017 m. Kovo 15 d

„Takeaway“: Priėmėjas Ericas Kavanaghas aptarė duomenų bazių derinimą ir profiliavimą su dr. Robinu Blooru, Dezu Blanchfieldu ir IDERA Bertu Scalzo.

Šiuo metu nesate prisijungęs. Jei norite pamatyti vaizdo įrašą, prisijunkite arba prisiregistruokite.

Ericas Kavanaghas: Gerai, ponios ir ponai, trečiadienį yra rytas ryto laiku, 4:00, ir tai, žinoma, reiškia.

Robinas Blooras: Negirdžiu tavęs, Erika.

Erikas Kavanaghas: Aš buvau ten prieš kelias dienas, todėl tu ne vienas. Taigi šiandienos tema yra tikrai įdomi. Tai dalykas, dėl kurio norite įsitikinti, kad tai vyksta jūsų įmonės fone, nebent esate asmuo, kuris tai daro. Tokiu atveju norite įsitikinti, ar tai darote tinkamai. Nes mes kalbame apie derinimo veiksmus. Niekam nepatinka klaidų, niekam nepatinka, kai nustoja veikti programinė įranga - žmonės susierzina, vartotojai tampa nedraugiški. Tai nėra gerai. Taigi, mes kalbėsime apie „greitą reagavimą: duomenų bazės derinimo ir gelbėjimo profiliavimas“.

Yra tikrai apie jus, pastebėkite mane, „Twitter“, žinoma, @eric_kavanagh.

Šie metai karšti. Ir derinimo darbai bus karšti, nesvarbu. Tai tikrai bus viena iš šių problemų, kuri niekada neišnyks, nesvarbu, kaip gerai mums pavyksta su kaupu, visada bus problemų, todėl svarbiausia yra tai, kaip patekti į vietą, kur galite greitai išspręsti šias problemas? Idealiu atveju jūs turite puikius programuotojus, puikią aplinką, kurioje ne per daug blogo nutinka, tačiau, kaip senajame posakyje sakoma: „Nelaimingi atsitikimai būna geriausiose šeimose“. Tas pats pasakytina ir apie organizacijas. Taigi, tai nutinka, įvyks, kyla klausimas, koks bus jūsų sprendimas, kaip su ja susidoroti ir išspręsti tas problemas?

Mes tai išgirsime iš daktaro Robino Blooro, tada mūsų paties Dezo Blanchfieldo iš apačios, ir, žinoma, mūsų gero draugo Berto Scalzo iš IDERA. Ir iš tikrųjų aš atiduosiu klavišus Robinui Bloorui, atimsiu jį. Jūsų grindys yra jūsų.

Robinas Blooras: Gerai. Tai įdomi tema. Aš galvojau, kad Dezas tikriausiai ketina tęsti tikrąją techniką ir karo istorijas apie derinimo veiksmus, aš maniau, kad tiesiog padarysiu foninę diskusiją, kad turėtume gauti visiškai suapvalintą vaizdą apie tai, kas vyksta. Aš tai dariau ilgą laiką, o aš buvau koderis, taigi, panašu, ir aš buvau beveik gundomas šio pristatymo pradėti lyriškai kalbėti apie atvirojo kodo idėją, bet maniau, kad paliksiu tai kažkam kitam.

Čia yra žinomų klaidų sąrašas, ir dauguma jų patenka į populiariausių asmenų sąrašą, iš esmės visos, išskyrus paskutines dvi, kainuoja mažiausiai 100 milijonų USD. Pirmasis buvo „Mars Climate Orbiter“, pasiklydo erdvėje ir atsirado dėl kodavimo problemos, kai žmonės supainiojo metrinius vienetus su (juokiasi) kojomis ir coliais. „Ariane Five Flight 501“ įvyko neatitikimas tarp užleisto variklio ir kompiuterių, kurie turėjo paleisti raketą, kai ji buvo paleista. Keli kompiuterio gedimai, sprogi raketa, naujienos antraštėse. 1982 m. Sovietų dujotiekis, kaip sakoma, yra didžiausias sprogimas per visą planetos istoriją; Nesu tikras, ar taip yra. Rusai pavogė kažkokią automatinę valdymo programinę įrangą, o CŽV suprato, kad ketina tai padaryti, ir įdėjo į tai klaidas, ir sovietai ją įgyvendino neišbandydami. Taigi, susprogdino vamzdyną, pamanė, kad tai yra juokinga.

„Morris“ kirminas buvo kodavimo eksperimentas, kuris staiga tapo rapato kirminu, kuris apėjo visus - matyt, jis padarė 100 milijonų dolerių žalą; tai, žinoma, sąmata. „Intel“ padarė žinomą klaidą, susijusią su matematikos mikroschema - matematikos instrukcija „Pentium“ mikroschemoje 1993 m. -, kuri turėjo sumokėti daugiau nei 100 milijonų dolerių. „Apple“ žemėlapių programa yra turbūt blogiausias ir pražūtingiausias bet kokio „Apple“ paleidimas. Žmonės, kurie bandė juo naudotis, turėjau omenyje, kad kažkas važiavo 101 automobiliu ir sužinojo, kad „Apple Map“ sako, kad jie yra viduryje San Francisko įlankos. Žmonės pradėjo „Apple Maps“ programą vadinti „iLost“. Mūsų ilgiausias 1990 m. Nutrūkimas - tai yra tiesiog įdomu, kiek kainuoja kažkas panašaus - „AT&T“ veikė maždaug devynias valandas ir kainavo apie 60 milijonų dolerių tolimojo skambučio.

Aš buvau JK draudimo kompanijoje ir duomenų bazėje, jie įdiegė naują duomenų bazės versiją ir ji pradėjo šluoti duomenis. Aš tai labai gerai atsimenu, nes po to buvau pakviestas dalyvauti tam tikros duomenų bazės atrankoje. Ir buvo labai įdomu, kad jie pasirinko naują duomenų bazės versiją ir turėjo daugybę testų, kuriuos atliko naujoms duomenų bazės versijoms, kad ji išlaikė visus testus. Tai rado tikrai neaiškų būdą sunaikinti duomenis.

Taigi, šiaip ar taip, tai yra. Maniau, kad kalbėsiu apie varžos neatitikimą ir išduotą SQL. Įdomu tai, kad reliacinėse duomenų bazėse duomenys kaupiami lentelėse, o programuotojai yra linkę manipuliuoti duomenimis objektų struktūrose, kurios iš tikrųjų nėra labai gerai susietos su lentelėmis. Dėl to jūs gaunate tai, kas vadinama varžos neatitikimu, ir kažkas turi vienaip ar kitaip su tuo susidoroti. Bet kas iš tikrųjų atsitinka, nes vienas modelis, koderio modelis, o kitas - duomenų bazėje, nėra ypač suderinti. Jūs gaunate klaidų, kurios tiesiog neįvyktų, jei pramonė būtų sukūrusi kartu veikiančius dalykus, kurie, manau, yra juokingi. Taigi iš esmės programuotojų pusėje, kai jūs gaunate hierarchijas, tai gali būti tipai, tai gali būti rinkiniai, tai gali būti prastos API galimybės, tai gali būti daugybė dalykų, kurie tiesiog išmeta dalykus sąveikos su duomenų baze prasme. Bet dalykas, kuris man labiausiai patinka, tikrai įdomus; Visada mane stebino, kad jūs turite šią SQL barjerą, kuris taip pat yra tam tikra varža tam, kad koderiai ir duomenų bazė dirbtų tarpusavyje. Taigi, SQL turi duomenų atpažinimą, kuris yra puikus, ir jis turi DML pasirinkimui, projektui ir prisijungimui, o tai yra gerai. Tuo pasinaudodami galite išmesti daug duomenų iš duomenų bazės. Bet ji turi labai mažai matematinės kalbos dalykams. Jis turi šiek tiek to ir to, ir jame yra labai mažai laiko pagrįstų dalykų. Dėl to SQL yra netobula priemonė, jei norite, gauti duomenis. Taigi, duomenų bazės vaikinai sukūrė saugomas procedūras, kad galėtų gyventi duomenų bazėje, ir joje saugomų procedūrų priežastis buvo ta, kad jūs nenorėjote mesti duomenų pirmyn ir atgal į programą.

Kai kurios funkcijos buvo labai specifinės duomenims, taigi, tai nebuvo vien tik nuorodų vientisumas ir pakopiniai panaikinimai bei panašūs dalykai, duomenų bazė rūpinosi staiga, kai jūs įtraukėte funkcionalumą į duomenų bazę, o tai, žinoma, reiškė, kad programos funkcionalumą būtų galima padalyti tarp koderio ir pačios duomenų bazės. Dėl to kai kurių rūšių funkcijų įgyvendinimas iš tiesų buvo gana sunkus ir todėl labiau linkęs į klaidas. Taigi, tai yra viena duomenų bazės žaidimo pusė, nes tai reiškia, kad jūs, pavyzdžiui, esate įdiegę daugybę įgyvendinimų, kad aš įsitraukiau į reliacines duomenų bazes, ten yra tikrai nepaprastai daug kodų, esančių saugomose procedūrose, kurie yra tvarkomi. atskirai nuo kodo, kuris yra programose. Atrodo, kad labai keistas dalykas, kurį teko susitaikyti, jis turėtų būti gana protingas darydamas įvairius dalykus.

Maniau, kad kalbėsiu ir apie duomenų bazės našumą, nes našumo klaidos dažnai laikomos klaidomis, tačiau iš esmės CPU, atmintyje, diske, tinkle galite turėti kliūčių ir dėl užrakinimo gali kilti našumo problemų. . Idėja būtų ta, kad koduotojui tikrai nereikėtų rūpintis našumu, o duomenų bazė iš tikrųjų veiktų pakankamai gerai. Jis turėtų būti suprojektuotas taip, kad koderio nereikėtų žinoti. Tačiau gaunamas netinkamas duomenų bazių dizainas, netinkamas programos dizainas, derinami darbo krūviai, o tai taip pat gali sukelti našumo problemų. Gaunate apkrovos balansavimą, planuojate talpą, didinate duomenis - dėl to duomenų bazė gali tiesiog sustoti arba sulėtėti. Įdomus dalykas, kai duomenų bazės beveik užpildomos, jos sulėtėja. Taip pat galite išduoti duomenų lygmenis, susijusius su replikacija ir poreikiu atkartoti, taip pat su atsarginių kopijų kūrimo ir atkūrimo reikmėmis. Šiaip ar taip, tai yra bendra apžvalga.

Vienintelis dalykas, kurį norėčiau pasakyti, yra tai, kad duomenų bazių derinimas gali būti tik toks sunkus ir nereikšmingas - ir aš sakau, kad jau padariau labai daug - ir dažnai pastebėsite, kad kaip ir visos derinimo situacijos, aš kada nors patyręs yra pirmasis dalykas, kurį jūs kada nors matėte, yra netvarka. Ir jūs turite pabandyti pereiti nuo netvarkos prie to, kad išsiaiškintumėte, kaip kilo netvarka. Ir dažnai, kai žiūrite į duomenų bazės problemą, visi jūs žiūrite į sugadintus duomenis ir galvojate: „Kaip po velnių tai atsitiko?“

Bet kokiu atveju aš perduosiu Dezui, kuris tikriausiai pasakys daugiau išminties žodžių, nei aš sugalvojau. Nežinau, kaip perduoti tau kamuolį, Dez.

Erikas Kavanaghas: Aš tai praeisiu, stovėsiu, palaikysiu.

Automatizuotas balsas: dalyvių eilutės nutildytos.

Ericas Kavanaghas: Gerai, pakabink vieną sekundę, leisk man duoti Dezui kamuolį.

Dezas Blanchfildas: Ačiū, Ericai . Taip, dr. Robin Bloor, jūs iš tikrųjų teisingiausias: tai tema, nesąžininga visą gyvenimą, jei atleisite bausmę, atsiprašau, kad negalėjau sau padėti. Tikiuosi, kad ten pamatysite mano pirmąjį ekraną, atsiprašiau dėl šrifto dydžio problemos viršuje. Klaidų tema yra visą dieną trunkanti paskaita, daugeliu atvejų, mano patirties pagrindu. Tai tokia plati ir plati tema, todėl ketinu sutelkti dėmesį į dvi pagrindines sritis, būtent į koncepciją, kurią mes laikome ne tik klaida, bet ir programavimo problema. Manau, kad šiomis dienomis klaidos per se pristatymas paprastai pasirenkamas integruotoje kūrimo aplinkoje, nors tai gali būti ir ilgalaikė klaida. Bet dažnai tai yra kodo klasifikavimo atvejis ir galima parašyti kodą, kuris veikia, tai turėtų būti klaida. Taigi, mano pavadinimo skaidrė čia, aš iš tikrųjų turėjau šios kopiją labai didele skiriamąja geba A3, bet, deja, ji buvo sunaikinta, kai namas pasikeitė. Bet tai yra ranka užrašytas programavimo lapas iš maždaug 1945 m., Kur, kaip spėjama, kai kurie žmonės iš Harvardo universiteto JAV, savo antrą aparatą, vadinamą Mark II. Jie derino kai kuriuos dalykus bendrine kalba, tačiau bandė surasti gedimą ir paaiškėjo, kad atsirado kažkas, kas šiek tiek skiriasi nuo aparatinės įrangos ir tariamai programinės įrangos problemos.

Taigi, miesto mitas yra toks, kad maždaug 1945 m. Rugsėjo 9 d . Harvardo universiteto komanda išsitraukė mašiną, jie susidūrė su vadinamu „septyniasdešimtuoju relė“ - tais laikais programavimas buvo vykdomas fizine prasme, jūs sužeidėte kodą. aplink lentą, ir taip jūs veiksmingai užprogramavote mašiną - ir jie nustatė, kad šis relės numeris buvo septyniasdešimt, joje buvo kažkas negerai, ir paaiškėja, kad tikrasis terminas „klaida“ atsirado todėl, kad tai tiesiog pažodžiui buvo kandis - tariamai ten buvo kandis, įsukta tarp varinės vielos gabalo, einančio iš vienos vietos į kitą. Pasakojama, kad legendinė Grace Hopper kaip antraštė mano pavadinimo skaidrėje „pirmasis tikras klaidos atvejis“ cituoja citatą.

Tačiau, kaip Robinas pabrėžė anksčiau savo pirmojoje skaidrėje, klaidos sąvoka siekia taip toli, kiek mes galime įsivaizduoti, kad žmonės atlieka skaičiavimus, tokias sąvokas kaip pleistras. Terminas „pleistras“ kilo dėl to, kad tikrasis juostos gabalas buvo užrišamas per skylę perforavimo kortelėje. Bet visa to esmė ta, kad terminas „derinimo“ atsirado iš šios sąvokos, kaip rasti klaidą fiziniame kompiuteryje, sąvokos. Ir nuo to laiko mes naudojame tą terminologiją bandydami spręsti problemas ne tiek kodavimo klausimais, kurie nesudaromi kompiuteryje, kiek programa, kuri veikia netinkamai. O specialiai nebuvo profiliuotas, tiesiog raskite tokius dalykus kaip nesibaigiantys kilpai, kurie tiesiog niekur nenukeliauja.

Bet mes taip pat turime scenarijų, ir aš maniau, kad įdėsiu porą juokingų skaidrių, kol neįsigilinsiu į šiek tiek daugiau detalių. Čia yra klasikinis animacinis filmas, žiniatinklyje vadinamas XKCD, o karikatūristas turi keletą juokingų pasaulio vaizdų. Ir tai yra apie vaiką, vadinamą „mažais Bobio stalais“ ir tariamai jo tėvai šį jauną berniuką pavadino Robertu); NUOLAIDOS LENTELĖ Mokiniai; - ir ji vadinama, tarsi „Labas, tai tavo sūnaus mokykla turi tam tikrų problemų su kompiuteriu“, o tėvas atsako: „O, brangioji, ar jis ką nors sulaužė?“ O mokytojas sako: „Na, tam tikru būdu “, o mokytojas klausia:„ ar jūs tikrai pavadinote savo sūnų Robertu “); NENORI LENTELĖ Studentai; -? “Ir vienas iš tėvų sako:„ O taip, mažą Bobby lentelę, kurią mes jam vadiname. “Bet kokiu atveju, jie sako, kad dabar prarado metų studentų įrašus, tikiuosi, kad esate laimingi. Atsakymas yra: „Na, jūs turėtumėte išvalyti ir sutvarkyti savo duomenų bazės įvestis.“ Ir aš daug kartų naudojuosi tam tikroms problemoms, kurias turime ieškant kodo, spręsti, kad dažnai kodas nežiūri duomenų. taip pat.

Kitas juokingas dalykas, aš nežinau, ar tai tikra, ar ne - įtariu, kad tai apgaulė - bet vėl tai liečia mano juokingą kaulą. Kažkas keičia savo automobilio priekyje esančią valstybinio numerio ženklą į panašų teiginį, dėl kurio duomenų bazėse sumažėja greičio matavimo kamerų skaičius ir tt, kurie užfiksuoja automobilių valstybinius numerius. Aš visada į tai kalbu taip, kad abejoju, ar bet kuris programuotojas numatė, jog jų kodas bus paleistas ir paleistas realia motorine transporto priemone, tačiau niekada neįvertinu to - pikto geiko galios.

(Juokas)

Bet, manau, tai priveda prie mano esminės minties ir tai yra, kad kažkada galėtume derinti ir profiliuoti kodą kaip paprastus mirtingus. Bet aš labai vertinu požiūrį, kad tas laikas praėjo, ir anekdotiniu požiūriu esu pirmasis - ir tai mane tikrai siaubia, esu tikras; Robinas, jūs kviečiatės mane tuo pasijuokti, tačiau istoriškai aš buvau kilęs iš 14 metų amžiaus, klajodamas miesto gale ir beldžiantis į duomenų centro, vadinamo „Data Com“, duris Naujojoje Zelandijos ir klausia, ar galėčiau užsidirbti kišenpinigių mokykloje, nuvykdamas į vėlai važiuojantį autobusą namo, maždaug 25 km į darbą ir atgal kasdien, įdėdamas popierių spausdintuvuose, juosteles į juostinius įrenginius ir tiesiog būdamas generaliniu administratoriumi. Ir kaip buvo įdomu, jie man davė darbą. Tačiau laikui bėgant man pavyko įsitraukti į personalą ir susirasti programuotojus ir supratau, kad man patinka kodavimas ir aš paleidžiu scenarijų ir paketinių darbų procesą, kuris dienos pabaigoje vis dar yra kodas. Turite parašyti scenarijus ir paketinius darbus, kurie atrodo kaip mini programos, ir tada eikite visą procesą, kai sėsite ant 3270 terminalo, ranka rašydami kodą.

Tiesą sakant, mano pati pirmoji patirtis buvo teletipo terminale, kuris iš tikrųjų buvo 132 kolonų fizinis spausdintuvas. Iš esmės pagalvokite apie labai seną rašomąją mašinėlę su popieriumi, kuri ją slinkdavo, nes jie neturėjo CRT vamzdelio. Derinti kodą šiuo klausimu buvo labai nesvarbi problema, todėl jūs buvote linkęs visą kodą rašyti ranka, o tada elgtis kaip mašinininkas, darydamas viską, kad nesuklystumėte, kad įsispaustumėte, nes tai labai nemalonu pasakyti vienos eilutės redaktorius eina į tam tikrą eilutę, tada atspausdina eilutę ir vėl ją įveda. Bet kažkada būtent taip mes rašėme kodą ir štai kaip mes derėjome, ir mums tai labai, labai gerai pavyko. Ir iš tikrųjų tai privertė mus turėti labai geras programavimo technikas, nes ją taisyti buvo tikras vargas. Bet tada kelionė praėjo - ir mes visi tai žinome - ji vyko nuo 3270 terminalo patirties mano pasaulyje iki „Digital Equipment VT220“, kur ekrane galėjai pamatyti dalykus, bet vėlgi, tu darei tik tą patį jūs darėte ant popieriaus juostos, kaip atspausdintą, tik CRT, bet galėjote lengviau ištrinti ir neturėjote tokio garso kaip „dit dit dit dit“.

Ir tada jūs žinote, „Wyse“ terminalai - kaip „Wyse 150“, turbūt mano visų laikų mėgstamiausia sąsaja su kompiuteriu - ir tada kompiuteris, tada „Mac“, o šiais laikais šiuolaikinės žiniatinklio sąsajos ir ID. Ir daugybė programų per tai, programavimas viename ir montuotoju, PILOT ir Logo bei Lisp ir Fortran bei Pascal bei kalbos, kurios gali priversti žmones susigūžti. Bet tai yra kalbos, kurios privertė jus parašyti gerą kodą; jie neleido atsikratyti blogos praktikos. „C“, „C ++“, „Java“, „Ruby“, „Python“ - ir mes žengiame toliau į tą programavimo etapą, mes tampame panašesni į scenarijus, artėjame arčiau Struktūrizuotos užklausos kalbos ir kalbų, tokių kaip PHP, kurios iš tikrųjų naudojamos SQL sukūrimui. Taškas jums pasakyti, tai yra, kilęs iš mano patirties, aš buvau mokomasis įvairiais būdais, o tie, kurie man padėjo išmokti, išmokė mane labai geros programavimo praktikos ir labai geros praktikos, susijusios su dizainu ir procesais, kad įsitikinčiau, jog ne pristatyti klaidingą kodą.

Programavimo metodai šiais laikais, pavyzdžiui, struktūrizuota užklausų kalba, SQL, yra labai galinga, paprasta užklausų kalba. Bet mes pavertėme ją programavimo kalba ir aš nelabai tikiu, kad SQL kada nors buvo sukurta kaip moderni programavimo kalba, tačiau mes ją supratome, kad taptume tokia. Tai pristato visą krūvą klausimų, „kai mes galvojame apie du aspektus: kodavimo ir DBA požiūriu. Labai lengva ateiti ir pristatyti klaidas, pavyzdžiui, tik dėl prastų programavimo metodų, tingių pastangų rašant kodą, patirties trūkumo, pavyzdžiui, klasikinio naminių gyvūnėlių, kuriuos turiu, pavyzdžiui, su SQL žmonėmis, peršokančiais „Google“ ir ieškančiais kažko bei radusia svetaine gavau pavyzdį ir pasidarai esamo kodo kopiją. Tada atkartokite netinkamą kodavimą, netinkamą elgesį ir pradėkite gaminti, nes tai tiesiog suteikia jiems norimų rezultatų. Jūs turite kitų iššūkių, pavyzdžiui, šiomis dienomis mes visi skubame link to, ką mes vadiname lenktynėmis iki nulio: stengiamės padaryti viską taip pigiai ir taip greitai, kad turime scenarijų, kuriame mes nedirbame žemesnių apmokamas personalas. Aš turiu omenyje tai, kad nemandagu, bet mes ne samdome ekspertus kiekvienam įmanomam darbui. Kažkada bet koks dalykas, susijęs su kompiuteriais, buvo raketų mokslas; jis dalyvavo dalykuose, kurie smarkiai garsėjo arba buvo išleisti į kosmosą, arba inžinieriai buvo aukštos kvalifikacijos vyrai ir moterys, įgiję laipsnius ir turintys griežtą išsilavinimą, neleidę jiems daryti beprotiškų dalykų.

Šiomis dienomis į kūrimą ir dizainą bei duomenų bazę kreipiasi daugybė žmonių, kurie neturi ilgametės patirties, nebūtinai turėjo tą patį mokymą ar palaikymą. Taigi jūs užbaigsite scenarijų, kuriame vaizduojamas tradicinis mėgėjas arba ekspertas. Čia yra garsioji linija, aš iš tikrųjų neatsimenu, kas sukūrė citatą. Ši linija eina taip: „Jei manote, kad ekspertui samdyti darbą yra brangu, palaukite, kol pasamdysite porą mėgėjų, kurie sukuria problemą, ir jūs „SQL“ turi šią problemą ir ją labai, labai lengva išmokti, ja labai lengva naudotis. Bet, mano nuomone, tai nėra tobula programavimo kalba. Labai lengva atlikti veiksmus, pvz., Atlikti pasirinktą žvaigždę iš bet kurios vietos ir visa tai perkelti į jums patogesnę programavimo kalbą, pavyzdžiui, PHP, „Ruby“ ar „Python“, ir naudoti programavimo kalbą, kurią jūs esate gimtoji, pažįstama. manipuliavimas duomenimis, užuot atlikęs sudėtingesnę užklausą SQL. Mes tai daug matome, tada žmonės stebisi, kodėl duomenų bazė veikia lėtai; taip yra todėl, kad milijonas žmonių bando nusipirkti bilietą iš internetinės bilietų sistemos, kur ji pasirenka žvaigždę iš bet kurios vietos.

Dabar tai tikrai kraštutinis pavyzdys, tačiau jūs visa tai suprantate. Taigi, norėdamas tiesiog ištarti tą tašką namo, štai pavyzdys, kurį daug nešiojuosi. Aš esu didelis matematikos gerbėjas, mėgstu chaoso teoriją, mėgstu „Mandelbrot“ rinkinius. Dešinėje pusėje yra „Mandelbrot“ rinkinio perdavimas, kurį aš tikiu, kad mes visi esame pažįstami. Kairėje pusėje yra SQL fragmentas, kuris iš tikrųjų tai pateikia. Kaskart, kai įdedu tai į ekraną, girdžiu: „O, dieve, kažkas pavertė„ Mandelbrot “seriją naudodamas SQL, ar jūs rimtai? Tai beprotiška! “Na, visa to esmė yra iliustruoti tai, ką aš ten ką tik apibūdinau, ir tai yra taip, iš tikrųjų dabar jūs galite užprogramuoti beveik bet ką SQL; Tai labai išvystyta, galinga, moderni programavimo kalba. Kai iš pradžių tai buvo užklausų kalba, ji buvo sukurta tam, kad tik gautų duomenis. Taigi, dabar mes turime labai sudėtingas konstrukcijas ir turime saugomas procedūras, programavimo metodiką taikome kalbai ir todėl labai lengva dėl blogos programavimo praktikos, patirties stokos, „cut-and-paste“ kodo, mažai apmokami darbuotojai, bandantys būti gerai apmokami darbuotojai, žmonės apsimeta, kad žino, bet jie turi mokytis darbe.

Daugybė dalykų, kai kodo profiliavimas ir tai, ką mes vadiname derinimo priemonėmis, yra ne tiek klaidų, kurios sustabdo programų veikimą, tiek radimas, tiek klaidų, kurios tik kenkia sistemai, ir blogo struktūros kodas. Kai dabar žiūrite į šį ekraną ir manote, kad tai tiesiog puiku, jūs galvojate: „Oho, kokia puiki grafika, aš mielai tai paleisčiau.“ Bet įsivaizduokite, kad veikia kažkokia verslo logika. . Tai atrodo gana tvarkingai, tačiau kalba apie matematiškai grafiškai perteiktą chaoso teoriją, tačiau kai pagalvoji apie tai, kam ji galėtų būti panaudota tam tikroje verslo logikoje, labai greitai gauni vaizdą. Ir tai tikrai iliustruoti - ir gaila, kad spalvos yra atvirkščios, tai turėtų būti juodas fonas ir žalias tekstas, kad būtų žalias ekranas, bet jūs vis tiek galite tai perskaityti.

Aš nuėjau ir greitai pažvelgiau į pavyzdį, ką tu galėtum padaryti, jei tu iš tikrųjų išprotėjęs ir neturėtum jokios patirties, kilęs iš kitokio programavimo fono ir pritaikęs C ++ „SQL“, kad iš tikrųjų parodyčiau mano mintį anksčiau. Aš perduodu mūsų išmoktam svečiui iš IDERA. Tai yra struktūruota užklausa, parašyta kaip „C ++“, tačiau užkoduota SQL. Ir jis faktiškai vykdomas, bet vykdomas maždaug per tris – penkias minutes. Matyt, ji atitraukia vieną duomenų eilutę iš kelių duomenų bazių, kelių sujungimų.

Vėlgi, visa to esmė yra ta, kad jei jūs neturite tinkamų įrankių, jei neturite tinkamų platformų ir aplinkos, kad galėtumėte sugauti šiuos dalykus, ir jie pradeda gaminti, tada jūs turite 100 000 žmonių pataikydami į sistemą kiekvieną dieną, valandą ar minutę, labai greitai jūs patirsite Černobylio patirtį, kai didžioji geležis pradeda tirpti ir palaidoti save planetos šerdyje, nes tas kodo gabalas niekada neturėtų būti gaminamas. Jūsų sistemos ir įrankiai, atsiprašau, turėtų pasiimti tai prieš pradedant bet kur arti - net per bandymo procesą, net per UAT ir sistemų integraciją, tas kodo fragmentas turėtų būti paimtas ir paryškintas, o kažkas turėtų būti atidėtas ir sakydamas: „Žiūrėk, tai tikrai gražus kodas, bet gaukime DBA, kuris padėtų jums tinkamai sukurti tą struktūrizuotą užklausą, nes atvirai pasakius, tai tiesiog niekinga“. Ir URL yra, galite eiti ir pasižvalgyti - jis vadinamas sudėtingiausia SQL užklausa, kurią jūs kada nors parašėte. Priežastis, patikėkit manimi, kad tai iš tikrųjų sukompiliuota, ji vykdoma. Ir jei jūs ją iškirpote ir įklijuojate, ir tik tyčiojatės iš duomenų bazės, tai yra gana ką žiūrėti; jei turite įrankius duomenų bazei žiūrėti, pabandykite ištirpti per tris – penkias minutes, kad galėtumėte paskambinti, kas yra viena teksto eilutė.

Taigi, apibendrindamas, turėdamas omenyje tai, visas mano kodavimo pagrindas mane išmokė, kad tu gali duoti žmonėms ginklą, o jei jie nėra atsargūs, šaudys sau į koją; triukas yra parodyti jiems, kur yra saugos mechanizmas. Turėdami po ranka tinkamus įrankius ir tinkamą programinę įrangą, atlikę kodavimą, galite peržiūrėti savo kodą, galite rasti problemų profiliavę kodą, galite rasti efektyviai nenumatytų klaidų, kurios yra našumo problemos, ir kaip sakiau Anksčiau, kadaise, galėjai tai padaryti žiūrėdamas į žalią ekraną. Nebegalite; yra šimtai tūkstančių kodų eilučių, yra įdiegta dešimtys tūkstančių programų, kai kuriais atvejais yra milijonai duomenų bazių ir net super žmonės iš tikrųjų to negali padaryti rankomis. Jums pažodžiui reikia tinkamos programinės įrangos ir tinkamų įrankių po ranka, o jums reikia, kad komanda naudotųsi tais įrankiais, kad galėtumėte rasti šias problemas ir labai greitai jas išspręsti, prieš pradėdami naudotis tašku, o dr. Robinas Blooras pabrėžė, kad dalykai arba tampa pražūtingi, ir viskas susprogdinama, arba, dažniausiai, jie tiesiog pradeda jums kainuoti daug dolerių, daug laiko ir pastangų ir sunaikinti moralę bei kitus dalykus, kai jie negali išsiaiškinti, kodėl viskas imasi ilgai bėgti.

Turėdamas tai omenyje, perduosiu mūsų svečiui ir nekantrauju išgirsti, kaip jie išsprendė šią problemą. Ir ypač demonstracinę versiją, kurią aš manau, kad netrukus gausime. Erika, aš perduosiu atgal.

Erikas Kavanaghas: Gerai, Bertu, atimk jį.

Bertas Scalzo: Gerai, ačiū. Bertas Scalzo čia iš IDERA, aš esu mūsų duomenų bazės įrankių vadybininkas. Ir aš ketinu kalbėti apie derinimo veiksmus. Aš manau, kad vienas iš svarbiausių dalykų, apie kuriuos anksčiau sakė Robinas, - ir labai tiesa, kad derinimo darbai yra sunkūs ir nėra nereikšmingi, o kai jūs einate į duomenų bazių derinimą, tai mastelio tvarka yra dar sunkesnė ir nereikšminga - taigi, kad buvo svarbi citata.

GERAI. Norėjau pradėti nuo programavimo istorijos, nes daugybę kartų matau žmones, kurie nekelia derinimo, nenaudoja derinimo, jie tiesiog programuoja bet kuria kalba, kurią naudoja, ir daugybę kartų jie man sako, „Na, tie derinimo įrankiai yra nauji ir mes jų dar nepradėjome naudoti.“ Ir tai, ką darau, yra parodyti jiems šią laiko juostos diagramą, savotišką priešistorę, senatvę, viduramžius, tai natūra pasakyti kur mes buvome kalbėdami apie programavimo kalbas. O mes jau 1951 m. Turėjome labai senas kalbas su surinkimo kodu, Lisp ir FACT bei COBOL. Tada mes patenkame į kitą grupę, „Pascals“ ir Cs, paskui kitą grupę, „C ++“, ir žiūrime, kur tas klaustukas yra - tas klaustukas yra maždaug dešinėje nuo 1978 m. Iki galbūt 1980 m. Kai kur tame diapazone mes turėjome derintojai, kurie mums yra prieinami, ir taip sakyti: „Ei, aš nenaudoju derinimo priemonės, nes tai yra vienas iš tų naujų dalykų“, tada jūs jau turėjote pradėti programuoti, žinai, praėjusio amžiaus šeštajame dešimtmetyje, vienintelis būdas atsikratyti šios pretenzijos.

Kitas juokingas dalykas šioje diagramoje yra tai, kad Dezas ką tik parašė komentarą apie Grace Hopper, aš iš tikrųjų žinojau Grace, taigi tai savotiškai juokinga. Tada aš juokiausi iš to, kad jis kalbėjo apie teletipus ir aš sėdžiu ten eidamas: „Žmogus, tai buvo didžiausias produktyvumo šuolis, kurį mes kada nors turėjome, kai mes pereidavome nuo kortelių prie teletipų, tai buvo didžiausias šuolis. Taigi, aš užprogramuoju visomis kalbomis, įskaitant SNOBOL, apie kurias dar niekas negirdėjo, tai buvo CDC, „Control Data Corporation“, todėl, manau, aš šiek tiek pasenusi šiai pramonei. .

Dezas Blanchfildas: Aš ketinau pasakyti, kad tu mus ten baisiai pagyvenai .

Bertas Scalzo: Taip, aš jums sakau, kad jaučiuosi kaip senelis Simpsonas. Taigi aš žvelgiu į derinimo veiksmus ir yra įvairių derinimo būdų. Galėtumėte kalbėti apie tai, ką mes visi galvojame kaip apie tradicinį įsitraukimą į derinimo įrenginį ir žingsnio po kodą. Bet žmonės taip pat pritaikys savo kodą; štai kur jūs įklijuojate teiginius į savo kodą ir galbūt sukuriate išvesties failą, atsekamąjį failą ar dar ką nors, taigi ir pritaikote kodą. Aš manyčiau, kad kaip derinti, tai šiek tiek sunkiau, tai yra būdas, tačiau tai svarbu. Bet taip pat turime garsųjį spausdinimo pareiškimą: jūs žiūrite ir žmonės iš tikrųjų įdėjo spausdinimo pareiškimus, ir aš iš tikrųjų mačiau įrankį, kur - ir tai yra duomenų bazės įrankis - kur, jei jūs nežinote, kaip naudoti derinimo įrankį, paspausite mygtuką ir jis priklijuos atspausdintus teiginius visame jūsų kode, o tada, kai baigsite, paspausite kitą mygtuką ir jis juos ištrins. Nes būtent taip debiutuoja daugybė žmonių.

Deja, todėl mes turime dvejopą priežastį: pirmiausia, mes turime rasti dalykų, dėl kurių mūsų kodas tampa neveiksmingas. Kitaip tariant, tai paprastai reiškia loginę klaidą arba mes praleidome verslo reikalavimus, tačiau kas tai yra, kodas nėra efektyvus; ji nedaro to, ko tikėjomės. Kitą kartą mes einame derinti, tai dėl efektyvumo ir tai gali būti loginė klaida, bet kas tai yra, ar aš padariau teisingai, jis tiesiog negrįžta pakankamai greitai. Dabar atkreipiu dėmesį į tai, kad profiliuotojui turbūt geriau tinka tas antrasis scenarijus, ir mes kalbėsime apie derintuvus ir profiliuotojus. Be to, yra ši nuotolinio derinimo koncepcija; tai svarbu, nes daug kartų, jei sėdite asmeniniame kompiuteryje ir naudojate deriklį, kuris pataiko į duomenų bazę, kurioje kodas faktiškai vykdomas duomenų bazėje, jūs iš tikrųjų darote tai, kas vadinama nuotoliniu derinimo būdu. Jūs galbūt to nesuvokiate, bet štai kas vyksta. Ir tada labai svarbu, kad šie derintojai turėtų pertraukų taškus, stebėjimo taškus, žingsnius į priekį ir kitus įprastus dalykus, kad aš akimirksniu parodysiu juos ekrano vaizde.

Dabar profiliavimas: profiliavimą galite atlikti keliais skirtingais būdais. Kai kurie žmonės sakys, kad darbo krūvio fiksavimas ir pakartojimas ten, kur užfiksuota viskas, tai laikoma profiliavimu. Mano patirtis buvo didesnė, tuo geriau, jei tai bus atranka. Nėra jokios priežasties gaudyti kiekvieną pareiškimą, nes kai kurie teiginiai gali būti tokie greitai vykdomi, kad jums nerūpi, ką jūs iš tikrųjų bandote pamatyti, gerai, kurie yra tie, kurie nuolat rodomi vėl ir vėl, nes jie bėga per ilgai. Taigi, kartais profiliavimas gali reikšti atranką, o ne viso proceso vykdymą. Paprastai gausite tam tikrą išvestį, kurią galėsite naudoti, dabar tai galėtų būti vaizdinė IDE kūrimo aplinkos aplinka, kur ji gali jums suteikti įvairių kodų eilučių veikimo histogramą, tačiau ji taip pat gali kad būtų sukurtas sekimo failas.

Profileriai pirmą kartą pasirodė 1979 m. Taigi, jie taip pat egzistuoja ilgą laiką. Puikiai tinka rasti išteklių sunaudojimo ar našumo problemas, kitaip tariant, tą efektyvumo dalyką. Paprastai tariant, jis yra atskiras ir skirtingas nuo derinimo priemonės, nors aš dirbau su derintuvais, kurie abu veikia tuo pačiu metu. Ir nors profiliuotojai, manau, yra įdomesni iš dviejų įrankių, jei jaučiu, kad nedaug žmonių dera, tada tikrai nepakanka žmonių profiliavimo, nes atrodo, kad vienas iš dešimties derinimo priemonių profiliuojasi. Gaila, nes profiliavimas tikrai gali padaryti didžiulį skirtumą. Dabar, duomenų bazių kalbos, kaip jau kalbėjome anksčiau, jūs turite SQL - ir mes tarsi privertėme apvalųjį kaištį į kvadratinę angą ir privertėme jį tapti programavimo kalba - ir „Oracle“. Tai yra PL / SQL - tai procedūrinė kalba SQL - ir SQL serveris, tai „Transact-SQL“, tai „SQL-99“, tai „SQL“ / „PSM“ - manau, kad tai yra procedūra išsaugotas modulis. „Postgres“ suteikia jam dar vieną pavadinimą, DB2 - dar vieną pavadinimą, „Informix“, bet esmė ta, kad visi privertė 3GL tipo konstrukcijas; kitaip tariant, FOR kilpos, esant kintamoms deklaracijoms, ir visa kita SQL svetima medžiaga dabar yra tų kalbų SQL dalis. Taigi, jūs turite sugebėti derinti PL / SQL arba „Transact-SQL“, kaip ir „Visual Basic“ programa.

Dabar, duomenų bazės objektai, tai yra svarbu, nes žmonės sakys: „Na, ką aš turiu derinti duomenų bazėje?“, O atsakymas yra, ką jūs galite išsaugoti duomenų bazėje kaip kodą - jei darau T-SQL arba PL / SQL - ir aš kaupiu objektus duomenų bazėje, tai tikriausiai yra saugoma procedūra arba saugoma funkcija. Bet yra ir trigerių: trigeris yra tarsi saugoma procedūra, tačiau jis suveikia dėl tam tikro įvykio. Dabar kai kurie žmonės į savo aktyviklius sudės vieną kodo eilutę ir iškvies saugomą procedūrą, kad jie išsaugotų visą saugomą kodą ir procedūras, tačiau tai yra ta pati sąvoka: vis tiek trigeris gali būti tas, kuris inicijuoja visą dalyką. Ir tada, kaip „Oracle“, jie turi tai, kas vadinama paketu, kuris yra tarsi biblioteka, jei to norėsite. Jūs sudėjote 50 arba 100 saugomų procedūrų į vieną grupę, vadinamą paketu, taigi tai panašu į biblioteką. Taigi, čia yra senasis derintojas; tai iš tikrųjų yra įrankis, kuris iš tikrųjų įsijungs ir užklijuos visus šiuos derinimo teiginius jūsų kode. Taigi, visur, kur matote derinimo bloką, nepašalinkite, automatinio derinimo įrankio paleidimas ir sekimas, visa tai buvo įstrigusi kažkokiame įrankyje. O ne tos eilutės, kurios yra kodo mažuma, na, tai ne rankinis derinimo metodas.

Priežastis, kodėl aš tai iškėliau, yra ta, kad jei bandote tai padaryti ranka, jūs iš tikrųjų ketinate įvesti daugiau derinimo kodų, kad įdėtumėte visus šiuos spausdinimo teiginius, nei esate su kodu. Taigi, nors tai gali veikti, ir nors tai yra geriau nei nieko, tai yra labai sunkus būdas derinti, juo labiau, kad kas nutiktų, jei šiam dalykui paleisti prireiktų 10 valandų, o kur jis turi problemą, atitiktų trečią eilutę? Jei daryčiau interaktyvų derinimo seansą, būčiau žinojęs trečią - penkias minutes - hey, čia yra problema, aš galiu mesti. Bet aš turėjau laukti, kol jis bus paleistas, iki galo, ir tada aš turėjau peržvelgti kažkokį pėdsakų failą, kuriame turbūt yra visi šie spausdinimo teiginiai, ir pabandyti surasti adatą šienapjūtė. Vėlgi, tai yra geriau nei nieko, bet tai nebūtų geriausias būdas dirbti. Štai kaip atrodytų tas failas iš ankstesnės skaidrės; Kitaip tariant, aš vedžiau programą, ir aš tiesiog turiu krūvą spausdinamų teiginių šiame pėdsakų faile ir aš galiu nebūti, galėdamas atsipalaiduoti ir surasti tai, ką man reikia rasti. Taigi, dar kartą nesu įsitikinęs, kad būtent taip norėtumėte dirbti.

Dabar interaktyvūs derinimo įrankiai - ir jei jūs naudojote kažką panašaus į „Visual Studio“ rašydami programas ar „Eclipse“, turėjote derinimo priemonių ir juos naudojote kitomis savo kalbomis - tiesiog negalvojai jų čia naudoti su savo duomenų baze. Ir ten yra įrankių, tokių kaip mūsų „DB Artisan“ ir mūsų „Rapid SQL“, tai čia yra „Rapid SQL“, kurie turi derinimo įrankį. Kairėje pusėje galite pamatyti, kad turiu saugomą procedūrą, vadinamą „patikrinkite, ar nėra kopijų“. Iš esmės, tai tiesiog eisiu pasižvalgyti ir pažiūrėti, ar lentelėje turiu kelias eilutes su tuo pačiu filmo pavadinimu. Taigi, duomenų bazė yra skirta filmams. Jūs galėjote pamatyti dešinėje, viršutinėje trečiojoje dalyje, viduryje turiu savo išeities kodą, turiu vadinamuosius laikrodžio kintamuosius ir skambučių kamino dėklus, o apačioje aš ' gavau keletą išvesties pranešimų. Ir kas čia yra svarbu, jei peržvelgiate tą pirmąją raudoną rodyklę, jei pervedžiu pelę virš kintamojo, aš iš tikrųjų galiu pamatyti, kokia yra tame kintamajame esanti reikšmė tuo laiko momentu, kai einu per kodą. Ir tai yra tikrai naudinga, ir tada aš galiu pereiti vieną eilutę per kodą, aš neturiu pasakyti, kad vykdyk, galėčiau pasakyti: žingsnis po eilutės, leisk man pažiūrėti, kas atsitiko, paeiti kitą eilutę, pažiūrėti, kas nutiko, ir aš tai darau duomenų bazėje. Ir nors aš sėdžiu „Rapid SQL“ kompiuteryje ir mano duomenų bazė yra debesyje, vis tiek galiu atlikti nuotolinį derinimo procesą, jį pamatyti ir valdyti iš čia, ir derinimo klaidas daryti taip, kaip norėčiau bet kurioje kitoje kalboje.

Dabar kita rodyklė ten - galite pamatyti panašias rodykles, nukreiptas į dešinę, link tos DBVS išvesties, kur šiuo metu yra mano žymeklis - kitaip tariant, aš perėjau ir aš ten, kur esu akimirka. Taigi, jei sakau: „Žingsnis dar kartą“, eisiu į tą eilutę. Dabar apačioje pamatysite raudoną tašką. Na, tai lūžis, sakantis „Ei, aš nenoriu peržengti šių linijų.“ Jei noriu tik peršokti per viską ir patekti ten, kur yra tas raudonas taškas, aš galiu paspausti paleidimo mygtuką ir jis paleis nuo čia iki galo arba iki lūžio taško, jei yra kokių nors ribinių punktų, tada jis sustos ir leis man dar kartą žengti. Visa tai svarbu ir galinga todėl, kad kai visa tai darau, pasikeis tai, kas vyksta viduryje ir net apačioje, bet, svarbiausia, viduryje, ir aš matau vertes iš savo kintamųjų, Aš matau savo skambučių kamino pėdsaką, žinote, todėl visa ta informacija yra rodoma ten, kur aš einu per kodą, todėl iš tikrųjų galiu pamatyti ir jausti bei suprasti, kas vyksta ir kaip yra kodas. darbo vykdymo metu. Ir paprastai galiu rasti problemą, jei ji yra, arba jei aš pakankamai gera, kad ją sugautų.

Gerai, dabar aš kalbėsiu apie profiliuotoją, ir šiuo atveju tai yra profiliavimo priemonė, kurią galiu pamatyti naudodamas derinimo įrenginį. Prisimeni, sakiau, kad kartais jie yra atskiri, o kartais gali būti kartu? Šiuo atveju ir vėl aš naudojuosi „Rapid SQL“ ir matau, kad kairėje pusėje, šalia eilučių, yra paraštė. Kas tai yra, tai sekundžių ar mikrosekundžių skaičius, kurio prireikė vykdant kiekvieną kodo eilutę, ir aš aiškiai suprantu, kad visas mano laikas praleidžiamas šioje vienoje FOR formoje, kur aš viską renkuosi iš lentelės . Taigi, kad ir kas įvyktų tos FOR linijos viduje, turbūt reikia į ką pažvelgti, ir, jei galėsiu padaryti geresnį, tai mokės dividendus. Aš nesieksiu jokių patobulinimų dirbdamas tose eilutėse, kurios turi kaip 0, 90 arba 0, 86; ten praleista nedaug laiko. Dabar, vėlgi, aš esu „Rapid SQL“, jūs matote, kaip aš galiu atlikti profiliavimą, susimaišydamas su derinimo funkcija. Kas yra puiku, „Rapid SQL“ taip pat leidžia tai padaryti kitaip. Greitasis SQL leidžia jums pasakyti: „Žinai ką? Nenoriu būti derinimo priemonėje, tiesiog noriu tai paleisti ir tada noriu grafiškai ar vizualiai pažiūrėti tos pačios rūšies informaciją. “

Galite pamatyti, kad nebėra derinimo priemonė ir ji vykdo programą, o atlikus vykdymą, ji man pateikia diagramas, kurios man pasako dalykus, kad galėčiau pamatyti, kad turiu vieną teiginį, kuris atrodo, kad jis pradeda veikti didžiąją dalį pyrago diagramos ir, jei pažvelgiu, matau tame tinklelyje link apatinės 23 eilutės, ten vėl yra FOR kilpa: jis užima daugiausiai laiko, jis iš tikrųjų yra tamsiai raudonas kramtantis visą pyrago diagramą. Taigi, tai yra dar vienas būdas profiliuoti. Mes savo įrankyje vadiname tai „kodų analitiku“. Bet tai iš esmės yra tik profiliatorius, atskirtas nuo derintuvo. Kai kuriems žmonėms tai patinka daryti pirmąjį būdą, kai kuriems tai patinka daryti antruoju būdu.

Kodėl dedame derinimo ir profiliavimo principus? Ne todėl, kad norime parašyti didžiausią pasaulyje kodą ir gauti atlyginimą - tai gali būti mūsų priežastis, tačiau tikrai ne ta priežastis, kodėl tai darote - pažadėjote verslui, kad padarysite ką nors teisingai, kad jūsų programa bus veiksminga. Tam tikslui naudosite deriklį. Be to, verslo galutiniams vartotojams; jie nėra labai kantrūs: nori rezultatų net prieš paspausdami mygtuką. Mes turėtume perskaityti jų mintis ir viską padaryti akimirksniu. Kitaip tariant, jis turi būti efektyvus. Taigi, tam mes ir panaudosime profiliavimo įrankį. Dabar be šių įrankių aš tikrai tikiu, kad jūs esate šis verslo kostiumo vaikinas su lanku ir strėle, šaudote į taikinį ir esate užrištomis akimis. Nes kaip jūs sužinosite, kaip programa vykdoma, žiūrint tik į statinį kodą, ir kaip jūs sugalvosite išsiaiškinti, kuri eilutė yra ta, kur ji iš tikrųjų praleistų daugiausia laiko vykdydama, vėlgi, tiesiog žiūrėdami į statinį kodą? Kodo peržiūra gali atversti kai kuriuos iš šių dalykų, bet ne, tačiau nėra garantijos, kad juos peržiūrėjus, bus kodo peržiūra. Naudodamiesi derintuvu ir profiliuokliu, turėtumėte sugebėti rasti visas šias klaidas.

Gerai, aš tiesiog čia padarysiu tikrą greitą demonstracinį demonstraciją. Aš neketinu stumti produkto, tiesiog noriu parodyti jums, kaip atrodo derinimo priemonė “, nes daug kartų žmonės sakys:„ Aš niekada anksčiau nemačiau nė vieno iš jų. “Ir tai atrodo gražiai ekrano spragtelėjimuose., bet kaip tai atrodo judant? Taigi, čia, ekrane, aš paleidžiu mūsų produktą „DB Artisan“; čia taip pat turime derinimo įrankį. „DB Artisan“ yra skirtas daugiau DBA, „Rapid SQL“ labiau skirtas kūrėjams, bet aš mačiau kūrėjų, kurie naudoja „DB Artisan“, ir aš mačiau DBA, kurie naudoja „Rapid“. Taigi, neužsiimkite produktu. Ir štai, aš turiu galimybę pasirinkti derinimo funkciją, tačiau prieš pradėdamas derinimo procesą aš ištraukiu šį kodą, kad galėtumėte pamatyti, kaip atrodo kodas, prieš pradėdamas jį naudoti. Taigi, čia yra tas pats kodas, kuris buvo ekrano nuotraukoje, tai yra mano patikrinimas, ar nėra dublikatų. Ir aš noriu tai suderinti, todėl paspauskite derinimo mygtuką. Dabar užtrunka ir jūs sakote: „Na, kodėl tam reikia laiko?“. Prisiminkite nuotolinį derinimo procesą: derinimo darbai vyksta mano duomenų bazės serveryje, o ne asmeniniame kompiuteryje. Taigi, reikėjo pereiti ir ten sukurti sesiją, sukurti nuotolinio derinimo dalyką, prijungti mano sesiją prie tos nuotolinio derinimo sesijos ir nustatyti ryšio kanalą.

Taigi, štai mano rodyklė, ji viršuje, po eilutės, štai kode aš esu. Ir jei paspausiu ten trečią piktogramą, kuri yra žingsnis į priekį, pamatysite, kad rodyklė ką tik judėjo, o jei aš ją ir toliau spausiu, pamatysite, kad ji juda. Dabar, jei norėčiau pereiti prie šios FOR linijos, nes žinau, kad ten ir yra problema, galiu nustatyti lūžio tašką. Aš maniau, kad aš tai nustatiau. O, šaudyk, aš turėjau vieną iš ekrano fiksavimo klavišų, priskirtą tam pačiam raktui, kaip ir derinimo priemonė, būtent tai ir sukelia painiavą. Gerai, kad aš tiesiog rankiniu būdu nustatau lūžio tašką ten, taigi dabar, užuot atlikęs žingsnį, žingsnį, žingsnį, žingsnį, kol pateksiu ten, iš tikrųjų galiu tiesiog pasakyti: „Eik į priekį ir paleisk šį reikalą“, ir jis sustos. Atkreipkite dėmesį, kad tai mane visiškai nustūmė link lūžio taško, todėl dabar einu į šios linijos kilimo aplinkybes ir matau, kokie yra mano visų kintamieji, o tai nėra staigmena, nes aš juos visus inicijavau. iki nulio. Dabar aš galiu žengti į šią kilpą ir pradėti žiūrėti, kas vyksta šios kilpos viduje.

Taigi, dabar jis atliks pasirinktą skaičiavimą iš mano nuomos ir aš galiu perkelti pelės žymeklį virš to vaikino ir pažiūrėti, jis yra du, du yra daugiau nei vienas, taigi, greičiausiai, tai padarysiu kitą šio kodo dalį. Kitaip tariant, ji kažką rado. Aš tiesiog ketinu eiti į priekį ir leisti tai bėgti. Aš nenoriu visko čia peržvelgti; tai, ką noriu jums parodyti, yra tai, kad atlikus derinimo įrankį jis užsibaigia kaip ir įprasta programa. Turiu nustatytą lūžio tašką, taigi, kai sakiau bėgti, jis tiesiog grįžo į kitą lūžio tašką. Aš leidžiu jai paleisti iki galo, nes tai, ką noriu, kad jūs pamatytumėte, yra tai, kad derinimo priemonė nepakeičia programos elgsenos: kai ji bus paleista, turėčiau gauti visiškai tuos pačius rezultatus, jei būčiau ją paleidusi ne viduje derinimo priemonė.

Tada aš sustabdysiu demonstracinę versiją ir grįšiu atgal, nes norime įsitikinti, kad turime laiko klausimams ir atsakymams. Taigi atidarysiu jį klausimams ir atsakymams.

Ericas Kavanaghas: Gerai, Robinai, galbūt klausimas iš jūsų ir tada pora iš Dezo?

Robinas Blooras: Taip, žinoma, man tai, žinoma, yra žavu. Aš dirbau su tokiais dalykais kaip šis, bet niekada nesu dirbęs nieko panašaus duomenų bazėje. Ar galite man pasakyti, kam žmonės naudojasi profiliu? Kadangi jie yra panašūs, ar jie žiūri - nes aš manau, kad jie yra - jie nagrinėja našumo problemas, ar tai padės atskirti, kada duomenų bazė užima laiko, o kada kodas užtrunka?

Bertas Scalzo: Žinote, tai fantastiškas klausimas. Tarkime, aš dirbu „Visual Basic“ ir aš savo „Visual Basic“ viduje skambinsiu „Transact-SQL“ arba „PL / SQL“. Leisk man atlikti PL / SQL, nes „Oracle“ ne visada gerai žaidžia su „Microsoft“ įrankiais. Aš galiu profiliuoti savo „Visual Basic“ kodą, o ten esantis profilis gali sakyti: „Ei, aš paskambinau šiai saugomai procedūrai ir ji užtruko per ilgai.“ Bet tada aš galiu pereiti prie saugomos procedūros ir galiu padaryti saugomos duomenų bazės profilį. procedūrą ir pasakykite: „Gerai, iš 100 čia esančių teiginių, štai penki, kurie sukėlė problemą“. Taigi, jums gali tekti sudaryti žymų komandą, kur jūs turite naudoti kelis profilius.

Idėja yra ta, kad jei jums bus pasakyta, kad našumo problema yra jūsų duomenų bazėje, duomenų bazės profilis gali padėti rasti adatą šieno kamino viršuje, kurioje iš tikrųjų yra tie teiginiai, kuriuose turite problemų. Aš jums sakau dar vieną dalyką, paaiškėjusį profiliavimu: jei turite kodą, kuris vadinamas milijoną kartų, bet užtenka tik mikrosekundės kiekvieną milijoną kartų, bet jis vadinamas milijoną kartų, ką parodys profiliuotojas, tas dalykas vyko tiek daug laiko vienetų. Taigi, nors kodas gali būti labai efektyvus, galite pasižiūrėti ir pasakyti: „O, mes skambiname į šį kodą per dažnai. Galbūt mes turėtume tai vadinti tik taip dažnai, o ne kiekvieną kartą, kai tvarkome įrašą “ar ką nors kita. Taigi iš tikrųjų galite rasti ten, kur yra efektyvus kodas, kuris tiesiog dažnai vadinamas, ir tai iš tikrųjų yra našumo problema.

Robinas Blooras: Taip, tai nuostabu. Aš to niekada nedariau. Jūs, be abejo, matote, kai turėjau problemų su duomenų bazėmis, kad būčiau vienaip ar kitaip susidūręs su duomenų baze arba su kodu; Niekada negalėčiau elgtis su abiem tuo pačiu metu. Bet vėlgi, aš to nepadariau - aš niekada nedalyvavau kurdamas programas, kuriose saugojome procedūras, todėl manau, kad niekada iš tikrųjų nesu susidūręs su problemomis, kurios mane varo į lauką, mintimi, kad tu Padalinkite kodą į duomenų bazę ir programą. Bet taip, darykite viską - aš manau, kad atsakymas bus teigiamas, tačiau tai yra plėtros komandos veiklos dalis, kai jūs vienaip ar kitaip bandote ištaisyti tai, kas sugedo, o gal bandote atnešti naują paraiška kartu. Bet ar visa tai tinka su visais kitais komponentais, kurių tikėčiau aplinkoje? Ar galiu tikėtis, kad galėčiau tai iškarpyti kartu su visais savo testavimo paketais ir visais kitais dalykais, kuriuos daryčiau, ir su savo projekto valdymo medžiagomis, ar taip yra visa tai?

Bertas Scalzo: Taip, programavimo ar plėtros pastangos gali tapti bet kokio struktūrizuoto proceso dalimi. Ir juokinga, kad praėjusią savaitę turėjau klientą, kuris kūrė internetinę programą, ir istoriškai jų duomenų bazė buvo nedidelė, todėl faktas, kad jie nebuvo labai geri programuotojai, niekada jiems nepakenkė. Na, jų duomenų bazė bėgant metams išaugo ir dabar tinklalapyje užtrunka 20 sekundžių, kai jūs sakote: „Prisijunkite mane ir duokite man duomenų pamatyti“ ir tada, kai ekranas iš tikrųjų pasirodys, taigi dabar spektaklio problema. Ir jie žinojo, kad problemos nėra nei jų „Java“, nei kitose vietose. Bet jie turėjo tūkstančius saugomų procedūrų, todėl jie turėjo pradėti profiliuoti saugomas procedūras, kad sužinotų, kodėl šiam tinklalapiui reikia 20 sekundžių? Ir mes iš tikrųjų nustatėme, kad jie turėjo Dekarto jungtį prie vieno iš savo pasirinktų teiginių ir to nežinojo.

Robinas Blooras: Oho.

Bertas Scalzo: Bet kažkas man kartą pasakė : „Na, kaip jie galėjo prisijungti Dekartą ir to nepažinti?“ Ir tai skambės tikrai siaubingai; kartais programuotojas, kuriam nelabai patinka SQL, padarys kažką panašaus, kad duotų man Dekarto prisijungimą, bet tada man grąžins tik pirmąjį įrašą, todėl žinau, kad kažką gavau, ir man reikia tik pirmojo. Taigi jie net nenutuokia, kad ką tik sugrąžino milijardą įrašų arba peržiūri milijardą įrašų, nes gavo tą, kuris juos domino.

Robinas Blooras: Oho, aš žinau, tai vadinama - gerai, būtent tai ir tęsė Dezas, kalbant apie žmones, kurie nėra tokie kvalifikuoti, kokie jie turėtų būti, žinote. Jei esate programuotojas, turėtumėte žinoti, kokia yra komandos išdavimo reikšmė. Aš turiu omenyje, kad nėra tokio kvailumo pasiteisinimo. Aš taip pat manau, kad jūs vienaip ar kitaip esate tikri kalbos agnostikai šiuo klausimu, nes visa tai nukreipta į duomenų bazę. Ar aš tame teisus? Ar tai tas pats, kad ir ką naudojate kodavimo pusėje?

Bertas Scalzo: Absoliučiai tai galite padaryti „Fortran“ arba C ar C ++. Tiesą sakant, kai kuriuose „Unix“ įrenginiuose jūs netgi galite tai padaryti jų scenarijų kalbomis; jie iš tikrųjų teikia tas pačias priemones. Ir tada aš noriu grįžti šiek tiek atgal į tai, ką jūs sakėte be jokio pasiteisinimo. Aš padarysiu programuotojams vieną pertrauką, nes man nepatinka mesti programuotojus po autobusą. Tačiau problema iš tikrųjų yra akademinė aplinka, nes eidami išmokti būti programuotojais mokote mąstyti rekordiškai. Jūs nemokote rinkinio mąstymo, ir būtent tai su struktūrinėmis užklausų kalba arba SQL veikia rinkiniais; Štai kodėl mes turime sąjungą, sankryžą ir minuso operatorių. O žmogui, kuris niekada negalvoja apie rinkinius, yra labai sunku mesti rūkyti, leisti perdirbti įrašus ir dirbti su komplektais.

Robinas Blooras: Taip, aš su tavimi dėl to. Aš turiu galvoje, kad aš dabar, tai švietimo problema; Manau, kad tai visiškai švietimo klausimas, manau, kad programuotojams yra natūralu mąstyti procedūriškai. Ir SQL nėra procedūrinis, jis yra deklaratyvus. Iš tikrųjų jūs tik sakote: „Tai yra tai, ko aš noriu, ir man nesvarbu, kaip tai darai“, žinote? Programavimo kalbų dėka jūs dažnai susikreipėte rankoves ir susipažinote su skaičiavimo ypatumais, o jūs darote kilpą. Aš perduosiu

Bertas Scalzo: Ne. Gerai, tęskite.

Taip, aš ketinau pasakyti, kad jūs iškėlėte vieną kitą pavyzdį, kad profiliuotojui būtų gerai sugauti šį procesą tuo pačiu metu. Kartais programuotojas, puikiai žinantis logiką vienu metu, negali išsiaiškinti, kaip atlikti SQL programą. Na, tarkime, jis sukuria dvi FOR kilpas ir iš esmės daro sujungimą, tačiau jis tai daro iš kliento pusės. Taigi, jis daro tą patį efektą, kaip ir prisijungimas, tačiau daro pats, ir profilis tai sugaus, nes greičiausiai daugiau laiko praleisite atlikdami prisijungimą rankiniu būdu, nei leisdami duomenų bazės serveriui tai padaryti už jus.

Robinas Blooras: Taip, tai būtų katastrofa. Aš turiu omenyje, kad jūs tiesiog melsitės. Thrashing visada blogai.

Šiaip ar taip, aš perduosiu Dezui; Esu tikras, kad jis turi keletą įdomių klausimų.

Dez Blanchfield: Ačiū, taip, aš tai darau. Ketinu prisijungti prie tavęs, kad neišmesčiau programuotojų po autobusu. Aš turiu omenyje, kad per daug metų gyvenime praleidau koderį, kiekviename lygmenyje, žinote, ar tai, kaip jūs sakėte, sėdi ant „Unix“ mašinos komandinės eilutės, o kai kuriais atvejais net buvau įsitraukęs keliose skirtingose ​​„Unix“ jungtyse iš vienos aparatinės įrangos platformos į kitą. Ir jūs galite įsivaizduoti, kokius iššūkius ten patyrėme. Bet tikrovė yra ta, kad išeikite iš kalėjimo kortelių kiekvienam pasaulio koderiui ir scenarijui. Rašyti mokslą, gana pažodžiui, rašyti tikrai griežtai kiekvieną kartą, yra raketų mokslas. Ir žinomos žmonių, tokių kaip Dennisas Ritchie ir Brianas Kernahanas, savarankiškai dirbdami prie kokio nors kodo, pasakojimai apie pokalbį prie kavos ir sužinoję, kad jie parašė tiksliai tą patį kodo fragmentą, tiksliai toje pačioje programoje, lygiai taip pat. Ir jie tai padarė C. Bet tas puristinis programavimo lygis egzistuoja labai retai.

Faktas yra tas, kad kasdien būna tik 24 valandos per dieną, septynias dienas per savaitę, ir mes tiesiog turime viską susitvarkyti. Taigi, kai kalbame ne tik apie tradicinius programuotojus, DBA ir kodavimo įrenginius, ir scenarijus, ir sysadminus, ir tinklo administratorius, ir apsaugos darbuotojus, ir viskas, kas šiais laikais yra piliečių duomenų pusėje; girdime, visi tik bando atlikti savo darbą. Taigi aš manau, kad didžiulis šio dalyko pasirodymas yra tas, kad aš mylėjau tavo demonstracinę versiją ir aš pamilau tave, kurią palikote su mumis ten, prieš akimirką, kalbėdamas su Robinu apie tai, kad tai turi ypatingą - galbūt ne tiek daug niša - bet plati erdvė, kuriai ji taikoma, kiek tai yra kodų ir SQL bei duomenų bazių taisymas. Bet man buvo labai malonu girdėti, kaip jūs sakėte, kad galite suspausti scenarijų ir rasti tam tikrų problemų, nes žinote, kad šiandien ir amžiuje mes visada dirbame su kuo mažesnėmis sąnaudomis.

Jūs galite kažkur nusipirkti 6 USD vertės marškinius dėl to, kad kažkas sukūrė pakankamai pigią sistemą, kad iš tikrųjų pagamintų ir gabentų bei logiškai pristatytų ir parduotų bei parduotų mažmeninę prekybą ir atliktų mokėjimus internetu, kad gautų tuos 6 USD marškinius. Ir taip neatsitiks, jei priversite žmones sumokėti 400 000 USD per metus už tai, kad nepriekaištingai parašytų kodą; tai tik visas vystymasis. Taigi, aš manau, kad vienas iš klausimų, kuriuos labai norėčiau, kad jūs suteiktumėte mums daugiau įžvalgos, yra tas, kokį plotą ir pasiekiamumą gali suteikti žmonės, kuriuos matote šiuo metu ir kurie naudoja tokio tipo įrankius profiliuoti kodą ir ieškoti našumo problemų? Iš pradžių, iš kur jie kilę? Ar jie buvo didieji inžinerijos namai? Ir tada, kalbėdamas apie priekį, ar teisingai galvoju, kad vis daugiau ir daugiau įmonių diegia šį įrankį arba tuos įrankius, kad pabandytų padėti kodikams, kurie, jų žiniomis, ką tik daro, kad darbas būtų baigtas ir išeiti pro duris? O kartais mums reikia išeiti iš kalėjimo kortelės? Ar aš teisus manydamas, kad istoriškai mes labiau orientavomės į inžineriją ir tobulėjome? Kaip dabar, pasak Robino, gauname mažiau, akademinį požiūrį, o dabar tai yra savamokslis, ar „cut-and-paste“ kodas, ar tiesiog viskas susikūrė? Ar tai atitinka žmonių, kurie šiuo metu vartoja produktą, rūšis?

Bertas Scalzo: Taip, tiksliai. Pateiksiu jums labai konkretų pavyzdį, mes tik norime, kad darbas būtų atliktas “, nes verslo žmonės nenori tobulumo. Tai tarsi kompiuterinis šachmatų žaidimas: šachmatų žaidimas neieško tobulo atsakymo; ieškoma atsakymo, kuris būtų pakankamai geras per protingą laiką, taigi mes taip ir programuojame. Tačiau aš sužinau, kad dauguma žmonių, užuot sakę, kad nori profilio, kad galėtų atlikti savo vienetų testavimą - kaip aš tai padaryčiau, aš manau, kad tai nėra laiko švaistymas. dabar, kai tai daroma vėliau, kartais per integracijos testus ar testavimą nepalankiausiomis sąlygomis, jei mums pasisekė. Bet dažniausiai tai būna eskalavimo dalis, kai kažkas buvo pradėta gaminti, kurį laiką jis veikė, galbūt net bėgo metus, o dabar neblogai veikia, o dabar mes tai profiliuosime. Ir atrodo, kad dabar tai yra labiau paplitęs scenarijus.

Dezas Blanchfildas: Taip, ir aš manau, kad terminas „techninė skola“ tikriausiai yra tas, su kuriuo esate daugiau susipažinęs; Pažįstu Robiną ir tikrai esu. Manau, kad šiomis dienomis, ypač atsižvelgiant į judrų požiūrį į plėtrą ir sistemos kūrimą, techninės skolos koncepcija yra labai tikras dalykas, ir mes iš tikrųjų tai atsižvelgiame į projektus. Aš žinau, turiu omenyje, kad turime savo projektus, tokius kaip „Media Lens“ ir kiti, kur kasdien vyksta kodavimas, ir įvairius „Bloor“ grupės dalykus. Ir kai mes ką nors statome, mes žiūrime į tai, aš į tai žiūriu ir visada žvelgiu iš to, kas man kainuos taisyti šią problemą dabar, palyginti su tuo, ar aš galiu tai gauti gali ir iš ten išvežti, tada žiūrėti ir žiūrėti, ar šis dalykas nutrūks. Ir paveldėk šią techninę skolą, kurią žinau, kad vėliau turėsiu susigrąžinti ir sutvarkyti.

Aš turiu omenyje, kad aš tai padariau per pastarąsias septynias dienas: aš parašiau porą įrankių ir scenarijų, parašiau porą python kalbos dalių ir panaudojau ją Mongo galinėje dalyje, sudarydamas įsitikinęs, kad jis gražus, švarus ir saugus, tačiau užtenka užklausos, kurią man reikia atlikti, žinant, kad man reikia šios funkcijos, kad galėčiau dirbti, kad galėčiau patekti į didesnį galvosūkį; štai kur yra tikras mano skausmas. Taigi jūs patiriate šią techninę skolą, ir aš manau, kad tai dabar nėra tik atsitiktinis dalykas, manau, kad tai yra dalis dabar kuriamos DNR. Žmonės tiesiog - ne įkyriai - jie tiesiog priima techninę skolą - įprastas modus operandi klausimas, ir jie tiesiog privalo ją patirti. Čia iškyla techninė skola. Ir aš manau, kad puikus dalykas, kurį parodėte mums demonstracinėje versijoje, buvo tai, kad jūs galite tiesiogine prasme profiliuoti ir žiūrėti, kiek laiko kažkas užtruks. Ir tai turbūt vienas mano mėgstamiausių dalykų. Aš turiu galvoje, kad aš iš tikrųjų sukūriau profiliavimo įrankius - mes naudojome įrankius „Sed“, „Lex“ ir „Orc“, kad paleisdavome savo kodą ir pamatytume, kur yra kilpos, kol nebuvo tokių įrankių, o kai sukūrėte kodą, kad galėtumėte eiti ir Peržiūrėkite savo kodą, jums labai gerai, kad nereikia peržiūrėti savo kodo. Bet dabar taip nėra. Turint tai omenyje, ar yra tam tikras rinkos segmentas, kuris užima daugiau nei bet kuris kitas? Matyti kaip mišias -

Bertas Scalzo: O, taip, aš turiu - aš jums parinksiu analogiją ir parodysiu, kad neprogramuotojai tai daro visą laiką. Priežastis: jei aš kada nors mokysiu derintoją ir profiliuosiu klasę ar sesiją, paklausiu žmonių: „Gerai, kiek žmonių čia lankosi„ Microsoft Word “ir tikslingai niekada nenaudoja rašybos tikrinimo?“ Ir niekas nepakelia rankos, nes rašydami dokumentus visi žinome, kad galime padaryti klaidų anglų kalba, todėl visi naudojasi rašybos tikrintuvu. Aš atsakiau: „Na, kodėl tada, kai rašote tekstą savo IDE, pavyzdžiui, „ Visual Basic “, nenaudojate derinimo? Tai tas pats dalykas, tarsi rašybos tikrintojas. “

Dezas Blanchfildas: Taip, iš tikrųjų tai yra puiki analogija. Aš tikrai negalvojau apie tai, turiu pripažinti, kad iš tikrųjų darau kažką panašaus naudodamas keletą įrankių. Tiesą sakant, vienas, ODF, mano mėgstamiausias su „Eclipse“ yra tiesiog iškirpkite ir įklijuokite kodą ten ir eikite ieškoti dalykų, kurie tiesiog išryškėja, ir supratau, kad kažkuriame klasės skambutyje aš padariau rašybos klaidą. Ir vis dėlto dabar yra įdomu, nes naudodamiesi šiuo įrankiu galite tai padaryti realiuoju laiku, o ne grįžti ir žiūrėti vėliau, o tai yra malonu sugauti iš anksto. Bet taip, tai puiki tiesiog teksto įdėjimo į tekstų rengyklę analogija, nes tai yra įdomus žadintuvas, tiesiog supranti, kad padarei rašybos klaidų ar net gramatikos klaidų, tiesa?

Bertas Scalzo: Tiksliai.

Dezas Blanchfieldas: Taigi, ar jūs matote daugiau pasipiktinimo, turiu omenyje, turiu omenyje, galutinį klausimą, kurį man pateikė, prieš pradėdamas galimus klausimus ir atsakymus mūsų lankytojams. Jei ketintumėte pateikti tam tikras rekomendacijas dėl to, kaip tai padaryti - aš manau, kad tai yra retorinė - ar taip yra, kad jūs atsiduriate anksti ir įgyvendinate tai, kai tobulėjate, dar nespėdami? Arba dažniausiai jūs statote, judate, statote ką nors, tada įeinate ir vėliau profiliaujate? Įtariu, kad reikia anksti įeiti ir įsitikinti, kad jūsų kodas yra švarus. Ar tai yra atvejis, kai jie turėtų svarstyti šią savo dislokavimo dalį?

Bertas Scalzo: Idealiu atveju jie tai padarytų iš anksto, bet kadangi visi yra stumdymosi ir šurmulio pasaulyje, kur jiems reikėjo tiesiog susitvarkyti daiktus, jie paprastai to nedaro tol, kol nepateks į spektaklio problemą, kurios jie negali išspręsti. pridedant daugiau procesorių ir atminties virtualioje mašinoje.

Dezas Blanchfildas: Taip. Taigi, jei galėčiau greitai, jūs paminėjote ką nors įdomaus? Anksčiau minėjote, kad tai galima paleisti iš bet kurios vietos, o gale esančioje duomenų bazėje - kalbėti. Taigi, tai yra patogu su tokia bimodalinio pobūdžio koncepcija, apie kurią dabar kalbame, apie debesį, esantį ant prievartos / ne prie jo, taip pat pagal daiktų išvaizdą dienos pabaigoje, jei jis gali susikalbėti su užpakaliniu galu ir pamatyti kodas, tai tikrai nesvarbu, ar ne?

Bertas Scalzo: Tiksliai, taip, jūs galite tai paleisti debesyje.

Dezas Blanchfildas: Puikus, nes aš manau, kad būtent ten ir žengia mūsų naujasis drąsusis pasaulis. Taigi, Erikas. Dabar grįžtu prie jūsų ir pamatysiu, kad čia turime keletą klausimų, ir noriu, kad mūsų dalyviai vis tiek liktų su mumis, nors jau praėjome valandą.

Ericas Kavanaghas: Taip, ten yra keletas žmonių, aš tik trumpai pakomentuosiu: Bertas, aš manau, kad metafora, analogija, kurią jūs suteikiate naudodami rašybos tikrinimą, yra atvirai nuostabi. Tai verta dienoraščio ar dviejų, atvirai sakant, nes tai yra geras būdas suskaidyti kontekstą, ką jūs darote, kiek jis vertingas ir kaip iš tikrųjų turėtų būti geriausia praktika naudoti derinimo įrankį. reguliariai, tiesa? Turiu lažintis, kad kai kurios galvos linkteli, kai išmetate tą, tiesa?

Bertas Scalzo: Visiškai todėl, kad aš jiems sakau: „Kodėl turiu tikrinti savo dokumentų rašybą? Aš nenoriu būti sugniuždytas dėl kvailų rašybos klaidų. “Na, jie nenori gėdytis dėl kvailų kodavimo klaidų!

Ericas Kavanaghas: Teisus. Taip išties. Na, žmonės, mes per valandą ir penkias minutes perdegėme, todėl didelis ačiū jums visiems už jūsų laiką ir dėmesį. Mes archyvuojame visus šiuos internetinius pokalbius, bet kada galime grįžti ir patikrinti. Geriausia vieta rasti šias nuorodas tikriausiai yra techopedia.com, todėl mes ją pridėsime prie šio sąrašo čia.

Su tuo mes atsisveikinsime, žmonės. Dar kartą, puikus darbas, Bert, ačiū mūsų draugams iš IDERA. Mes kalbėsimės su jumis kitą kartą, iš tikrųjų kalbėsimės su jumis kitą savaitę. Pasirūpink! Iki.

Greitas atsakymas: duomenų bazės derinimo ir profiliavimo pagalba