Robert Haken. HAVIT, s.r.o. knowledge-base.havit.cz

Podobné dokumenty
Ing. Bc. Robert Haken [MVP ASP.NET/IIS, MCT] software architect, HAVIT, Návrh schématu DB

Základy programování Zdrojový kód, dokumentace, týmová práce

Zkušenosti z přechodu na TFS a agilní techniky

Agenda. Docházka Návrat k minulému praktickému cvičení Zápočtové práce. Dokumentace. Dotazy, přání, stížnosti. Co, jak a proč dokumentovat

SCM = Source Code Management software, základní typologie rozdělení je podle počtu a umístění základního úložiště kódu(=repository) na:

Code Contracts. Robert Haken [MVP ASP.NET, MCT] Software architect, Owner at HAVIT, s.r.o. knowledge-base.havit.cz

1 Nástroje pro správu verzí. 1.1 Pojmy:

SQL Server Data Tools (SSDT) RNDr. David Gešvindr MVP: Azure MCSE: Data Platform MCSD: Windows Store

Project management. Příprava projektu Zahájení High level plánování. Vykonávání Detailní plánování Vykonávání Řízení a monitorování

Základy jazyka C# Obsah přednášky. Architektura.NET Historie Vlastnosti jazyka C# Datové typy Příkazy Prostory jmen Třídy, rozhraní

Novinky ve Visual Studio Tomáš Kroupa

Java/QE Akademie - Osnova

Řízení reálných projektů, agilní metodiky

1 - Úvod do platformy.net. IW5 - Programování v.net a C#

Agenda. Smysl teoretických cvičení Klasifikace Obecná pravidla Bugzilla Klasické problémy Poznámky k jednotlivým pojmům Antipatterns Testování testů

C# &.NET. Cvičení Mgr. Filip Krijt.

Programovací jazyk C# Úvod do programování v C#

Programovací jazyk Úvod do programování v C#

Programovací jazyk C# Úvod do programování v C#

Obecné informace o cvičeních

Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

Správa verzí souborů na cvičení

Vývoj informačních systémů. Přehled témat a úkolů

8 Třídy, objekty, metody, předávání argumentů metod

Joelův test. 12 kroků k lepšímu programování. Jaroslav Šnajdr

Připravil: Ing. Vít Ondroušek, Ph.D. Technologie.Net Framework

7.3 Diagramy tříd - základy

CineStar Černý Most Praha

Počítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů CZ.1.07/1.3.12/

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

7.3 Diagramy tříd - základy

Quality assurance a testovací nástroje v praxi. Bohumír Zoubek bohumir.zoubek@profinit.eu

Úvod do programovacích jazyků (Java)

Agilní metodiky vývoje softwaru

Vývoj software pro Linuxové distribuce. Installfest Praha,

Diagramy tříd - základy

5a. Makra Visual Basic pro Microsoft Escel. Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina

UJO Framework. revoluční architektura beans. verze

Vladimír

Řízení kvality SW produktů Jiří Sochor, Jaroslav Ráček 1

Zápis programu v jazyce C#

Testování SW produktů. Jiří Sochor, Jaroslav Ráček 1

WPA - Konfigurace Java EE aplikace (Maven, struktura war arch. kontejnerem Tomcat 8

Semestrální práce z PT

Vývoj informačních systémů. Přehled témat a úkolů

JAVA Unit testing Java, zimní semestr

Programové konvence, dokumentace a ladění. Programování II 2. přednáška Alena Buchalcevová

Komponenty v.net. Obsah přednášky

Jakub Čermák Microsoft Student Partner

Úvod do softwarového inženýrství a týmového vývoje

První kapitola úvod do problematiky

4a. Makra Visual Basic pro Microsoft Excel Cyklické odkazy a iterace Makra funkce a metody

OMO. 4 - Creational design patterns A. Singleton Simple Factory Factory Method Abstract Factory Prototype Builder IoC

Technologie Java Enterprise Edition. Přemek Brada, KIV ZČU

Robert Haken [MVP ASP.NET/IIS, MCT] software architect, HAVIT, Perly code-review z praxe

Lotus Quickr - ECM Integrace s LD/LN aplikacemi. Ing. Josef Homolka VUMS Legend

Monitorování a diagnostika aplikací v produkčním prostředí Michael Juřek

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

Nový uživatelský zážitek. Aleš Kučera ISSS 2015

Základy analýzy. autor. Jan Novotný února 2007

KIV/PIA 2013 Jan Tichava

Ukládání a vyhledávání XML dat

Počítačová Podpora Studia. Přednáška 5 Úvod do html a některých souvisejících IT. Web jako platforma pro vývoj aplikací.

Analýza a Návrh. Analýza

Podpora životního cyklu vývoje sliby a realita. Michael Juřek mjurek@microsoft.com Software Architect Microsoft s.r.o.

Architektura COM. Historie Component Object Model (COM) Komunikace s komponentami Rozhraní komponent COM komponenty v.net.

Poznámky k verzi Remote support platform 3.1

Sem vložte zadání Vaší práce.

SOFTWAROVÉ INŽENÝRSTVÍ Řízení IT projektů

Nástroje pro průběžnou integraci a testování

GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER. váš partner na cestě od dat k informacím

SonarQube - statická analýza kódu a její zapojení v CI. Babu Červenková Big Data developer - Java Fulltext - Robot tým

Výměnný formát XML DTM DMVS PK

programátor vs. vývojář

Dotazy na event #E256

Sem vložte zadání Vaší práce.

D R U P A L V O J T Ě C H K U S W O J T H A

Vývoj aplikací JIRA. Jiří Kala Životní cyklus verzí produktů a jeho pokrytí nástrojem ke správě požadavků (Atlassian JIRA).

Analýza a design na reálném projektu. Richard Michalský

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI

Praktické zkušenosti s Azure DevOps

Předmluva k aktuálnímu vydání Úvod k prvnímu vydání z roku Typografické a syntaktické konvence... 20

Přehled mezinárodních norem (ISO) Označení mezinárodní normy Názvy mezinárodních norem Rok vydání

Michal Krátký. Tvorba informačních systémů, 2008/2009. Katedra informatiky VŠB Technická univerzita Ostrava. Tvorba informačních systémů

Jazyk C# (seminář 3)

Semestrální práce z předmětu Architektury informačních sytémů

[ASP].NET Core Demystified. Miroslav Holec. Konzultant a lektor [ASP].NET Core.

Reaktivní programování v.net

vjj 1. Windows programming. krátká nahlédnutí za oponu

Nové jazykové brány do Caché. Daniel Kutáč

MBI - technologická realizace modelu

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Desktop GUI. IW5 - Programování v.net a C# Desktop GUI

Programování v jazyku C# II. 9.kapitola

l Kontakt s klientem SSP Popis automatizované komunikace s ÚP ČR v součinnosti a exekuci

Testování, ladění a dokumentace programů

Jak testovat software v praxi. aneb šetříme svůj vlastní čas

Algoritmizace a programování

JIŘÍ ROUN NABÍDKA SPOLUPRÁCE SW DOKUMENTARISTA WEB: MOBIL:

Modelem řízený vývoj. SWI 1 Jan Kryštof

Transkript:

Robert Haken Software Architect, Founder at HAVIT Microsoft Most Valuable Professional: ASP.NET/IIS Microsoft Certified Trainer: Web Development HAVIT, s.r.o. www.havit.cz knowledge-base.havit.cz haken@havit.cz

Coding Standards Source Code Management Issue Tracking Dokumentace Continuous Integration Testing

Volba platformy + jazyka Formátování kódu Naming Conventions Coding Rules Design Guidelines

Pojmenování a organizace souborů Název souboru ~ název typu (třídy) Cesta k souboru ~ namespace Encoding souborů Indentation TAB vs. Spaces New Lines, Wrapping Spacing kolem binárních operátorů, závorek, atp.

Vertikální mezery v kódu #regiony Pořadí členů ve třídě VS Format Document Ctrl+K, Ctrl+D

Formátování a organizace kódu

camelcase = lokální scope parametry metod lokální proměnné private fieldy tříd/struktur PascalCase = ostatní

metoda = začíná slovesem v rozkazovacím tvaru OtevriOkno(), OtevritOkno(), OtevreniOkna() identifiers (properties, fields,...) podstatná + přídavná jména boolean => obvykle IsReady, CanSave, HasValue, atp. zkratky >= 3 písmena => lower-case: HtmlForm, SazbaDph

kolekce + množiny = množné číslo List<Zakaznik> zakaznici kopírujeme název typu, pokud nepotřebujeme další rozlišení public Address Address {get; set;} Invoice invoice = Accounting.CreateNewInvoice()

výjimky XyException interface IEnumerable namespace Firma.Solution.Projekt.Folder generika MyType<T>, MyType<TKey, TValue> atributy XyAttribute

enums obvykle XyMode, XyKind, XyLevel, atp. množné číslo pro [Flags] RegexOptions XyEventHandler, XyEventArgs, XyCallback events = pravidlo dle formy slovesa Closing = before action, Closed = after action

maďarská notace strname zkracování UlozZak(), CastkaCelk křížení terminologie Zadost pozadavek = new Zadost() public bool SetCustomer(Zakaznik zakaznik) spojování Novy_Zakaznik

MSDN: Guidelines for Names chyby v.net Frameworku běžné System.Web.MailAttachment.Filename vs. FileName ToString() výjimka a další, např. Convert.ToXy()

Naming Conventions

závorkování primitivních bool výrazů if ((zakaznik == null) ((zakaznik!= null) && zakaznik.isactive)) ternární operátor výjimečně např. mikro logika do výrazů v markup kódu délka metod maximálně na jednu obrazovku vs. cyklomatická složitost

method-chaining pouze výjimečně ANO: text.replace(...).tolower().trim() NE: new MyClass().DoSomething() XML dokumentace validace argumentů, CodeContracts IDesign C# Coding Standards

MSDN: Design Guidelines for Developing Class Libraries Design Patterns GoF, Fowler vlastní patterny pro opakované situace nevymýšlejte kolo generování kódu O/R mapping, basic UI,...

Code Review

verzování zdrojového kódu v repository Subversion SVN Microsoft Team Foundation Server Microsoft SourceSafe...

atomický commit buildovatelnost každé revize kompletnost každé revize (DB, dll,...) povinné popisy každé revize / vazba na issuetracking granularita revizí

jeden celek přes více repository více celků v jedné repository jedna úprava přes více revizí více úprav v jedné revizi nedodržení standardního schématu (/trunk)

Source Code Management

Agenda požadavků/bugů/nápadů/... Řízení 100% práce vývojářů, dokumentace Plánování zdrojů / Harmonogram projektů Customer Portal / Helpdesk MS TFS, Axosoft OnTime, JIRA, Bugzilla,...

Finální granularita cca 1-8 hod/task Assigned To Workflow Due Date Expected (Remaining) Duration vazba na SCM revize

Nový Připravuje se Čeká na přiřazení Přiřazen k implementaci Implementuje se K vývojářské kontrole K výstupní kontrole K předání zákazníkovi Hotový Připraven, čeká Vrácen do implementace K nasazení Navrženo zrušení Zrušen

Issue Tracking

Typy dokumentace obecná týmová (konvence, postupy, API,...) projektová (vývojářská, uživatelská,...) Formální vs. neformální - forma záleží na příjemcích informace (zákazník, vývojáři,...) velikosti projektu (a rozpočtu)

Formy dokumentace XML komentáře v kódu self-documented DB schéma Issue-Tracking Wiki Word - Analýza, Manuál,... Nutnost aktualizace!!!

XML Dokumentace, DB doc, Wiki,...

schopnost zapracovávat změny do hlavní vývojové větve => granularita změn revizí SCM Build Server Microsoft Team Foundation Server Cruise Control.NET Deployment

Build Server

in-code tests if-then-throw ověřování argumentů Debug.Assert() Code Contracts unit testy ruční testy, popř. automated

Hledáme nového kolegu na pozici Podrobnosti hledejte na http://knowledge-base.havit.cz