JDD2014: Co Twój kod mówi do Ciebie - Mariusz Sieraczkiewicz

39
1

description

Czasami wystarczy spojrzenie okiem, żeby zobaczyć, że coś jest nie tak. Nawet takie proste rzeczy w kodzie jak nazwy, sygnatury metod, składowe klasy, klasy, pakiety do nas krzyczą: to nie tak powinno być. Jednak dla dużej części programistów jest to język nieznany. Będziemy się uczyć tego, jak rozpoznawać, co kod nam podpowiada i jak zacząć korzystać z tych podpowiedzi. Jak na bazie prostych przesłanek w kodzie wywnioskować, co zrobić z kodem. Pokażemy wiele technik, których nie znajdziesz w książkach albo takich, które giną w gąszczu mało istotnych zagadnień programowania. Technik których matką jest doświadczenie i praca z dziesiątkami systemów produkcyjnych.

Transcript of JDD2014: Co Twój kod mówi do Ciebie - Mariusz Sieraczkiewicz

Page 1: JDD2014: Co Twój kod mówi do Ciebie - Mariusz Sieraczkiewicz

1

Page 2: JDD2014: Co Twój kod mówi do Ciebie - Mariusz Sieraczkiewicz

Między młotem a kowadłem

Pragmatym a ideologia

2

Page 3: JDD2014: Co Twój kod mówi do Ciebie - Mariusz Sieraczkiewicz

3

Co twój mózg na programowanie?

Chunks

Short-Term memory

Long-Term memory

Law of proximity

Page 4: JDD2014: Co Twój kod mówi do Ciebie - Mariusz Sieraczkiewicz

4

Long-Term memory

Discrimination net

Page 5: JDD2014: Co Twój kod mówi do Ciebie - Mariusz Sieraczkiewicz

5

Uproszczony model przetwarzania informacji

Page 6: JDD2014: Co Twój kod mówi do Ciebie - Mariusz Sieraczkiewicz

6

Cognitive load

Reduntant information Split attention effect

Expert vs. Novice

Page 7: JDD2014: Co Twój kod mówi do Ciebie - Mariusz Sieraczkiewicz

7

Analogie – naturalny pociąg do wzorca Copy-Paste

ify

switch

polimorfizm

wzorce nazw metod (np. find*)

wzorce projektowe

Page 8: JDD2014: Co Twój kod mówi do Ciebie - Mariusz Sieraczkiewicz

Reguły inżynierii oprogramowania odpowiadają bardziej temu jak

działa mózg niż regułom matematycznym

8

Page 9: JDD2014: Co Twój kod mówi do Ciebie - Mariusz Sieraczkiewicz

1. Operatory zamień na słowa 2. Klamerkę "{" po IF zamień na "then„ 3. Rozbij wieloczłonowe nazwy na pojedyncze

wyrazy 4. Z wyrażeń przypisania bierz pod uwagę tylko

prawą stronę, lewą ignoruj 5. Każdy wiersz kodu traktuj jako osobne

zdanie zakończone kropką. 6. Tak powstały tekst wklej do syntezatora

mowy 7. Jeśli to, co słyszysz (bez patrzenia na

kod), jest w pełni zrozumiałe, to kod jest czytelny :)

Test Ivony

9

Page 10: JDD2014: Co Twój kod mówi do Ciebie - Mariusz Sieraczkiewicz

10

Page 11: JDD2014: Co Twój kod mówi do Ciebie - Mariusz Sieraczkiewicz

11

Page 12: JDD2014: Co Twój kod mówi do Ciebie - Mariusz Sieraczkiewicz

12

Page 13: JDD2014: Co Twój kod mówi do Ciebie - Mariusz Sieraczkiewicz

13

Page 14: JDD2014: Co Twój kod mówi do Ciebie - Mariusz Sieraczkiewicz

14

Page 15: JDD2014: Co Twój kod mówi do Ciebie - Mariusz Sieraczkiewicz

15

Page 16: JDD2014: Co Twój kod mówi do Ciebie - Mariusz Sieraczkiewicz

16

Page 17: JDD2014: Co Twój kod mówi do Ciebie - Mariusz Sieraczkiewicz

17

Page 18: JDD2014: Co Twój kod mówi do Ciebie - Mariusz Sieraczkiewicz

18

Page 19: JDD2014: Co Twój kod mówi do Ciebie - Mariusz Sieraczkiewicz

19

Page 20: JDD2014: Co Twój kod mówi do Ciebie - Mariusz Sieraczkiewicz

20

Page 21: JDD2014: Co Twój kod mówi do Ciebie - Mariusz Sieraczkiewicz

21

Page 22: JDD2014: Co Twój kod mówi do Ciebie - Mariusz Sieraczkiewicz

22

Page 23: JDD2014: Co Twój kod mówi do Ciebie - Mariusz Sieraczkiewicz

23

Page 24: JDD2014: Co Twój kod mówi do Ciebie - Mariusz Sieraczkiewicz

24

Page 25: JDD2014: Co Twój kod mówi do Ciebie - Mariusz Sieraczkiewicz

25

Page 26: JDD2014: Co Twój kod mówi do Ciebie - Mariusz Sieraczkiewicz

26

Page 27: JDD2014: Co Twój kod mówi do Ciebie - Mariusz Sieraczkiewicz

27

Charakterystyka dobrej nazwy metody

Page 28: JDD2014: Co Twój kod mówi do Ciebie - Mariusz Sieraczkiewicz

class Node

28

Nazwy a odpowiedzialność

Page 29: JDD2014: Co Twój kod mówi do Ciebie - Mariusz Sieraczkiewicz

class Node

29

Nazwy a odpowiedzialność

Page 30: JDD2014: Co Twój kod mówi do Ciebie - Mariusz Sieraczkiewicz

30

Page 31: JDD2014: Co Twój kod mówi do Ciebie - Mariusz Sieraczkiewicz

Długie nazwy mogą być konsekwencją nieużywania kontekstu lub zbyt dużych klas/metod

Co tu jest nie tak?

31

Page 32: JDD2014: Co Twój kod mówi do Ciebie - Mariusz Sieraczkiewicz

32

Page 33: JDD2014: Co Twój kod mówi do Ciebie - Mariusz Sieraczkiewicz

FLUENT NAMING AND READING ENABLERS

33

Page 34: JDD2014: Co Twój kod mówi do Ciebie - Mariusz Sieraczkiewicz

34

Page 35: JDD2014: Co Twój kod mówi do Ciebie - Mariusz Sieraczkiewicz

• Płynne czytanie

– controlSumFor(pesel)

– lastDigitOf(pesel)

– shouldBeDoneWith(lowProbability)

Fluent naming

35

Page 36: JDD2014: Co Twój kod mówi do Ciebie - Mariusz Sieraczkiewicz

36

Reading enablers

Page 37: JDD2014: Co Twój kod mówi do Ciebie - Mariusz Sieraczkiewicz

37

Bibiloteki Reading enablers

Page 38: JDD2014: Co Twój kod mówi do Ciebie - Mariusz Sieraczkiewicz

• Wykorzystuj mechanizmy poznawcze swojego mózgu

• Zadawaj sobie pytanie: Co na to by powiedziała Ivona? ;-)

• Wprowadzaj Domain/Value Object • Spłaszczaj warunki • Komponuj metody • Wykorzystuj kontekst • A może Null Object? • Lokalnie używaj fluent naming

38

Podsumowanie

Page 39: JDD2014: Co Twój kod mówi do Ciebie - Mariusz Sieraczkiewicz

? 39