SEO Restart 2022: Radim Daniel Pánek - Milisekundy vydělávají miliony, tak ne...
Marbes profesionalni programator_zcu
1. www.marbes.cz
Profesionální programátor
= nedostatkové zboží
komplexní řešení informačních systémů
Autor: Petr Jůza
Datum: 13.11.2012
MARBES CONSULTING s.r.o.
Tel.: 378 121 500
Fax.: 378 121 501
Brojova 16, 326 00 Plzeň
2. www.marbes.cz
Představení – Marbes
Společnost Marbes consulting s.r.o. je česká konzultační
a vývojová společnost působící v oblasti informačních
technologií jako systémový integrátor a dodavatel
ucelených SW řešení.
Založena v roce 1997
cca 150 zaměstnanců
Zákazníci
magistráty a městské úřady
krajské úřady
ministerstva
obchodní společnosti a firmy poskytující služby
Hlavní sídlo v Plzni, pobočka v Praze a Brně
www.marbes.cz
3. www.marbes.cz
Představení – Marbes
• klient-server aplikace
• server:
– Java, Spring framework, Hibernate, Apache
CXF, …
– PHP
• aplikační server – Apache Tomcat
6. www.marbes.cz
Představení – Ing. Petr Jůza
• Team leader, architekt, programátor, analytik, ...
• Nyní pracuji na volné noze
• Vývoj Java aplikací přes 10 let
• Zaměřuji se na „lightweight“ a integrační řešení
• SpringSource Certified Professional
• Blog: http://javicka.blogspot.cz
• Twitter: @pjuza
• LinkedIn: http://www.linkedin.com/in/petrjuza
7. www.marbes.cz
Kód, který je pochopitelný a čitelný, ale nefunguje,
můžete spravit.
Kód, který funguje, ale je nepochopitelný, se může
rozbít a neuděláte s ním nic.
10. www.marbes.cz
Vlastnosti kodéra
• orientace na technologie a samotný kód
• nebaví ho řešit zadání
• komunikace je zbytečné zdržování
• často chybí znalosti vyvíjené oblasti
• orientován na množství kódu
11. www.marbes.cz
Když saháte do existujícího kódu, pokaždé něco
vylepšete: javadoc, test, čitelnost.
Je to jediný způsob, jak mít dlouhodobě
udržovatelný kód.
12. www.marbes.cz
Vlastnosti programátora
• kvalitní „kodér“, který přemýšlí a komunikuje
• schopnost analýzy
• stále se ptá a hledá nejlepší řešení
• soft-skills
• snaha o zlepšování se - motivace
15. www.marbes.cz
Kódování zabere ⅙ času, design ⅓ a testy ½ (z toho
¼ jedn. komponenty a ¼ integrační test.).Náklady
na údržbu jsou 40%.
16. www.marbes.cz
Proč je dobré být programátorem
• chci umět více, dělat lépe
• vyšší přidaná hodnota = lepší postavení
• agilní přístupy – směr ke společné zodpovědnosti
a programování
• člověk nemůže kódovat celý život
17. www.marbes.cz
Dokonalá znalost všech požadavků na nově
vyvíjený software je iluze.
Smiřte se s tím a nebudete ve stresu při postupném
upřesňování.
18. www.marbes.cz
Vývoj je týmová hra
• špatný/dobrý výsledek ovlivňuje celý tým
• nutnost vzájemného respektu
• nutnost vzájemné pomoci
• nutnost dodržování „pravidel hry“
19. www.marbes.cz
Documentation is like sex, when it's good it's
awesome and even when it's pretty bad it's still
better than nothing.
20. www.marbes.cz
Buďme efektivní
• kvalitní kód, komentáře, stejná podoba kódu, ...
• refaktoring
• testy
• naučme se efektivně používat IDE
• lépe komunikujme a předávejme informace
23. www.marbes.cz
Refactoring kódu je jako úklid kuchyně po večeři.
Pokud se nedělá, hromadí se binec, dochází čisté
nádobí a časem si člověk už ani neuvaří.
24. www.marbes.cz
Rady pro začátek
• teoretické znalosti jsou potřeba
– je nutné je ale umět aplikovat
• učte se, inspirujte se
• mějte vývojové zásady a držte se jich
• programovací jazyk není nejdůležitější
25. www.marbes.cz
Kdybych byl aplikační bug, tak se schovám do
metody s vysokou cyklomatickou složitostí,
smrdícím kódem a s napraseným názvoslovím.
29. www.marbes.cz
Budovat aplikaci s vysokou vnitřní kvalitou je jako
ukládat peníze na spořící účet s výhodným úrokem.
S postupem času se výnosy násobí.
30. www.marbes.cz
Jakákoli konvence pojmenování je obvykle lepší
než žádná konvence. Zlepšuje pochopení kódu a
soustředění na problém, omezuje množení názvů.
bylojižhodněřečeno o tom, jakpsátkód, jakkomentovat, jakétechnologiepoužívatatd.proč je důležitébýtdobrýmprogramátorem – motivace z pohledujednotlivce aceléhotýmu
kodérnenínicšpatného, jen je to nižšíprogramátorskýstupeňjásámjsembylkodér
vývojneníjen o schopnostiněconakódovatuvědoměnísi, žečlověkčasemvícenabízízkušenostinežtechnickédetatilníznalosti
lepší postavenívíce penězlepší pracovní podmínky – práce z domova, já si hlavně určuji co chciIndie produkuje každý rok 1 000 000 programátorůčlověk dokáže obsáhnout 2 technologie za život
respekt – programátor vs. analytikvzájemná pomocpředávat si informace v jasné podoběkomentovat kódpsát dokumentacipravidla hrykonvence kódovánístruktura projektů
efektivita – v co nejkratšídobětohoudělat co nejvícenesmímezapomínatnaudržovatelnostkomunikacespolečnýkódcode review lepšínástrojepravidla pro přenosinformací
Kvalitní APIsplňovalopotřebyuživateledobrátestovatelnostflexibilní pro dalšírozvoj – vypořádání se s předešlýmiverzemicílemprogramátora je psátčitelnýkódmnoholidemchybízkušenosti z různýchprojektů a prostředí
pravidlanestačí je jenznát, ale umět I aplikovatpatterny - Zvažujejejichkontext a předpokladyzekterýchvycházejí.inspiraceopen source projekty – Springkonferenceúplnějinétechnologie a jazykyzásady – spoustufirem a projektůvásmůžesemlet – držte se svýchpřesvědčení
reálnáinformace o stavuprojektuodhadychybanenínicšpatnýho, nebojte se k nípřiznatTechnologickýdluh je metaforapopisujícísituaci, kdyvědoměčinevědoměudělátétechnickérozhodnutí, kteréfunguje v krátkodobémhorizontu, ale z hlediskadlouhodobéhovámmůžezpůsobitproblémy.Overengineering je případkdy pro určitíproblémzvolímepřílišsložitéřešení.záležínaoblasti – design vs. vývojdělejtevěcitakjednodušejak to jde, ale ne jednodušeji.