[4 developers] jak zniszczyć swój kod - podstawy lingwistyki dla programistów
TRANSCRIPT
![Page 1: [4 developers] Jak zniszczyć swój kod - podstawy lingwistyki dla programistów](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/1.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/2.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/3.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/4.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/5.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/6.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/7.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/8.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/9.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/10.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/11.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/12.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/13.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/14.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/15.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/16.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/17.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/18.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/19.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/20.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/21.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/22.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/23.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/24.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/25.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/26.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/27.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/28.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/29.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/30.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/31.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/32.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/33.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/34.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/35.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/36.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/37.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/38.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/39.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/40.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/41.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/42.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/43.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/44.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/45.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/46.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/47.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/48.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/49.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/50.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/51.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/52.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/53.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/54.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/55.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/56.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/57.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/58.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/59.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/60.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/61.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/62.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/63.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/64.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/65.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/66.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022052906/558c5eecd8b42a080c8b46a8/html5/thumbnails/67.jpg)
Dziękuję za Twój czas!
Zwiększamy efektywność zespołów
projektowych
67