Robert Haken [MVP ASP.NET/IIS, MCT] software architect, HAVIT, Perly code-review z praxe
|
|
- Veronika Slavíková
- před 8 lety
- Počet zobrazení:
Transkript
1 Robert Haken [MVP ASP.NET/IIS, MCT] software architect, HAVIT, Perly code-review z praxe
2 Task: Přidej do sloupce Název info-baloon
3 Co je code-review? druhé vývojářské oči komunikace dvou (nebo více) rovnocennýchstran revize a návrhyna vylepšení zvoleného způsobu implementace srozumitelnosti kvality implementace obecně rychlá zpětná vazba nástroj zvyšování kvality produktu nástroj zlepšování týmu
4 Výsledek:
5 Výsledek:
6 Co není code-review? testování kontrola dodržování standardů kódování StyleCop, FxCop(CodeAnalysis) Formy code-review pre-commit review post-commit review příležitostné konzultace pair-programming
7 lock(new object()) // thread-safe...všude píšou, že stačí lockna newobject private object mylock = new object(); lock(mylock)...
8 Kategorie Provizornosti
9 /// <summary> /// Vrací seznam všech záznamů z tabulky LoginLog. /// </summary> /// <param name="datefrom">datum od pro dotazy</param> /// <param name="dateto">datum do pro dotazy</param> /// <returns>vrací kolekci objektů typu "LoginLog" s načtenými daty.</returns> public static IEnumerable<DateTime> GetListChartLoginLog( using (Context ctx = new Context()) return ctx.loginlogs DateTime datefrom, DateTime dateto).where(x => x.date >= datefrom && x.date <= dateto && x.login).select(x => x.date).orderby(x => x).tolist(); Pečlivá dokumentace. Copy-Paste?
10 public bool KontrolaParametru(out string message) message = string.empty; return true; // WTF? Jednotka dočasnosti = 1 FURT
11 SELECT Faktura.FakturaID FROM Faktura WHERE (1 = 1) AND (Deleted IS NULL) AND (SmerFaktury AND (Faktura.TypFakturyID IN (SELECT Value mi to hezky zarovnávalo
12 public static Task RunDelayed(int milliseconds, Action action) return Task.Run(async delegate ); await Task.Delay(1000); action(); Tzv. tvrdý default?
13 Proč code-review? Vývojář -autor Dostávám zpětnou vazbu a učím se. Vím, že to po mě někdo uvidí. Snažím se, abych se za to nestyděl. Vývojář -reviewer Tým Inspiruji se prací jiných, učím se. Stojí o můj názor, realizuji se. Chci-li někomu něco vytýkat, sám to musím dělat správně. Zkracuje se doba na odhalení některých problémů -snažšíkorekce. Zrychluje se adaptace nových členů týmu. Posiluje se týmové pojetí projektu.
14 Kategorie Věřím si, netestuji
15 MySuperGrid.SortExpression = "Date.DayOfWeek"; DateTime.DayOfWeek Property Remarks The value of the constants in the DayOfWeek enumeration ranges from DayOfWeek.Sunday to DayOfWeek.Saturday. If cast to an integer, its value ranges from zero (which indicates DayOfWeek.Sunday) to six (which indicates DayOfWeek.Saturday). Prvním dnem je neděle. :-(
16 private void BindData() var procesy = Process.GetProcesses(); procesy.orderby(i => i.processname); MySuperGrid.DataSource = procesy;...ty systémový věci jsou nějaký divný. private void BindData() var procesy = Process.GetProcesses(); MySuperGrid.DataSource = procesy.orderby(i => i.starttime);
17 [Flags] public enum TreeNodeType Normal, Linked, Locked if (t.hasflag(treenodetype.normal)) // WTF? always true! [Flags] vždy s hodnotami, jinak je Normal= 0, Linked= 1, Locked= 2,... [Flags] public enum TreeNodeType Normal = 1, Linked = 2, Locked = 4 // 8, 16,...
18 Kategorie Proč to dělat jednoduše, když to jde složitě?
19 query.dateto = DateTime.Today.Date;...pro jistotu. // DateTime class public static DateTime Today get return Now.Date;
20 // Parsuje z formátu public static DateTime? DateFromXmlString(string value) if (string.isnullorempty(value)) return null; return DateTime.Parse( string.format( "2.1.0", value.substring(0, 4), value.substring(4, 2), value.substring(6, 2)), CultureInfo.CreateSpecificCulture("cs-CZ"), DateTimeStyles.None); public static DateTime? DateFromXmlString(string value) DateTime date; if (DateTime.TryParseExact(value, "yyyymmdd", CultureInfo.CreateSpecificCulture("cs-CZ"), DateTimeStyles.None, out date)) return date; return null;
21 C# 6.0 -Declaration expressions public static DateTime? DateFromXmlString(string value) if (DateTime.TryParseExact(value, "yyyymmdd", CultureInfo.CreateSpecificCulture("cs-CZ"), DateTimeStyles.None, out var date)) return date; return null;
22 public int GetHashCode(DuplicitaOvereniKontrolniAkceStructure obj) if (!obj.overeniid.hasvalue) return string.empty.gethashcode(); return obj.overeniid.value.gethashcode(); public int GetHashCode(DuplicitaOvereniKontrolniAkceStructure obj) return obj.overeniid.gethashcode();
23 var posledniradekprojekt = Faktura.Items.Last(o => o.poradi == Faktura.Items.Max(v => v.poradi)).projekt; Poslední z posledních?.last(predicate) // odpovídá.where(predicate).last()
24 int fakturaid = result.faktura.id; Faktura faktura = (fakturaid == 0)? result.faktura : fakturarepository.getfakturabyid(fakturaid);...takhle už to nevypadá tak machrovsky: Faktura faktura = result.faktura;
25 DataSet dsresult = new DataSet(); SqlDataAdapter mydataadapter = new SqlDataAdapter( "SELECT COUNT(*) FROM Uzivatel", "**ConnString**"); mydataadapter.fill(dsresult); string count = dsresult.tables[0].rows[0][0].tostring(); dsresult = null; Není to náhodou ExecuteScalar? int count2 = (int)cmd.executescalar();
26 Task: Importuj jen druhy 2, 4 a 5 int[] nenacitanedruhy = new int[] 1, 3, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 19, 50, 51, 52, 53, 54 ; if (!nenacitanedruhy.contains(druhzakazky)) // importuj Pozitivní přístup!
27 Kategorie Performance killers
28 private readonly Dictionary<string, string> localizedurls; private string GetUrl(string lang) if (localizedurls.containskey(lang)) return localizedurls[lang]; return "/"; private string GetUrl(string lang) if (localizedurls.trygetvalue(lang, out string url)) return url; return "/"; Proč hledat dvakrát?
29 private readonly Localization[] items; public string GetLocalization(string key, CultureInfo culture) return items. Where(x => x.equals(new Localization(key, culture))). Select(x => x.text). FirstOrDefault(); public bool Equals(Localization other) if (object.referenceequals(other, null)) return false; return (Key.Equals(other.Key) && LCID.Equals(other.LCID));...kterak potěšit GarbageCollector stovky řetězců per Page tisíce Localizations v items > volání constructoru per Page
30 private void Page_Load() // graf s počty přihlášení po dnech za dané období IEnumerable<DateTime> data = LoginLogService.GetListChartLoginLog( frompicker.selecteddate, topicker.selecteddate); DateTime dt = frompicker.selectedvalue; List<LoginStatistic> list = new List<LoginStatistic>(); while (dt <= DateTime.Today) list.add(new LoginStatistic Date = dt, Count = data.where(x => x.date == dt).count() ); dt = dt.adddays(1); MyChart.DataSource = list; MyChart.DataBind(); Výkonová optimalizace! Stačí, když to spočítám do dneška, v budoucnu žádná data přihlášení nejsou.
31 Kategorie Coding culture
32 // Kontrola vyplnění RČ a IČ dle právní formy if (akce.dotaceprijemcepravniformatyp == 1) chybaakce = "Pro typ '1' musí být zadáno RČ a nesmí být vyplněno IČ!"; if (akce.dotaceprijemcepravniformatyp == 2) chybaakce = "Pro typ '2' musí být alespoň jedna z položek RČ a IČ vyplněna!"; if (akce.dotaceprijemcepravniformatyp == 3) chybaakce = "Pro typ '3' musí být zadáno IČ a nesmí být vyplněno RČ!"; public enum PravniForma Nepodnikatel = 1, Zivnostnik = 2, PravnickaOsoba = 3 MagicNumbersNEEE! switch (akce.dotaceprijemcepravniformatyp) case PravniForma.Soukromnik: chybaakce = "..."; break; case PravniForma.Zivnostnik: chybaakce = "..."; break; case PravniForma.PravnickaOsoba: chybaakce = "..."; break;
33 #region SetButtonFakturovatVisibility public void SetButtonFakturovatVisibility(bool value) if (value) else #endregion FakturovatVybraneBT.Visible = true; FakturovatVybraneBT.Visible = false; Placen za počet řádek?
34 public DateTime? DateFrom get return this.datefrom; set DateTime min = SqlDateTime.MinValue.Value; DateTime max = SqlDateTime.MaxValue.Value; if ((value.hasvalue) && ((value.value <= min) (value.value >= max))) this.datefrom = null; else this.datefrom = value;...že by nová technika validace? DateFrom = input.value; IsValid = (DateFrom!= null); DateFrom = input.value?? DateTime.Today; XyLabel.Text = DateFrom.Value.ToString("g");//Ex: Nullable object must have...
35 row.cells["zbyvacol"].value = decimal.parse(row.cells["limitcol"].value.tostring().replace(".", ",")) - decimal.parse(row.cells["cerpanocol"].value.tostring().replace(".", ","));...asi ani nechci vědět, co tím autor myslel a jak se to chová v různých Culture.
36 public static Exception SendAlert(string subject, string body) Exception exceptionout = null; try MailMessage message = new MailMessage(); message.from = new MailAddress("sender@anon.net"]); message.to.add(new MailAddress("rcpt@anon.net")); message.subject = subject; message.body = body; (new SmtpClient(ConfigurationManager.AppSettings["SMTP"])).Send(message); catch (Exception exception) exceptionout = exception; return exceptionout; var ex = SendAlert(subject, body); if (ex!= null) //?? catch (ex) Log(ex); Pokud výjimku nezpracováváte, tak ji nezachycujte!
37 private void GetListForMonth(SqlConnection sqlconnection, list.clear(); //... while (sqldatareader.read()) //... int month, int year, Dictionary<string, bool> list) list.add(sqldatareader[0].tostring(), true); var list = GetListForMonth(conn, 10, 2014, var list = new List<string>(); GetListForMonth(conn, 10, 2014, list);
38 Kategorie Klasický bugy
39 protected Dictionary<string, string> _queryparams = new Dictionary<string, string>(); public void SetQueryParams(Dictionary<string, string> queryparams) _queryparams.clear(); _queryparams = queryparams; var myqueryparams = new Dictionary<string, string>() "ICO", " ", "NAZEV", "XY" ; resolver.setqueryparams(myqueryparams); // _queryparams = myqueryparams var result1 = resolver.execute(); myqueryparams.add("dic", "CZ "); resolver.setqueryparams(myqueryparams); // myqueryparams.clear() var result2 = resolver.execute();...hledání s DIČ jimnefunguje!
40 Bug: Streamvrácený metodou GetMemoryStreamnení disposován Oprava:...doplněn using
41 Q & A
[ASP].NET Worst Practices
Robert Haken [MVP ASP.NET/IIS, MCT] software architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken, http://knowledge-base.havit.cz [ASP].NET Worst Practices SecurityLog PerformanceTuning DEMO ResourceManager.cs:
Více[ASP].NET Worst Practices
Robert Haken [MVP ASP.NET/IIS, MCT] software architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken, http://knowledge-base.havit.cz [ASP].NET Worst Practices SecurityLog Finalizers vs. Garbage Collection
VíceZápis programu v jazyce C#
Zápis programu v jazyce C# Základní syntaktická pravidla C# = case sensitive jazyk rozlišuje velikost písmen Tzv. bílé znaky (Enter, mezera, tab ) ve ZK překladač ignoruje každý příkaz končí ; oddělovač
Více1. Téma 12 - Textové soubory a výjimky
1. Téma 12 - Textové soubory a výjimky Cíl látky Procvičit práci se soubory s využitím výjimek. 1.1. Úvod Program, aby byl programem, my mít nějaké výstupy a vstupy. Velmi častým případem je to, že se
VíceČipové karty Lekařská informatika
Čipové karty Lekařská informatika Následující kód je jednoduchou aplikací pro čipové karty, která po překladu vytváří prostor na kartě, nad kterým jsou prováděny jednotlivé operace a do kterého jsou ukládány
VíceUniverzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 3.4.
Základy programování 4 - C# - 8. cvičení Radek Janoštík Univerzita Palackého v Olomouci 3.4.2017 Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 3.4.2017 1 / 10 Reakce na úkoly
VíceJazyk C# - přístup k datům
Jazyk C# - přístup k datům Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze Pavel Štěpán, 2011 Data Reader BI-PCS Evropský sociální fond Praha & EU:
VíceUniverzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 19.2.
Základy programování 4 - C# 2. cvičení Radek Janoštík Univerzita Palackého v Olomouci 19.2.2019 Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 19.2.2019 1 / 19 Reakce na úkoly
VíceCode Contracts. Robert Haken [MVP ASP.NET, MCT] Software architect, Owner at HAVIT, s.r.o. knowledge-base.havit.cz
Code Contracts Robert Haken [MVP ASP.NET, MCT] Software architect, Owner at HAVIT, s.r.o. knowledge-base.havit.cz Contracts volaná strana deklaruje, jak se chová vzniká dohoda mezi volající a volanou stranou
VícePříklad aplikace Klient/Server s Boss/Worker modelem (informativní)
Příklad aplikace Klient/Server s Boss/Worker modelem (informativní) Jan Faigl Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze A0B36PR2 Programování 2 Jan Faigl, 2015 A0B36PR2
Více14.4.1. Typický prvek kolekce pro české řazení
14.4. Co všechno by měl mít typický prvek kolekce 177 Poznámka: Třídy BigInteger, BigDecimal a Date budou vysvětleny v částech [15./183, [16./185 a [18.1./204. 14.4.1. Typický prvek kolekce pro české řazení
VíceKTE / ZPE Informační technologie
4 KTE / ZPE Informační technologie Ing. Petr Kropík, Ph.D. email: pkropik@kte.zcu.cz tel.: +420 377 63 4639, +420 377 63 4606 (odd. informatiky) Katedra teoretické elektrotechniky FEL ZČU Plzeň Největší
VíceZápadočeská univerzita v Plzni Katedra informatiky a výpočetní techniky. 9. června 2007. krovacek@students.zcu.cz
Databáze čajových sáčků Martina Málková Západočeská univerzita v Plzni Katedra informatiky a výpočetní techniky Databázové systémy 2 9. června 2007 krovacek@students.zcu.cz 1 1 Datová analýza V původním
VíceTabulková data. budeme pracovat s CSV soubory položky oddělené středníkem, např.
Tabulková data budeme pracovat s CSV soubory položky oddělené středníkem, např. Číslo zákazníka;příjmení;jméno;datum narození 17;Novotná;Bohdana;25.11.1982 22;Kender;David;24.12.1986 29;Čihák;Jan;18.3.1969
VíceZáklady jazyka C# Obsah přednášky. Architektura.NET Historie Vlastnosti jazyka C# Datové typy Příkazy Prostory jmen Třídy, rozhraní
Základy jazyka C# doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Obsah přednášky Architektura.NET Historie Vlastnosti
VícePREPROCESOR POKRAČOVÁNÍ
PREPROCESOR POKRAČOVÁNÍ Chybová hlášení V C# podobně jako v C++ existuje direktiva #error, která způsobí vypsání chybového hlášení překladačem a zastavení překladu. jazyk C# navíc nabízí direktivu #warning,
VíceDistribuované systémy a výpočty
Distribuované systémy a výpočty X36DSV Jan Janeček XML-RPC jednoduchá definice www.xmlrpc.com implementace obvykle opřené o XML parser X36DSV - Distribuované systémy a výpočty (3) 2 XML-RPC jednoduché
VíceGenerické programování
Generické programování Od C# verze 2.0 = vytváření kódu s obecným datovým typem Příklad generická metoda, zamění dva parametry: static void Swap(ref T p1, ref T p2) T temp; temp = p1; p1 = p2; p2 =
VíceJazyk C# (seminář 6)
Jazyk C# (seminář 6) Pavel Procházka KMI 29. října 2014 Delegát motivace Delegáty a události Jak docílit v C# funkcionální práce s metodami v C je to pomocí pointerů na funkce. Proč to v C# nejde pomocí
VíceJazyk C# - přístup k datům
Jazyk C# - přístup k datům Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze Pavel Štěpán, 2011 Entity Framework BI-PCS Evropský sociální fond Praha
VíceOOPR_05. Případové studie
OOPR_05 Případové studie 1 Přehled probírané látky příklad skládání objektů - čára příklad skládání objektů kompozice a agregace přetížené konstruktory pole jako datový atribut 2 Grafický objekt - čára
VíceNávrh softwarových systém. Návrh softwarových systémů
Návrh softwarových systém ů - Java 8 Jiří Šebek Návrh softwarových systémů (B6B36NSS) Co je nového? Default interface methods Lambda expressions Method references and repeatable annotations Streams Functional
Více2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.
Informatika 10. 9. 2013 Jméno a příjmení Rodné číslo 1) Napište algoritmus pro rychlé třídění (quicksort). 2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus
VíceUniverzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 10.4.
Základy programování 4 - C# - 9. cvičení Radek Janoštík Univerzita Palackého v Olomouci 10.4.2017 Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 10.4.2017 1 / 13 Reakce na
VíceIW5 - Programování v.net a C# 4 Pokročilé konstrukce C#
4 - Pokročilé konstrukce C# IW5 - Programování v.net a C# Strana 1 Obsah přednášky Výjimky Delegáti Události Lambda výrazy Strana 2 Výjimky a jejich zpracování Slouží k ošetření výjimečných (chybových)
VícePřehled probírané látky
OOPR_04 1 Přehled probírané látky asociace (relace) mezi třídami popis množiny spojení mezi objekty skládání objektů - upřesněný typ asociace, vazba mezi objekty kompozice objektů (velmi pevná vazba mezi
VíceJazyk C# - přístup k datům
Jazyk C# - přístup k datům Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze Pavel Štěpán, 2011 Zpracování dat po částech ( stránkování DataSetu) BI-PCS
VíceÚvod Třídy Rozhraní Pole Konec. Programování v C# Hodnotové datové typy, řídící struktury. Petr Vaněček 1 / 39
Programování v C# Hodnotové datové typy, řídící struktury Petr Vaněček 1 / 39 Obsah přednášky Referenční datové typy datové položky metody přístupové metody accessory, indexery Rozhraní Pole 2 / 39 Třídy
VíceKolekce, cyklus foreach
Kolekce, cyklus foreach Jen informativně Kolekce = seskupení prvků (objektů) Jednu již známe pole (Array) Kolekce v C# = třída, která implementuje IEnumerable (ICollection) Cyklus foreach ArrayList pro
VícePŘETĚŽOVÁNÍ OPERÁTORŮ
PŘETĚŽOVÁNÍ OPERÁTORŮ Jazyk C# podobně jako jazyk C++ umožňuje přetěžovat operátory, tj. rozšířit definice některých standardních operátorů na uživatelem definované typy (třídy a struktury). Stejně jako
VíceÚvod do programovacích jazyků (Java)
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2007/2008 c 2006 2008 Michal Krátký Úvod do programovacích
Více5 Rekurze a zásobník. Rekurzivní volání metody
5 Rekurze a zásobník Při volání metody z metody main() se do zásobníku uloží aktivační záznam obsahující - parametry - návratovou adresu, tedy adresu, kde bude program pokračovat v metodě main () po skončení
VíceSOUBORY, VSTUPY A VÝSTUPY POKRAČOVÁNÍ
SOUBORY, VSTUPY A VÝSTUPY POKRAČOVÁNÍ Vstupy a výstupy pokračování Kódování textů Texty (řetězce nebo znaky) v jazyce C# jsou v paměti uloženy v kódování označovaném běžně Unicode (kódová stránka 1200).
VíceJazyk C# (seminář 3)
Jazyk C# (seminář 3) Pavel Procházka KMI October 8, 2014 Motivace Největší využití v programování okenních aplikací a GUI knihoven. Data reprezentujeme pomocí objektů (tříd), máme tedy ucelený pohled na
VíceAgenda. 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
QA & Dokumentace Agenda Docházka Návrat k minulému praktickému cvičení Zápočtové práce QA opakování Dokumentace Co, jak a proč dokumentovat Dotazy, přání, stížnosti Kde je chyba? public static StringBuilder
VícePokud zadání nerozumíte nebo se vám zdá nejednoznačné, zeptejte se. Pište čitelně, nečitelná řešení nebudeme uznávat.
Pokud zadání nerozumíte nebo se vám zdá nejednoznačné, zeptejte se. Pište čitelně, nečitelná řešení nebudeme uznávat. 1. Odkrokujte následující program a s použitím notace z přednášky popište stav paměti
VíceVýčtový typ strana 67
Výčtový typ strana 67 8. Výčtový typ V této kapitole si ukážeme, jak implementovat v Javě statické seznamy konstant (hodnot). Příkladem mohou být dny v týdnu, měsíce v roce, planety obíhající kolem slunce
VíceVláknové programování část V
Vláknové programování část V Lukáš Hejmánek, Petr Holub {xhejtman,hopet@ics.muni.cz Laboratoř pokročilých síťových technologií PV192 2014 03 25 1/25 Přehled přednášky Paměťový model Javy GUI v Javě Vlákna
Více20. Projekt Domácí mediotéka
Projekt Domácí mediotéka strana 211 20. Projekt Domácí mediotéka 20.1. Základní popis, zadání úkolu V projektu Domácí mediotéka (Dome) se jednoduchým způsobem evidují CD a videa. Projekt je velmi jednoduchý
VíceProgramování v jazyku C# II. 5.kapitola
Programování v jazyku C# II. 5.kapitola Obsah O ADO.NET Spojení s DB Příkazy Jednoduché čtení DataSet 2/28 ADO.NET ADO - ActiveX Data Object Orientováno na webové aplikace neexistence stavu v HTTP Obecný
VíceDruhy souborů. textové. binární. nestrukturované txt strukturované - ini, xml, csv. veřejné bmp, jpg, wav proprietární docx, cdr, psd
Soubory Druhy souborů textové nestrukturované txt strukturované - ini, xml, csv binární veřejné bmp, jpg, wav proprietární docx, cdr, psd Základy zápisu using System.IO; nutné pro odkázání na jmenný prostor,
VíceAlgoritmizace a programování
Algoritmizace a programování Struktura programu Vytvoření nové aplikace Struktura programu Základní syntaktické elementy První aplikace Verze pro akademický rok 2012/2013 1 Nová aplikace NetBeans Ve vývojovém
VíceMichal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
VíceRMI Remote Method Invocation
2. cvičení RMI Remote Method Invocation 2007/09 ver.2.0 1 RMI co to je? vyvolání metody z jiné JVM lokalizace vzdáleného objektu komunikace se vzdálenými objekty přenos objektu v bytecode typicky klient
VíceÚvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií
1 Fakulta elektrotechniky a informatiky Katedra softwarových technologií 12. října 2009 Organizace výuky Přednášky Teoretické základy dle normy jazyka C Cvičení Praktické úlohy odpřednášené látky Prostřední
Vícetypová konverze typová inference
Seminář Java Programování v Javě II Radek Kočí Fakulta informačních technologií VUT Únor 2008 Radek Kočí Seminář Java Programování v Javě (2) 1/ 36 Téma přednášky Rozhraní: použití, dědičnost Hierarchie
VíceMichal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
VíceIndexové seznamy. známe už pole, kde ale musí být předem známa velikost indexové seznamy umí růst dynamicky
Indexové seznamy známe už pole, kde ale musí být předem známa velikost indexové seznamy umí růst dynamicky Viz nedávný příklad s převodem souboru na velká písmena. Řešení pomocí pole: private void tlačítkoprocházetvýchozí_click(object
VíceStatické proměnné a metody. Tomáš Pitner, upravil Marek Šabo
Statické proměnné a metody Tomáš Pitner, upravil Marek Šabo Úvod Se statickou metodou jsme se setkali už u úplně prvního programu - Hello, world! public class Demo { public static void main(string[] args)
VíceIII/2 Inovace a zkvalitnění výuky prostřednictvím ICT
Číslo a název šablony Číslo didaktického materiálu Druh didaktického materiálu Autor Jazyk Téma sady didaktických materiálů Téma didaktického materiálu Vyučovací předmět Cílová skupina (ročník) Úroveň
VíceJava a XML. 10/26/09 1/7 Java a XML
Java a XML Java i XML jsou přenositelné V javě existuje podpora pro práci s XML, nejčastější akce prováděné při zpracování XML: načítání XML elementů generování nových elementů nebo úprava starého zápis
VíceAbstraktní datové typy: zásobník
Abstraktní datové typy: zásobník doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Abstraktní datové typy omezené rozhraní
VíceStromy. Příklady. Rekurzivní datové struktury. Základní pojmy
Základní pojmy Stromy doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Graf uzly hrany orientované / neorientované Souvislý
VíceRegulární výrazy. Vzory
Regulární výrazy Regulární výrazy jsou určeny pro práci s textovými řetězci, jsou součástí J2SDK až od verze 1.4, v předchozích verzích je potřeba použít některou z externích knihoven, např. knihovnu ORO
VíceSeznamy a iterátory. Kolekce obecně. Rozhraní kolekce. Procházení kolekcí
Kolekce obecně Seznamy a iterátory doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Kolekce ::= homogenní sada prvků
VíceVytváření a použití knihoven tříd
Vytváření a použití knihoven tříd doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Prostory jmen motivace spolupráce
VíceUJO Framework. revoluční architektura beans. verze 0.80 http://ujoframework.org/
UJO Framework revoluční architektura beans verze 0.80 http://ujoframework.org/ Pavel Pone(c), září 2008 Historie rok 2004 upravené objekty z frameworku Cayenne nevýhodou byla špatná typová kontrola rok
VíceÚvod do programování - Java. Cvičení č.4
Úvod do programování - Java Cvičení č.4 1 Sekvence (posloupnost) Sekvence je tvořena posloupností jednoho nebo více příkazů, které se provádějí v pevně daném pořadí. Příkaz se začne provádět až po ukončení
Více17. Projekt Trojúhelníky
Projekt Trojúhelníky strana 165 17. Projekt Trojúhelníky 17.1. Základní popis, zadání úkolu Pracujeme na projektu Trojúhelníky, který je ke stažení na java.vse.cz. Aplikace je napsána s textovým uživatelským
VíceJava a Caché IV: Manipulace s objekty
1 z 6 11.1.2007 11:13 přihlašovací jméno heslo Registrace Přihlásit články odkazy aktuality CZJUG konference o portálu přidejte se o nás Vyhledávání Text: najdi Oborový filtr J2ME J2SE J2EE Enterprise
VícePG 9.5 novinky ve vývoji aplikací
PG 9.5 novinky ve vývoji aplikací P2D2 2016 Antonín Houska 18. února 2016 Část I GROUPING SETS, ROLLUP, CUBE Agregace Seskupení řádků tabulky (joinu) do podmnožin podle určitého kĺıče. Za každou podmnožinu
VíceSimulace. Martin Pergel
Simulace Pokračování Seznamy Seznamy (spojové) a základní datové struktury byly probrány v Pascalu, protože v C# jsou už předimplementované: System.Collections.ArrayList je univerzální seznam. Instance
VícePro kontrolu správného formátu hodnoty N použijeme metodu try-catch.
1. ŘEŠENÉ PŘÍKLADY 1.2 PŘÍKLAD 24-2-8-2_DOKONALÉ ČÍSLO Napište program, který má na vstupu přirozené číslo N > 1. Výstupem je informace o tom, zda toto číslo je/není dokonalé. (Dokonalé číslo je takové
VíceNávrh a tvorba WWW stránek 1/14. PHP a databáze
Návrh a tvorba WWW stránek 1/14 PHP a databáze nejčastěji MySQL součástí balíčků PHP navíc podporuje standard ODBC PHP nemá žádné šablony pro práci s databází princip práce s databází je stále stejný opakované
VíceSkripty základy VB, vestavěné objekty, příklady
Skripty základy VB, vestavěné objekty, příklady Tento dokument popisuje základy VB, vestavěné objekty, jejich metody a vlastnosti. Na závěr jsou uvedeny typické příklady použití. Stav ke dni: 9.12.2006
VíceADT/ADS = abstraktní datové typy / struktury
DT = datové typy obor hodnot, které může proměnná nabývat, s operacemi na tomto oboru určen: obor hodnot + výpočetní operace např. INT = { 2 147 483 648 až +2 147 483 647} + {+,,*,/,} ADT/ADS = abstraktní
VíceKIV/PIA 2013 Jan Tichava
KIV/PIA 2013 Jan Tichava Java EE JSF, PrimeFaces Spring JPA, EclipseLink Java Platform, Enterprise Edition Persistence Zobrazovací vrstva Interakce aplikací Deployment Java Persistence API Enterprise
VíceJava - řazení objektů
Java - řazení objektů Kapitola seznamuje se základními principy řazení objektů Klíčové pojmy: Přirozené řazení, absolutní řazení, ideální porovnávatelná třída ŘAZENÍ OBJEKTŮ U objektů není příliš jasné,
VíceTvorba informačních systémů
Tvorba informačních systémů Michal Krátký, Miroslav Beneš Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2005/2006 c 2006-2007 Michal Krátký, Miroslav Beneš Tvorba informačních
VíceDatové typy v Javě. Tomáš Pitner, upravil Marek Šabo
Datové typy v Javě Tomáš Pitner, upravil Marek Šabo Úvod k datovým typům v Javě Existují dvě základní kategorie datových typů: primitivní a objektové Primitivní v proměnné je uložena přímo hodnota např.
VíceIII/2 Inovace a zkvalitnění výuky prostřednictvím ICT
Číslo a název šablony III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Číslo didaktického materiálu EU-OPVK-VT-III/2-ŠR-303 Druh didaktického materiálu DUM Autor RNDr. Václava Šrůtková Jazyk čeština
VíceÚvod do programování v jazyce Java
Úvod do programování v jazyce Java Petr Krajča Katedra informatiky Univerzita Palackého v Olomouci 5. říjen, 2011 Petr Krajča (UP) KMI/UP3J: Seminář I. 5.10.2011 1 / 17 Organizační informace email: petr.krajca@upol.cz
VíceOsnova přednášky. Programové prostředky řízení Úvod do C# II. Přístup ke členům. Členy (Members)
Osnova přednášky Programové prostředky řízení Úvod do C# II. Členy (Members) Jmenné prostory (Namespaces) Třídy (Classes) Struktury (Structs) Pavel Balda Západočeská univerzita v Plzni, FAV, KKY 2 Členy
VíceDědičnost (inheritance)
Dědičnost (inheritance) Úvod Umožňuje objektům převzít (zdědit) členy jiných objektů a pouze je rozšířit o Auto: lze odvodit Vztah je osobní auto, cisterna jsou auta Základní pojmy Bázová třída (rodič)
VíceProgramování v Javě I. Leden 2008
Seminář Java Programování v Javě I Radek Kočí Fakulta informačních technologií VUT Leden 2008 Radek Kočí Seminář Java Programování v Javě (1) 1/ 45 Téma přednášky Datové typy Deklarace třídy Modifikátory
VíceJazyk C# a platforma.net
Jazyk C# a platforma.net Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze Pavel Štěpán, 2011 Syntaxe jazyka C# - 2. část BI-DNP Evropský sociální fond
VícePočí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/04.0006
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/04.0006 Lekce 1 Jazyk Java Tento projekt je spolufinancován Evropským sociálním fondem
VíceZákladní pojmy. Matice(řádky, sloupce) Matice(4,6) sloupce
Vektor a Matice Základní pojmy Matice(řádky, sloupce) Matice(4,6) sloupce řádky (1,1) (1,2) (1,3) (1,4) (1,5) (1,6) (2,1) (2,2) (2,3) (2,4) (2,5) (2,6) (3,1) (3,2) (3,3) (3,4) (3,5) (3,6) (4,1) (4,2) (4,3)
VíceISZR Referenční agent.net
Informační systém základních registrů ISZR Referenční agent.net Název dokumentu: ISZR Referenční agent.net Verze: 1.04 Projekt: ISZR Stádium: Pracovní Autor/Autoři: Pavel Odstrčil Jméno souboru: ISZR Referenční
VíceDistribuované systémy a výpočty
Distribuované systémy a výpočty X36DSV Jan Janeček Peter Macejko CORBA Common Object Request Broker Architecture - konsorcium OMG (Object Management Group) - standard pro podporu komunikace v DS - pouze
VíceJazyk C# (seminář 5)
Jazyk C# (seminář 5) Pavel Procházka KMI 23. října 2014 Přetěžování metod motivace Představme si, že máme metodu, která uvnitř dělá prakticky to samé, ale liší se pouze parametry V C# můžeme více metod
VícePrvní kapitola úvod do problematiky
První kapitola úvod do problematiky Co je to Flex Adobe Flex je ActionSript (AS) framework pro tvorbu Rich Internet Aplications (RIA), tedy knihovna AS tříd pro Flash. Flex používáme k vytvoření SWF souboru
VíceKTE / ZPE Informační technologie
7 KTE / ZPE Informační technologie Ing. Petr Kropík, Ph.D. email: pkropik@kte.zcu.cz tel.: +420 377 63 4639, +420 377 63 4606 (odd. informatiky) Katedra teoretické elektrotechniky FEL ZČU Plzeň - ternární
VíceFakulta elektrotechniky a informatiky Univerzita Pardubice 2014/2015. poslední přednáška a materiál k samostudiu
Fakulta elektrotechniky a informatiky Univerzita Pardubice 2014/2015 poslední přednáška a materiál k samostudiu @h0nza Raději už na začátku položte o otázku víc Vás to nic nestojí a ušetříte si spoustu
VíceIII/2 Inovace a zkvalitnění výuky prostřednictvím ICT
Číslo a název šablony Číslo didaktického materiálu Druh didaktického materiálu Autor Jazyk Téma sady didaktických materiálů Téma didaktického materiálu Vyučovací předmět Cílová skupina (ročník) Úroveň
VíceProgramování v Javě I. Únor 2009
Seminář Java Programování v Javě I Radek Kočí Fakulta informačních technologií VUT Únor 2009 Radek Kočí Seminář Java Programování v Javě (1) 1/ 44 Téma přednášky Datové typy Deklarace třídy Modifikátory
VícePL/SQL. Jazyk SQL je jazykem deklarativním, který neobsahuje procedurální příkazy jako jsou cykly, podmínky, procedury, funkce, atd.
PL/SQL Jazyk SQL je jazykem deklarativním, který neobsahuje procedurální příkazy jako jsou cykly, podmínky, procedury, funkce, atd. Rozšířením jazyka SQL o proceduralitu od společnosti ORACLE je jazyk
VíceJazyk C# a platforma.net
Jazyk C# a platforma.net Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze Pavel Štěpán, 2011 Syntaxe jazyka C# - 1. část BI-DNP Evropský sociální fond
VíceObject-relational mapping (JPA, Hibernate)
Vysoká škola báňská - technická univerzita Ostrava 17. března 2010 Obsah 1 2 3 4 namapovat chování objektového světa do relačních struktur a naopak, tak aby spolu mohli jednoduše komunikovat většina moderních
VíceJava Výjimky Java, zimní semestr
Java Výjimky 1 Výjimky (exceptions) hlášení a ošetření chyb výjimka signalizuje nějaký chybový stav výjimka = instance třídy java.lang.throwable dvě podtřídy java.lang.error a java.lang.exception konkrétní
VíceTextové soubory. alg9 1
Textové soubory Textový soubor je posloupnost znaků členěná na řádky každý znak je reprezentován jedním bytem, jehož obsah je dán nějakým kódováním znaků členění na řádky je závislé na platformě a obvykle
VíceSOUBORY, VSTUPY A VÝSTUPY POKRAČOVÁNÍ
SOUBORY, VSTUPY A VÝSTUPY POKRAČOVÁNÍ Serializace objektů pokračování Serializace v binárním nebo SOAP formátu pokračování Přizpůsobení serializace pokračování Příklad Program provádí serializaci a deserializaci
VíceNové prvky v C# 3.0. David Keprt
Nové prvky v C# 3.0 David Keprt revize Aleš Keprt 11.12.2006 Úvod Obsahem této prezentace je představení nových konstrukcí, které do jazyka C# přináší verze 3.0. Mezi ně patří: Klíčové slovo var Nové možnosti
VícePříkazy a řídicí struktury v Javě. Tomáš Pitner, upravil Marek Šabo
Příkazy a řídicí struktury v Javě Tomáš Pitner, upravil Marek Šabo Příkazy a řídicí struktury v Javě V Javě máme následující příkazy: Přiřazovací příkaz = a jeho modifikace (kombinované operátory jako
VíceVýjimky. v C# a Javě
Výjimky v C# a Javě Výjimky v C# Výjimky poskytují v C# způsob, jak reagovat na nečekané události. Uživatel např. zadá místo čísla text nebo soubor, který chceme otevřít, je využíván jiným procesem. To
VíceTeoretické minimum z PJV
Teoretické minimum z PJV Pozn.: následující text popisuje vlastnosti jazyka Java zjednodušeně pouze pro potřeby výuky. Třída Zavádí se v programu deklarací třídy což je část programu od klíčových slov
VíceTřídy a objekty. Třídy a objekty. Vytvoření instance třídy. Přístup k atributům a metodám objektu. $z = new Zlomek(3, 5);
Programovací jazyk PHP doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Obsah Třídy a objekty Výjimky Webové aplikace
VíceIRAE 07/08 Přednáška č. 2. atr1 atr2. atr1 atr2 -33
Objekt jako proměnná Objekty a metody Objekt = proměnná referenčního typu vznik pomocí new, chování viz pole jako referenční proměnná minulý semestr Stack Heap objekt ref this 10 20 atr1 atr2 jinyobjekt
VíceHTTP. Webový server. generátor HTML stránek (CGI, Perl, PHP, Python, Ruby, Java, ASP.NET) zpracování požadavku/ odeslání odpovědi.
Základy jazyka PHP Martin Klíma Dynamický web Webový klient požadavek HTTP odpověď Stránka 1 Toto je dynamicky generovaná stránka x xxxx xx. zpracování požadavku/ odeslání odpovědi generátor HTML stránek
VíceClass loader. každá třída (java.lang.class) obsahuje referenci na svůj class loader. Implementace class loaderu
Seminář Java Zavádění tříd Radek Kočí Fakulta informačních technologií VUT Duben 2008 Radek Kočí Seminář Java Zavádění tříd 1/ 16 JVM zavádí třídy dynamicky Class loader objekt schopný zavádět třídy abstraktní
Více