VS 2012 – novinky pro vývojáře Michael Juřek, Architect Evangelist Twitter hashtag: #cztechdays.

Download Report

Transcript VS 2012 – novinky pro vývojáře Michael Juřek, Architect Evangelist Twitter hashtag: #cztechdays.

VS 2012 – novinky pro vývojáře
Michael Juřek, Architect Evangelist
Twitter hashtag: #cztechdays
V jednoduchosti je krása
Čistší design – méně barev, méně bižuterie, čisté tvary

http://blogs.msdn.com/b/visualstudio/archive/2012/02/23/introducing-the-new-developer-experience.aspx
Zjednodušené panely nástrojů = více místa pro kód
 Na základě telemetrických měření ve VS2010
 Kdo někdy kopíroval kód pomocí tlačítek Copy/Paste?
Nové okno Solution Exploreru s více funkcemi
Hledání všude:
 Menu, nalezené chyby, solution explorer, reference, …
Lepší práce s otevřenými soubory – pinování, preview, …
Slyšeli jsme…
Team Explorer je se svojí stromovou strukturou příliš
nepřehledný
 Je obtížné najít to, co hledám
 Neposkytuje vodítko pro pracovní postupy
Je snadné se ztratit, např. založit pracovní položku v jiném
týmovém projektu
Není podpora pro paralelní práci na více úlohách:
 Shelveset řeší jenom část problému
Nové uživatelské rozhraní
Orientované na úlohu a kontext
 Vždy pracuji s jediným týmovým projektem
Vylepšená uživatelská zkušenost:
 Nemodální, asynchronní, „líné“ provádění akcí
Domovská stránka projektu jako rozcestník
My Work jako kompas
Specializované stránky pro každý subsystém:
 Zdrojové kódy, pracovní položky, buildy, reporty dokumenty
Fulltextové hledání v pracovních položkách
Funkce přepínání kontextu
Vybudována nad funkčností Shelve/Unshelve
Umožňuje:
 Dočasně sbalit a odsunout nedodělanou práci
 Uložit aktuální nastavení prostředí
 Udělat jinou práci (např. opravit urgentní chybu)
 Obnovit předchozí kontext (změny jsou automaticky
sloučeny)
 Pokračovat v předchozí práci
Najděte 12 rozdílů …
Slyšeli jsme…
Existující nástroj pro porovnávání a slučování verzí je zastaralý
Existující nástroj postrádá integraci do prostředí
Jediný způsob vizualizace nevyhovuje všem lidem a všem
situacím
Musíme kupovat nástroje třetích stran
Množství konfliktů při paralelním vývoji je příliš velké
Nový rozdílový nástroj
Integrovaný do prostředí Visual Studia
Různé typy pohledů na kód
Vertikální/horizontální rozdělení
Integrace okna do Visual Studia:
 IntelliSense, zvýrazňování syntaxe, Undo, …
Navíc: zlepšená inteligence při řešení konfliktů
 Větší procento konfliktů vyřešeno automaticky
Slyšeli jsme…
Subversion funguje lépe v offline režimu
 Neotravuje s chybovými hlášeními
 Mohu vidět poslední verzi a porovnat se s ní
 Mohu zrušit změny a vrátit se zpět
TFS nefunguje ideálně v offline režimu
 Nepraktické přepínání online/offline
 Obtěžující read-only atributy souborů
TFS se obtížně používá s neintegrovanými nástroji (např. TFS nezjistí
vymazání souboru ve Windows Exploreru)
Realita je složitější
Subversion nefunguje lépe, ale funguje jinak
 TFS 2010 používá přístup Checkout-Modify-Commit
 Subversion používá princip Modify-Merge-Commit
Modify/Merge/Commit nabízí větší flexibilitu…
 Snazší použití, zejména pro začátečníky
 Velmi dobrá offline zkušenost
… výměnou za horší kontrolu
 Nelze sledovat kdo co dělá
 Lze zahájit operaci, kterou nepůjde dokončit (např. existuje zámek)
 Větší potenciál vzniku konfliktů
 Neškáluje dobře s velmi velkou bází souborů
Možnost volby v TFS 2012
Local workspace (styl Subversion)
 Výborná funkce v offline režimu
 Komfortní a pohodlná práce
Server workspace (styl TFS 2010)
 Extrémní škálovatelnost
 Dokonalá kontrola
V obou případech nižší počet konfliktů a problémů
 Automaticky slučitelné změny sloučeny bez potvrzení
 Vylepšený algoritmus detekce změn
Slyšeli jsme…
Unit testy jsou doporučenou praktikou napříč všemi moderními
metodikami - pomáhají vývojářům, pomáhají kvalitě produktu
 Neměly by být vnímány jako „práce navíc“, ale…
Unit testy ve VS jsou pomalé
Uživatelské rozhraní není dobré
 Zaměřeno spíše na testery než na vývojáře
Podpora ve VS pouze pro MSTest, co ostatní frameworky?
Chceme unit testy i pro nativní kód
Chcecme „oficiální“ mockovací framework od MS
Nová architektura
Unit testy s menší režií
Nezávislé na testovacím frameworku:
 MSTest pro managed kód (C#, VB.NET)
 Možnost pro třetí strany – adaptéry (NUnit apod.)
Kontinuální testování na pozadí po úspěšném buildu
Redukce a přepracování uživatelského rozhraní:
 Unit Test Explorer – rychlé, přehledné UI zaměřené na
vývojáře
 Code Coverage Results (nově i pro nativní kód)
Integrovaný mockovací framework Fakes (dříve Moles)
Neslyšeli jsme, ale víme…
Ideální kód:
 Využívá návrhové vzory
 Neobsahuje duplicity
 Každá chyba se v něm vyskytuje pouze jednou
 … neexistuje 
Reálný kód:
 Množení chyb metodou Copy/Paste
Code Clone
Hledá sémanticky (nikoliv pouze textově) podobné bloky
kódu
Nalezení duplicitního kódu v řešení
 Ideální cíle pro refactoring
Při nalezení problému najde podobné bloky kódu
 Eliminace chyb namnožených kopírováním
Závěrem
Zajistěte si nové Visual Studio formou existující MSDN subskripce:
 Zjednodušené UI orientované na úlohy
 Porovnávání verzí, slučování změn
 Přerušení práce
 Vývoj v offline režimu
 Analýza kódu
 Revize kódu
 Code Clone
VS 2012 – novinky pro správu
životního cyklu aplikací
Michael Juřek
Software Architect
Microsoft s.r.o.
Twitter hashtag: #cztechdays
Vize pro ALM
Vytvořit moderní ALM prostředí, na principech:
Spolupráce pomocí integrace zahrnující všechny role během celého
životního cyklu
 Rychlá, jasná a užitečná zpětná vazba, která minimalizuje plýtvání
časem lidí
 Přirozený nástroj pro každou roli (IDE, Office, prohlížeč, speciální
nástroje)
 Transparentní agilní procesy a techniky
Vysvětlivky:
 ALM = Application Lifecycle Management

Agilní vývoj a VS/TFS
Netlačíme vás do žádné konkrétní metodiky
Naše nástroje se řídí jednoduchými principy
 Přirozený nástroj pro každého člena týmu (Visual Studio,
Excel, Project)
 Minimálizace ne-pracovních aktivit (režie)
 Nástroje pro osvědčené agilní techniky (např. kontinuální
integrace)
 Inovace v oblastech způsobujících největší ztrátu
produktivity
Vývoj
Nepochopení
požadavků
Provoz
Chybí zpětná
vazba
Nelze reprodukovat
problém
Konflikt zájmů
a priorit
Nelze zjistit
příčinu
Iterace
Dezorientace
Kvalita kódu
Monitorování
Agenda
•
•
•
•
•
•
Storyboarding
Agilní plánování a týmy
Zlepšení kvality kódu
Agilní testování
Získání zpětné vazby
Diagnostika v produkčním prostředí
Rychlá a agilní analýza
Dosavadní používané prostředky:
 Popis ve Wordu – málo čitelný, neposiluje představivost, obtížná
zpětná vazba
 Modelování, UML – proprietární nástroje; precizní, ale těžko
srozumitelné
„A picture says a thousand words“
Hledáme přirozený nástroj pro:
 Prototypování – rychlé, agilní, věrné, vizuální
 Umožňující snadnou a okamžitou zpětnou vazbu
 Bez nutnosti učit se něco úplně nového
 … a ten nástroj je …
… PowerPoint. Cože??? Proč ne???
Vše potřebné víceméně umí
 Grafika, seskupování, kreslení, revize, kontrola pravopisu,
screenshoty, animace, prezentace, anotace, vložení libovolného
obsahu
Je dostupný – otevře ho každý, zná ho každý
 Tisk, odeslání mailem, integrace se SharePointem, zobrazení v
prohlížeči, paralelní editace, verzování, …
Master slidy pro znovupoužití vzhledu
Vlastní knihovny tvarů specifických pro vývoj
Integrace s TFS pro zapojení do životního cyklu
Agenda
•
•
•
•
•
•
Storyboarding
Agilní plánování a týmy
Zlepšení kvality kódu
Agilní testování
Získání zpětné vazby
Diagnostika v produkčním prostředí
Problém
Tradiční plánování v softwarových projektech často selhává
Reakcí je velký nástup agilních přístupů
TFS má kvalitní úložiště, ale chybí mu moderní nástroje pro
agilní plánování
 Excelové sešity nejsou ideální
 Existují řešení od třetích stran
Agilní plánování a řízení
Nové webové rozhraní pro TFS
 Moderní, rychlé, přístupné z libovolného zařízení
 Excel/Project stále preferován pro hromadnou editaci
Explicitní definice iterace – datum od/do
Možnost definice týmů
 Tým je definován oblastmi týmového projektu
 Ve velkých projektech více týmů
Podpora plánování nezávislá na použité metodice
 Plánování produktu – rozdělení práce do iterací
 Plánování iterace – rozdělení práce lidem
 Řízení iterace – sledování postupu, dynamické změny
 Vizualizace aktuálního stavu pomocí task boardu
Plánování produktu
Product Backlog
Priorita
3
8
5
3
8
1
5
Rozdělení do iterací
Product Backlog
5
8
5
Sprint Backlog
Plánování iterace
Product Backlog
Sprint Backlog
Řízení iterace
Product Backlog
Sprint Backlog
Agenda
•
•
•
•
•
•
Storyboarding
Agilní plánování a týmy
Zlepšení kvality kódu
Agilní testování
Získání zpětné vazby
Diagnostika v produkčním prostředí
Slyšeli jsme…
Typický postup:
1.
Zapnu analýzu kódu – všechna pravidla
2.
Analyzuji svoje 10 let vyvíjené řešení
3.
Vypadne 20.000 porušení
4.
Vypnu analýzu kódu
Statická analýza kódu (managed i C++) vypadá dobře, ale
nepoužíváme ji
 Není snadné ji nastavit a udržet centrálně
 Výsledků je příliš mnoho
 Výsledky nejsou pochopitelné a nevedou k akci
Analýza kódu je užitečná
Systematicky hledá problémy v kódu již při kompilaci, doplňuje tradiční
testování
Vylepšení ve VS 2012:
 Hromadné nastavení pro celé řešení
 Nové okno pro analýzu, rychlý náhled, akce
 Prioritizace pomocí filtrování a textové hledání
 Rozšířená pravidla, přesnější výsledky
Nenechte se zahltit !!!

Začněte s malou sadou pravidel, postupně přidávejte další pravidla
Udělejte analýzu kódu součástí vašich automatických buildů
Revize kódu
Plná integrace do prostředí a procesu
 Bez nutnosti vlastních nástrojů anebo řešení třetích stran
Možnost použití ad hoc anebo jako systematický prostředek pro
vyšší kvalitu kódu
Přirozené předávání řízení procesu a komunikace
Flexibilní náhled na kód integrovaný do prostředí:
 Více možných pohledů
 Syntax highlighting
 Podpora pro komentáře ke konkrétním řádkům
 …
Agenda
•
•
•
•
•
•
Storyboarding
Agilní plánování a týmy
Zlepšení kvality kódu
Agilní testování
Získání zpětné vazby
Diagnostika v produkčním prostředí
Agilní testování
Akceptační testování provádí nějakou formou prakticky
všechny týmy
 TFS 2010 podporuje formální strukturované testování
 Agilnější neformální testování (exploratory testing) není v
TFS 2010 dobře podporováno
Akceptační testy s menší režií
Podpora pro oba styly testování v TFS 2012
 Strukturovaný – s formálně definovanými testovacími
případy, plány, konfiguracemi
 Nestrukturovaný – procházení hotové funkčnosti a hledání
slabých míst (exploratory testing)
Výhody pro oba styly testování:
 Sdílení kontextu chyby mezi vývojářem a testerem
 Automatizace rutinní činnosti testera
 Měřitelnost kvality a testovacího úsilí
Testovací prostředí s menší režií
Standard environment – snadnost použití:

Fyzické počítače anebo virtuály

Žádná konfigurace TFS, žádné prerekvizity

Schopnosti:

Automatická instalace agenta do prostředí

Možnost spuštění libovolného skriptu

Možnost spuštění automatizovaných testů
SCVMM environment – maximální možnosti:

HyperV virtuály řízené Virtual Machine Managerem (SCVMM)

Schopnosti navíc:

Spuštění, zastavení

Klonování, současný běh více instancí (network isolation)

Snapshoty
Agenda
•
•
•
•
•
•
Storyboarding
Agilní plánování a týmy
Zlepšení kvality kódu
Agilní testování
Získání zpětné vazby
Diagnostika v produkčním prostředí
Vytváříme správnou věc?
Velmi často vytváříme věci, které si myslíme, že zadavatel chce
 Ne ty, které skutečně chce
Příčinou jsou špatně komunikované požadavky
Zpětná vazba často zcela chybí nebo je nahodilá
Nad poskytnutou zpětnou vazbou není efektivní proces
Nástroj pro zpětnou vazbu
Okamžitá a přehledná zpětná vazba
Rychlé odhalení funkčních problémů aplikace
Minimální režie:
 Textové komentáře
 Snímky částí obrazovky
 Videozáznam
 Audio komentář
Řízené workflow nad zpětnou vazbou
 Jsou to pracovní položky
 Email pro komunikaci
Agenda
•
•
•
•
•
•
Storyboarding
Agilní plánování a týmy
Zlepšení kvality kódu
Agilní testování
Získání zpětné vazby
Diagnostika v produkčním prostředí
Problém
Vývojáři nemají přístup do produkčního prostředí
Simulace produkčního prostředí je prakticky nemožná
Diagnostika pomocí logování vyžaduje odstávku nebo
nasazení nové verze
 V každém případě to znamená restart aplikace, čímž
může problém vymizet
Diagnostiku není možné spustit v okamžiku objevení
problému
Historické ladění v produkci
Nevyžaduje žádnou instalaci na produkční server (stačí „přinést USB klíč“)
 Potřebné binární soubory pro IntelliTrace
 Nastavení sbíraných událostí ve formě XML souboru
 PowerShell pro skriptování sběru, dávkové soubory, …
Nevyžaduje restart procesu aplikace
Analýza ve Visual Studiu:
 Vyžaduje Source Server a Symbol Server, obojí je součástí TFS, je
triviální na nastavení a je užitečné i v dalších scénářích
 Status kódy HTTP požadavků, výjimky, zvolené události (ADO.NET,
ASP.NET, …), zásobník, hodnoty proměnných
 Do budoucna – integrace s Operations Managerem (SCOM)
Závěrem
Zajistěte si nové Visual Studio formou existující MSDN
subskripce:
• Storyboarding
• Agilní plánování a týmy
• Zlepšení kvality kódu
• Agilní testování
• Získání zpětné vazby
• Diagnostika v produkčním prostředí