“How not to kill a baby”
Darius Laurinčikas
Šis pranešimas yra tęsinys pranešimo "Meilė darbui"
Rytis Lukoševičius
Kas atsitinka kai nebūna naudojamos apsisaugojimo priemonės?
Tenka vesti projektą / produktą
O kas atsitinka su vaiku, kuris gimsta tokioje šeimoje?
Bet gal pradžiai paprastas klausimas.
Ką reikia daryti norint nužudyti "vaiką"?
Pirmos mintys
2. Tiesiog ignoruoti susidarusias problemas.
1. NIEKO
3. Atidėlioti technines skolas
4. Mama tuom pasirūpins :)
Turimų problemų skalė
1
2
3
Gal jau dabar tinkamas laikas kažką keisti?
4
Kas yra kas ir apie ką visa tai?
Kas žudo vaiką
Tėtis
Projektas daromas po kaldra
My precious
Noras gauti greitus rezultatus laimi.
Pagrindinis orentyras yra laikas ir funcionalumų gausa.
O visa kita kai turėsime laiko... "niekad"
Kas yra vaikai?
"Legacy" sistemos ir tonos nepadengto kodo.
Not my code
Laiko stoka "dead line"
Greitas rezultatas orentavimasis į funkcionalumo gausą
Greitai augantys projekto poreikiai.
Kodo persidengimai ir priklausomybės
Testavimo nebuvimas "mes vistiek mesim tą kodo dalį"
Techninių skolų atidėliojimas
Viskas yra gerai su "legacy" kodu
O kai pradeda koda skaityti viskas atrodo taip
Teko ir tokių žmonių sutikti kurie turi ne eilinius gabumus
Produktas
Rimtas reikalas
Biznio prioritetų nebuvimas ir nevizualizavimas
Turim tobulą kodą, kurio niekam nereikia
Turim 0 bugų, bet niekas nesinaudoja
"Developmentas" vardant "developmento"
Nieko nepraleidau?
Mama
Mama - testavimo įrankiai ir vizualizavimas
Organizuoti kodą
Skatindama pamąstyti apie kodo struktūrą ir atsakomybęs
kodo "refaktorinimui"
"Dekaplinti" kodo logiką į smulkesnes kodo dalis
Mama padeda:
Padeda greitai lokalizuoti susidariusia problemą
Skamba gražiai tačiau:
Reikalauja daug laiko ir atsidavimo
Laiko sanaudos palaikant kodo logiką pakankamai nemenkos
Atsipirkimai prasideda tik po laiko
Padėdami mamai padėsime sau.
Kodo testavimas "funkciniu" padengimui "input output"
Padės lengviau susikalbėti ateityje.
"Svogūnus pervadinant Cibuliais"
Kodo funkcinis padengimas
Code
Input
Output
Code
Lengviau tvarkytis su kodo dalimis, bei pavadinimais
Greitai spręsti probemas
Lūžta kodas
Sunkiai rašomi testai
Laikas atskirti, logines dalis
Laikas pasidengti testais
Kodo strukturizavimas
Skaldyk ir valdyk. "Divide et impera! [lot] "
Senovės romėnų užkariautojų principas.
Dirbant su AngularJS
Servisuose išlaikyti "single responsability"
Pasirašyti apstrakčius metodus HTML5 API
Rašant Unit testus
Rašyti juos kaip lygiavertį kodą
Išlaikyti tvarką "skaitomumą, aiškumą"
Nemaišyti integracinių su unit testais
Rašysite unit testus, o ne integracinius testus
Mamos geriausi draugai
Karma + Istanbul + Jasmine
cucumberjs
nightwatchjs
Tėčio geriausi draugai
Gulp/Grant
GIT
Node.js
npm
Bower
Gulp
gulp-image-optimization
gulp-uglify
karma
karma-coverage
karma-phantomjs-launcher
karma-jasmine
karma-chrome-launcher
modemon
browserify
browserify-istanbul
karma-browserify
selenium-webdriver
jQuery
AngularJs
angular-ui-router
angular-mocks
Font-Awesome
angular-cookies
normalize.css
Labai svarbu pasirinkti stabilią versiją
Ne visi greiti sprendimai pasiteisina
Vizualizavimas
Google trands
Google trands
Laiku priimti sprendimai gali Jums padėti
Kada yra tinkamiausias laikas?
Lengviau orentuotis ko reikia ir ko trūksta
Biznio poreikių vizualizavimas
Biznio siekių grupavimas
Savo vaiką turėtų būt labai sunku auklėti.
Ką jau kalbėti apie svetimą vaiką.
Svetimą vaiką nėra sunku auklėti
jei tai daro ne vienas žmogus
Tad problemos įvardijimas ir bendraminčių gausa yra kritinis elementas siekiant bendro tikslo
Bet tai reikalauja daug pastangų ir laiko
Tuo labiau jei tai ketinate daryti kartu su gera komanda
https://www.youtube.com/watch?v=677R07arGtw
Naudingos nuorodos
https://www.youtube.com/watch?v=iP0Vl-vU3XM
http://southdesign.de/blog/mock-angular-js-modules-for-test-di.html
How to mock AngularJS modules and inject them in your testacular/karma tests
JS Unit Testing Good Practices and Horrible Mistakes
Reinventing software quality
Klausimai?
“How not to kill a baby”
By Darius Laurinčikas
“How not to kill a baby”
2015-01-28
- 1,760