Ātra reakcija: datu bāzes atkļūdošana un glābšanas profilu sastādīšana

Autors: Roger Morrison
Radīšanas Datums: 22 Septembris 2021
Atjaunināšanas Datums: 1 Jūlijs 2024
Anonim
Rapid Response: Database Debugging and Profiling to the Rescue
Video: Rapid Response: Database Debugging and Profiling to the Rescue

Izņemšana: Saimnieks Ēriks Kavanaghs apsprieda datu bāzu atkļūdošanu un profilēšanu ar Dr. Robinu Blooru, Dezu Blanšfīldu un IDERA Bertu Scalzo.



Pašlaik neesat pieteicies. Lai redzētu video, lūdzu, pierakstieties vai reģistrējieties.

Ēriks Kavanaghs: Labi, dāmas un kungi, trešdien ir pulksten 4:00 pēc Austrumu laika, un tas, protams, nozīmē.

Robins Bloors: Nevar dzirdēt, Ēriks.

Ēriks Kavanaghs: Es biju tur pirms dažām dienām, tāpēc tu neesi viens. Bet tāpēc šī tēma šodien ir patiešām interesanta. Tā ir lieta, par kuru vēlaties pārliecināties, ka tā notiek jūsu uzņēmuma fona apstākļos, ja vien jūs to neveicat. Šajā gadījumā jūs vēlaties pārliecināties, ka darāt to pareizi. Jo runāja par atkļūdošanu. Nevienam nepatīk kļūdas, nevienam nepatīk, kad programmatūra pārstāj darboties - cilvēki apbēdina, lietotāji kļūst nedraudzīgi. Tas nav labi. Tātad, mēs runāsim par "Ātru reaģēšanu: datu bāzes atkļūdošana un glābšanas profilēšana".


Šeit ir patiesa vietiņa, un, protams, piesaki mani, @eric_kavanagh.

Šis gads ir karsts. Un atkļūdošana būs karsta neatkarīgi no tā. Tā patiešām būs viena no šīm problēmām, kas nekad nepazūd, neatkarīgi no tā, cik labi mēs izturamies pret šīm lietām, vienmēr tās būs problēmas, tāpēc galvenais ir, kā nokļūt tur, kur jūs varat ātri atrisināt šīs problēmas? Ideālā gadījumā jums ir lieliski programmētāji, lieliska vide, kur ne pārāk daudz kas noiet greizi, bet, kā saka senais teiciens: “Negadījumi notiek vislabākajā ģimenē.” Un tas pats attiecas uz organizācijām. Tātad, šī lieta notiek, tā notiks, jautājums ir, kāds būs jūsu risinājums, lai to risinātu un atrisinātu šīs problēmas?

Labi uzklausiet no Dr. Robina Bloora, pēc tam mūsu pašu Dezu Blanšfīldu no apakšas, un, protams, mūsu labo draugu Bertu Scalzo no IDERA. Un patiesībā es taisīšu nodot atslēgas Robinam Blooram un ņemšu to prom. Stāvs ir tavs.

Robins Bloors: LABI. Šī ir interesanta tēma. Es domāju, ka tāpēc, ka Dez, iespējams, ķersies pie aktuālajiem paņēmieniem un kara stāstiem par atkļūdošanu, es domāju, ka es vienkārši darīšu fona diskusiju, lai mums būtu pilnībā noapaļots attēls par notiekošo. Es to darīju ilgu laiku, un es kādreiz biju kodētājs, tā tas bija, un man bija gandrīz kārdinājums ar šo prezentāciju sākt liriski runāt par atvērtā koda ideju, bet es domāju, ka es to atstāšu kādam citam.


Šeit ir slaveno kļūdu saraksts, un lielākā daļa no tām nonāk anybodys top sarakstā, būtībā visas, izņemot pēdējās divas, maksā vismaz 100 miljonus USD. Pirmais bija Marsa klimata orbiters, pazuda kosmosā, un tas notika kodēšanas problēmas dēļ, kur cilvēki jauc metriskās vienības ar (smejas) kājām un collām. Ariane Five Flight 501 radās neatbilstība starp uzlikto motoru un datoriem, kuriem vajadzēja darbināt raķeti, kad tā tika palaista. Vairākas datora kļūmes, eksplodējoša raķete, jaunumi virsrakstā. Padomju gāzes vads 1982. gadā tika uzskatīts par lielāko sprādzienu planētas vēsturē; Es neesmu pārliecināts, vai tas tā ir. Krievi nozaga kādu automatizētu vadības programmatūru, un CIP saprata, ka viņi to darīs, un ievietoja tajā kļūdas, un padomji to ieviesa bez pārbaudes. Tātad, uzpūta cauruļvadu uz augšu, domāja, ka tas ir uzjautrinoši.

Morisa tārps bija kodēšanas eksperiments, kurš pēkšņi kļuva par pārnēsājamu tārpu, kurš gāja apkārt mūžīgiem miesiem - tas acīmredzot nodarīja 100 miljonu dolāru vērtu kaitējumu; tas ir aptuvens kurss. Intel pieļāva slavenu kļūdu ar matemātikas mikroshēmu - matemātikas instrukciju Pentium mikroshēmā 1993. gadā -, domājams, tai bija jāmaksā vairāk nekā 100 miljoni USD. Ābolu kartes programma, iespējams, ir vissliktākā un postošākā atklāšana jebkam, ko Apple jebkad ir darījis. Cilvēki, kas mēģināja to izmantot, es domāju, ka kāds brauca pa 101, un atklāja, ka Apple Map saka, ka viņi atrodas Sanfrancisko līča vidū. Tātad cilvēki sāka atsaukties uz Apple Maps lietotni kā iLost. Mūsu garākais pārtraukums 1990. gadā - tas ir vienkārši interesants no kaut kā tāda viedokļa viedokļa - AT&T darbojās apmēram deviņas stundas, un tālsatiksmes zvani maksāja apmēram 60 miljonus USD.

Es biju Lielbritānijas apdrošināšanas uzņēmumā un datu bāzē, viņi ieviesa jaunu datu bāzes versiju, un tā sāka noslaucīt datus. Un es to ļoti labi atceros, jo pēc tam mani uzaicināja piedalīties kaut kāda veida datu bāzes atlasē. Un bija ļoti interesanti, ka viņi bija paņēmuši jaunu datu bāzes versiju, un viņiem bija daudz testu, ko viņi veica jaunām datu bāzes versijām, ka tā izturēja visus testus. Tas atrada patiešām neskaidru datu iznīcināšanas veidu.

Tātad, tas vienalga, tas. Es domāju, ka es runāšu par pretestības neatbilstību un izsniegto SQL. Interesanti, ka relāciju datu bāzēs dati tiek glabāti tabulās, un kodētāji mēdz manipulēt ar datiem objektu struktūrās, kuras patiešām ļoti labi nesalīdzina tabulas. Un tāpēc jūs saņemat to, ko sauc par pretestības neatbilstību, un kādam tas kaut kādā veidā ir jārisina. Bet kas patiesībā notiek, jo viens modelis, kodētāju modelis, bet datu bāze cits modelis, nav īpaši saskaņots. Jūs saņemat kļūdas, kas vienkārši nenotiktu, ja nozare būtu uzbūvējusi lietas, kas darbojas kopā, kas, manuprāt, ir jautrs. Tātad būtībā kodētāju pusē, kad jūs saņemat hierarhijas, tas var būt tips, tas var būt rezultātu kopas, tā var būt vāja API spēja, tā var būt daudz lietu, kas vienkārši izmet lietas attiecībā uz mijiedarbību ar datu bāzi. Bet lieta, kas man visvairāk patīk, tiešām ir interesanta; vienmēr mani pārsteidza, ka jums ir šī SQL barjera, kas ir arī sava veida pretestība tādā veidā, ka kodētāji un datu bāze strādā savā starpā. Tātad, SQL ir datu atpazīšana, kas ir laba, un tai ir DML atlasīšanai, projektēšanai un pievienošanai, kas ir lieliski. Jūs varat izmantot daudz iespēju, kā ar to iegūt datus no datu bāzes. Bet tam ir ļoti maz matemātiskas valodas lietu veikšanai. Tam ir nedaudz šī un tā, un tam ir ļoti maz laika pamatotu lietu. Tāpēc SQL ir nepilnīgs, ja vēlaties, datu iegūšanas līdzeklis. Tātad, datu bāzes puiši izveidoja glabātās procedūras, lai dzīvotu datu bāzē, un tur glabāto procedūru iemesls bija tas, ka jūs patiešām nevēlējāties datus mest uz priekšu un atpakaļ uz programmu.

Daļai funkcionalitātes bija ārkārtīgi specifiska datu specifika, tāpēc tā nebija tikai atsauces integritāte un svītro izdzēšanas un tamlīdzīgas lietas, datu bāze rūpējās par pēkšņu funkcionalitātes ievietošanu datu bāzē, kas, protams, nozīmēja, ka lietojumprogrammu varētu sadalīt starp kodētāju un pašu datu bāzi. Un tas dažu veidu funkciju ieviešanu padarīja patiešām diezgan grūtu, tāpēc tā bija vairāk pakļauta kļūdām. Tā ir viena datubāzes spēles puse, jo tas nozīmē, ka, piemēram, esat iesaistījies daudzās implementācijās, ka esmu iesaistījies relāciju datu bāzēs, un tiešām ir šausmīgi daudz kodu, kas atrodas glabātajās procedūrās, un tas tiek apstrādāts atsevišķi no koda, kas sēž pieteikumos. Un tas, šķiet, ir ļoti dīvaina lieta, kurai vajadzēja nokļūt, un tai it kā jābūt diezgan gudrai, veicot dažādas lietas.

Es domāju, ka es runāju arī par datu bāzu veiktspēju, jo veiktspējas kļūdas bieži tiek uzskatītas par kļūdām, taču pamatā CPU, atmiņā, diskā, tīklā var rasties sašaurinājumi, un bloķēšanas dēļ var rasties veiktspējas problēmas. Ideja būtu tāda, ka kodētājam tiešām nebija jāuztraucas par veiktspēju un datu bāze faktiski darbosies samērā labi. To vajadzēja izveidot tā, lai kodētājam tas nebūtu jāzina. Tomēr jūs saņemat sliktu datu bāzes dizainu, jūs saņemat sliktu programmu dizainu, jūs saņemat vienlaicīgumu darba slodzes sajaukšanā, kas arī var izraisīt veiktspējas problēmas. Jūs saņemat slodzes līdzsvarošanu, kapacitātes plānošanu, datu pieaugumu - tas var izraisīt datu bāzes vienkārši apstāšanos vai palēnināšanos. Tā ir interesanta lieta, kad datu bāzes kļūst gandrīz pilnas, tās palēninās. Datu slāņi var būt saistīti ar replikāciju un replikācijas nepieciešamību, kā arī dublēšanu un atjaunošanu. Jebkurā gadījumā tas ir vispārīgs pārskats.

Vienīgais, ko es gribētu pateikt, ir tas, ka datu bāzu atkļūdošana var būt tikai tik apgrūtinoša un nebūtiska - un es to saku tāpēc, ka es to esmu izdarījusi daudz - un jūs bieži atklāsit to tāpat kā visas atkļūdošanas situācijas, kuras es jebkad esmu piedzīvojis. ir, ir pirmā lieta, ko jūs kādreiz redzat, ir haoss. Un jums ir jāmēģina no putru puses izdomāt, kā šie putni radās. Un bieži vien, aplūkojot datu bāzes problēmu, visi jūsu aplūkotie dati ir bojāti un jūs domājat: “Kā ellē tas notika?”

Jebkurā gadījumā es nodošu Dez, kurš droši vien pateiks vairāk gudrības vārdu, nekā es izdomāju. Es nezinu, kā nodot tev bumbu, Dez.

Ēriks Kavanaghs: Es to nokārtoju, stāvu blakus, turos.

Automatizēta balss: Dalībnieku līnijas tika izslēgtas.

Ēriks Kavanaghs: Labi, pakavējieties vienu sekundi, ļaujiet man dot Dezam bumbu.

Dez Blanchfield: Paldies, Ēriks. Jā, Dr Robin Bloor, jums patiešām ir visaugstākā taisnība: šī ir tēma, mūža garlaicīga izturēšanās, ja jūs apžēlojat sodu, atvainojiet, ka es nevarēju sev palīdzēt šajā jautājumā. Cerams, ka tur varēsit redzēt manu pirmo ekrānu, atvainošanos par fonta lieluma problēmu augšpusē. Kļūdu tēma ir visas dienas lekcija, daudzos gadījumos pēc manas pieredzes. Tā ir tik plaša un plaša tēma, tāpēc es koncentrēšos uz divām galvenajām jomām, īpaši uz koncepciju, kuru mēs uzskatām par daudz kļūdu, bet gan uz programmēšanas problēmu. Es domāju, ka šajās dienās kļūdas ieviešana pati par sevi parasti tiek uztverta ar integrētu attīstības vidi, lai gan tās var būt ilgstošas ​​kļūdas. Bet bieži vien tas ir koda profilēšanas gadījums un ir iespējams rakstīt kodu, kas darbojas, ka tam vajadzētu būt kļūdai. Tātad, mans nosaukums slīd šeit, man faktiski bija šī kopija ļoti augstā izšķirtspējā A3, bet diemžēl tas tika iznīcināts, pārceļoties mājā. Bet tā ir ar roku rakstīta piezīme uz programmēšanas lapas no aptuveni 1945. gada, kur, domājams, daži cilvēki Hārvardas universitātē ASV, viņu otrā uzbūvētā mašīna ar nosaukumu Marks II. Viņi atkļūdoja kādu problēmu kopējā valodā, bet viņi mēģināja atrast kļūdu, un izrādās, ka radās kaut kas nedaudz atšķirīgs no tā, kas bija aparatūras un it kā programmatūras jautājums.

Pilsētas mīts ir aptuveni 9. septembrīth, 1945. gadā Hārvarda universitātes komanda izvilka mašīnu, viņi saskārās ar kaut ko, ko viņi sauca par “septiņdesmit releju” - tajos laikos programmēšana tika veikta fiziskā nozīmē, jūs apvijāt kodu ap dēli, un tieši tā jūs efektīvi programmējāt mašīna - un viņi atrada šo stafetes numuru septiņdesmit, tajā bija kaut kas nepareizs, un izrādās, ka patiesais termins “kļūda” radās tāpēc, ka tas burtiski bija kandža - domājams, ka starp kādu vara stieples gabalu iet ķērpj kode no vienas vietas uz otru. Un stāsts ir tāds, ka leģendārais Grace Hopper kā šis titrs manā nosaukuma slaidā “pirmais faktiskais kļūdas gadījums” ir citēts.

Bet kā Robins jau uzsvēra savā pirmajā slaidā, kļūdas jēdziens sniedzas tik tālu, kā mēs varam iedomāties, ka cilvēki veic aprēķinus, tādus jēdzienus kā plāksteris. Termins “plāksteris” radās no tā, ka faktiskais lentes gabals ir piestiprināts virs cauruma perforatorā. Bet visa šī jēga ir tāda, ka termins “atkļūdošana” iznāca no šī jēdziena kļūdas atrašana fiziskā mašīnā.Kopš tā laika mēs esam izmantojuši šo terminoloģiju, cenšoties risināt jautājumus, vai nu ne tikai kā kodēšanas problēmas programmā, kas vēl nesastāda, bet kā par programmu, kas nedarbojas labi. Un, kas īpaši nav profilēts, atrodiet tādas lietas kā nebeidzamas cilpas, kas vienkārši nekur neiet.

Bet mums ir arī scenārijs, un es domāju, ka Id ieliku pāris smieklīgus slaidus, pirms es iedziļinājos mazliet sīkāk. Šeit ir klasiskā multfilma, ko tīmeklī sauc par XKCD, un karikatūristam ir diezgan smieklīgi skati uz pasauli. Un tas attiecas uz kazlēnu ar nosaukumu “Mazais Bobija galdiņš” un domājams, ka viņa vecāki nosauca šo jauno zēnu Robertu); DROP TABLE Studenti; - un tā saucamo, un tā saucamā “Sveika, šī ir jūsu dēlu skola, kurai ir kādas datora problēmas”, un vecāks atbild: “Ak, dārgais, vai viņš kaut ko salauza?”, Un skolotājs saka: “Nu, savā ziņā ”, un skolotājs jautā:“ vai jūs tiešām nosaucāt savu dēlu Robertu); Pilienu tabula Studenti; -? ”Un vecāks saka:“ Ak jā, mazos Bobija galdus, kurus mēs viņu saucam. ”Jebkurā gadījumā viņi turpina teikt, ka viņi tagad ir zaudējuši gadu studentu ierakstus, es ceru, ka esat laimīgs. Un atbilde ir: “Nu, jums vajadzētu iztīrīt un sanitārizēt savus datu bāzes ievadus.” Un es to daudzkārt izmantoju, lai runātu par dažām problēmām, kas mums rodas, atrodot lietas kodā, ka bieži vien kods neskatās arī uz datiem. .

Vēl viens smieklīgs, es nezinu, vai tas ir īsts vai nē - man ir aizdomas, ka tas ir krāpnieks -, bet atkal tas skar arī manu smieklīgo kaulu. Kāds maina numura zīmi savas automašīnas priekšpusē līdzīgam paziņojumam, kura dēļ datu bāzēs samazinās ātruma kameras un tā tālāk, kas fiksē automašīnu numura zīmes. Un es vienmēr uz to domāju, ka es šaubos, vai kāds programmētājs paredzēja, ka viņu kods tiks iedarbināts ar reālu mehānisko transportlīdzekli, bet nekad to nenovērtēju - dusmīga geipa spēku.

(Smiekli)

Bet tas, manuprāt, ved pie mana galvenā jautājuma, un tas ir, ka reiz mēs varētu atkļūdošanu un profila kodu kā vienkāršus mirstīgos. Bet es ļoti uzskatu, ka šis laiks ir pagājis, un, ņemot vērā manu pieredzi, tas ir mans pirmais - un tas mani briesmīgi noveco, es esmu pārliecināts; Robins ir laipni gaidīts, lai mani par to izklaidētu - bet vēsturiski Ive ir cēlies no tā, ka 14 gadu vecumā klīst pa pilsētas galu un klauvē pie datu centra ar nosaukumu “Data Com” Jaunzēlandē un jautā, vai Es varētu nopelnīt kabatas naudu skolā, dodoties mājās ar nokavēto autobusu, katru dienu apmēram 25 km no mājām uz mājām braucošā ceļa, ieliekot ersā papīru, lentes diskdziņos un vienkārši būdams vispārējais administrators. Un dīvaini, ka viņi man deva darbu. Bet laika gaitā man izdevās iesaistīties personāla komplektēšanā un atrast programmētājus, un es sapratu, ka mīlu kodēšanu un izgāju skriptu un pakešdarbu palaišanas procesu, kas dienas beigās joprojām ir kods. Jums ir jāraksta skripti un sērijveida darbi, kas izskatās pēc mini programmām, un pēc tam viss process jāsēž 3270 termināļa rakstīšanas kodā ar roku.

Faktiski mana pati pirmā pieredze bija ar teletipa termināli, kas faktiski bija 132 kolonnu fiziskais er. Būtībā padomājiet par ļoti vecu rakstāmmašīnu ar papīru, kas tam ritināja cauri, jo viņiem nebija CRT caurules. Un koda atkļūdošana šajā jautājumā bija ļoti mazsvarīgs jautājums, tāpēc jums bija tendence visu kodu rakstīt ar roku un pēc tam rīkoties kā mašīnrakstītājam, darot visu iespējamo, lai nekļūdītos kļūdas, jo tas ir ārkārtīgi nomākti, jo tas ir jāpasaka vienas rindas redaktors, lai pārietu uz noteiktu rindu, pēc tam uz līniju un pēc tam ierakstiet to atpakaļ. Bet reiz tas bija tas, kā mēs uzrakstījām kodu un tas bija tas, kā mēs atkļūdojām, un mums tas bija ļoti, ļoti labi. Un patiesībā tas mums piespieda ļoti labas programmēšanas tehnikas, jo to labot bija ļoti grūti. Bet pēc tam ceļojums gāja cauri - un viņi visi ar to bija iepazinušies - tas devās no 3270 termināļa pieredzes manā pasaulē uz Digital Equipment VT220, kur ekrānā varēja redzēt lietas, bet atkal jūs darījāt tikai to pašu, ko darījāt uz papīra lentes veida ed formātā tikai CRT, taču jums bija vieglāk izdzēst un jums nebija tāda skaņa “dit dit dit dit”.

Un tad jūs zināt, ka Wyse termināļi - piemēram, Wyse 150, iespējams, mans iecienītākais interfeiss datoram jebkad - un tad dators un pēc tam Mac, un šajās dienās mūsdienīgas GUI un ID, kas balstīti uz Web. Un virkne programmu caur to, programmēšana vienā un montētājā, kā arī PILOT un Logo un Lisp un un Fortran un Pascal un valodas, kas varētu likt cilvēkiem saspringt. Bet šīs ir valodas, kas piespieda jūs uzrakstīt labu kodu; viņi neļāva jums atbrīvoties no sliktas prakses. C, C ++, Java, Ruby, Python - un mēs nonākam tālāk šajā programmēšanas posmā, mēs kļūstam vairāk skriptiem līdzīgi, mēs arvien tuvāk un tuvāk strukturētai vaicājumu valodai un valodām, piemēram, PHP, kuras faktiski tiek izmantotas, lai izsauktu SQL. Punkts jums pateikt, tas ir, ņemot vērā manus apstākļus, es daudzējādā ziņā patstāvīgi mācījos, un tie, kas man palīdzēja mācīties, man iemācīja ļoti labu programmēšanas praksi un ļoti labu praksi attiecībā uz dizainu un procesiem, lai pārliecinātos, ka es neieviesu kļūdainu kods.

Mūsdienās programmēšanas metodes ir tādas lietas kā, piemēram, strukturētā vaicājumu valoda SQL, kas ir ļoti jaudīga, vienkārša vaicājumu valoda. Bet mēs to esam pārvēruši par programmēšanas valodu, un es īsti neticu, ka SQL kādreiz bija paredzēts kā moderna programmēšanas valoda, taču mēs to neizmantojām. Un tas ievieš veselu virkni jautājumu, kas rodas, domājot par diviem aspektiem: no kodēšanas viedokļa un no DBA viedokļa. Tas ir ļoti viegli nākt klajā un ieviest kļūdas tādās lietās kā tikai sliktas programmēšanas metodes, slinki centieni koda rakstīšanā, pieredzes trūkums, piemēram, klasiskā mājdzīvnieku miziņa, piemēram, ar SQL cilvēkiem, kas pāriet Google un meklē kaut ko un atrod tīmekļa vietni. ieguva piemēru un izdarīja esošā koda kopiju un ielīmēšanu. Un pēc tam atkārtojiet sliktu kodēšanu, nepareizu praksi un nododiet to ražošanai, jo tas vienkārši viņiem dod vēlamos rezultātus. Jums ir bijuši citi izaicinājumi, piemēram, šajās dienās visi steidzās uz to, ko mēs saucam par sacensību līdz nullei: cenšamies darīt visu tik lēti un tik ātri, ka mums ir scenārijs, kurā netiek nodarbināti zemāk apmaksāti darbinieki. Un es to nedomāju nepatīkamā veidā, bet nealgoju ekspertus katram iespējamam darbam. Reiz viss, kas bija saistīts ar datoriem, bija raķešu zinātne; tas bija iesaistīts lietās, kas aizrāvās un bija ļoti skaļas, vai devās kosmosā, vai inženieri bija augsti kvalificēti vīrieši un sievietes, kuri bija ieguvuši grādus un ieguvuši stingru izglītību, kas viņus neļāva darīt trakas lietas.

Mūsdienās ļoti daudz cilvēku iesaistās izstrādē un dizainā un datu bāzēs, kuriem nav gadu pieredzes, kuriem nav obligāti jābūt tādām pašām apmācībām vai atbalstam. Un tā jūs beidzat ar scenāriju, kurā redzami tikai tradicionālie amatieri un eksperti. Un, ja nav slavenās līnijas, es īsti nevaru atcerēties, kas izveidoja citātu, un tā iet tālāk: “Ja jūs domājat, ka dārgi nolīgt ekspertu, lai veiktu darbu, pagaidiet, kamēr jūs nolīgsit pāris amatierus, kuri rada problēmu, un jums sakopt. ”Un tāpēc SQL ir šī problēma, un to ļoti, ļoti viegli iemācīties, tas ir ļoti viegli lietojams. Bet tā, manuprāt, nav perfekta programmēšanas valoda. Tas ir ļoti viegli izdarāms, piemēram, veikt izvēles zvaigzni no jebkuras vietas un ievilkt visu programmēšanas valodā, kas jums ir ērtāka, piemēram, PHP, Ruby vai Python, un izmantot manipulācijas ar datiem, kas jums ir dzimtā valoda, nevis veikt sarežģītāku vaicājumu SQL. Mēs to daudz redzam, un tad cilvēki brīnās, kāpēc datu bāze darbojas lēni; tas notiek tāpēc, ka miljons cilvēku mēģina iegādāties biļeti no tiešsaistes biļešu sistēmas, kur tā izvēlas zvaigzni no jebkuras vietas.

Tagad tas ir patiešām ekstrēms piemērs, bet jums ir jēga no tā visa. Tātad, lai tikai īsti pārdurtu šo punktu mājās, šeit ir piemērs, kuru es daudz pārvadāju. Es esmu liels matemātikas cienītājs, es mīlu haosa teoriju, es mīlu Mandelbrota kopas. Labajā pusē ir Mandelbrota komplekta pārsūtīšana, ar kuru es droši vien esmu iepazinies. Un kreisajā pusē ir SQL gabals, kas to patiesībā padara. Tagad, katru reizi, kad kaut kur to uzlieku ekrānam, dzirdu: “Ak, mans dievs, kāds Mandelbrota sēriju atveidoja ar SQL, vai tu nopietni? Tas ir nenormāli! ”Nu, visa tā jēga ir ilustrēt to, ko es tur vienkārši ieskicēju, un tas ir jā, patiesībā jūs tagad varat ieprogrammēt gandrīz jebko SQL; tā ir ļoti attīstīta, spēcīga, moderna programmēšanas valoda. Ja sākotnēji tā bija vaicājumu valoda, tā tika izstrādāta, lai tikai iegūtu datus. Tātad, tagad mums ir ļoti sarežģītas konstrukcijas un glabātas procedūras, kā arī programmēšanas metodika tiek piemērota valodai, un tāpēc tas ir ļoti viegli sliktas programmēšanas prakses, pieredzes trūkuma, izgriezta un ielīmēta koda dēļ, zemu atalgotiem darbiniekiem, kuri cenšas jābūt darbiniekiem ar augstu atalgojumu, cilvēki izliekas, ka zina, bet viņiem ir jāmācās darbā.

Vesela virkne lietu, kur koda profilēšana un ko mēs dēvējam par atkļūdošanu, kas ir ne tikai kļūdu atrašana, kas pārtrauc programmu darbību, bet kļūdas, kas tikai kaitē sistēmai, un slikti strukturēts kods. Kad jūs skatāties šo ekrānu tagad, un jūs domājat, ka tas ir tieši tas jauki, un jūs domājat: “Oho, cik lielisks grafiks, man patīk to vadīt.” Bet iedomājieties, ka tas darbojas kaut kādā biznesa loģikā. Tas izskatās diezgan glīti, taču runā par matemātiski grafiski atveidotu haosa teoriju, bet, domājot par to, ko tā potenciāli varētu izmantot kādā biznesa loģikā, attēls tiek iegūts ļoti ātri. Un, lai to patiešām ilustrētu - un man žēl, ka krāsas ir mainītas, tam vajadzētu būt melnam fonam un zaļam, lai tas būtu zaļš ekrāns, taču jūs to joprojām varat izlasīt.

Es devos un ātri apskatīju piemēru tam, ko jūs varētu darīt, ja jūs patiešām esat traks un jums nebija nekādas pieredzes, kā arī nācāt no atšķirīga programmēšanas fona un lietojāt C ++ patīk SQL, lai patiešām ilustrētu manu viedokli. Es nododu mūsu iemācītajam viesim no IDERA. Tas ir strukturēts vaicājums, kas ir uzrakstīts tāpat kā C ++, bet ir kodēts SQL. Un tas faktiski tiek izpildīts, bet tas tiek izpildīts apmēram trīs līdz piecu minūšu laikā. Un tas šķietami atvelk vienu datu rindu no vairākām datu bāzēm, vairākiem savienojumiem.

Atkal viss šī jēga ir tāda, ka, ja jums nav pareizo rīku, ja jums nav pareizu platformu un vides, lai varētu noķert šīs lietas, un viņi sāk darboties, un tad jums ir 100 000 cilvēku, kas katru reizi sit pa sistēmu dienā, stundā vai minūtē, ļoti drīz jūs nonākat pie Černobiļas pieredzes, kad lielais dzelzs sāk izkausēt un aprakt sevi planētas kodolā, jo šis koda gabals nekad nedrīkst nonākt ražošanā. Atvainojiet, jūsu sistēmām un rīkiem vajadzētu to paņemt pirms tā nonākšanas kaut kur netālu - pat testa procesa laikā, pat izmantojot UAT un sistēmu integrāciju - šis koda gabals ir jāpaņem un jāizceļ, un kāds ir jānovieto malā un sakot: “Skatiet, tas tiešām ir diezgan kods, taču ļauj iegūt DBA, lai palīdzētu jums pareizi izveidot šo strukturēto vaicājumu, jo, godīgi sakot, tas ir vienkārši nejauki.” Un tur esošie vietrāži URL varat doties un apskatīt - tas tiek dēvēts par vissarežģītākais SQL vaicājums, ko jūs jebkad esat uzrakstījis. Tā kā ticiet man, tas, kas faktiski apkopo, tas arī darbojas. Un, ja jūs to izgriezat un ielīmējat, un tikai piemārat datu bāzi, to ir diezgan ko skatīties; Ja jums ir rīki datu bāzes skatīšanai, vienkārši mēģiniet nojaukt trīs līdz piecu minūšu laikā, lai atzvanītu, kas ir viena līnija.

Tātad, apkopojot visu iepriekš minēto, kodēšana man ir iemācījusi, ka jūs varat dot cilvēkiem pistoli un, ja viņi nav uzmanīgi, viņi šauj sev pa pēdām; triks ir parādīt viņiem, kur atrodas drošības mehānisms. Izmantojot pareizos rīkus un pareizo programmatūru, kas atrodas pa rokai, pēc kodēšanas pabeigšanas jūs varat pārskatīt savu kodu, jūs varat atrast problēmas, profilējot kodu, jūs varat atrast efektīvi neparedzētas kļūdas, kas ir veiktspējas problēmas, un kā jau es teicu iepriekš: kādreiz jūs to varētu izdarīt, skatoties uz zaļu ekrānu. Jūs vairs nevarat; ir simtiem tūkstošu koda rindiņu, ir izvietoti desmitiem tūkstošu lietotņu, dažos gadījumos ir miljoniem datu bāzu, un pat supercilvēki to vairs nevar darīt ar roku. Jums burtiski ir vajadzīga pareiza programmatūra un pareizie rīki, kas atrodas pa rokai, un jums ir nepieciešama komanda, kas izmanto šos rīkus, lai jūs varētu atrast šos jautājumus un ļoti, ļoti ātri tos risināt, pirms nokļūstat vietā, tā kā Dr. Izceļot Robinu Blooru, lietas vai nu kļūst katastrofālas, un lietas uzsprāgst, vai arī parasti tās tikai sāk maksāt jums daudz dolāru, daudz laika un pūļu, kā arī iznīcina morāli un citas lietas, kad viņi nespēj noskaidrot, kāpēc viss notiek ilgi jāskrien.

Paturot to prātā, es došos nodot mūsu viesim, un es ļoti ceru dzirdēt, kā viņi atrisina šo jautājumu. Un jo īpaši demonstrāciju, kuru, manuprāt, bija paredzēts saņemt. Ēriks, es atgriezīšos.

Ēriks Kavanaghs: Labi, Bert, atņem to.

Berts Scalzo: Labi, paldies. Berts Scalzo šeit no IDERA, mūsu datu bāzes rīku produktu menedžeris. Un es runāšu par atkļūdošanu. Es domāju, ka viena no vissvarīgākajām lietām, ko Robins teica jau iepriekš - un tā patiesi ir tā, ka atkļūdošana ir apgrūtinoša un nav triviāla, un, dodoties uz datu bāzu atkļūdošanu, tās apjoma secība ir vēl apgrūtinošāka un ne-triviāla - tā, ka bija svarīgs citāts.

LABI. Es gribēju sākt ar programmēšanas vēsturi, jo daudz reižu es redzu cilvēkus, kuri neveic atkļūdošanu, neizmanto atkļūdotāju, viņi vienkārši programmē ar jebkuru valodu, kuru viņi lieto, un daudz reižu viņi man saka: “Nu, šīs atkļūdotāju lietas ir jaunas, un mēs tās vēl neesam sākušas lietot. ”Un tāpēc es daru viņiem parādītu šo laika grafiku, sava veida pirmsvēsturi, vecumu, viduslaikus, tā veida teikto, kur mēs atradāmies programmēšanas valodu termini. Un mums bija ļoti senas valodas, sākot ar 1951. gadu, ar montāžas kodu, kā arī Lisp, FACT un COBOL. Tad mēs nokļūstam nākamajā grupā, Pascals un Cs, un tad nākamajā grupā, C ++, un skatāmies, kur ir šī jautājuma zīme - šī jautājuma zīme ir aptuveni pa labi ap 1978. gadu vai varbūt 1980. gadu. Kaut kur šajā diapazonā mums bija atkļūdotāji, kas mums ir pieejami, un tā teikt: “Ei, es neizmantoju atkļūdotāju, kas ir viena no šīm jaunajām lietām,” tad jums ir jāsāk programmēšana, jūs zināt, jau 1950. gados, tas ir vienīgais veids, kā jūs nokļūsit prom no šīs prasības.

Otra lieta, kas šajā diagrammā ir smieklīga, ir Dez, kas tikko izteica komentāru par Grace Hopper, es patiesībā zināju Grace, tāpēc tas bija smieklīgi. Un tad otra lieta, par kuru es smējos, ir tas, ka viņš runāja par teletipiem un tur sēdēju: “Cilvēks, tas bija lielākais lēciens, kāds mums jebkad ir bijis produktivitātē, kad mēs gājām no kartēm uz teletipiem, tas bija lielākais lēciens, kāds jebkad bijis.” Tātad , un Ive ir ieprogrammēti visās valodās šeit, ieskaitot SNOBOL, par kurām neviens vēl nekad nav dzirdējis. Tas bija CDC, Control Data Corporation, tāpēc es domāju, ka esmu kļuvis mazliet par veco šai nozarei.

Dez Blanchfield: Es grasījos teikt, ka jūs mūs tur esat šausmīgi novecojuši.

Berts Scalzo: Jā, es jums saku, es jūtos kā vectēvs Simpsons. Tāpēc es aplūkoju atkļūdošanu un atšķirīgos atkļūdošanas veidus. Jūs varētu runāt par to, ko mēs visi domājam par tradicionālu nokļūšanu atkļūdotājā un koda aktivizēšanu. Bet cilvēki arī izmantos savu kodu; tas ir, ja jūs iestiprināt paziņojumus savā kodā un varbūt jūs izveidojat izvades failu, izsekošanas failu vai kaut ko citu, un tāpēc jūs izmantojat savu kodu. Es uzskatu, ka tā kā atkļūdošana ir mazliet grūtāka, kā to izdarīt, bet tas ir svarīgi. Bet arī mēs saņēmām slaveno paziņojumu: jūs skatāties un cilvēki faktiski ievieto paziņojumus, un es patiesībā esmu redzējis rīku, kur - un tā datu bāzes rīku -, kur, ja jūs nezināt, kā izmantot atkļūdotāju, jūs nospiežat pogu, un tas pielips paziņojumi visā kodā jums, un tad, kad esat pabeidzis, jūs nospiežat citu pogu, un tas tos izsvītro. Jo tas ir tas, cik daudz cilvēku atkļūdās.

Atklāšanas iemesls ir divējāds: pirmkārt, mums bija jāatrod lietas, kas mūsu kodu padara neefektīvu. Citiem vārdiem sakot, parasti tas nozīmē, ka ir loģiska kļūda vai mēs esam nokavējuši biznesa prasību, bet tas, kas tas ir, ir kods, kas nav efektīvs; tas nedara to, ko mēs to gaidījām. Citu reizi mēs ejam, un mēs veicam atkļūdošanu, tā efektivitāte un tā varētu būt loģiska kļūda, bet kas tas ir, vai es rīkojos pareizi, tas vienkārši neatgriežas pietiekami ātri. Tagad es uzsveru, ka profilētāji, iespējams, ir labāki otrajam scenārijam un gatavojās runāt gan par atkļūdotājiem, gan par profilētājiem. Turklāt ir šī attālā atkļūdošanas koncepcija; tas ir svarīgi, jo daudz reižu, ja jūs sēdējat personālajā datorā un izmantojat atkļūdotāju, kas nonāk datu bāzē, kur kods faktiski tiek izpildīts datu bāzē, jūs faktiski darāt visu, ko sauc par attālo atkļūdošanu. Jūs, iespējams, to nesaprotat, bet tas notiek viss. Un tad tas ir ļoti bieži, ka šiem atkļūdotājiem ir lūzuma punkti, skatīšanās punkti, iekāpšana un pārkāpt, un dažas citas izplatītas lietas, kuras es tūlīt parādīšu ekrāna momentuzņēmumā.

Tagad profilēšana: jūs varat veikt profilēšanu dažādos veidos. Daži cilvēki teiks, ka darba slodzes uztveršana un atkārtošana tur, kur tiek uztverts viss, kas uzskatāms par profilēšanu. Mana pieredze ir bijusi vēl labāka, ja tā ir veikta paraugu ņemšanā. Nav iemesla uztvert katru paziņojumu, jo daži paziņojumi var vienkārši tik ātri izpildīties, ka jums nav vienalga. Tas, ko jūs patiešām cenšaties redzēt, ir labi, un tie ir tie, kas tiek rādīti atkal un atkal, jo tie darbojas pārāk ilgi . Tātad, dažreiz profilēšana var nozīmēt paraugu ņemšanu, nevis visas lietas vadīšanu. Un parasti jūs iegūsit sava veida izvadi, ko varēsit izmantot, tagad tas varētu būt vizuāls IDE izstrādes vidē, kur tas jums var sniegt, piemēram, dažādu koda rindiņu veiktspējas histogrammu, taču tā joprojām var būt tas rada izsekošanas failu.

Profileri pirmo reizi parādījās 1979. gadā. Tātad arī tie pastāv jau ilgu laiku. Lieliski, lai atrastu resursu patēriņu vai veiktspējas problēmas, citiem vārdiem sakot, šo efektivitāti. Vispārīgi runājot, tas ir atšķirīgs un atšķirīgs no atkļūdotāja, lai gan esmu strādājis ar atkļūdotājiem, kas darbojas vienlaikus. Un, lai gan profilētāji, manuprāt, ir interesantākie no diviem rīkiem, ja man šķiet, ka atkļūdošanas nav pietiekami daudz, tad noteikti nav pietiekami daudz cilvēku profila, jo, šķiet, profils būs viens no desmit atkļūdotājiem. Un tas ir kauns, jo profilēšana patiešām var radīt milzīgas atšķirības. Tagad, kā jau iepriekš runājām, datu bāzu valodas ir ieguvušas SQL - un mēs kaut kā esam piespieduši apaļo tapu šeit esošajā kvadrātveida caurumā un piespiedu to kļūt par programmēšanas valodu - un Oracle.Tas ir PL / SQL - tas ir procedūras valoda SQL - un SQL Server, tā Transact-SQL, tās SQL-99, tās SQL / PSM - manuprāt, tās procedūrā saglabātajam modulim. Postgres tam piešķir vēl vienu vārdu, DB2 - vēl vienu vārdu, Informix, bet jēga ir tā, ka visi ir spiesti 3GL tipa konstrukcijas; citiem vārdiem sakot, FOR cilpas, pie mainīgām deklarācijām un visa pārējā SQL svešumā esošā informācija tagad ir SQL daļa šajās valodās. Un tā, jums jāprot atkļūdot PL / SQL vai Transact-SQL tāpat kā Visual Basic programmai.

Tagad, datu bāzes objekti, tas ir svarīgi, jo cilvēki teiks: “Nu, kādas lietas man ir jāatkļūda datu bāzē?”, Un atbilde ir, nu, ko jūs varat glabāt datu bāzē kā kodu - ja es daru T- SQL vai PL / SQL - un es glabāju objektus datu bāzē, iespējams, tā ir glabātā procedūra vai glabātā funkcija. Bet arī tie izraisa: sprūda ir sava veida glabāta procedūra, bet tā tiek aktivizēta uz kāda veida notikuma. Tagad daži cilvēki aktivizētājos ievietos vienu koda rindu un izsauks saglabāto procedūru, lai viņi saglabātu visu saglabāto kodu un procedūras, taču tā pati koncepcija: sprūda joprojām var būt tā, kas ierosina visu. Un kā Oracle viņiem ir kaut kas tāds, ko sauc par paketi, kas ir sava veida bibliotēka, ja vēlaties. Jūs grupējat 50 vai 100 saglabātās procedūras vienā grupā, ko sauc par paketi, tāpēc tā ir tāda pati kā bibliotēka. Tātad, šeit ir atkļūdotājs vecais ceļš; patiesībā tas ir rīks, kas reāli iestāsies un visus šos atkļūdošanas paziņojumus pielīmēs jūsu kodā. Tātad, visur, kur redzat atkļūdošanas bloķēšanu, nenoņemiet, automātiskā atkļūdotāja sākšana un izsekošana. Tie visi bija iestrēdzis ar kādu rīku. Un ārpus tā esošās līnijas, kas ir koda mazākums, labi veido atkļūdošanas metodi, kas nav manuāla.

Un iemesls, kāpēc es to audzinu, ir tas, ka, ja jūs mēģināt to izdarīt ar roku, jūs faktiski gatavojaties ierakstīt vairāk atkļūdošanas kodu, lai ievietotu visus šos paziņojumus, nekā jūs esat ar kodu. Tātad, kaut arī tas var darboties, un, kaut arī tas ir labāks nekā nekas, tas ir ļoti grūts atkļūdošanas veids, jo īpaši tāpēc, kā būtu, ja šīs lietas palaišana prasa 10 stundas un, ja tai ir problēma, tā ir trešajā rindā? Ja es nodarbotos ar interaktīvu atkļūdošanas sesiju, es būtu zinājis, ka trešajā rindā - piecas minūtes tajā - hei, šeit ir problēma, es varu pamest. Bet līdz ar to Ive nācās gaidīt, līdz tas darbosies, līdz tā pabeigšanai, un tad man nācās aplūkot kādu izsekošanas failu, kurā droši vien ir visi šie paziņojumi, un mēģināt atrast adatu siena kaudzē. Atkal tas ir labāk nekā nekas, bet tas nebūtu labākais veids, kā strādāt. Tagad izskatās šāds fails, kas nāk no iepriekšējā slaida; Citiem vārdiem sakot, es vadīju programmu, un tas tikko ieguva virkni paziņojumu šajā izsekošanas failā, un es, iespējams, nespēšu to izskatīt un atrast to, kas man ir nepieciešams. Tātad es atkal neesmu tik pārliecināts, ka tas ir tas veids, kā jūs vēlētos strādāt.

Tagad interaktīvie atkļūdotāji - un, ja programmu rakstīšanai esat izmantojis kaut ko līdzīgu Visual Studio vai Eclipse, jums ir bijuši atkļūdotāji un jūs tos izmantojāt citās valodās - vienkārši nedomājāt tos izmantot šeit kopā ar savu datu bāzi. Un tur ir rīki, piemēram, mūsu DB Artisan un mūsu Rapid SQL, šeit ir Rapid SQL, kuriem ir atkļūdotājs, un jūs varat redzēt kreisajā pusē, ka man ir saglabāta procedūra ar nosaukumu “pārbaudīt dublikātus”. Būtībā tas vienkārši iet un paskatās, vai man ir vairākas tabulas rindas ar vienu un to pašu filmas nosaukumu. Tātad, datu bāze ir paredzēta filmām. Un jūs varēja redzēt labajā pusē, augšējā trešdaļā, Ive ieguva manu avota kodu pa vidu, Ive ieguva tos, ko sauc par maniem pulksteņu mainīgajiem un maniem zvanu kaudžu paplātēm, un tad apakšā Ive ieguva dažas izejas. Un tas, kas šeit ir svarīgi, ir tas, ka, apskatot šo pirmo sarkano bultiņu, ja es novietoju peles kursoru virs mainīgā, es faktiski redzu, kāda vērtība tajā mainīgajā brīdī ir tajā brīdī, kad es pastiprinu kodu. Un tas ir patiešām noderīgi, un tad es varu kodēt vienu līniju vienā reizē, man nav jāsaka, ka jāizpilda, es varētu teikt, soli pa līniju, ļaujiet man paskatīties, kas notika, pacelt citu līniju, ļaujiet man redzēt, kas noticis, un Es to daru datu bāzē. Un, kaut arī es sēdēju datorā ar Rapid SQL un mana datu bāze atrodas mākonī, es joprojām varu veikt šo attālo atkļūdošanu, redzēt un kontrolēt to no šejienes, kā arī veikt atkļūdošanu tāpat kā es, izmantojot jebkuru citu valodu.

Tagad nākamā bultiņa tur - jūs varat redzēt mazliet līdzīgo bultiņu, kas norāda uz labo pusi, virzienā uz šo DBVS izvadi, tas ir, kur šobrīd atrodas mans kursors - tātad, citiem vārdiem sakot, Ive uzkāpja un ir tur, kur esmu šobrīd. Tātad, ja es saku: “Soli atkal”, es iešu uz šo nākamo līniju. Tieši zem tā redzēsit sarkano punktu. Tas ir lūzuma punkts, kas saka: “Ei, es nevēlos pārkāpt pāri šīm līnijām.” Ja es tikai vēlos pārlekt pāri visam un nokļūt tur, kur atrodas šis sarkanais punkts, es varu nospiest palaist pogu un palaist no šejienes vai nu uz beigām vai līdz pārtraukuma punktam, ja ir uzstādīti kādi pārtraukuma punkti, un tad tas apstāsies un ļaus man atkal rīkoties. Iemesls tam, ka tas viss ir svarīgs un spēcīgs, ir tāpēc, ka, visu to darot, viss, kas notiek pa vidu un pat apakšā - bet pats galvenais - pa vidu - mainīsies, un es redzu vērtības no saviem mainīgajiem, es varu redzēt manu sarunu kaudzes izsekošanu, jūs zināt, un tāpēc visa šī informācija tur tiek parādīta, kad es pastiprinu kodu, tāpēc es faktiski varu redzēt un sajust un iegūt izpratni par notiekošo un to, kā kods faktiski darbojas izpildes laikā . Parasti es varu atrast problēmu, ja tāda ir, vai arī es esmu pietiekami laba, lai to noķertu.

Labi, tagad es runāšu par profilētāju, un šajā gadījumā tas ir profils, kuru es varu redzēt caur atkļūdotāju. Atcerieties, ka es teicu, ka dažreiz viņi ir atsevišķi un dažreiz viņi var būt kopā? Šajā gadījumā un atkal, Im in Rapid SQL, es redzu, ka kreisajā pusē blakus rindu numuriem ir rezerve. Un kas tas ir, tas ir sekunžu vai mikrosekunžu skaits, kas bija nepieciešams katras koda rindas izpildei, un es redzu, ka skaidri redzams, ka viss mans laiks tiek pavadīts šajā vienā FOR cilpā, kur es visu atlasu no tabulas. Un tātad, notekūdeņi, kas notiek šīs FOR cilpas iekšienē, iespējams, ir kaut kas man jāaplūko, un, ja es to varēšu uzlabot, tas maksās dividendes. Es negrasīšos uzlabojumus, strādājot pie tām līnijām, kurām ir līdzīgi kā 0,90 vai 0,86; tur nav pavadīts daudz laika. Tagad, atkal un atkal, iedarbojoties Rapid SQL, jūs redzat, kā es varu veikt profilēšanu, sajaucoties ar manu atkļūdošanu. Tagad tas, kas ir jauki, ir Rapid SQL, kas ļauj to darīt arī citādi. Rapid SQL ļauj jums pateikt: “Jūs zināt, ko? Es nevēlos atrast atkļūdotāju, es vienkārši gribu to palaist, un tad es gribu aplūkot grafiski vai vizuāli tāda paša veida informāciju. ”

Un jūs varat redzēt, ka vairs nepiedalos atkļūdotājā un palaiž programmu, un pēc izpildīšanas tā dod man diagrammas, lai pastāstītu man lietas, lai redzētu, ka Ive ieguva vienu paziņojumu, kas izskatās tā, ka tas aizņem lielāko daļu pīrāga. diagramma, un, ja es paskatos, es redzu šajā režģī virzienā uz apakšējo, 23. rindu, atkal parādās FOR cilpa: viņš aizņem visvairāk laika, viņš patiesībā ir tas, ka tumši sarkans sakošļā visu pīrāgu diagrammu. Tātad, tas ir vēl viens veids, kā veikt profilēšanu. Mēs to saucam par “kodu analītiķi” mūsu rīkā. Bet tas būtībā ir tikai profilētājs, kas atdalīts no atkļūdotāja. Dažiem cilvēkiem patīk to darīt pirmajā veidā, citiem patīk to darīt otrajā veidā.

Kāpēc mēs veicam atkļūdošanu un profilēšanu? Tas nav tāpēc, ka mēs vēlamies uzrakstīt pasaules lielāko kodu un iegūt atalgojumu - tas varētu būt mūsu iemesls, bet tas nav īsti iemesls, kāpēc jūs to darāt - jūs apsolījāt biznesam, ka kaut ko izdarīsit pareizi, ka jūsu programma būs efektīva. Tas ir tas, par kuru jūs izmantosit atkļūdotāju. Turklāt biznesa gala lietotāji; viņi nav ļoti pacietīgi: viņi vēlas rezultātus pat pirms taustiņa nospiešanas. Bija paredzēts lasīt viņu prātu un visu darīt uzreiz. Citiem vārdiem sakot, tam jābūt efektīvam. Tātad, tas ir tas, kam mēs izmantotu profilētāju. Tagad bez šiem instrumentiem es patiešām ticu, ka tu esi šis puisis biznesa uzvalkā ar loku un bultu, un tu šauj uz mērķi un tev ir aizsietas acis. Jo kā jūs atradīsit, kā programma izpilda, tikai apskatot statisko kodu, un kā jūs izdomāsit, kura līnija ir tā, kur tā patiešām pavada visvairāk laika izpildē, atkal tikai apskatot statisko kodu? Koda pārskats var vai nevar parādīt dažas no šīm lietām, taču tas negarantē, ka koda pārskatīšana tos visus atradīs. Izmantojot atkļūdotāju un profilētāju, jums vajadzētu būt iespējai atrast visas šīs kļūdas.

Labi, es šeit tikai taisīšu īstu demonstrāciju. Tas nav mans nodoms virzīt produktu, es tikai vēlos jums parādīt, kā izskatās atkļūdotājs, jo daudzas reizes cilvēki teiks: “Es nekad tādu neesmu redzējis.” Un tas ekrāna slaidos izskatās diezgan labi, bet kas vai tas izskatās pēc kustības? Tātad, šeit uz mana ekrāna es palaidu mūsu DB Artisan produktu; mums tur ir arī atkļūdotājs. DB Artisan ir domāts vairāk DBA, Rapid SQL ir vairāk izstrādātājiem, bet es esmu redzējis izstrādātājus, kuri izmanto DB Artisan, un es esmu redzējis DBA, kuri izmanto Rapid. Tātad, nevajag pieķerties produktam. Un šeit es varu izvēlēties veikt atkļūdošanu, bet pirms es sāku atkļūdot, es izgūstu šo kodu, lai jūs varētu redzēt, kāds ir kods, pirms es sāku to darbināt. Tātad, šeit ir precīzi tas pats kods, kas bija ekrāna momentuzņēmumā, šī ir mana pārbaude, vai nav dublikātu. Un es gribu to atkļūdot, tāpēc nospiežu atkļūdošanu. Un tagad paiet mirklis, un jūs sakāt: “Nu, kāpēc tas notiek īslaicīgi?” Atcerieties attālo atkļūdošanu: atkļūdošana faktiski notiek manā datu bāzes serverī, nevis manā personālajā datorā. Tātad tam bija jāiet pāri un tur jāizveido sesija, jāizveido attālā atkļūdošanas lieta, jāpievieno mana sesija šai attālajai atkļūdošanas sesijai un jāizveido sakaru kanāls.

Tātad, tagad, šeit ir mana bultiņa, kas atrodas augšpusē, pa vienai rindiņai, tas ir, kur es kodos. Un, ja es tur nospiežu trešo ikonu, kas ir solis uz priekšu, redzēsit, ka bultiņa tikko pārvietojās, un, ja es turpināšu to nospiest, redzēsit, ka tā turpina kustēties. Tagad, ja es gribētu iet līdz šai FOR cilpai, jo es zinu, ka tur ir problēma, es varu iestatīt pārtraukuma punktu. Es domāju, ka es to uzstādīju. Ak, šaut, man viena no ekrāna tveršanas taustiņiem bija piešķirta tai pašai atslēgai kā atkļūdotājam, tas, kas izraisa neskaidrības. Labi, tāpēc es vienkārši manuāli iestatu pārtraukuma punktu tur, tāpēc tagad tā vietā, lai veiktu soli, soli, soli, soli, līdz es tur nokļuvu, patiesībā es varu vienkārši pateikt: “Ej un palaid šo lietu”, un tas apstāsies. Ievērojiet, ka tas mani aizkustināja līdz pārtraukuma punktam, tāpēc es tagad esmu pārliecināts par šīs cilpas vadīšanu, es redzu, kā ir iestatīti visi mani mainīgie, kas nav pārsteigums, jo es tos visus inicializēju nulle. Un tagad es varu iekļūt šajā cilpā un sākt skatīties, kas notiek šīs cilpas iekšpusē.

Tātad, tagad tā veiks atlasīto skaitīšanu no manas īres maksas, un es varētu pārvietot peles kursu virs šī puiša un paskatīties, hes divi, divi ir lielāki par vienu, tāpēc tas, iespējams, gatavojas darīt nākamo šī koda daļu. Citiem vārdiem sakot, tas kaut ko atrada. Es tikai gatavojos iet uz priekšu un ļaušu tam skriet. Es nevēlos iziet šeit visu; tas, ko es gribu jums parādīt, ir tad, kad atkļūdotājs ir pabeigts, tas beidzas tāpat kā parasta programma. Es saņēmu pārtraukuma punktu, tāpēc, kad teicu palaist, tas vienkārši atgriezās pie nākamā pārtraukuma punkta. Neļaujot tai darboties līdz galam, iemesls, ko es vēlētos, lai jūs redzētu, ir tas, ka atkļūdotājs nemaina programmas izturēšanos: kad tā darbojas, man vajadzētu iegūt tieši tādus pašus rezultātus, ja es to palaistu nevis atkļūdotājā.

Un līdz ar to es gatavojos apturēt demonstrāciju un atgriezties, jo mēs vēlamies pārliecināties, vai mums ir laiks jautājumiem un atbildēm. Tāpēc es to atvēru jautājumiem un atbildēm.

Ēriks Kavanaghs: Labi, Robin, varbūt jautājums no jums un pēc tam pāris no Dez?

Robins Bloors: Jā, protams, man tas, protams, ir aizraujoši. Ive strādāja ar šādām lietām, bet Ive nekad datu bāzē nebija strādājis ar kaut ko līdzīgu. Vai varat sniegt man priekšstatu par to, kādiem nolūkiem cilvēki izmanto profilētāju? Tā kā tie ir līdzīgi - vai viņi to skatās - jo, domājams, viņi ir -, viņi aplūko veiktspējas problēmas, vai tas palīdzēs jums atšķirt, kad datubāzei nepieciešams laiks un kad kods prasa laiku?

Berts Scalzo: Jūs zināt, tas ir fantastisks jautājums. Teiksim, ka es strādāju Visual Basic, un es savā Visual Basic Im saukšu Transact-SQL vai PL / SQL. Ļaujiet man darīt PL / SQL, jo Oracle ne vienmēr labi spēlē ar Microsoft rīkiem. Es varētu profilēt savu Visual Basic kodu, un tur esošajā profilā var būt teikts: “Ei, es piezvanīju šai glabātajai procedūrai, un tā aizņēma pārāk ilgu laiku.” Bet tad es varu iedziļināties saglabātajā procedūrā un varu izveidot datu bāzes profilu par saglabāto Procedūra un sakiet: “Labi, no 100 šeit esošajiem paziņojumiem ir pieci pieci, kas izraisīja problēmu.” Un tā, iespējams, jums būs jāveido atzīmju komanda, kurā jums jāizmanto vairāki profilētāji.

Ideja ir tāda, ka, ja kādreiz jums tiek paziņots, ka veiktspējas problēma ir jūsu datu bāzē, datu bāzes profils var palīdzēt jums atrast adatu siena kaudzē, par kuru patiesībā ir tie apgalvojumi, kur rodas problēma. Es jums saku vēl vienu lietu, kas parādījās ar profilēšanu: ja jums ir koda gabals, kuru sauc miljons reizes, bet tas prasa tikai mikrosekundi katru miljonu reižu, bet tas tiek saukts miljons reizes, ko parādīs profilētājs , šī lieta ilga tik daudzās laika vienībās. Un tā kā kods var būt ļoti efektīvs, jūs varat paskatīties un pateikt: “O, jūs pārāk bieži piezvanījāt uz šo koda daļu. Varbūt mums tas jāsauc tikai tik bieži, nevis katru reizi, kad apstrādājam ierakstu ”vai kaut ko citu. Tātad jūs faktiski varat atrast, kur ir efektīvs kods, kas tiek saukts pārāk bieži, un tas faktiski ir veiktspējas problēma.

Robins Bloors: Jā, tas ir brīnišķīgi. Es nekad to neesmu izdarījis. Jūs, protams, redzat, kad man bija problēmas ar datu bāzēm, tas bija tā, it kā es vienā vai otrā veidā nodarbotos ar datu bāzi vai ar kodu; Es nekad nevarētu tikt galā ar abiem vienlaikus. Bet es atkal to nedarīju - Ive nekad nav bijusi iesaistīta tādu lietojumprogrammu veidošanā, kur mums bija saglabātas procedūras, tāpēc es domāju, ka Ive nekad faktiski nav saskārusies ar problēmām, kas mani mēdza aizdzīt, ideja, ka jūs sadalījāt kodu starp datu bāze un programma. Bet tā, dariet visu - es pieņemu, ka atbildes būs jā, bet tā ir daļa no attīstības komandas aktivitātes, kad vienā vai otrā veidā mēģināt labot kaut ko sabojātu vai varbūt mēģināt apvienot jaunu lietojumprogrammu. Bet vai tas viss ir piemērots visiem pārējiem komponentiem, ko es varētu sagaidīt vidē? Vai es varu sagaidīt, ka es to varētu saspraust kopā ar visām manām testa pakotnēm un visiem citiem materiāliem, ko es darīšu, un ar projekta vadības lietām, vai tas viss ir saspraužams kopā?

Berts Scalzo: Jā, tas var kļūt par jebkura strukturēta procesa daļu, lai veiktu jūsu programmēšanas vai attīstības centienus. Un tas ir smieklīgi, ka pagājušajā nedēļā man bija kāds klients, kurš veidoja tīmekļa lietojumprogrammu, un viņu datu bāze vēsturiski bija maza, un tāpēc tas, ka viņi strādāja ar ļoti labiem programmētājiem, nekad viņus neapvainoja. Viņu datu bāze gadu gaitā ir augusi, un tagad Web vietā ir nepieciešamas 20 sekundes, starp jums sakot: “Piesakieties man un dodiet man dažus datus, lai redzētu”, līdz brīdim, kad ekrāns faktiski parādās, un tā tagad izpildes problēma. Un viņi zināja, ka problēma nav nevienā no viņu Java vai nevienā citā vietā. Bet viņiem bija tūkstošiem saglabātu procedūru, un tāpēc viņiem bija jāsāk profilēt glabātās procedūras, lai uzzinātu, kāpēc šīs tīmekļa lapas izveidošana prasa 20 sekundes? Un mēs tiešām secinājām, ka viņiem ir Dekarta princis pievienojies vienā no viņu atlasītajiem paziņojumiem un to nezinājām.

Robins Bloors: Oho.

Berts Scalzo: Bet kāds man vienu reizi teica: “Nu kā gan viņi varēja pieskarties Dekarta kungam un to nezināt?” Un tas viss izklausījās tiešām šausmīgi; Dažreiz programmētājs, kurš nav ļoti apmierināts ar SQL, izdarīs kaut ko līdzīgu, dodot man Dekarta pievienošanos, bet pēc tam atdos tikai pirmo ierakstu, tāpēc es zinu, ka kaut ko ieguvu, un man ir nepieciešams tikai pirmais. Un tā, viņi nemaz nenojauš, ka tikko atnesa miljardu ierakstu vai arī apskatīja miljardu ierakstu, jo ieguva viņu interesējošo.

Robins Bloors: Oho, es zinu, tas, ko sauc - labi, tas, par ko Dez notiek, runājot par cilvēkiem, kas nav tieši tik kvalificēti, kā varbūt viņiem vajadzētu būt, jūs zināt. Ja esat programmētājs, jums jāzina, kāda ir komandas izdošana. Es tiešām domāju, ka tas nav attaisnojums no šī stulbuma līmeņa. Es arī pieņemu, ka jūs tādā vai citā veidā esat tikai valodas agnostisks, jo tas viss koncentrējas uz datu bāzes pusi. Vai man tajā taisnība? Vai tas ir tieši tas pats, neatkarīgi no tā, ko izmantojat kodēšanas pusē?

Berts Scalzo: Absolūti, to var izdarīt Fortran vai C vai C ++. Faktiski dažās Unixes to var izdarīt pat viņu skriptu valodās; tie faktiski nodrošina tos pašus rīkus. Un tad es vēlos atgriezties sekundē pie jūsu teiktā bez attaisnojuma. Es ieplānošu programmētājus ar vienu pārtraukumu, jo man nepatīk iemest programmētājus zem autobusa. Bet problēma patiesībā ir akadēmiskajā vidē, jo, dodoties iemācīties būt programmētājam, jūs mācāt domāt reāllaikā. Jums netiek mācīta kopu domāšana, un tieši tā Strukturētā vaicājuma valoda jeb SQL darbojas ar kopām; tas ir iemesls, kāpēc mums ir savienība, krustojums un mīnus operators. Un tas dažreiz ir ļoti grūti cilvēkam, kurš nekad nedomāja par komplektiem, atmest, atbrīvot no ierakstu apstrādes vienlaikus un strādāt ar komplektiem.

Robins Bloors: Jā, es esmu ar jums kopā ar to. Es domāju, ka tagad es domāju, ka tas ir izglītības jautājums; Es domāju, ka tas ir pilnīgi izglītības jautājums, es domāju, ka tas ir dabiski, ja programmētāji domā procesuāli. Un SQL nav procesuāla, tā ir deklaratīva. Jūs patiesībā sakāt: “To es gribu, un man nav vienalga, kā jūs to darāt,” vai jūs zināt? Tā kā ar programmēšanas valodām jūs bieži saņemat piedurknes un esat nonācis līdz pat skaitīšanas pārvaldības sīkumiem, kamēr jūs darāt cilpu. Es slimoju pie

Berts Scalzo: Nē. Labi, turpiniet.

Jā, es gribētu teikt, ka jūs parādījāt vēl vienu piemēru, ka profilētājam būtu labi pieķerties, un tas notiek ar šo ierakstu apstrādes laikā. Dažreiz programmētājs, kurš labi pārzina loģisko uzskaiti, nevar izdomāt, kā veikt SQL programmu. Nu, teiksim, ka viņš veido divas FOR cilpas un būtībā pievienojas, bet viņš to dara klienta pusē. Tātad, viņš veic tādu pašu efektu kā pievienošanās, bet dara pats, un profils to uztver, jo jūs, iespējams, galu galā pavadīsit vairāk laika, lai manuāli veiktu pievienošanos, nevis ļaujat datu bāzes serverim to darīt jūsu vietā.

Robins Bloors: Jā, tā būtu katastrofa. Es domāju, ka jūs vienkārši mētājaties apkārt. Thrashings vienmēr ir slikti.

Jebkurā gadījumā es devos uz Dezu; Esmu pārliecināts, ka viņam radās daži interesanti jautājumi.

Dez Blanchfield: Paldies, jā, es to daru. Es gatavojos pievienoties jums, lai nemestu programmētājus zem autobusa. Es domāju, ka Ive ir pavadījis pārāk daudz gadu manā dzīvē, būdams kodētājs, katrā līmenī, jūs zināt, vai tas ir tā, kā jūs teicāt, sēdēdams uz Unix mašīnas komandrindas un dažos gadījumos es pat biju iesaistīts kādā pāris dažādu Unix portu no vienas aparatūras platformas uz otru. Un jūs varat iedomāties izaicinājumus, kas mums tur bija. Bet realitāte ir tāda, ka katram pasaules kodētājam un scenārijam tiek izsniegta kartīte no cietuma. Tā ir raķešu zinātne, diezgan burtiski, ka visu laiku rakstīt ir ļoti stingri, tā ir raķešu zinātne. Un tādi slaveni stāsti par cilvēkiem kā Deniss Ritčijs un Braiens Kernahana patstāvīgi strādā pie kāda koda, pēc tam pie kafijas pāriet uz koda pārskata tērzēšanu un uzzina, ka viņi ir uzrakstījuši tieši to pašu koda gabalu, tieši tajā pašā programmā, precīzi Tāpat. Viņi to izdarīja C. Bet tas programmēšanas puristiskais līmenis pastāv ļoti reti.

Fakts ir tāds, ka katru dienu tās notiek tikai 24 stundas dienā, septiņas dienas nedēļā, un mums vienkārši ir jādara lietas. Un tā, ja runa ir ne tikai par tradicionālajiem programmētājiem, DBA un kodētājiem, un skriptiem, un sysadmin, un tīkla administratoriem, un drošības personālu, un mūsdienās viss notiek līdz pilsoņu datu pusei; mēs dzirdam, ka visi tikai cenšas darīt savu darbu. Un tāpēc es domāju, ka viss, kas jums no šīs lietas notika, ir tas, ka es mīlēju jūsu demonstrāciju un to, ka jūs tieši pirms brīža atstājāt mūs tur, runājot ar Robinu par to, ka tam ir īpaša nozīme - varbūt ne tik ļoti niša - bet plaša telpa, uz kuru tā attiecas, ciktāl tā nosaka kodu un SQL, kā arī datu bāzes. Bet man bija patiess prieks dzirdēt jūs sakām, ka jūs varat to iebāzt čaulas skriptā un atrast dažas problēmas, jo, jūs zināt, šodienas diena un vecums vienmēr strādāja ar viszemākajām izmaksām.

Iemesls, kāpēc jūs kaut kur varat iegādāties kreklu 6 USD, ir tāpēc, ka kāds ir izveidojis sistēmu pietiekami lēti, lai faktiski ražotu un piegādātu, loģistiski piegādātu un pārdotu, kā arī veiktu mazumtirdzniecību un veiktu tiešsaistes maksājumus, lai iegūtu šo kreklu 6 USD. Un tas nenotiek, ja jūs esat saņēmis cilvēkiem USD 400 000 gadā maksu par ideālu kodu rakstīšanu; tā tikai visa attīstība. Tātad, es domāju, ka viens no jautājumiem, ar kuru es jūs ļoti mīlu, lai tikai sniegtu mums nedaudz ieskatu, ir tāds, kāds ir to cilvēku skaits, kurus redzat pašlaik un kuri izmanto šāda veida rīkus koda profilēšanai un izskatam. priekšnesuma jautājumiem? Sākotnēji, vēsturiski, no kurienes viņi nāk? Vai tās ir bijušas lielās inženieru mājas? Un tad, runājot par priekšu, vai tas tā ir, es pareizi domāju, ka arvien vairāk uzņēmumu izmanto šo rīku vai šos rīkus, lai mēģinātu palīdzēt kodētājiem, kurus viņi zina, kuri tikai sāk darbu, lai darbu pabeigtu un iziet ārā pa durvīm? Un dažreiz mums ir vajadzīga izkļūšanas no cietuma karte? Vai man ir taisnība, domājot, ka vēsturiski mums bija vairāk inženierzinātņu un attīstības? Vai tagad, kā teica Robins, akadēmiskās pieejas un tagad tās pašmācības jeb izgriešanas un ielīmēšanas koda, vai arī vienkārši lietas tika uzbūvētas? Un vai tas atbilst veidam, kāds ir cilvēkiem, kuri šo produktu tagad lieto?

Berts Scalzo: Jā, tieši tā. Un es jums sniedzu ļoti konkrētu piemēru, mēs tikai vēlamies paveikt darbu, jo biznesa cilvēki nevēlas pilnību. Tāda veida kā datorizēta šaha spēle: šaha spēle nemeklē perfektu atbildi; tā meklē atbildi, kas ir pietiekami laba saprātīgā laika posmā, tāpēc tas, kā mēs programmējam. Bet tas, ko es tagad atradu, ir tas, ka vairums cilvēku tā vietā, lai teiktu, ka vēlas profilēt kā daļu no savas vienības testēšanas - kā es to arī darītu, rada to, ka es to neuztveru kā laika izšķiešanu - kas notiek tagad, tas tiek darīts vēlāk, dažreiz, ja notiek veiksme, integrācijas vai stresa testēšanas laikā. Bet lielākoties tā bija daļa no eskalācijas, kad kaut kas tika nodots ražošanai, tas kādu laiku darbojās, varbūt pat ilga gadiem, un tagad tas nedarbojas labi, un tagad to labi raksturo. Un šķiet, ka tagad tas ir biežākais scenārijs.

Dez Blanchfield: Jā, un es domāju, ka termins “tehniskais parāds”, iespējams, ir viens no jums vairāk nekā pazīstams; Es zinu Robinu un noteikti esmu. Es domāju, ka šajās dienās, it īpaši veiklās pieejās izstrādei un sistēmu veidošanai, tehniskā parāda jēdziens tagad ir ļoti reāla lieta, un mēs to faktiski uzskatām projektos. Es zinu, es domāju, ka mums ir savi projekti, piemēram, Media Lens un citi, kur ikdienā notiek kodēšana, un dažādas lietas visā Bloor grupā. Un vienmēr, kad kaut ko būvējam, mēs to skatāmies, es uz to skatos un vienmēr raugos no tā viedokļa, kas man izmaksās, lai šo labojumu izdarītu šobrīd, salīdzinot ar to, vai es to vienkārši varu dabūt kannā un izgūstiet to no turienes, un tad skatieties un redziet, vai šīs lietas sabojāsies. Un mantojiet šo tehnisko parādu, kas, kā es zinu, vēlāk ir jāatgriežas atpakaļ un jālabo.

Un es domāju, ka Ive to izdarīja pēdējās septiņās dienās: Ive uzrakstīja pāris rīkus un skriptus, Ive uzrakstīja pāris Python valodas gabalus un Ive to ievietoja Mongo aizmugurē, pārliecinoties, ka tā ir jauka, tīra un droša, bet tas tikai padara vaicājumu, kas man nepieciešams, apzinoties, ka man šī funkcija ir nepieciešama, lai darbotos, lai nonāktu pie lielākas mīklas; tas ir, kur ir manas īstās sāpes. Tātad jums rodas šis tehniskais parāds, un es domāju, ka šī nav tikai gadījuma lieta, es domāju, ka šī ir daļa no DNS, kas attīstās tagad. Cilvēki vienkārši - nevis izsakāmi atklāti - viņi vienkārši pieņem tehnisko parādu, ir parasts modus operandi jautājums, un viņiem tas vienkārši ir jāpiedzīvo. Tā ir tehniskā parāda parādīšanās. Un es domāju, ka lieliskā lieta par to, ko jūs mums parādījāt demonstrācijā, bija tā, ka jūs varat burtiski profilēt un skatīties, cik ilgs laiks kaut kam paiet. Un tā droši vien ir viena no manām mīļākajām lietām. Es domāju, ka Ive faktiski ir izveidojis profilēšanas rīkus - mēs izmantojām Sed, Lex un Orc rīku veidošanā, lai palaistu mūsu kodu un redzētu, kur ir cilpas, pirms bija pieejami šādi rīki - un kad esat izveidojis kodu, lai dotos un pārskatītu savu kodu , jums ir ļoti labi, ja jums nav jāpārskata savs kods. Bet šobrīd tas tā nav. Ņemot to vērā, vai ir kāds noteikts tirgus segments, kas to uzņem vairāk nekā jebkurš cits? Redz kā masu

Berts Scalzo: Ak, jā, es dabūju. Es gatavojos jums uzzīmēt analoģiju un parādīt, ka programmētāji, kas nav programmētāji, to dara visu laiku. Iemesls: ja es kādreiz mācu atkļūdotāju un profilēju klasi vai sesiju, es cilvēkiem vaicāju: “Labi, cik cilvēku šeit ieiet Microsoft Word un mērķtiecīgi nekad nelieto pareizrakstības pārbaudītāju?” Un neviens nepaceļ roku, jo dokumentu rakstīšanai, mēs visi zinām, ka varam pieļaut kļūdas angļu valodā, un tāpēc visi izmanto pareizrakstības pārbaudītāju. Un es teicu: “Nu kā tad, ja jūs rakstāt savā IDE, piemēram, Visual Basic, jūs neizmantojat atkļūdotāju? Tas pats, tas ir kā pareizrakstības pārbaudītājs. ”

Dez Blanchfield: Jā, patiesībā tā ir lieliska analoģija. Es par to īsti nedomāju, jāatzīst, ka es patiešām daru kaut ko līdzīgu ar pāris instrumentu palīdzību. Faktiski viens, ODF, mans iecienītākais ar Eclipse, ir tur vienkārši izgriezt un ielīmēt kodu un doties meklēt lietas, kuras vienkārši uzreiz tiek izceltas, un saprotot, ka es kādā klases zvanā veicu typo. Un, tā kā tagad ir interesanti ar tādu rīku kā jūs, varat to izdarīt reālajā laikā, nevis atgriezties un aplūkot to vēlāk, kas ir patīkami, lai to sāktu izmantot. Bet jā, tā ir lieliska analoģija tam, ka vienkārši ievietojat tekstu procesorā, un tas rada interesantu modināšanas zvanu, kas, saprotiet, ka esat pieļāvis dažus drukas kļūdas vai pat gramatikas kļūdas, vai ne?

Berts Scalzo: Tieši tā.

Dez Blanchfield: Tātad, vai jūs tagad redzat vairāk sajukuma, es domāju, es domāju, ka pēdējais jautājums, ko man uzdeva, pirms es varbūt uzmetu mūsu jautājumus un atbildes mūsu apmeklētājiem. Ja jūs gatavojaties sniegt sava veida ieteikumus, kā rīkoties, lai to izdarītu - pieņemot, ka tas ir retorisks - vai tas ir tā, ka jūs agri iekļūstat un to ieviešat, jo attīstāties, pirms attīstāties? Vai arī ir tā, ka jūs galvenokārt ceļaties, ceļaties, kaut ko uzbūvējat, tad ienācat un vēlāk to profilējat? Man ir aizdomas, ka tā ir agrīna iekļūšana un jāpārliecinās, ka jūsu kodi ir sakopti. Vai tas ir tā, ka viņiem būtu jāapsver šī pēcpasūtīšanas daļa?

Berts Scalzo: Ideālā gadījumā viņi to darītu jau sākotnēji, bet, tā kā visi atrodas kņadas pasaulē, kur viņiem vienkārši bija jādara lietas, viņi to parasti nedara, kamēr nav saskārušies ar veiktspējas problēmu, kuru viņi nevar atrisināt, pievienojot vairāk CPU un atmiņas uz virtuālo mašīnu.

Dez Blanchfield: Jā. Tātad, ja jūs es ātri varēšu pieminēt kaut ko interesantu? Jūs jau iepriekš minējāt, ka to var palaist no jebkuras vietas un aizmugurē var sarunāties ar datu bāzi. Tātad tas ir apmierināti ar tāda veida bimodālo koncepciju, par kuru mēs tagad runājam, par mākoņu uz vietas / ārpus telpām, arī pēc lietu izskata, dienas beigās, ja tas var sarunāties ar aizmuguri un redzēt kods, tas tiešām nav aprūpi, vai ne?

Berts Scalzo: Tieši tā, jā, jūs varat to palaist mākonī.

Dez Blanchfield: Lieliski, jo es domāju, ka tas ir veids, kurp dodas mūsu jaunā drosmīgā pasaule. Tātad, Ēriks. Es tūlīt atgriezīšos pie jums un redzēšu, ka mums šeit ir radušies daži jautājumi, un es vēlos, lai mūsu klātesošie joprojām paliktu pie mums, kaut arī mēs jau esam pagājuši stundā.

Ēriks Kavanaghs: Jā, šeit ir daži cilvēki, es tikai ātri komentēju: Berts, es domāju, ka metafora, tā analoģija, kuru jūs piešķirat pareizrakstības pārbaudei, ir atklāti izcili. Tas ir godīgi sakot, emuāra vai divu ziņā, jo tas ir labs veids, kā izdomāt, ko jūs darāt, un cik tas ir vērtīgs, un kā patiešām vajadzētu būt labākajai praksei, izmantojot atkļūdotāju regulāri, vai ne? Varu derēt, ka, izmetot to ārā, dažas galvas pamāj, vai ne?

Berts Scalzo: Absolūti tāpēc, ka es viņiem saku: “Kāpēc es veicu savu dokumentu pareizrakstības pārbaudi? Es nevēlos, lai mani samulsinātu par muļķīgām pareizrakstības kļūdām. ”Nu, viņi negrib, lai mani samulsinātu par muļķīgām kodēšanas kļūdām!

Ēriks Kavanaghs: Pa labi. Jā, patiesi. Ļaudis, mēs šeit esam nodedzinājuši stundu un piecas minūtes, tik liels paldies jums visiem par jūsu laiku un uzmanību. Mēs arhivējam visas šīs tīmekļa tērzēšanas sarunas, nekautrējieties atgriezties jebkurā laikā un pārbaudīt. Vislabākā vieta, kur atrast šīs saites, iespējams, ir techopedia.com, tāpēc pievienojiet to šim sarakstam šeit.

Un līdz ar to jūs, atnākušie, gatavojaties atvadīties. Atkal lielisks darbs, Bert, pateicoties mūsu draugiem no IDERA. Nu labi sarunāties ar jums nākamreiz, patiesībā labi runāt ar jums nākamnedēļ. Rūpēties! Labdien!