• Nie Znaleziono Wyników

Dbanie o jakość kodu w dużej organizacji. Łukasz Młyński LPP S.A. Poznań, r.

N/A
N/A
Protected

Academic year: 2022

Share "Dbanie o jakość kodu w dużej organizacji. Łukasz Młyński LPP S.A. Poznań, r."

Copied!
47
0
0

Pełen tekst

(1)

Dbanie o jakość kodu w dużej organizacji

Łukasz Młyński LPP S.A.

Poznań, 30.06.2018r.

(2)

Łukasz Młyński

Cześć – jestem Łukasz ☺.

Pracuję w LPP.

Z zamiłowania to bym był aktorem (lub komentatorem sportowym)

ale programowanie też jest świetne ☺

(3)

O czym będę mówił

Po co nam

jakość kodu deweloperzy”„My Jakość kodu a organizacja

Automatyzacja,

narzędzia

Korzyści dla

organizacji

(4)

Słów kilka o kodzie i jakości - „z czym to się je”

Źródło: [1]

(5)

Czym jest jakość oprogramowania?

Ogół cech produktu (aplikacji), które wpływają na zdolności spełniania przez niego określonych wymagań, m.in. elastyczność , funkcjonalność , integralność , niezawodność , efektywność ,

użyteczność , wydajność .

(6)

Cykl życia aplikacji

Definiowanie wymagań Projektowanie

Programowanie

Integracja (wdrożenie) Utrzymanie, rozwój

(7)

Specyfika wytwarzania oprogramowania

1. Rotacja pracowników

2. Branża bardzo „agile” - częste zmiany koncepcji, projektów, członków zespołu itp …

3. Nowe zadanie => często kosztowna analiza, duży poziom niepewności, koszt zdobywania wiedzy procesowej

(8)

Specyfika wytwarzania oprogramowania

Źródło: [2]

„Nie piszemy kodu dla siebie, lecz dla innych

programistów”

(9)

Edward Aloysius Murphy, Jr

(10)

Prawa Murphy’ego

„Jeśli coś jest głupie, ale działa, to nie jest głupie”

Źródło: [2]

(11)

Prawa Murphy’ego

„Prowizorka zawsze okazuje się najtrwalsza”

Źródło: [2]

„Trytytka”!!!

(12)

Jakoś vs

Jakość

(13)

Co programiści mogą zrobić

Źródło: [4]

(14)

Nie pytaj się co firma może zrobić w kwestii jako ści kodu

Pytaj co

Ty

możesz zrobić w kwestii jakości kodu

(15)

Pisanie „czystego”,

„dobrego” kodu

(16)

Odpowiednie nazewnictwo

Repozytoria, projekty

Foldery, pliki

Klasy, interfejsy

Metody, funkcje

Zmienne, stałe

„There are only two hard things in Computer Science: cache invalidation and naming things.”

-- Phil Karlton

(17)

Odpowiednie nazewnictwo

Nazwy MAJĄ znaczenie

Źródło: [2]

Źródło: [6]

(18)

„Less is more”

1. Małe klasy, metody, funkcje

2. Mniejsza liczba parametrów w funkcjach, metodach, właściwości w klasach

3. Umiejętne komentowanie kodu 4. No „dead code”

(19)

Nieskomplikowane warunki logiczne

(20)

Wzorce projektowe

Źródło: [5]

(21)

Fajnie brzmiące akronimy

(22)

Pisanie

SOLID

nego kodu

1. S ingle responsibility principle 2. O pen/closed principle

3. L iskov substitution principle 4. I nterface segregation principle 5. D ependency inversion principle

(23)

Don’t be

STUPID

1. S ingleton

2. T ight coupling 3. U ntestability

4. P remature Optimalization 5. I ndescriptive Naming

6. D uplication

(24)

Kolejne fajnie brzmiące akronimy

1. DRY – Don't Repeat Yourself 2. KISS – Keep It Simple, Stupid

3. YAGNI - You Aren't Gonna Need It 4. TDA – Tell, Don't Ask

(25)

Zasada skautów

„Zawsze zostawiaj obóz czystszym niż go zastałeś”

(26)

Formatowanie kodu /

PSR

(27)

Sprawdzanie / review kodu

1. Częste code review (lecz niewielkiej ilości kodu) 2. Konstruktywna krytyka

3. Uczenie się robiąc code review

„Ask a developer to review 10 lines of code, he'll find 10 issues.

Ask him to do 500 lines and they'll say it looks good”.

(28)

Testowanie

1. Testy jednostkowe 2. Testy funkcjonalne 3. Testy automatyczne 4. Testy wydajnościowe 5. Testy integracyjne

6. …

(29)

Co można zrobić w ramach organizacji?

(30)

„Wspólnymi siłami”

1. Ustalenie standardów kodowania / formatowania 2. Spisanie standardów, upublicznienie

3. Przestrzeganie zasad, respektowanie ich

4. Automatyzacja, wykorzystanie pomocniczych narzędzi

(31)

Test Joela

1) Czy używasz systemu kontroli wersji?

2) Czy możesz zbudować wersję w jednym kroku?

3) Czy stosujesz codzienne budowanie wersji?

4) Czy używasz systemu zarządzania błędami?

5) Czy usuwasz błędy zanim napiszesz nowy kod?

6) Czy masz harmonogram aktualizowany na bieżąco?

7) Czy masz specyfikację?

8) Czy programiści mają komfortowe warunki pracy?

9) Czy używasz najlepszych dostępnych narzędzi?

10) Czy masz testerów?

11) Czy kandydaci piszą kod podczas rozmowy kwalifikacyjnej?

12) Czy praktykujesz korytarzowe testy wygody użytkowania?

@LPP

(32)

Proste triki, narzędzia,

automatyzacja

(33)

„Potęga” naszego IDE

(34)

Code Sniffer

(35)
(36)

Sonarqube

(37)

Sonarqube

(38)

Sonarqube

(39)

Sonarqube

(40)

Sonarqube

(41)

Sonarqube

(42)

Sonarqube

(43)
(44)

Korzyści dla organizacji

1. Mniejszy czas na wdrażanie nowych funkcjonalności do aplikacji

2. Szybsze wdrażanie nowych pracowników w kod projektu

3. Łatwiejsze aktualizacje wersji (np. języka programowania, kodu aplikacji itp…)

4. Mniej „nieoczekiwanych” błędów, aplikacja stabilna 5. Spokojny sen :)

(45)

Pytania?

(46)

Bibliografia i źródła

1) https://starecat.com 2) http://demotywatory.pl 3) http://mklr.pl

4) http://www.gazetaprawna.pl 5) https://www.script-tutorials.com 6) https://9gag.com

(47)

DZIĘKUJĘ

DZIĘKUJĘ

Cytaty

Powiązane dokumenty

Wobec faktu, iż zawód adwokata jest zawodem zaufania publicznego ustawo- dawca uzależnił wręcz prawo jego wykonywania od spełnienia, przez ubiegające- go się o wpis,

In order to predict public transport usage in case of planned disturbances, it is important to determine which parameter values could be different, compared to the values used

W przypadku gospodarstw przedsiębiorców istotne znaczenie miał z kolei dochód faktycznie uzyskiwany, którego wartość wpływu była wyż- sza niż wartość wpływu

Zastępca Przewodniczącego Rady Państwa Kazimierz Barcikow- ski w podsumowaniu dyskusji wyraził uznanie dla działań NRA i jej Prezydium, podkreślając jednocześnie

Pour récapituler nos remarques sur les nouvelles sources de la peur dans le récit néofantastique de Jean -Pierre Andrevon, nous voudrions souligner le rôle anxiogène du sentiment

Ta szczególna świadomość fikcjonalności opisu przemocy jest w horrorze tym istotniejsza, że pozwala realizować najbardziej podstawowe założenie gatunku – wzbudzać

W literaturze przedmio- tu zwraca się uwagę przede wszystkim na to, że Boileau — odwołując się do wątków podejmowanych przez polemistów — uwypuklił jedną z istotnych

That’s how the world of production shifted from single-model mass production lines to mass customized mixed-model assembly lines where complete product families can