Nesen Microsoft laida klajā Visual Studio 11 Developer Preview, kas paredzēts dažādiem agrīnās programmas interesentiem, kuri neskatoties uz pieļaujamajām kļūdām un runtime exception studijas darbošanās laikā, tāpat instalē, pēta un skatās, ko Microsoft ir šoreiz saražojis un ko jaunu piedāvā.
Āri Team Foundation Server nav palicis maliņā un arī šai brīnišķīgajai programmatūrai ir pieejama 11 versija, kas paredzēta, lai mēs varētu ieskatīties, kas mūs sagaida pēc kāda laiciņa.
Šoreiz aplūkosim, kas notiek ar code-review procesu, kas līdz šim īpaši atbalstīts pašā studijā netika. Pie izejas koda checkin procesa bija viens vienīgs text box lauciņš, kurā var ierakstīt kaut ko par code-review procesu, kas notika pirms šī konkrētā check-in. Ir pieejami arī visādi rīki un trešās puses spraudņi, kas šo procesu mēģināja iedzīvināt studijā, bet līdz šim tas nav bijis 1st class citizen VS programmā.
Ar Dev 11 versiju viss izskatās, ka nedaudz ir pamainījies un code review process nu ir kļuvis daudz ērtāks un pārskatāmāks un tuvāks izstrādātājiem, jo integrējas tieši TFS serverī.
Btw, TFS serveris ir palaists arī mākonī (Windows Azure) un atrodams tfspreview.com.
Tātad viss code review process, protams, sākas ar check-in procesu. Pagaidām neatradu check-in politiku, kas aizliegtu izejas koda ievietošanu iekš repozitorija, nepaprasot kādam source code review akceptu, bet domājams, ka šāda veida politikas sāks ražot, kad platforma būs tuvāk kādam publiskākam un daudz stabilākam jūdžakmenim.
Pirmāmkārtām, ir jau mainījies viss darbs ar TFS source code repozitoriju. Sadarbība ar TFS notiek pārsvarā caur Team Explorer logu.

Izejas koda repozitorijā ievietošanas laikā ir iespējams uzsākt izejas koda pārlūkošanas procesu.

Šī komanda savukārt atver jauna code review pieprasījuma formu, kurā iespējams diezgan ērtā veidā pievienot izejas koda pārlūkotājus no projekta komandas biedriem.

Šajā forma ir iespējams uzrādīt nosaukumu code review pieprasījumam, kā arī pievienot kādus papildus komentārus, kas palīdzētu ātrāk reviewer’im saprast, kas un kā ir jāpārlūko un kā efektīvāk un ātrāk dot savu akceptu, lai neizveidotos kaut kādi pudeļu kakliņi vai citi aizcietējumi.
Pagaidām gan īsti neatradu veidu, kādā varētu ērti parakstīties uz notikumiem TFS serverī, kas dotu iespēju momentā, kad kāds ir pieprasījis veikt code review no manas, es par to uzzinātu savā e-pasta kastītē vai kādā citā sociālo tīklu notifikācijas veidā.
Atradu gan vienu notikumu, ka varētu strādāt šajā gadījumā, neesmu vēl līdz galam izmēģinājis vai tas strādā ar TFS Services Preview, kurā īsti SMTP serveri nav iespējams konfigurēt. TFS notikums ir:

Lai nu kā, bet otrs lietotājs, no kā tiek pieprasīts veikt code review, savā darāmo darbu sarakstā ierauga sekojošu ainu:

Šajā logā pārskatāmā veidā redzams, ka kāds ir pieprasījis veikt code review kādai komponentei. Atverot konkrēto code review pieprasījumu, iespējams ieraudzīt detalizētāku informāciju par to, kas ir pieprasīts pārskatīt, kurš to izdarīja, kāds ir status un vai ir vēl kāds, kam tika nosūtīts šāds pats code review pieprasījumus (un ja ir bijis nosūtīts, tad iespējams arī ērtā veidā uzreiz redzēt citu pārskatītāju sniegtos verdiktus, ja nu pašam raustās vienpersoniski pieņemt lēmumu).

Un starp citu, pārsteigums man bija, kad divreiz nospiedu uz “Program.cs”. Es gaidīju, kad atvērsies automaģiski WinMerge vai kāda cita jauka rīka logs, kurā varētu redzēt faila veiktās izmaiņas. Bet šoreiz izmaiņu fails tika atvērts tieši Visual Studio 11 logā.

Šāda veida funkcionalitāte manuprāt ir liels solis uz priekšu Visual Studio feature sarakstā. Izmaiņas var aplūkot dažādos režīmos: pārklājošais, viens otram blakus, rādīt tikai labo pusi vai arī rādīt tikai kreiso pusi.
Vēlāk kad visas izmaiņas ir aplūkotas, pārbaudīts un akceptētas, ir iespējams noslēgt code review procesu. Šim nolūkam kaut kādā veidā ir jāģenerē code review request response TFS work items, kas sniegtu informāciju par izejas koda pārlūkošanas procesa gala rezultātu. Šo darbību ir iespējams izdarīt no paša Team Explorer.

Pozitīvi ir tas, ka katrai darbībai ir iespējams pievienot kādu komentāru. Ir iespējams pierakstīt savus komentārus par izejas koda pārlūkošanas pieprasījumu kopumā, kā arī ir iespējams atstāt komentāru par katru atsevišķo failu arī.

Pozitīvi ir tas, ka viss paliek TFS arhīva datubāzē. Šajā gadījumā code reviewer ir iespējams atbildēt uz pieprasījumu ar kādu no iespējamajām atbildēt:
- Looks Good – Viss ir forši, turpini darbu.
- With Commens – Man ir pāris jautājumi.
- Needs Work – Es, protams, saprotu, ka es gudrs un smalks programmētājs, bet nu tādus mēs*** no Tevis nebiju gaidījis.
Pēc tam, kad code reviewer ir beidzis savu darbu - atzīmējis savas domas par veiktajām koda izmaiņām – kontrole tālāk nonāk pieprasītāja rokās, kur viņš var izlemt, ko iesākt tālāk ar šo code review pieprasījumu.

Ja izvēlas “Complete”, tad code review process ir noslēdzies un sākotnējais autors izmainītos izejas failus var ievietot repozitorijā. Pie izejas koda ievietošanas procesa tiek arī pierakstīts, kādā code review kontekstā šis konkrētais labojums via papildinājumus ir nonācis izejas koda repozitorijā. Šo ierakstu(-s) var aplūkot, kad skatāmies uz changeset izmaiņām.

Starpcitu, noskaidroju, ka code review procesu var iedarbināt arī pēc tam, kad izejas kods ir ievietots repozitorijā. Piemēram, šajā gadījumā sūtām source code review pieprasījumu par veselu changeset’u.

Visi šie code review pieprasījumi galu galā TFS serverī parādās kā parasti WI (Work Item), kas nozīmē, ka šiem WI ir papildus meta datu informācija, kas satur vitālu informāciju par šo labojumu. Piemēram, TFS serverī ir iespējams sameklēt un atvērt šo code review pieprasījumu kā jebkuru citu WI.

Kā arī ir iespējams šo code review pieprasījumu atvērt ar Team Explorer (nospiežot saiti kreisajā augšējā stūrī – “Open Code Review in Team Explorer”), kas dod sākotnējo code review skatu, kurā var aplūkot visus iekļautos failus un komentārus, ja tādi bijuši.
Izskatās, ka Microsoft cilvēki nopietni sāk domāt par koda kvalitāti un ievieš tik vitāli svarīgu procesu kā code review jau kā pirmās klases Visual Studio ģimenes locekli. Dzīvosim un redzēsim kā tas viss attīstīsies tālāk!
Cerams, ka noderēs!