Rozebráno – kromě 3 knih vše bude v Node5.
A Node5 k tomu dodává – berem vsechny! a kdyz by nekdo nejakou
potreboval, muze se u nas pro ni stavit ;)
Je na čase hodit za hlavu moji programátorskou minulost. Mám cca
50 knížek o programování, kterých se rád zdarma
zbavím. Dávám tomu tak měsíc, pak půjdou do tříděného odpadu.
Ideální by bylo, kdyby si je někdo vzal najednou – napadá mě –
co třeba Node5 – tam je plno technologických startupů – nechcete?
Klidně knížky osobně odvezu (po Praze).
Tady je seznam knížek.
- Adobe Photoshop 6 – uživatelská příručka (CZ)
- JSP – podrobný průvodce začínajícího tvůrce (CZ)
- Flash 5 pro grafiky a tvůrce webů (CZ)
- Dynamické HTML 2. vydání (CZ)
- Web development with Java Server Pages (EN)
- Acegi security framework – reference documentation 0.9.0 (EN)
- Better builts with Maven 2.0 (EN)
- Sql and Plsql (EN)
- Beginning Java server pages (EN)
- Hibernate reference documentation 3.0.5 (EN)
- Patterns of enterprise application architecture (EN)
- Seam contextual components 1.0.1 (EN)
- The Java EE 5 tutorial 3rd edition (EN)
- Begining Jboss Seam (EN)
- Your first cup – An introduction to the Java EE platform (EN)
- Design patterns Java workbook (EN)
- Spring reference documentation 1.2.6 (EN)
- Pro Ejb 3 – Java persistence API (EN)
- Spring Webflow reference documentation 1.0.1 (EN)
- Hibernate in Action (vytistena) (EN)
- Design patterns Java companion (EN)
- J2EE development without EJB (EN)
- CSS pro zelenáče – Martin Snížek (CZ)
- Programming with C# (EN)
- Masterign enterprise JavaBeans 3.0 (EN)
- Complete Java 2 cerfitication – Study guide, 5th edition
(EN)
- Ajax Patterns and best practises (EN)
- Python standard library (EN)
- Ajax Rest Recipes (EN)
- Agile development With Rails (EN)
- Ruby Cookbook (EN)
- Service Oriented Architecture (EN)
- Java server faces – the complete reference (EN)
- Java servlety a stránky JSP (CZ)
- Oracle – návrh a tvorba aplikací (CZ)
- C# v kostce (CZ)
- .NET framework programování aplikací (CZ)
- Building portals with Java portlet API (EN)
- Core JavaServer Faces (EN)
- Programming in objective-C (EN)
- Magento – příručka českého uživatele (CZ)
- Java performance tuning (EN)
- Quartz job scheduling framework (EN)
- Ruby Cookbook (EN)
- The iPhone developer Cookbook (EN)
- Java Persistence with Hibernate (EN)
- Drupal – podrobný průvodce tvorbou a správou webů (CZ)
Některé knížky jsou vytisknuté na A4, něco originály.
Knížky lze vyzvednout po předchozí domluvě u mě v kanceláři
– Maternia, Na Slatince 3284/1, 106 00 Praha 10
Celý článek 5. February 2013
Mám to potěšení napsat pár řádků o knize od Kenta Becka
s názvem Programování
řízení testy (v anglickém originálu Test
Driven Development: By Example).
Každý programátor má své návyky, které aplikuje pří vývoji
softwaru. Klasický přístup vypadá tak, že identifikujete systém a jeho use
casy, naprogramujte část systému a pak vyzkoušíte zda se chová tak jak
má.
Odlišný přístup se jmenuje programování řízené
testy (test driven
development). Pracovní postup je zde odlišný – před psaním
samotnéhé kódu napíšete testy – sadu podmínek, které musí
výsledná aplikace splňovat.
Pokud tímto způsobem ještě neprogramujete může být pro váš těžké
si to představit v praxi. A právě k tomu je výborná kniha,
o níž pojednává tento článek.
Obsah knihy
Kniha je rozdělena na tři velké části:
Část první – Příklad s penězi
V této části, která tvoří polovinu celé knihy, autor prochází
od samého začátku příkladu s finančními operacimi ve více měnách.
Na začátku práce je virtuální list papíru, na který si píšeme
požadavky na výsledný program. Poté se započne s napsáním testu na
tu nejjednodušší funkčnost. Slyšíte správně – nepíšou se
žádné třídy – rovnou testy, ve kterých se s klidem odvoláváme
na neexistující třídy a metody.
Následuje spuštění testu – test samozřejmě neprojde. Dalším
krokem je sprovoznění testů – s nejmenším možným odporem.
Pokud tedy máme mít metodu na sčítání dvou čísel a test vypadá
takto:
public void testFoo() {
this.assertEquals(3, myClass.foo(1, 2);
}
Tak nejjednodušší implementace metody foo pro projití testem bude
vypadat:
public void foo(int a, int b) {
return 3;
}
Možná si řeknete, že je tento postup hloupý, ale jedním z pravidel
TDD je psát pouze kód,
který projde testy. Nic navíc. Když přidáte další testy bude samozřejmě
potřeba metodu foo
upravit. Vývoj pomocí TDD má následující
cykly:
- Napsání nového testu a jeho spuštění
- Úprava kódu programu tak, aby nový test prošel (a s ním
samozřejmě všechny předcházející)
- Refaktorizace kódu (např. kvůli odstranění duplicit)
V první části je v použit programovací jazyk Java.
Část druhá – Příklad s xUnit
xUnit je název pro testovaný rámec, který se v příkladu
vytváří. Tentokrát je použit jazyk Python. Obsah kapitoly je podobné té
první – opět návrh programu from scratch pomocí TDD.
Část třetí – Vzory pro vývoj řízený testy
V této části autor mluví o návrhových vzorech, refaktorizaci,
testovacích vzorech atd.
Na závěr krátký citát z knihy:
Jednou z velkých frustrací mého života mladého inženýra bylo
zahájit projekt s obrovským nadšením a pak sledovat, jak se kód během
doby hatí. O rok později jsem si už nepřál nic jiného, jen ten teď
už smradlavý kód zahodit a dostat nový projekt. TDD vám umožní získat
během času důvěru ve váš kód, Jak se testy hromadí (a vaše testování
zlepšuje), získáváte důvěru v chování systému. Jak vylepšujete
návrh, můžete dělat stále více a více změn. Mým cílem je, abych se po
roce cítil ohledně projektu lépe, než když jsem nadšeně začal
s růžovými brýlemi na nose.
Závěr
Věřím, že hodně z vás už tuto knihu četlo – často bývá
zmiňována jako základní publikace z této oblasti. Útlá knížečka
je psaná čtivým (a srozumitelným) jazykem. Je to čtení na pár
večerů.
Informace o knize
- Název
- Test Driven Development: By Example
- Autoři
- Kent Beck
- Vydal
- Addison-Wesley Proffesional
- ISBN
- 0321146530
- Datum vydání
- 2003
- Počet stran
- 204
Celý článek 11. October 2007
Knihu Hibernate in Action jsem
přelouskával (s určitými přestávkami) po večerech pár měsíců.
Zpočátku jsem ji používat pouze jako referenční příručku –
nahlížel jsem do ní pouze když jsem potřebaval zjistit řešení
nějakého problému. Po přečtení několika fragmentů kódu jsem zjistil,
že bude dobré přečíst si knihu celou.
S odstupem času musím dát za pravdu podtitulu knihy –
A guide to the concepts and practise of object/relational
mapping. Hned v první kapitole Understanding object/relational
persistence kniha vysvětluje základní přístupy a problémy při
mapování objektů do relační databáze.
Nechci zde uvádět popis každé kapitoly, pouze v několika bodech
zmíním co všechno se lze v knize dozvědět:
- typy vazeb mezi objekty a velmi detailní popis jejich mapování
v Hibernatu včetně příkladů
- různé způsoby performance tunningu (batch fetchning, outer join, query
cache)
- popis Hibernate Session a SessionFactory
- popis lifecyclu persistentních objektů
- popis first a second level cache Hibernatu
- konkurenční přístup k datům a strategie řešení tohoto
problémů
- transakce
- podrobný popis nástrojů, které pomáhají urychlit vývoj softwaru
pomocí Hibernatu a také pomáhají udržet konzistentní mode napříč
všemi úrovněmi datového modelu. Mám na mysly DDL, hibernatí HBM souboru a
POJOs. Ukázáno je i použítí XDocletu.
Zárukou kvality knihou jsou i její autoři. Christian Bauer
napsal i další publikace o Javě – například Java
Persistence with Hibernate. Gavin King je samotným autorem
Hibernatu.
Závěr
Jak je z předchozích řádků vidět – kniha se mi libila
s všem začínajícím programátorům, koho výraz ORM se spojení
s jakou zajímá, ji doporučuji k přečtení.
Během čtení knihy jsem naprogramoval PHP based ORM framework
eVent, který jsme ve Venturii s úspěchem použili na více
než desítce projektů. Umí toho sice zlomek toho co Hibernate, ale
z velké části pokrývá naše potřeby. Mezi zajímavé vlastnosti
patří automatické generování UI a validačního kódu pro doménové
objekty. Jen pro zajímavost – metainformace má eVent uložen přímo ve
zdrojovém kódu doménových objektů – v komentářích. PHP od
verze 5.1 umí pomocí reflexe přistupovat ke komentářům. Funguje to
tedy podobně jako vzpomínaný XDoclet s tím rozdílem, že XDoclet má
své místo při compile-timu a eVent ke komentářům přistupuje při
runtimu.
Informace o knize
- Název
- Hibernate in Action
- Autoři
- Christian Bauer, Gavin King
- Vydal
- Manning Publications Co.
- ISBN
- 1932394–15-X
- Datum vydání
- 2005
- Počet stran
- 400
Celý článek 24. April 2007
Právě se mi podařilo dočíst další knihu. Jedná se o titul Uml
srozumitelně od autorů Hany Kanisové a Miroslava Müllera.
K přečtení této knihy mě donutili okolnosti. Ve firmě jsme měli za
úkol naprogramovat novou softwarovou komponentu. A protože její
fungování bylo celkem složité a nešlo popsát pár řádky kódu přišlo
na řadu UML.
Kniha je dobrým průvodcem základy UML. Myslím, že kdo to myslí
s OOP vážně musí, alespoň na úrovni dobrému pozorumění
diagramům, UML ovládat. Po přečtení knihy jsem se začal dívat na
problematiku OOP z dalšího úhlu pohledu.
Celý článek 5. March 2007