Pisanie czystego kodu, znajomość i przestrzeganie zasad SOLID, DDD, BDD czy TDD nie wystarczy, by być dobrym programistą. Opowiem, co tak naprawdę składa się na jakość oprogramowania, postaram się Was przekonać do bardziej pragmatycznego podejścia do jego tworzenia oraz pokażę proste zasady, które sprawią, że każdy Wasz projekt będzie udany.
2. Jerzy Zawadzki
- Programista PHP z 10-letnim stażem
- Senior PHP Developer w firmie Polcode, w której pracuje ponad 7 lat
- na co dzień zajmuje się prowadzaniem projektów
opartych o Symfony2 lub Magento.
- Zend Certified Engineer
- Magento Certified Developer
- w wolnych chwilach chodzę po górach, biegam z aparatem za
służbami specjalnymi albo buduje coś z klocków LEGO
2
3. - założona w 2006r. przez programistów
- PHP (m.in. Symfony 2, Laravel, ZF, Magento,
Wordpress)
- Ruby On Rails
- Python
- klienci głównie z Ameryki Północnej, Europy
Zachodniej i Australii
- 800 zadowolonych klientów
- 1200 zakończonych projektów
- >100 programistów
- Warszawa, Kraków, Katowice, Łodź, Białystok
- + zdalnie
-
- założona w 2006r. przez programistów
- PHP (m.in. Symfony 2, Laravel, ZF, Magento,
Wordpress)
- Ruby On Rails
- Python
- klienci głównie z Ameryki Północnej, Europy
Zachodniej i Australii
- 800 zadowolonych klientów
- 1200 zakończonych projektów
- >100 programistów
- Warszawa, Kraków, Katowice, Łódź, Białystok
+ zdalnie
3
10. Abstraction principle, Code reuse, Cohesion, Command–query separation, Defensive
programming, Dependency inversion principle, Discoverability, Don't repeat yourself,
Fail-fast, GRASP, Hollywood principle, Information hiding, Interface segregation
principle, Inversion of control, KISS principle, Law of Demeter, Liskov substitution
principle, Loose coupling, MINASWAN, Open/closed principle, Principle of least
astonishment, Separation of concerns, Separation of mechanism and policy, Single
responsibility principle, SOLID, Uniform access principle, 80:20 rule, Amdahl's law, Code
smell, Deutsch limit, Greenspun's tenth rule, Gustafson's law, If it ain't broke, don't fix it,
IIABDFI, MINASWAN, Ninety-ninety rule, Rule of three, Zero one infinity rule,
Acceptance test-driven development, After the Software Wars, Agile Manifesto, Agile
software development, Behavior-driven development, The Cathedral and the Bazaar,
Comment programming, Cowboy coding, Design-driven development, Domain-driven
design, Extreme programming, Formal methods, Hollywood principle, Homesteading the
Noosphere, Integration competency center, Iterative and incremental development,
Kanban, KISS principle, Lean integration, Lean software development, Lightweight
methodology, The Magic Cauldron, Mayo-Smith pyramid, Micro-innovation, Minimalism,
Open/closed principle, Planning poker, PM Declaration of Interdependence, Release
early, release often, Retrenchment, Rule of least power, Secure by design, Slow
programming, Specification by example, Test double, Continuous test-driven
development, Test-driven development, Test-Driven Development by Example, There's
more than one way to do it, Transformation Priority Premise, Unix philosophy, Waterfall
model, Worse is better, You aren't gonna need it,
https://en.wikipedia.org/wiki/Category:Software_development_philosophies
10
23. Jakość oprogramowania
wg Weinberga
- Używaj symfony
- DDD!
- BDD!
- Absolutnie nie pisz w Laravelu
- Nie dotknij nigdy Wordpressa
- Najlepiej to w ogóle nie pisz w php bo jest głupi
23
24. Jakość oprogramowania
wg Weinberga
- Używaj symfony
- DDD!
- BDD!
- Absolutnie nie pisz w Laravelu
- Nie dotknij nigdy Wordpressa
- Najlepiej to w ogóle nie pisz w php bo jest głupi
24
X
29. “Zadanie zawsze zajmie więcej
czasu niż myślisz.
Nawet jeśli wziąłeś pod uwagę
Prawo Hofstadtera
- Douglas Hofstadter
Prawo Hofstadtera
29
30. “Napisanie pierwszych 90% kodu
aplikacji zajmuje 90% czasu pracy.
Napisanie pozostałych 10% kodu
zajmuje pozostałe 90% czasu pracy.
- Tom Cargill, Bell Labs
Zasada wiarygodności
(90:90)
30