Autor: Robert "BoBsoN" Partyka
Rzecz o sprawach gryzących sumienie niejednego programisty. Zaniedbaniach, braku przewidywania i lenistwie, błędach projektowych oraz niebezpiecznych nawykach, które mogą utrudniać pracę, zaprowadzić projekt w ślepą uliczkę a nawet doprowadzić do poważnych problemów (np. z GIODO). Także o tym, że maniakalne wyznawanie OOP to ciemna strona mocy :)
2. SALIGIA, czyli rzecz o grzechach głównych programistów
Trochę teorii
...czyli:
pycha
chciwość
nieczystość
zazdrość
obżarstwo
gniew
lenistwo lub znużenie duchowe
Robert Partyka - robert.p@fwioo.pl
3. SALIGIA, czyli rzecz o grzechach głównych programistów
grzechy
dotyczące
wiedzy
Robert Partyka - robert.p@fwioo.pl
4. SALIGIA, czyli rzecz o grzechach głównych programistów
grzechy dotyczące wiedzy:
- nieznajomość języka programowania
- wymyślanie koła od nowa
- nieznajomość prawa (nie czyni niewinnym)
* prawo autorskie
* prawo dotyczące ochrony baz danych
* prawo dotyczące usług internetowych
* prawo dotyczące ochrony
danych osobowych
Robert Partyka - robert.p@fwioo.pl
5. SALIGIA, czyli rzecz o grzechach głównych programistów
grzechy dotyczące wiedzy
- nieznajomość języka programowania
- wymyślanie koła od nowa
- nieznajomość prawa (nie czyni niewinnym)
* prawo autorskie
* prawo dotyczące ochrony baz danych
* prawo dotyczące usług internetowych
* prawo dotyczące ochrony
danych osobowych
Robert Partyka - robert.p@fwioo.pl
6. SALIGIA, czyli rzecz o grzechach głównych programistów
grzechy dotyczące wiedzy
- nieznajomość języka programowania
- wymyślanie koła od nowa
- nieznajomość prawa (nie czyni niewinnym)
* prawo autorskie
* prawo dotyczące ochrony baz danych
* prawo dotyczące usług internetowych
* prawo dotyczące ochrony
danych osobowych
Robert Partyka - robert.p@fwioo.pl
7. SALIGIA, czyli rzecz o grzechach głównych programistów
grzechy
dotyczące
stylu
Robert Partyka - robert.p@fwioo.pl
8. SALIGIA, czyli rzecz o grzechach głównych programistów
grzechy dotyczące stylu:
- brak komentarzy
- brak czytelnych nazw zmiennych
- brak prawidłowego formatowania
- brak dokumentacji
function gfb($a){ $a *= 1;
if ($a!=floor($a)){ $b = floor($a*100); $b = $b/100;
if (Abs($a-$b)>=0.005) $b = $b+(( $b<0 )?-0.01:0.01);
return $b;
}else{ return $a; } };
Robert Partyka - robert.p@fwioo.pl
9. SALIGIA, czyli rzecz o grzechach głównych programistów
grzechy dotyczące stylu:
- brak komentarzy
- brak czytelnych nazw zmiennych
- brak prawidłowego formatowania
- brak dokumentacji
function gfb($a){ $a *= 1;
if ($a!=floor($a)){ $b = floor($a*100); $b = $b/100;
if (Abs($a-$b)>=0.005) $b = $b+(( $b<0 )?-0.01:0.01);
return $b;
}else{ return $a; } };
Robert Partyka - robert.p@fwioo.pl
10. SALIGIA, czyli rzecz o grzechach głównych programistów
grzechy dotyczące stylu:
- brak komentarzy
- brak czytelnych nazw zmiennych
- brak prawidłowego formatowania
- brak dokumentacji
function gfb($a){ $a *= 1;
if ($a!=floor($a)){ $b = floor($a*100); $b = $b/100;
if (Abs($a-$b)>=0.005) $b = $b+(( $b<0 )?-0.01:0.01);
return $b;
}else{ return $a; } };
Robert Partyka - robert.p@fwioo.pl
11. SALIGIA, czyli rzecz o grzechach głównych programistów
grzechy dotyczące stylu:
- brak komentarzy
- brak czytelnych nazw zmiennych
- brak prawidłowego formatowania
- brak dokumentacji
function gfb($a){ $a *= 1;
if ($a!=floor($a)){ $b = floor($a*100); $b = $b/100;
if (Abs($a-$b)>=0.005) $b = $b+(( $b<0 )?-0.01:0.01);
return $b;
}else{ return $a; } };
Robert Partyka - robert.p@fwioo.pl
12. SALIGIA, czyli rzecz o grzechach głównych programistów
grzechy dotyczące stylu:
- brak komentarzy
- brak czytelnych nazw zmiennych
- brak prawidłowego formatowania
- brak dokumentacji
function gfb($a){ $a *= 1;
if ($a!=floor($a)){ $b = floor($a*100); $b = $b/100;
if (Abs($a-$b)>=0.005) $b = $b+(( $b<0 )?-0.01:0.01);
return $b;
}else{ return $a; } };
Robert Partyka - robert.p@fwioo.pl
13. SALIGIA, czyli rzecz o grzechach głównych programistów
grzechy
dotyczące
kodu
Robert Partyka - robert.p@fwioo.pl
14. SALIGIA, czyli rzecz o grzechach głównych programistów
grzechy dotyczące kodu:
- czkawka... czyli powtarzanie wielokrotnie
tego samego kodu
- brak optymalizacji skryptu
- gdy każdy if nie oznacza również else
- brak lub niewłaściwa obsługa błędów
- nadużywanie define()
- eval() jest evil!
- niebezpieczne nawyki:
register globals, magic quotas...
- wiara w konfigurację domyślną
Robert Partyka - robert.p@fwioo.pl
15. SALIGIA, czyli rzecz o grzechach głównych programistów
grzechy dotyczące kodu:
- czkawka... czyli powtarzanie wielokrotnie
tego samego kodu
- brak optymalizacji skryptu
- gdy każdy if nie oznacza również else
- brak lub niewłaściwa obsługa błędów
- nadużywanie define()
- eval() jest evil!
- niebezpieczne nawyki:
register globals, magic quotas...
- wiara w konfigurację domyślną
Robert Partyka - robert.p@fwioo.pl
16. SALIGIA, czyli rzecz o grzechach głównych programistów
grzechy dotyczące kodu:
- czkawka... czyli powtarzanie wielokrotnie
tego samego kodu
- brak optymalizacji skryptu
- gdy każdy if nie oznacza również else
- brak lub niewłaściwa obsługa błędów
- nadużywanie define()
- eval() jest evil!
- niebezpieczne nawyki:
register globals, magic quotas...
- wiara w konfigurację domyślną
Robert Partyka - robert.p@fwioo.pl
17. SALIGIA, czyli rzecz o grzechach głównych programistów
grzechy dotyczące kodu:
- czkawka... czyli powtarzanie wielokrotnie
tego samego kodu
- brak optymalizacji skryptu
- gdy każdy if nie oznacza również else
- brak lub niewłaściwa obsługa błędów
- nadużywanie define()
- eval() jest evil!
- niebezpieczne nawyki:
register globals, magic quotas...
- wiara w konfigurację domyślną
Robert Partyka - robert.p@fwioo.pl
18. SALIGIA, czyli rzecz o grzechach głównych programistów
grzechy dotyczące kodu:
- czkawka... czyli powtarzanie wielokrotnie
tego samego kodu
- brak optymalizacji skryptu
- gdy każdy if nie oznacza również else
- brak lub niewłaściwa obsługa błędów
- nadużywanie define()
- eval() jest evil!
- niebezpieczne nawyki:
register globals, magic quotas...
- wiara w konfigurację domyślną
Robert Partyka - robert.p@fwioo.pl
19. SALIGIA, czyli rzecz o grzechach głównych programistów
grzechy dotyczące kodu:
- czkawka... czyli powtarzanie wielokrotnie
tego samego kodu
- brak optymalizacji skryptu
- gdy każdy if nie oznacza również else
- brak lub niewłaściwa obsługa błędów
- nadużywanie define()
- eval() jest evil!
- niebezpieczne nawyki:
register globals, magic quotas...
- wiara w konfigurację domyślną
Robert Partyka - robert.p@fwioo.pl
20. SALIGIA, czyli rzecz o grzechach głównych programistów
grzechy dotyczące kodu:
- czkawka... czyli powtarzanie wielokrotnie
tego samego kodu
- brak optymalizacji skryptu
- gdy każdy if nie oznacza również else
- brak lub niewłaściwa obsługa błędów
- nadużywanie define()
- eval() jest evil!
- niebezpieczne nawyki:
register globals, magic quotas...
- wiara w konfigurację domyślną
Robert Partyka - robert.p@fwioo.pl
21. SALIGIA, czyli rzecz o grzechach głównych programistów
grzechy dotyczące kodu:
- czkawka... czyli powtarzanie wielokrotnie
tego samego kodu
- brak optymalizacji skryptu
- gdy każdy if nie oznacza również else
- brak lub niewłaściwa obsługa błędów
- nadużywanie define()
- eval() jest evil!
- niebezpieczne nawyki:
register globals, magic quotas...
- wiara w konfigurację domyślną
Robert Partyka - robert.p@fwioo.pl
22. SALIGIA, czyli rzecz o grzechach głównych programistów
grzechy
dotyczące
zasobów
Robert Partyka - robert.p@fwioo.pl
23. SALIGIA, czyli rzecz o grzechach głównych programistów
grzechy dotyczące zasobów:
- brak szanowania pamięci - magia unset()
- gdy 20*1 != 1*20 - wielokrotne zapytania SQL
- rekurencja nie zawsze jest dobra
Robert Partyka - robert.p@fwioo.pl
24. SALIGIA, czyli rzecz o grzechach głównych programistów
grzechy dotyczące zasobów:
- brak szanowania pamięci - magia unset()
- gdy 20*1 != 1*20 - wielokrotne zapytania SQL
- rekurencja nie zawsze jest dobra
Robert Partyka - robert.p@fwioo.pl
25. SALIGIA, czyli rzecz o grzechach głównych programistów
grzechy dotyczące zasobów:
- brak szanowania pamięci - magia unset()
- gdy 20*1 != 1*20 - wielokrotne zapytania SQL
- rekurencja nie zawsze jest dobra
Robert Partyka - robert.p@fwioo.pl
26. SALIGIA, czyli rzecz o grzechach głównych programistów
grzechy
dotyczące
bezpieczeństwa
Robert Partyka - robert.p@fwioo.pl
27. SALIGIA, czyli rzecz o grzechach głównych programistów
grzechy dotyczące bezpieczeństwa
- brak prawidłowego parsowania
zmiennych wejściowych
- przekazywanie zmiennych bezpośrednio do
SQL lub ścieżek dostępu do plików
- niedostateczne sprawdzanie uprawnień dostępu
- proste ID dostępu do danych
- magiczne adresy url i ukryte pola formularzy
- upload plików, bez testu zawartości
- używanie SSL bez sprawdzania
poprawności certyfikatów
- ufanie rozwiązaniom nazw DNS
Robert Partyka - robert.p@fwioo.pl
28. SALIGIA, czyli rzecz o grzechach głównych programistów
grzechy dotyczące bezpieczeństwa
- brak prawidłowego parsowania
zmiennych wejściowych
- przekazywanie zmiennych bezpośrednio do
SQL lub ścieżek dostępu do plików
- niedostateczne sprawdzanie uprawnień dostępu
- proste ID dostępu do danych
- magiczne adresy url i ukryte pola formularzy
- upload plików, bez testu zawartości
- używanie SSL bez sprawdzania
poprawności certyfikatów
- ufanie rozwiązaniom nazw DNS
Robert Partyka - robert.p@fwioo.pl
29. SALIGIA, czyli rzecz o grzechach głównych programistów
grzechy dotyczące bezpieczeństwa
- brak prawidłowego parsowania
zmiennych wejściowych
- przekazywanie zmiennych bezpośrednio do
SQL lub ścieżek dostępu do plików
- niedostateczne sprawdzanie uprawnień dostępu
- proste ID dostępu do danych
- magiczne adresy url i ukryte pola formularzy
- upload plików, bez testu zawartości
- używanie SSL bez sprawdzania
poprawności certyfikatów
- ufanie rozwiązaniom nazw DNS
Robert Partyka - robert.p@fwioo.pl
30. SALIGIA, czyli rzecz o grzechach głównych programistów
grzechy dotyczące bezpieczeństwa
- brak prawidłowego parsowania
zmiennych wejściowych
- przekazywanie zmiennych bezpośrednio do
SQL lub ścieżek dostępu do plików
- niedostateczne sprawdzanie uprawnień dostępu
- proste ID dostępu do danych
- magiczne adresy url i ukryte pola formularzy
- upload plików, bez testu zawartości
- używanie SSL bez sprawdzania
poprawności certyfikatów
- ufanie rozwiązaniom nazw DNS
Robert Partyka - robert.p@fwioo.pl
31. SALIGIA, czyli rzecz o grzechach głównych programistów
grzechy dotyczące bezpieczeństwa
- brak prawidłowego parsowania
zmiennych wejściowych
- przekazywanie zmiennych bezpośrednio do
SQL lub ścieżek dostępu do plików
- niedostateczne sprawdzanie uprawnień dostępu
- proste ID dostępu do danych
- magiczne adresy url i ukryte pola formularzy
- upload plików, bez testu zawartości
- używanie SSL bez sprawdzania
poprawności certyfikatów
- ufanie rozwiązaniom nazw DNS
Robert Partyka - robert.p@fwioo.pl
32. SALIGIA, czyli rzecz o grzechach głównych programistów
grzechy dotyczące bezpieczeństwa
- brak prawidłowego parsowania
zmiennych wejściowych
- przekazywanie zmiennych bezpośrednio do
SQL lub ścieżek dostępu do plików
- niedostateczne sprawdzanie uprawnień dostępu
- proste ID dostępu do danych
- magiczne adresy url i ukryte pola formularzy
- upload plików, bez testu zawartości
- używanie SSL bez sprawdzania
poprawności certyfikatów
- ufanie rozwiązaniom nazw DNS
Robert Partyka - robert.p@fwioo.pl
33. SALIGIA, czyli rzecz o grzechach głównych programistów
grzechy dotyczące bezpieczeństwa
- brak prawidłowego parsowania
zmiennych wejściowych
- przekazywanie zmiennych bezpośrednio do
SQL lub ścieżek dostępu do plików
- niedostateczne sprawdzanie uprawnień dostępu
- proste ID dostępu do danych
- magiczne adresy url i ukryte pola formularzy
- upload plików, bez testu zawartości
- używanie SSL bez sprawdzania
poprawności certyfikatów
- ufanie rozwiązaniom nazw DNS
Robert Partyka - robert.p@fwioo.pl
34. SALIGIA, czyli rzecz o grzechach głównych programistów
grzechy dotyczące bezpieczeństwa
- brak prawidłowego parsowania
zmiennych wejściowych
- przekazywanie zmiennych bezpośrednio do
SQL lub ścieżek dostępu do plików
- niedostateczne sprawdzanie uprawnień dostępu
- proste ID dostępu do danych
- magiczne adresy url i ukryte pola formularzy
- upload plików, bez testu zawartości
- używanie SSL bez sprawdzania
poprawności certyfikatów
- ufanie rozwiązaniom nazw DNS
Robert Partyka - robert.p@fwioo.pl
35. SALIGIA, czyli rzecz o grzechach głównych programistów
grzechy
dotyczące
struktury
kodu
Robert Partyka - robert.p@fwioo.pl
36. SALIGIA, czyli rzecz o grzechach głównych programistów
grzechy dotyczące struktury kodu:
- mieszanie kodu PHP z HTML
- bałagan w plikach i katalogach
- setki require() / include()
Robert Partyka - robert.p@fwioo.pl
37. SALIGIA, czyli rzecz o grzechach głównych programistów
grzechy dotyczące struktury kodu:
- mieszanie kodu PHP z HTML
- bałagan w plikach i katalogach
- setki require() / include()
Robert Partyka - robert.p@fwioo.pl
38. SALIGIA, czyli rzecz o grzechach głównych programistów
grzechy dotyczące struktury kodu:
- mieszanie kodu PHP z HTML
- bałagan w plikach i katalogach
- setki require() / include()
Robert Partyka - robert.p@fwioo.pl
39. SALIGIA, czyli rzecz o grzechach głównych programistów
czynnik
ludzki
Robert Partyka - robert.p@fwioo.pl
40. SALIGIA, czyli rzecz o grzechach głównych programistów
Czynnik ludzki:
- straszenie użytkownika przerośniętym GUI
- zbytnie zaufanie wobec użytkownika szkodzi
- nie ufaj kodowi z zewnątrz bezwarunkowo
Robert Partyka - robert.p@fwioo.pl
41. SALIGIA, czyli rzecz o grzechach głównych programistów
Czynnik ludzki:
- straszenie użytkownika przerośniętym GUI
- zbytnie zaufanie wobec użytkownika szkodzi
- nie ufaj kodowi z zewnątrz bezwarunkowo
Robert Partyka - robert.p@fwioo.pl
42. SALIGIA, czyli rzecz o grzechach głównych programistów
Czynnik ludzki:
- straszenie użytkownika przerośniętym GUI
- zbytnie zaufanie wobec użytkownika szkodzi
- nie ufaj kodowi z zewnątrz bezwarunkowo
Robert Partyka - robert.p@fwioo.pl
43. SALIGIA, czyli rzecz o grzechach głównych programistów
oraz...
Robert Partyka - robert.p@fwioo.pl
44. SALIGIA, czyli rzecz o grzechach głównych programistów
Object-Oriented Programming
kusi ciemną stroną mocy
Robert Partyka - robert.p@fwioo.pl
45. SALIGIA, czyli rzecz o grzechach głównych programistów
Object-Oriented Programming
kusi ciemną stroną mocy
foreach($configLines as $line){
list($key,$value)=explode("=",$line,2);
$this->addConfigValue(new myConfigObject($key,$value));
}
Robert Partyka - robert.p@fwioo.pl
46. SALIGIA, czyli rzecz o grzechach głównych programistów
Dziękuję za uwagę...
Idźcie i nie grzeszcie więcej :)
Robert Partyka - robert.p@fwioo.pl