[4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

67
Jak zniszczyć swój kod? Podstawy lingwistyki dla programistów Zwiększamy efektywność zespołów projektowych 1

Transcript of [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

Page 1: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

Jak zniszczyć swój kod? Podstawy lingwistyki dla programistów

Zwiększamy efektywność zespołów

projektowych

1

Page 2: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

www.bnsit.pl

Michał Bartyzel mbartyzel.blogspot.com @MichalBartyzel Zwiększamy efektywność zespołów projektowych 2

Page 3: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

www.bnsit.pl

Nazwa, którą ja się posługiwałem Nazwa, którą zobaczyłem

Moja kinoteka

Dodaj serial

Dodaj odcinek

Opłacony/nieopłacony

Etykiety

Czas trwania: h 35 min.

Dr Home. Sezon 1 odcinek 29

Nonszalancja nazewnicza

Zwiększamy efektywność zespołów projektowych 3

Page 4: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

www.bnsit.pl

Nazwa, którą ja się posługiwałem Nazwa, którą zobaczyłem

Moja kinoteka Lista filmów

Dodaj serial

Dodaj odcinek

Opłacony/nieopłacony

Etykiety

Czas trwania: h 35 min.

Dr Home. Sezon 1 odcinek 29

Nonszalancja nazewnicza

Zwiększamy efektywność zespołów projektowych 4

Page 5: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

www.bnsit.pl

Nazwa, którą ja się posługiwałem Nazwa, którą zobaczyłem

Moja kinoteka Lista filmów

Dodaj serial Dodaj kategorię

Dodaj odcinek

Opłacony/nieopłacony

Etykiety

Czas trwania: h 35 min.

Dr Home. Sezon 1 odcinek 29

Nonszalancja nazewnicza

Zwiększamy efektywność zespołów projektowych 5

Page 6: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

www.bnsit.pl

Nazwa, którą ja się posługiwałem Nazwa, którą zobaczyłem

Moja kinoteka Lista filmów

Dodaj serial Dodaj kategorię

Dodaj odcinek Dodaj plik flv

Opłacony/nieopłacony

Etykiety

Czas trwania: h 35 min.

Dr Home. Sezon 1 odcinek 29

Nonszalancja nazewnicza

Zwiększamy efektywność zespołów projektowych 6

Page 7: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

www.bnsit.pl

Nazwa, którą ja się posługiwałem Nazwa, którą zobaczyłem

Moja kinoteka Lista filmów

Dodaj serial Dodaj kategorię

Dodaj odcinek Dodaj plik flv

Opłacony/nieopłacony Status [checkbox]

Etykiety

Czas trwania: h 35 min.

Dr Home. Sezon 1 odcinek 29

Nonszalancja nazewnicza

Zwiększamy efektywność zespołów projektowych 7

Page 8: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

www.bnsit.pl

Nazwa, którą ja się posługiwałem Nazwa, którą zobaczyłem

Moja kinoteka Lista filmów

Dodaj serial Dodaj kategorię

Dodaj odcinek Dodaj plik flv

Opłacony/nieopłacony Status [checkbox]

Etykiety Chmura tagów

Czas trwania: h 35 min.

Dr Home. Sezon 1 odcinek 29

Nonszalancja nazewnicza

Zwiększamy efektywność zespołów projektowych 8

Page 9: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

www.bnsit.pl

Nazwa, którą ja się posługiwałem Nazwa, którą zobaczyłem

Moja kinoteka Lista filmów

Dodaj serial Dodaj kategorię

Dodaj odcinek Dodaj plik flv

Opłacony/nieopłacony Status [checkbox]

Etykiety Chmura tagów

Czas trwania: h 35 min. Długość: 2 100 000 ms

Dr Home. Sezon 1 odcinek 29

Nonszalancja nazewnicza

Zwiększamy efektywność zespołów projektowych 9

Page 10: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

www.bnsit.pl

Nazwa, którą ja się posługiwałem Nazwa, którą zobaczyłem

Moja kinoteka Lista filmów

Dodaj serial Dodaj kategorię

Dodaj odcinek Dodaj plik flv

Opłacony/nieopłacony Status [checkbox]

Etykiety Chmura tagów

Czas trwania: h 35 min. Długość: 2 100 000 ms

Dr Home. Sezon 1 odcinek 29 87a1b230ff910912.flv

Nonszalancja nazewnicza

Zwiększamy efektywność zespołów projektowych 10

Page 11: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

www.bnsit.pl

Rzeczywistość, słowa, znaczenia, reguły

Zwiększamy efektywność zespołów projektowych 11

Page 12: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

www.bnsit.pl

Rzeczywistość, słowa, znaczenia, reguły

Zwiększamy efektywność zespołów projektowych 12

Page 13: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

www.bnsit.pl

Co można zrobić z…

Zwiększamy efektywność zespołów projektowych 13

Listą pracowników Ewidencją pracowników

• Dodać pracownika

• Usunąć pracownika

• Usunąć wszystkich

pracowników

• Wciągnąć pracownika do

ewidencji

• Wyciągnąć kartotekę pracownika

• Oznaczyć urlop

• Oznaczyć zwolnienie chorobowe

• Wyciągnąć świadectwo pracy

Page 14: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

www.bnsit.pl

Programujesz to, co nazywasz

Zwiększamy efektywność zespołów projektowych 14

List<Employee> employees...

//...

EmployeeFile employeeFile = findEmployeeFile( personalID );

employeeFile.getEmergencyContactInformation();

Page 15: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

www.bnsit.pl

A potem powstaje architektura

Zwiększamy efektywność zespołów projektowych 15

List<Employee> employees...

//...

EmployeeFile employeeFile = findEmployeeFile( personalID );

employeeFile.getEmergencyContactInformation();

Page 16: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

www.bnsit.pl

I dzieją się z nią dziwne rzeczy

Zwiększamy efektywność zespołów projektowych 16

Page 17: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

www.bnsit.pl

Ile %% wymagań naprawdę się zmienia?

Zwiększamy efektywność zespołów projektowych 17

Page 18: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

www.bnsit.pl

Jakie znaczenie może mieć słowo?

Zwiększamy efektywność zespołów projektowych 18

Page 19: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

www.bnsit.pl

S.O.L.I.D

Podstawowe zasady

Zwiększamy efektywność zespołów projektowych 19

Page 20: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

www.bnsit.pl

Przykład: Geometria euklidesowa ;)

Zwiększamy efektywność zespołów projektowych 20

Page 21: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

www.bnsit.pl

Przykład: Geometria euklidesowa ;)

Zwiększamy efektywność zespołów projektowych 21

Page 22: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

www.bnsit.pl

... ale jeśli nie znasz podstawowych zasad

Zwiększamy efektywność zespołów projektowych 22

Page 23: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

www.bnsit.pl

S.O.L.I.D

Podstawowe zasady

Zwiększamy efektywność zespołów projektowych 23

Page 24: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

www.bnsit.pl

# To jest proste?

• Koncepcyjnie proste, logicznie proste, eleganckie

• Lecz wcale nie tak łatwe do zastosowania

# To jest dla początkujących?

• Podstawy nie oznaczają rzeczy najłatwiejszych lecz p o d s t a w ę

• Trzeba sporo doświadczenia, aby zajmować się sprawami oczywistymi

To zbyt banalne?

Zwiększamy efektywność zespołów projektowych 24

Page 25: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

www.bnsit.pl

Co chcemy zacząć zauważać?

Zwiększamy efektywność zespołów projektowych 25

Page 26: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

www.bnsit.pl

Nazwa klasy cLOC

LocationManager 26 752

NetworkItem 10 955

TransferOperations 6 871

CalculatorsManager 4 325

MonitorManager 1 514

VTViewInvoker 48

ContactService 47

Address 34

DataRange 21

LoggedUserDetailsModel 13

Jeśli chodzi o klasy…

Zwiększamy efektywność zespołów projektowych 26

Page 27: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

www.bnsit.pl

Hipoteza #1

Zwiększamy efektywność zespołów projektowych 27

Page 28: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

www.bnsit.pl

Hipoteza #2

Zwiększamy efektywność zespołów projektowych 28

Page 29: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

www.bnsit.pl

Hipoteza #3

Zwiększamy efektywność zespołów projektowych 29

Page 30: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

www.bnsit.pl

Nazwa metody mLOC Nazwa klasy mLOC/ cLOC

checkDataProtectionStatus 956 PersonalDataProtectionCommon 79,47%

createWord 470 WordCreator 69,32%

process 95 SearchInText 60,51%

performOperation 1 187 TransferOperations 17,28%

closeTask 12 TaskEditAction 1,73%

updateCustomerSheet 56 TransferOperations 0,82%

onResponse 222 DeviceImpl_T41 0,50%

scanRoutingTable 26 DeviceImpl_T41 0,06%

countControlSum 10 AuthenticationLibrary 0,40%

checkTransactionStatus 10 AuthenticationLibrary 0,40%

Jeśli chodzi o metody…

Zwiększamy efektywność zespołów projektowych 30

Page 31: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

www.bnsit.pl

Hipoteza #4

Zwiększamy efektywność zespołów projektowych 31

Page 32: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

www.bnsit.pl

Hipoteza #5

Zwiększamy efektywność zespołów projektowych 32

Page 33: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

www.bnsit.pl

Hipoteza #6

Zwiększamy efektywność zespołów projektowych 33

Page 34: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

www.bnsit.pl

Extract Method?

Jeśli chodzi o zmienne…

Zwiększamy efektywność zespołów projektowych 34

Page 35: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

www.bnsit.pl

Jeśli chodzi o pakiety…

Zwiększamy efektywność zespołów projektowych 35

Axel Fontaine, Architecting for Continuous Delivery

http://2013.33degree.org/talk/show/51

Page 36: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

www.bnsit.pl

Biznes ARCH Klasy Metody Zmienne

Smell

Przykład

Refaktoring

Co sprawia brak umiejętności n a z y w a n i a?

Zwiększamy efektywność zespołów projektowych 36

Page 37: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

www.bnsit.pl

Biznes ARCH Klasy Metody Zmienne

Smell Zmienna quasi-globalna

Przykład

Refaktoring

Co sprawia brak umiejętności n a z y w a n i a?

Zwiększamy efektywność zespołów projektowych 37

Page 38: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

www.bnsit.pl

Biznes ARCH Klasy Metody Zmienne

Smell Zmienna quasi-globalna

Przykład tmp1, tmp2, tmp3

Refaktoring

Co sprawia brak umiejętności n a z y w a n i a?

Zwiększamy efektywność zespołów projektowych 38

Page 39: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

www.bnsit.pl

Biznes ARCH Klasy Metody Zmienne

Smell Zmienna quasi-globalna

Przykład tmp1, tmp2, tmp3

Refaktoring

Split Temporary Variable http://refactoring.com

Co sprawia brak umiejętności n a z y w a n i a?

Zwiększamy efektywność zespołów projektowych 39

Page 40: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

www.bnsit.pl

Biznes ARCH Klasy Metody Zmienne

Smell Long Method Zmienna quasi-globalna

Przykład tmp1, tmp2, tmp3

Refaktoring

Split Temporary Variable http://refactoring.com

Co sprawia brak umiejętności n a z y w a n i a?

Zwiększamy efektywność zespołów projektowych 40

Page 41: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

www.bnsit.pl

Biznes ARCH Klasy Metody Zmienne

Smell Long Method Zmienna quasi-globalna

Przykład process, performOperation

tmp1, tmp2, tmp3

Refaktoring

Split Temporary Variable http://refactoring.com

Co sprawia brak umiejętności n a z y w a n i a?

Zwiększamy efektywność zespołów projektowych 41

Page 42: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

www.bnsit.pl

Biznes ARCH Klasy Metody Zmienne

Smell Long Method Zmienna quasi-globalna

Przykład process, performOperation

tmp1, tmp2, tmp3

Refaktoring

Extract Method http://refactoring.com

Split Temporary Variable http://refactoring.com

Co sprawia brak umiejętności n a z y w a n i a?

Zwiększamy efektywność zespołów projektowych 42

Page 43: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

www.bnsit.pl

Biznes ARCH Klasy Metody Zmienne

Smell God Class Long Method Zmienna quasi-globalna

Przykład process, performOperation

tmp1, tmp2, tmp3

Refaktoring

Extract Method http://refactoring.com

Split Temporary Variable http://refactoring.com

Co sprawia brak umiejętności n a z y w a n i a?

Zwiększamy efektywność zespołów projektowych 43

Page 44: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

www.bnsit.pl

Biznes ARCH Klasy Metody Zmienne

Smell God Class Long Method Zmienna quasi-globalna

Przykład Location Manager, NetworkItem

process, performOperation

tmp1, tmp2, tmp3

Refaktoring

Extract Method http://refactoring.com

Split Temporary Variable http://refactoring.com

Co sprawia brak umiejętności n a z y w a n i a?

Zwiększamy efektywność zespołów projektowych 44

Page 45: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

www.bnsit.pl

Biznes ARCH Klasy Metody Zmienne

Smell God Class Long Method Zmienna quasi-globalna

Przykład Location Manager, NetworkItem

process, performOperation

tmp1, tmp2, tmp3

Refaktoring

Extract Class http://refactoring.com

Extract Method http://refactoring.com

Split Temporary Variable http://refactoring.com

Co sprawia brak umiejętności n a z y w a n i a?

Zwiększamy efektywność zespołów projektowych 45

Page 46: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

www.bnsit.pl

Biznes ARCH Klasy Metody Zmienne

Smell Big Ball of Mud http://laputan.org/mud/

God Class Long Method Zmienna quasi-globalna

Przykład Location Manager, NetworkItem

process, performOperation

tmp1, tmp2, tmp3

Refaktoring

Extract Class http://refactoring.com

Extract Method http://refactoring.com

Split Temporary Variable http://refactoring.com

Co sprawia brak umiejętności n a z y w a n i a?

Zwiększamy efektywność zespołów projektowych 46

Page 47: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

www.bnsit.pl

Biznes ARCH Klasy Metody Zmienne

Smell Big Ball of Mud http://laputan.org/mud/

God Class Long Method Zmienna quasi-globalna

Przykład Genreic Plugin Framework, Multi-Device Platform

Location Manager, NetworkItem

process, performOperation

tmp1, tmp2, tmp3

Refaktoring

Extract Class http://refactoring.com

Extract Method http://refactoring.com

Split Temporary Variable http://refactoring.com

Co sprawia brak umiejętności n a z y w a n i a?

Zwiększamy efektywność zespołów projektowych 47

Page 48: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

www.bnsit.pl

Biznes ARCH Klasy Metody Zmienne

Smell Big Ball of Mud http://laputan.org/mud/

God Class Long Method Zmienna quasi-globalna

Przykład Genreic Plugin Framework, Multi-Device Platform

Location Manager, NetworkItem

process, performOperation

tmp1, tmp2, tmp3

Refaktoring

Wprowadź wzorzec architektoniczny

Extract Class http://refactoring.com

Extract Method http://refactoring.com

Split Temporary Variable http://refactoring.com

Co sprawia brak umiejętności n a z y w a n i a?

Zwiększamy efektywność zespołów projektowych 48

Page 49: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

www.bnsit.pl

Biznes ARCH Klasy Metody Zmienne

Smell Sexy Vision Big Ball of Mud http://laputan.org/mud/

God Class Long Method Zmienna quasi-globalna

Przykład Genreic Plugin Framework, Multi-Device Platform

Location Manager, NetworkItem

process, performOperation

tmp1, tmp2, tmp3

Refaktoring

Wprowadź wzorzec architektoniczny

Extract Class http://refactoring.com

Extract Method http://refactoring.com

Split Temporary Variable http://refactoring.com

Co sprawia brak umiejętności n a z y w a n i a?

Zwiększamy efektywność zespołów projektowych 49

Page 50: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

www.bnsit.pl

Biznes ARCH Klasy Metody Zmienne

Smell Sexy Vision Big Ball of Mud http://laputan.org/mud/

God Class Long Method Zmienna quasi-globalna

Przykład ZSI, BI, DW Genreic Plugin Framework, Multi-Device Platform

Location Manager, NetworkItem

process, performOperation

tmp1, tmp2, tmp3

Refaktoring

Wprowadź wzorzec architektoniczny

Extract Class http://refactoring.com

Extract Method http://refactoring.com

Split Temporary Variable http://refactoring.com

Co sprawia brak umiejętności n a z y w a n i a?

Zwiększamy efektywność zespołów projektowych 50

Page 51: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

www.bnsit.pl

Biznes ARCH Klasy Metody Zmienne

Smell Sexy Vision Big Ball of Mud http://laputan.org/mud/

God Class Long Method Zmienna quasi-globalna

Przykład ZSI, BI, DW Genreic Plugin Framework, Multi-Device Platform

Location Manager, NetworkItem

process, performOperation

tmp1, tmp2, tmp3

Refaktoring

Zdefiniuj, podziel, zmień proces

Wprowadź wzorzec architektoniczny

Extract Class http://refactoring.com

Extract Method http://refactoring.com

Split Temporary Variable http://refactoring.com

Co sprawia brak umiejętności n a z y w a n i a?

Zwiększamy efektywność zespołów projektowych 51

Page 52: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

www.bnsit.pl

Biznes ARCH Klasy Metody Zmienne

Smell Sexy Vision Big Ball of Mud http://laputan.org/mud/

God Class Long Method Zmienna quasi-globalna

Przykład ZSI, BI, DW Genreic Plugin Framework, Multi-Device Platform

Location Manager, NetworkItem

process, performOperation

tmp1, tmp2, tmp3

Refaktoring

Zdefiniuj, podziel, zmień proces

Wprowadź wzorzec architektoniczny

Extract Class http://refactoring.com

Extract Method http://refactoring.com

Split Temporary Variable http://refactoring.com

Skąd wieje wiatr?

Zwiększamy efektywność zespołów projektowych 52

Page 53: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

www.bnsit.pl

process( name, surname,

age, street, city,

postalCode, area);

//...

Biznes ARCH Klasy Metody Zmienne

Skąd wieje wiatr?

Zwiększamy efektywność zespołów projektowych 53

Page 54: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

www.bnsit.pl

Diagnoza i leczenie

Zwiększamy efektywność zespołów projektowych 54

Page 55: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

www.bnsit.pl

Abstrakcja, implementacja

Zwiększamy efektywność zespołów projektowych 55

Page 56: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

www.bnsit.pl

Abstrakcja, implementacja

Zwiększamy efektywność zespołów projektowych 56

Page 57: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

www.bnsit.pl

Abstrakcja, implementacja: Kiedy? co?

Zwiększamy efektywność zespołów projektowych 57

Page 58: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

www.bnsit.pl

Abstrakcja, implementacja: Kiedy? co?

Zwiększamy efektywność zespołów projektowych 58

Page 59: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

www.bnsit.pl

Abstrakcja, implementacja: Kiedy? co?

Zwiększamy efektywność zespołów projektowych 59

Page 60: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

www.bnsit.pl

Abstrakcja, implementacja w procesie – NOR

Zwiększamy efektywność zespołów projektowych 60

Page 61: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

www.bnsit.pl

Skąd się biorą dobre nazwy

Zwiększamy efektywność zespołów projektowych 61

Biznes ARCH Klasy Metody Zmienne

List<Employee> employees...

//...

EmployeeFile employeeFile = findEmployeeFile( personalID );

employeeFile.getEmergencyContactInformation();

Page 62: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

www.bnsit.pl Zwiększamy efektywność zespołów projektowych 62

Kadry

# Kartoteka pracowników

# Akta osobowe pracownika

# Umowa o pracę

# Kwestionariusz osobowy

# Świadectwo pracy

# …

Human Resources

# Employee Personell File

# Medical File

# Payroll File

# I-9 Forms File

# …

Brakło pojęć w domenie!

Page 63: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

www.bnsit.pl

Pomieszanie z poplątaniem

Zwiększamy efektywność zespołów projektowych 63

http://pl.wikipedia.org/wiki/Flagi_państw_świata

Pracownik employee =

findPracownik( employeeId );

int wiek = employee.getAge();

//Vafanapoli! Non capisco!

Lavoratore lavoratore =

trovareLavoratore( id );

int età = lavoratore.età();

//Bravo! Bravissimo!

Page 64: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

www.bnsit.pl

# Tylko język, w którym myśli klient, pozwala swobodne eksplorować domenę klienta i nadawać nazwy pojęciom

# Java pozwala, ale co z get* set*

# Język programowania nie powinien narzucać konwencji kodowania bazującej na jakimkolwiek języku naturalnym

Programowanie w języku klienta?

Zwiększamy efektywność zespołów projektowych 64

Page 65: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

www.bnsit.pl

Podsumowując

Zwiększamy efektywność zespołów projektowych 65

Page 66: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

www.bnsit.pl

S.O.L.I.D

Podstawowe zasady

Zwiększamy efektywność zespołów projektowych 66

Page 67: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów

Dziękuję za Twój czas!

Zwiększamy efektywność zespołów

projektowych

67