“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,756