Razvoj softvera: crno/bijeli svijet?
-
Upload
robert-lujo -
Category
Technology
-
view
485 -
download
3
description
Transcript of Razvoj softvera: crno/bijeli svijet?
- 1. Razvoj softvera Crno / bijeli svijet?
2.
- Robert Lujo, Zagreb
3. Arhitekt poslovnih aplikacija 4. Voditelj softv.projekata 5. Softverski ininjer 6. 14 godina profesionalnog iskustva 7. OSS, python, django, C, C#, Java ... 8. @trebor74hr, linkedin,http://robert-lujo.com 9. O emu u priati?
- uspjean razvoj softvera
10. problematika nije jednostavna, zahtijeva razliite vjetine i znanja, ininjerske i drutvene, puno je sudionika, puno razliitih sistema i tehnologija 11. ne postoji silver bullet koji bi tojednostavno i brzo rijeio 12. ininjer == dovitljivac 13. vrlo vrlo dinamino 14. Stalna na tom svijetu samo mijena jestPetar Preradovi 15. Razvoj softvera to je in
- Agile development
- Test systems
16. Continuous integration 17. Database evolutionary systems 18. Deploy frequently -> auto-deploy ... Static & Dynamic languages 19. (D)VCS, OOP, SQL dobro se dre 20. web, cloud, html5, jquery, json, RESTful, web api, distributed, SOA 21. mobile, mobile, mobile 22. to nam treba od alata
- programski jezik
23. gotove biblioteke
- vlastite
24. vanjske gotovi framework(i)
- vlastiti
25. vanjski (polu) gotova rjeenja
- vlastiti
26. vanjski
- sustavza razvoj softvera
- editor/IDE
27. (D)VCS 28. build system 29. testing system 30. CI/DB-evolut. system 31. deployment system 32. document system 33. issue tracker 34. A ostalo?
- puno vanije:
35. Peter Norvig: [Programming] language choice is not as important as all the other choices: if you have the rightoverall architecture , theright teamof programmers, theright development processthat allows for rapid development withcontinuous improvement , then many languages will work for you; 36. ifyou dont have those things youre in troubleregardless of your language choice. 37. Alati
- izbor alata je bitan
38. get the job done 39. izbor programskog jezika nije jedini izbor 40. tko kae da se rjeenje mora razviti u jednom programskom jeziku/tehnologiji (distrib. sustavi) 41. Standing on the shoulders of giants
- suprotno od reinventing the wheel
42. sposobnostprepoznavanja boljeg od loijeg rjeenja 43. sposobnost razluivanja perspektivnog od odumirueg 44. Objektivnost
- biti objektivan,bez predrasuda,holly wars
45. ne vezati se emocionalno uz tehniku i rjeenja 46. we just had a nice polite discussion about religion. *Then* we started on programming languages. The sparks flew."@voidspace 47. pitati i sluati druge, dozvoliti da vas uvjere 48. zdrava diskusija vodi optimalnom rjeenju 49. Strunost
- ima nas boljih i manje boljih, no svi imamo priliku biti jo bolji
50. learn a new language every year 51. ali, paljivo odabirati/ulagati svoje vrijeme 52. pratiti i pokuati razumijeti dogaanja i trendove 53. dijeliti znanje 54. premda sve izgleda vrlo dinamino koncepti se rijetko mijenjaju
- danas popularne paradigme su izmiljene 60tih i 70tih
55. Uinkovitost
- opet get the job done
56. uiti kroz konkretno iskustvo - LOC ;)
- it's not the (programming) languages that matter but what you do with them
razviti sustav ljudi i tehnike sposoban brzim prilagodbama na nove okolnosti jer
- first design is allways wrong
automatizirati sve to se da automatizirati
- wasting programmer time is the true inefficiency,not wast. machine time"
57. Drati svoj autoritet
- prema klijentu i prema nadreenima
58. mi smo kao lijenici: oni opisuju simptome, a mi utvrujemo dijagnozu i propisujemo terapiju 59. Doktore, doktore imam zdravstvenih problema
- znam to mi je
60. elio bi neku tabletu crvene boje 61. da me sve ne kota vie od 100 kn netko zna lijenika koji bi to tolerirao? 62. oni trebaju opisati to, a mi nudimo rjeenje i procijenjujemo trokove. A kako emo to napraviti? To je naa briga :) 63. stvari nikad nisu jednostavne kao to se ine; ovaj posao je vrlo zahtjevan i osjetljiv 64. Zabavljati se
- imamo tu privilegiju :)
65. stvarati takvo okruenje, drutveno i tehniko 66. ekstremno? 67. if I stop having fun at my job, Its time to move on 68. praksa pokazuje da u naoj struci fun wins 69. Primjer Popularnost programskih jezika 70. Zavirimo u povijest-programski jezici
- Linija birokratskih
-
- Fortran 1955
- 71. ALGOL 1958
72. COBOL 1959 73. BASIC 1964 74. C 1973 75. C++ 1980 76. ObjC 1983 77. Visual Basic 1991 78. Java 1993 79. C# 2001
-
- Linija liberalnih
-
-
- LISP 1958
- 80. Smalltalk 1972
-
- 81. Erlang 1986
82. Perl 1987 83. Haskell 1990 84. Python 1991 85. Ruby 1993 86. Lua 1993 87. Javascript 1995 88. PHP 1995 89. Groovy, Scala 2003 90. Clojure 2007 91. Go 2009 92. Zavirimo u povijest -paradigme
- imperative
- procedural(1955 Fortran, Algol, C, Basic)
93. object oriented (1972 Smalltalk, Java, C++, Python) declarative (1958 Lisp, SQL, XML, xHTML) 94. functional (1958 Lisp, Erlang, Haskell) 95. multiparadigm svi! 96. prethodno navedeno nije precizno! 97. to je popularno?
- popularno == koristi se u velikoj mjeri
98. bolje se prije pitati,zatoje neto popularno? 99. zato jer donosinovac 100. community driven
- brzo rjeava problem u traenom podruju (domena)
101. lako prilagodljivo na nove okolnosti 102. ini korisnika zadovoljnim (fun wins) -> uinkovitijim big company/ies driven
- jer je velika tvrtka uloila velike novce i onda to gura, gura i gura
103. jer je jeftinije odravati sistem u postojeoj tehnologiji nego je prebaciti na novu (bolju) platform driven
- primjer: java android, iOS ObjectiveC, Lua
104. to je onda popularno? izvor TIOBE indeks 105. Popularnost zadnjih 25 god. izvor TIOBE indeks 106. Statiki / dinamiki 107. LISP, hm?
- 1958
108. prvi liberal 109. zamiljen kao koncept, a ne kao implementacija 110. oigledno dobar koncept :) 111. if-then-else, homoiconic, garbage collection, dynamic, interpreter, REPL, eval, lists, hashes, structures, lambda, closures, macros 112. nema dobru vibru - Lost In Stupid Parantheses :) 113. inspiracija za puno poznatije i novije: Smalltalk (prvi OOP->Lisp), Python, Ruby, Scala, Groovy, Clojure 114. Onda, koji je najbolji?
- Svaki jezik/paradigma je nastala s razlogom
- postojao je niz problema odreene vrste koju postojee tehnike nisu optimalno rjeavale izmislilo se bolje rjeenje
Primjer: Erlang 1986,danasdosta popularno za serverska rjeenja za asinkrone web zahtjeve (highly concurrent, websocket, comet) 115. postoji opravdan razlog za popularnost, za svakog od njih postoje podruja ( domain ) gdje su bolji od drugih
- vano je znati koja su to podruja!
s druge strane ako jezik ve imam u prstima , za mene to je velika prednost 116. idealno : i da je pravi jezik za traeno podruje, i da ga imam u prstima 117. I na kraju ...
- Stvari nisu crno/bijele! Pitanja?
118.
- Hvala na strpljenju!
- [email_address] @trebor74hr http://robert-lujo.com slijedi Python: na uzlazu ili silazu?