Grzechy główne programistów (nie tylko PHP)

46
SALIGIA* *(superbia, avaritia, luxuria, invidia, gula, ira, acedia) ...czyli rzecz o grzechach głównych programistów Robert Partyka

description

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 :)

Transcript of Grzechy główne programistów (nie tylko PHP)

Page 1: Grzechy główne programistów (nie tylko PHP)

SALIGIA**(superbia, avaritia, luxuria, invidia, gula, ira, acedia)

...czylirzecz o grzechach głównych programistów

Robert Partyka

Page 2: Grzechy główne programistów (nie tylko PHP)

SALIGIA, czyli rzecz o grzechach głównych programistów

Robert Partyka - [email protected]

Trochę teorii...czyli:pycha

chciwośćnieczystość

zazdrośćobżarstwo

gniewlenistwo lub znużenie duchowe

Page 3: Grzechy główne programistów (nie tylko PHP)

SALIGIA, czyli rzecz o grzechach głównych programistów

Robert Partyka - [email protected]

grzechydotyczące

wiedzy

Page 4: Grzechy główne programistów (nie tylko PHP)

SALIGIA, czyli rzecz o grzechach głównych programistów

Robert Partyka - [email protected]

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

Page 5: Grzechy główne programistów (nie tylko PHP)

SALIGIA, czyli rzecz o grzechach głównych programistów

Robert Partyka - [email protected]

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

Page 6: Grzechy główne programistów (nie tylko PHP)

SALIGIA, czyli rzecz o grzechach głównych programistów

Robert Partyka - [email protected]

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

Page 7: Grzechy główne programistów (nie tylko PHP)

SALIGIA, czyli rzecz o grzechach głównych programistów

Robert Partyka - [email protected]

grzechydotyczące

stylu

Page 8: Grzechy główne programistów (nie tylko PHP)

SALIGIA, czyli rzecz o grzechach głównych programistów

Robert Partyka - [email protected]

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; } };

Page 9: Grzechy główne programistów (nie tylko PHP)

SALIGIA, czyli rzecz o grzechach głównych programistów

Robert Partyka - [email protected]

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; } };

Page 10: Grzechy główne programistów (nie tylko PHP)

SALIGIA, czyli rzecz o grzechach głównych programistów

Robert Partyka - [email protected]

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; } };

Page 11: Grzechy główne programistów (nie tylko PHP)

SALIGIA, czyli rzecz o grzechach głównych programistów

Robert Partyka - [email protected]

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; } };

Page 12: Grzechy główne programistów (nie tylko PHP)

SALIGIA, czyli rzecz o grzechach głównych programistów

Robert Partyka - [email protected]

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; } };

Page 13: Grzechy główne programistów (nie tylko PHP)

SALIGIA, czyli rzecz o grzechach głównych programistów

Robert Partyka - [email protected]

grzechydotyczące

kodu

Page 14: Grzechy główne programistów (nie tylko PHP)

SALIGIA, czyli rzecz o grzechach głównych programistów

Robert Partyka - [email protected]

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ą

Page 15: Grzechy główne programistów (nie tylko PHP)

SALIGIA, czyli rzecz o grzechach głównych programistów

Robert Partyka - [email protected]

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ą

Page 16: Grzechy główne programistów (nie tylko PHP)

SALIGIA, czyli rzecz o grzechach głównych programistów

Robert Partyka - [email protected]

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ą

Page 17: Grzechy główne programistów (nie tylko PHP)

SALIGIA, czyli rzecz o grzechach głównych programistów

Robert Partyka - [email protected]

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ą

Page 18: Grzechy główne programistów (nie tylko PHP)

SALIGIA, czyli rzecz o grzechach głównych programistów

Robert Partyka - [email protected]

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ą

Page 19: Grzechy główne programistów (nie tylko PHP)

SALIGIA, czyli rzecz o grzechach głównych programistów

Robert Partyka - [email protected]

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ą

Page 20: Grzechy główne programistów (nie tylko PHP)

SALIGIA, czyli rzecz o grzechach głównych programistów

Robert Partyka - [email protected]

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ą

Page 21: Grzechy główne programistów (nie tylko PHP)

SALIGIA, czyli rzecz o grzechach głównych programistów

Robert Partyka - [email protected]

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ą

Page 22: Grzechy główne programistów (nie tylko PHP)

SALIGIA, czyli rzecz o grzechach głównych programistów

Robert Partyka - [email protected]

grzechydotyczące zasobów

Page 23: Grzechy główne programistów (nie tylko PHP)

SALIGIA, czyli rzecz o grzechach głównych programistów

Robert Partyka - [email protected]

grzechy dotyczące zasobów:- brak szanowania pamięci - magia unset()- gdy 20*1 != 1*20 - wielokrotne zapytania SQL- rekurencja nie zawsze jest dobra

Page 24: Grzechy główne programistów (nie tylko PHP)

SALIGIA, czyli rzecz o grzechach głównych programistów

Robert Partyka - [email protected]

grzechy dotyczące zasobów:- brak szanowania pamięci - magia unset()- gdy 20*1 != 1*20 - wielokrotne zapytania SQL- rekurencja nie zawsze jest dobra

Page 25: Grzechy główne programistów (nie tylko PHP)

SALIGIA, czyli rzecz o grzechach głównych programistów

Robert Partyka - [email protected]

grzechy dotyczące zasobów:- brak szanowania pamięci - magia unset()- gdy 20*1 != 1*20 - wielokrotne zapytania SQL- rekurencja nie zawsze jest dobra

Page 26: Grzechy główne programistów (nie tylko PHP)

SALIGIA, czyli rzecz o grzechach głównych programistów

Robert Partyka - [email protected]

grzechydotyczące

bezpieczeństwa

Page 27: Grzechy główne programistów (nie tylko PHP)

SALIGIA, czyli rzecz o grzechach głównych programistów

Robert Partyka - [email protected]

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

Page 28: Grzechy główne programistów (nie tylko PHP)

SALIGIA, czyli rzecz o grzechach głównych programistów

Robert Partyka - [email protected]

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

Page 29: Grzechy główne programistów (nie tylko PHP)

SALIGIA, czyli rzecz o grzechach głównych programistów

Robert Partyka - [email protected]

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

Page 30: Grzechy główne programistów (nie tylko PHP)

SALIGIA, czyli rzecz o grzechach głównych programistów

Robert Partyka - [email protected]

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

Page 31: Grzechy główne programistów (nie tylko PHP)

SALIGIA, czyli rzecz o grzechach głównych programistów

Robert Partyka - [email protected]

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

Page 32: Grzechy główne programistów (nie tylko PHP)

SALIGIA, czyli rzecz o grzechach głównych programistów

Robert Partyka - [email protected]

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

Page 33: Grzechy główne programistów (nie tylko PHP)

SALIGIA, czyli rzecz o grzechach głównych programistów

Robert Partyka - [email protected]

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

Page 34: Grzechy główne programistów (nie tylko PHP)

SALIGIA, czyli rzecz o grzechach głównych programistów

Robert Partyka - [email protected]

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

Page 35: Grzechy główne programistów (nie tylko PHP)

SALIGIA, czyli rzecz o grzechach głównych programistów

Robert Partyka - [email protected]

grzechydotyczącestruktury

kodu

Page 36: Grzechy główne programistów (nie tylko PHP)

SALIGIA, czyli rzecz o grzechach głównych programistów

Robert Partyka - [email protected]

grzechy dotyczące struktury kodu:- mieszanie kodu PHP z HTML- bałagan w plikach i katalogach- setki require() / include()

Page 37: Grzechy główne programistów (nie tylko PHP)

SALIGIA, czyli rzecz o grzechach głównych programistów

Robert Partyka - [email protected]

grzechy dotyczące struktury kodu:- mieszanie kodu PHP z HTML- bałagan w plikach i katalogach- setki require() / include()

Page 38: Grzechy główne programistów (nie tylko PHP)

SALIGIA, czyli rzecz o grzechach głównych programistów

Robert Partyka - [email protected]

grzechy dotyczące struktury kodu:- mieszanie kodu PHP z HTML- bałagan w plikach i katalogach- setki require() / include()

Page 39: Grzechy główne programistów (nie tylko PHP)

SALIGIA, czyli rzecz o grzechach głównych programistów

Robert Partyka - [email protected]

czynnikludzki

Page 40: Grzechy główne programistów (nie tylko PHP)

SALIGIA, czyli rzecz o grzechach głównych programistów

Robert Partyka - [email protected]

Czynnik ludzki:- straszenie użytkownika przerośniętym GUI- zbytnie zaufanie wobec użytkownika szkodzi- nie ufaj kodowi z zewnątrz bezwarunkowo

Page 41: Grzechy główne programistów (nie tylko PHP)

SALIGIA, czyli rzecz o grzechach głównych programistów

Robert Partyka - [email protected]

Czynnik ludzki:- straszenie użytkownika przerośniętym GUI- zbytnie zaufanie wobec użytkownika szkodzi- nie ufaj kodowi z zewnątrz bezwarunkowo

Page 42: Grzechy główne programistów (nie tylko PHP)

SALIGIA, czyli rzecz o grzechach głównych programistów

Robert Partyka - [email protected]

Czynnik ludzki:- straszenie użytkownika przerośniętym GUI- zbytnie zaufanie wobec użytkownika szkodzi- nie ufaj kodowi z zewnątrz bezwarunkowo

Page 43: Grzechy główne programistów (nie tylko PHP)

SALIGIA, czyli rzecz o grzechach głównych programistów

Robert Partyka - [email protected]

oraz...

Page 44: Grzechy główne programistów (nie tylko PHP)

SALIGIA, czyli rzecz o grzechach głównych programistów

Robert Partyka - [email protected]

Object-Oriented Programmingkusi ciemną stroną mocy

Page 45: Grzechy główne programistów (nie tylko PHP)

SALIGIA, czyli rzecz o grzechach głównych programistów

Robert Partyka - [email protected]

Object-Oriented Programmingkusi ciemną stroną mocy

foreach($configLines as $line){list($key,$value)=explode("=",$line,2);$this->addConfigValue(new myConfigObject($key,$value));

}

Page 46: Grzechy główne programistów (nie tylko PHP)

SALIGIA, czyli rzecz o grzechach głównych programistów

Robert Partyka - [email protected]

Dziękuję za uwagę...Idźcie i nie grzeszcie więcej :)