Wojciech Soczyński

Wojciech Soczyński Programista
eksplorator -
blog.wsoczynski.pl

Temat: Walidacja formularzy po której stronie?

Tomasz Zadora:
Masz może jakieś benchmarki, które to potwierdzą (spadek wydajności)? Programowanie obiektowe nie powstało dla większej wydajności a dla większej czytelności :)

Nie nie mam benchmarków i nie chce mi się robić. Tu zresztą głównie chodzi o to, że stosując priv/prot. jest tendencja do zwiększania ilości kodu, a to w PHP dość wrażliwa kwestia - szczególnie jeżeli nie stosuje się cache w stylu APC etc.

Natomiast większa czytelność często oznacza lepszą wydajność, bo łatwiej stworzyć optymalne struktury i algorytmy.
Nie uważasz, że większa przewidywalność poprawia czytelność? Przewidywalność to jest benefit stosowania private/protected. Dzięki temu, by zmienić stan obiektu potrzebuje zrobić to przez jakąś metodę, która określa reguły tej zmiany.

Co do Rzymu to technologia ma to do siebie, że się zmienia. Inne rzeczy są bardziej uniwersalne. Jeżeli chodzi o Jave, to z tego co czytałem to nie trzeba mieć żadnych uprawnień specjalnych, żeby zrobić "setAccessible" (chyba, że mówimy o SecurityManagerze).

Zresztą tak jak mówiłeś, skończmy tą jałową dyskusję bo żadna ze stron nie przekona drugiej.Wojciech Soczyński edytował(a) ten post dnia 08.02.11 o godzinie 20:46
Jarosław Żeliński

Jarosław Żeliński Analityk i
Projektant Systemów

Temat: Walidacja formularzy po której stronie?

Tomasz Zadora:
Natomiast regulowanie bezpieczeństwa, lub rozwiązywanie innych kwestii
inaczej niż przez private/protected jest czymś abstrakcyjnym.

private/protected/public to ograniczanie zasięgu a nie bezpieczeństwo...
Tomasz Zadora

Tomasz Zadora programuję

Temat: Walidacja formularzy po której stronie?

Jarek Żeliński:
Tomasz Zadora:
Natomiast regulowanie bezpieczeństwa, lub rozwiązywanie innych kwestii
inaczej niż przez private/protected jest czymś abstrakcyjnym.

private/protected/public to ograniczanie zasięgu a nie bezpieczeństwo...

Oczywiście ale można to traktować jako zabezpieczenie integralności/spójności danych obiektu - w tym sensie jest to zabezpieczenie.
Jarosław Żeliński

Jarosław Żeliński Analityk i
Projektant Systemów

Temat: Walidacja formularzy po której stronie?

Tomasz Zadora:
Jarek Żeliński:
Tomasz Zadora:
Natomiast regulowanie bezpieczeństwa, lub rozwiązywanie innych kwestii
inaczej niż przez private/protected jest czymś abstrakcyjnym.

private/protected/public to ograniczanie zasięgu a nie bezpieczeństwo...

Oczywiście ale można to traktować jako zabezpieczenie integralności/spójności danych obiektu - w tym sensie jest to zabezpieczenie.

co to jest "integralności/spójności danych obiektu"?
Jakub L.

Jakub L. Programista

Temat: Walidacja formularzy po której stronie?

Jarek Żeliński:
Tomasz Zadora:
Jarek Żeliński:

private/protected/public to ograniczanie zasięgu a nie bezpieczeństwo...

Oczywiście ale można to traktować jako zabezpieczenie integralności/spójności danych obiektu - w tym sensie jest to zabezpieczenie.

co to jest "integralności/spójności danych obiektu"?

Będę zgadywał: obiekt daty nie będzie mógł mieć 30 lutego?

konto usunięte

Temat: Walidacja formularzy po której stronie?

Trochę wrócę stricte do tematu - oczywiście jestem za obustronną walidacją. Bardzo ciekawe po stronie klienta jest rozwiązanie z Dojo, gdzie zamiast HTMLowego <form> stosujemy normalnego <div>'a, a resztę załatwiają skrypty. Więc gdy ktoś wyłączy JS - sayonara...
Wojciech Soczyński

Wojciech Soczyński Programista
eksplorator -
blog.wsoczynski.pl

Temat: Walidacja formularzy po której stronie?

Michał Ćwikliński:
Trochę wrócę stricte do tematu - oczywiście jestem za obustronną walidacją. Bardzo ciekawe po stronie klienta jest rozwiązanie z Dojo, gdzie zamiast HTMLowego <form> stosujemy normalnego <div>'a, a resztę załatwiają skrypty. Więc gdy ktoś wyłączy JS - sayonara...
Tego typu aplikacje i tak są zwykle w większości w JS, także albo JS albo nic ;)
Jarosław Żeliński

Jarosław Żeliński Analityk i
Projektant Systemów

Temat: Walidacja formularzy po której stronie?

Jakub L.:
co to jest "integralności/spójności danych obiektu"?

Będę zgadywał: obiekt daty nie będzie mógł mieć 30 lutego?

i to jest integralność czy spójność? Bo moim zdaniem chyba kontrola zakresu.

i jaki to ma związek z tym czy metoda/atrybut jest private lub public?Jarek Żeliński edytował(a) ten post dnia 08.02.11 o godzinie 23:01
Tomasz Zadora

Tomasz Zadora programuję

Temat: Walidacja formularzy po której stronie?

Jakub L.:
[...]

Będę zgadywał: obiekt daty nie będzie mógł mieć 30 lutego?

Nie zgadłeś. Męczy mnie już tłumaczenie podstawowych rzeczy :)
Jakub L.

Jakub L. Programista

Temat: Walidacja formularzy po której stronie?

Jarek Żeliński:
Jakub L.:
co to jest "integralności/spójności danych obiektu"?

Będę zgadywał: obiekt daty nie będzie mógł mieć 30 lutego?

i to jest integralność czy spójność? Bo moim zdaniem chyba kontrola zakresu.

i jaki to ma związek z tym czy metoda/atrybut jest private lub public?

A czymże innym jest kontrola zakresu jak nie pilnowaniem integralności?

Jak masz atrybut na którym możesz operować jedynie akcesorami, nie naruszysz integralności - próba ustawienia 30 lutego spowoduje założoną reakcję na błędne dane - wyjątek, błąd albo przeliczenie na odpowiednio 1 lub 2 marca.
Tomasz Zadora

Tomasz Zadora programuję

Temat: Walidacja formularzy po której stronie?

Chociaż nie, pomyliłem się z rozpędu - masz rację, 30 luty można podpiąć pod brak integralności. Tak samo kiedy w bazie danych mamy kolumnę zawierającą klucz obcy - wartość klucza powinna wskazywać na istniejącą relację (po za wartością NULL oczywiście) inaczej mamy zachwianą integrację. Z tym, że przy obiektach to jest już wszystko bardziej abstrakcyjne.
Jarosław Żeliński

Jarosław Żeliński Analityk i
Projektant Systemów

Temat: Walidacja formularzy po której stronie?

Jakub L.:
A czymże innym jest kontrola zakresu jak nie pilnowaniem integralności?

Tym:
"Integralność danych, także spójność (ang. data integrity) funkcja bezpieczeństwa polegająca na tym, że dane nie zostały zmienione, dodane lub usunięte w nieautoryzowany sposób."
Jak masz atrybut na którym możesz operować jedynie akcesorami, nie naruszysz integralności - próba ustawienia 30 lutego spowoduje założoną reakcję na błędne dane - wyjątek, błąd albo przeliczenie na odpowiednio 1 lub 2 marca.


powyższe to chyba jakiś Pascal albo coś podobnego

Obiektowo: Typ danych DataKalendarzowa i użycia ValueObject do przechowywania dat skutecznie chroni przed użyciem daty 30 Lutego, jak czegoś brakuje definiujesz Klasę DataKalendarzowa i używasz jako typu danych, obiekt taki sam sprawdza czy jest poprawną datą więc jest walidacja, w jednym miejscu dla wszystkich dat w całym systemie i obiekt ten jest w komponencie Model Dziedziny.
Jarosław Żeliński

Jarosław Żeliński Analityk i
Projektant Systemów

Temat: Walidacja formularzy po której stronie?

Tomasz Zadora:
Chociaż nie, pomyliłem się z rozpędu - masz rację, 30 luty można podpiąć pod brak integralności. Tak samo kiedy w bazie danych mamy kolumnę zawierającą klucz obcy - wartość klucza powinna wskazywać na istniejącą relację (po za wartością NULL oczywiście) inaczej mamy zachwianą integrację. Z tym, że przy obiektach to jest już wszystko bardziej abstrakcyjne.

Teraz rozumiem, to bazy danych a my cały czas o MVC i metodach obiektowych a tu nie ma bazy danych. MVC- gdzie to są jakieś klucze obce????

ano abstrakcyjne....;)Jarek Żeliński edytował(a) ten post dnia 09.02.11 o godzinie 07:28
Jakub L.

Jakub L. Programista

Temat: Walidacja formularzy po której stronie?

Jarek Żeliński:
Jakub L.:
A czymże innym jest kontrola zakresu jak nie pilnowaniem integralności?

Tym:
"Integralność danych, także spójność (ang. data integrity) funkcja bezpieczeństwa polegająca na tym, że dane nie zostały zmienione, dodane lub usunięte w nieautoryzowany sposób."

I właśnie próba ustawienia 30 lutego to próba zmiany danych w nieautoryzowany sposób. Jeżeli akcesory nie walidują danych podczas przypisywania, to jedynym powiedzmy powodem ich istnienia jest łatwośc refaktoryzacji.
Jak masz atrybut na którym możesz operować jedynie akcesorami, nie naruszysz integralności - próba ustawienia 30 lutego spowoduje założoną reakcję na błędne dane - wyjątek, błąd albo przeliczenie na odpowiednio 1 lub 2 marca.

powyższe to chyba jakiś Pascal albo coś podobnego

Powyższe co?
Obiektowo: Typ danych DataKalendarzowa i użycia ValueObject do

ValueObject który według definicji nie ma niczego oprócz akcesorów?
przechowywania dat skutecznie chroni przed użyciem daty 30 Lutego, jak czegoś brakuje definiujesz Klasę DataKalendarzowa i używasz jako typu danych, obiekt taki sam sprawdza czy jest poprawną datą więc jest walidacja, w jednym miejscu dla

No i właśnie o tym piszę że sam srawdza.
A reakcja na błędną operację jest decyzją projektową.
Jarosław Żeliński

Jarosław Żeliński Analityk i
Projektant Systemów

Temat: Walidacja formularzy po której stronie?

Jakub L.:
I właśnie próba ustawienia 30 lutego to próba zmiany danych w nieautoryzowany sposób.

autoryzacja to ustalenie "tego kto zmienia" a nie "tego co i jak zostało zmienione"...

ValueObject który według definicji nie ma niczego oprócz akcesorów?

http://c2.com/cgi/wiki?ValueObject
Jakub L.

Jakub L. Programista

Temat: Walidacja formularzy po której stronie?

Jarek Żeliński:
Jakub L.:
I właśnie próba ustawienia 30 lutego to próba zmiany danych w nieautoryzowany sposób.

autoryzacja to ustalenie "tego kto zmienia" a nie "tego co i jak zostało zmienione"...

Z poziomu obiektu ustalenie kto może zmieniać jest niejakim wyzwaniem.

Jak bawimy się linkami wyciągniętymi znikąd:
http://sjp.pwn.pl/slownik/2551343/autoryzacja

Obiekt uznaje za autoryzowane zmiany dokonane przez swoje akcesory, i programisty zadaniem jest zapewnienie, że one nie wprowadzą obiektu w niepoprawny stan.

Jak się ma dostęp do gołych pól, zmiany robi się dowolne.
Jarosław Żeliński

Jarosław Żeliński Analityk i
Projektant Systemów

Temat: Walidacja formularzy po której stronie?

Jakub L.:
Jarek Żeliński:
Jakub L.:
I właśnie próba ustawienia 30 lutego to próba zmiany danych w nieautoryzowany sposób.

autoryzacja to ustalenie "tego kto zmienia" a nie "tego co i jak zostało zmienione"...

Z poziomu obiektu ustalenie kto może zmieniać jest niejakim wyzwaniem.

Jak bawimy się linkami wyciągniętymi znikąd:
http://sjp.pwn.pl/slownik/2551343/autoryzacja

czyli "tego kto zmienia", dziękuję :) i odpadamJarek Żeliński edytował(a) ten post dnia 09.02.11 o godzinie 21:08
Jarosław Żeliński

Jarosław Żeliński Analityk i
Projektant Systemów

Temat: Walidacja formularzy po której stronie?

Jakub L.:
Jak się ma dostęp do gołych pól, zmiany robi się dowolne.

od kiedy w programowaniu obiektowym ma się dostęp do 'gołych pól" albo co to są "gołe pola"???Jarek Żeliński edytował(a) ten post dnia 09.02.11 o godzinie 21:49
Tomasz Zadora

Tomasz Zadora programuję

Temat: Walidacja formularzy po której stronie?

Jarek Żeliński:
[...]
private/protected/public to ograniczanie zasięgu a nie bezpieczeństwo...

To może ja zacznę pytać na odmianę ;-)

Po co w takim razie się ten zasięg ogranicza ?
Paweł Spychalski

Paweł Spychalski Senior Frontend
Developer, Home24

Temat: Walidacja formularzy po której stronie?

Po co w takim razie się ten zasięg ogranicza ?

Aby obiekt klasy piesDingo dziedziczący z klasy pies nie miał metody szczekaj() ;]

Następna dyskusja:

Niechciane wpisy do formularzy




Wyślij zaproszenie do