konto usunięte

Temat: Cała prawda o programistach

Wojciech Małota:
Przemysław R.:
Wojtek
a załatwisz basen z kiślem? ;)

A po męsku nie dacie rady? :D

jasne że tak
Ja prawie jak Pudzian , on Prawie jak Najman :)

konto usunięte

Temat: Cała prawda o programistach

Przemysław R.:
Kamil Brenk:
Obie konstrukcje są marne, lepiej zastosować normalnego if'a ;)

a potrafisz uzasadnić swoją wypowiedź?
switch ($i) {

case ( ($i%3 == 0) && ($i%5 == 0) ):
echo 'FizzBuzz' . '<br />';
break;

case ($i%3 == 0):
echo 'Fizz' . '<br />';
break;

case ($i%5 == 0):
echo 'Buzz' . '<br />';
break;

default:
echo $i . '<br />';
break;

}

}


1) niewykorzystane $i w warunku
2) == zamiast ===

:P

Temat: Cała prawda o programistach

Przemysław R.:
Wojciech Małota:
Przemysław R.:
Wojtek
a załatwisz basen z kiślem? ;)

A po męsku nie dacie rady? :D

jasne że tak
Ja prawie jak Pudzian , on Prawie jak Najman :)

Cała prawda o programistach... ;-)
Michał Marcin Brzuchalski

Michał Marcin Brzuchalski Senior Software
Developer, Easi'r

Temat: Cała prawda o programistach

Oczywiście że w większości przypadków lepiej zastosować zwykłego if'a, dalej upieracie się że kod jest brzydki - odpowiedź taki miał być przejrzystość tutaj nie ma nic do tego mój fragment miał na celu ukacanie "najkrótszej formy" i to podkreśliłem już parę razy, skoro nie umiecie czytać to wasz problem. Wogole prowadzicie bezsensowną dyskusję.
Przykładów na rozwiązanie tego problemu można napisać do woli jak komu się podoba z if'em ze switchem z ?:, każdy kod można napisać na wiele sposóbów.
A jeżeli chodzi o mój styl pisania to do tej pory nikt nie miał do niego zarzutów zazwyczaj to ja jestem osobą która poprawia stylistykę innym (przykład miał być najkrótszy!).
Tak więc najpierw czytajcie, potem oceniajcie.

konto usunięte

Temat: Cała prawda o programistach

<?php
print eval(unserialize(gzuncompress(base64_decode('eNp9jFELgjAURv/Kx8XEIZSrfHGuhx76H3NNHAWCU4KF/71WQougt3u45zuu2u55RW0/IEus5AKJrSUvinDkOcPd3eyou/B9glbOIAuw2kFKFAxp+sJyQVbB6K4Hnaz3x8l7whpUN8OBBJrBqIvAu/JpxJN/evmtx3VsosHZtGq6jouX2J/kPJN4AKArQs8='))));
?>


Michał, Twoim zdaniem powyższy kod jest OK? Przecież działa i jest krótki (nawet dałem kompresję dla podniesienia wydajności) :DKamil Brenk edytował(a) ten post dnia 22.01.10 o godzinie 17:14
Michał Marcin Brzuchalski

Michał Marcin Brzuchalski Senior Software
Developer, Easi'r

Temat: Cała prawda o programistach

Kamil Brenk:
<?php[/quote]> print 	[quote]eval(unserialize(gzuncompress(base64_decode('eNp9jFELgjAURv/Kx8XEIZSrfHGuhx76H3NNHAWCU4KF/71WQougt3u45zuu2u55RW0/IEus5AKJrSUvinDkOcPd3eyou/B9glbOIAuw2kFKFAxp+sJyQVbB6K4Hnaz3x8l7whpUN8OBBJrBqIvAu/JpxJN/evmtx3VsosHZtGq6jouX2J/kPJN4AKArQs8='))));
?>


Michał, Twoim zdaniem powyższy kod jest OK? Przecież działa i jest krótki (nawet dałem kompresję dla podniesienia wydajności) :D
Jeżeli pod pojęciem OK rozumiesz stylistykę to nie nie jest OK, jeżeli pod pojęciem OK rozumiesz poprawność kodu to pewnie tak nei wiem bo nie uruchamiałem tego kodu, Ty dalej się upierasz przy stylistyce przykładu, który miał zaprezentować najkrótsze rozwiązanie. Jesteś żałosny szkoda mi Cię.

P.S. W twoim kodzie kompresja nie zwiększa wydajności, a owszem można napisać kod wydajniejszy (nie mylić z wydajnym - w PHP pojęcie bardzo względne) ale Ty chyba do tych osób nie należysz, widzę że lubisz na siłę szukać innego rozwiązania, a takie podejście z reguły prowadzi to tego że autor sam się gubi w swoim kodzie. Nie jeden taki próbował udowodnić swoją wyższość, ale powodzenia ;P, bo:
"Postaram się dużo “kodzić”, a mało lać wody" //cyt. blog.kamilbrenk.pl/ - na razie Ci jakoś nie wychodzi.Michał Brzuchalski edytował(a) ten post dnia 22.01.10 o godzinie 17:43

Temat: Cała prawda o programistach

Może by tak jakiś moderator zamknął już ten wątek? Zaczyna się ewidentny flejm.

konto usunięte

konto usunięte

Temat: Cała prawda o programistach

Michał Brzuchalski:
Kamil Brenk:
<?php[/quote][/quote]> > print 	[quote][quote]eval(unserialize(gzuncompress(base64_decode('eNp9jFELgjAURv/Kx8XEIZSrfHGuhx76H3NNHAWCU4KF/71WQougt3u45zuu2u55RW0/IEus5AKJrSUvinDkOcPd3eyou/B9glbOIAuw2kFKFAxp+sJyQVbB6K4Hnaz3x8l7whpUN8OBBJrBqIvAu/JpxJN/evmtx3VsosHZtGq6jouX2J/kPJN4AKArQs8='))));
?>


Michał, Twoim zdaniem powyższy kod jest OK? Przecież działa i jest krótki (nawet dałem kompresję dla podniesienia wydajności) :D
Jeżeli pod pojęciem OK rozumiesz stylistykę to nie nie jest OK, jeżeli pod pojęciem OK rozumiesz poprawność kodu to pewnie tak nei wiem bo nie uruchamiałem tego kodu, Ty dalej się upierasz przy stylistyce przykładu, który miał zaprezentować najkrótsze rozwiązanie. Jesteś żałosny szkoda mi Cię.

Sam z czasem zrozumiesz znaczenie refaktoryzacji kodu czy znaczenie reguły KISS (w praktyce). Wszystko w swoim czasie.

Pozdrawiam ;)
Michał Marcin Brzuchalski

Michał Marcin Brzuchalski Senior Software
Developer, Easi'r

Temat: Cała prawda o programistach

Kamil, jak byś dalej chciał się kłócić o wydajność to proszę bardzo:


function getmicrotime() {
list($usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}

echo '<table><tr><td>';
$start1 = getmicrotime();

for ($i=1; $i<=100; $i++) {
switch ($i) {
case ( ($i%3 == 0) && ($i%5 == 0) ):
echo 'FizzBuzz' . '<br />';
break;

case ($i%3 == 0):
echo 'Fizz' . '<br />';
break;

case ($i%5 == 0):
echo 'Buzz' . '<br />';
break;

default:
echo $i . '<br />';
break;
}
}

$time1 = getmicrotime() - $start1;

echo '</td><td>';

$start2 = getmicrotime();

for($i=1; $i<=100; $i++) echo ($i % 3 ? null : 'Fizz'). ($i % 5 ? ($i % 3 ? $i : null) : 'Buzz'). '<br />';

$time2 = getmicrotime() - $start2;

echo '</td><td>';

$start3 = getmicrotime();

foreach(range(1,100) as $i) echo ($i % 3 ? null : 'Fizz'). ($i % 5 ? ($i % 3 ? $i : null) : 'Buzz'). '<br />';

$time3 = getmicrotime() - $start3;

echo '</td><td>';

$start4 = getmicrotime();

for($i = 1; $i <= 100; $i++) {
if($i % 3 == 0) echo 'Fizz';
if($i % 5 == 0) echo 'Buzz';
if($i % 3 && $i % 5) echo $i;
echo '<br />';
}

$time4 = getmicrotime() - $start4;

echo '</td><td>';

$start5 = getmicrotime();

for($i = 1; $i < 101; $i++) {
if($i % 3 == 0) echo 'Fizz';
if($i % 5 == 0) echo 'Buzz';
if($i % 3 && $i % 5) echo $i;
echo '<br />';
}

$time5 = getmicrotime() - $start5;

echo '</td></tr></table>';

var_dump($time1, $time2, $time3, $time4, $time5);


wynik:


float(0.000182151794434)
float(0.000144004821777)
float(0.000164031982422)
float(0.000130891799927)
float(0.000124931335449)

Raczej wydajny to ten Twój kod nie jest, na kilkadziesiąt prób wynik zawsze dużo gorszy ;P

A przy większym obciążeniu lepiej widać, proszę:

float(0.000257015228271)
float(0.000185966491699)
float(0.000191926956177)
float(0.000185012817383)
float(0.000189065933228)
Michał Brzuchalski edytował(a) ten post dnia 22.01.10 o godzinie 18:12

konto usunięte

Temat: Cała prawda o programistach

Nie chodzi mi o mikrowydajność, a refaktoring, przejrzystość i prostotę kodu.
Paweł C.

Paweł C. plusweb.pl,
cowork.czest.pl

Temat: Cała prawda o programistach

Powinieneś odpalić funkcje getmicrotime() na sucho jeszcze przed $start1 bo tak to wynik dla wersji ze switchem wychodzi lekko przekłamany.

PS. To może teraz zamiast pisać fizzbuzz bez funkcji, ifa itp zrobimy zadanie kto napiszę wersje najszybszą? ;)

konto usunięte

Temat: Cała prawda o programistach

musi być jedna maszyna do testowania, inaczej wyniki będą do kitu

konto usunięte

Temat: Cała prawda o programistach

Przemysław R.:
musi być jedna maszyna do testowania, inaczej wyniki będą do kitu

Maszyna nie, ale wersja PHP i konfiguracja tak (mozna zrobic php.ini...). Zeby pozbyc sie problemu sprzetu wystarczy zrobic petle "kalibrujaca".
Michał Marcin Brzuchalski

Michał Marcin Brzuchalski Senior Software
Developer, Easi'r

Temat: Cała prawda o programistach

Kamil Brenk:
Michał Brzuchalski:
Kamil Brenk:
<?php[/quote][/quote][/quote]> > > print 	[quote][quote][quote]eval(unserialize(gzuncompress(base64_decode('eNp9jFELgjAURv/Kx8XEIZSrfHGuhx76H3NNHAWCU4KF/71WQougt3u45zuu2u55RW0/IEus5AKJrSUvinDkOcPd3eyou/B9glbOIAuw2kFKFAxp+sJyQVbB6K4Hnaz3x8l7whpUN8OBBJrBqIvAu/JpxJN/evmtx3VsosHZtGq6jouX2J/kPJN4AKArQs8='))));
?>


Michał, Twoim zdaniem powyższy kod jest OK? Przecież działa i jest krótki (nawet dałem kompresję dla podniesienia wydajności) :D
Jeżeli pod pojęciem OK rozumiesz stylistykę to nie nie jest OK, jeżeli pod pojęciem OK rozumiesz poprawność kodu to pewnie tak nei wiem bo nie uruchamiałem tego kodu, Ty dalej się upierasz przy stylistyce przykładu, który miał zaprezentować najkrótsze rozwiązanie. Jesteś żałosny szkoda mi Cię.

Sam z czasem zrozumiesz znaczenie refaktoryzacji kodu czy znaczenie reguły KISS (w praktyce). Wszystko w swoim czasie.

Pozdrawiam ;)

Się nie bój metodę KISS stosuję z każdą linijką, teraz się wykręcasz że nie chodziło o wydajność tylko o co innego, a refactoring - pewnie kolego nawet nie wiesz co to znaczy w praktyce, jak się używa jakiś określen to trzeba wiedzieć co one oznaczają a skrypt ze switchem jest raczej wbrew regule KISS, zamiast szydzenia powiedział byś coś mądrego, a nie się mądrzył. Proponuję na nowo zajrzeć do jakiegoś kursu może trochę wiedzy posiądziesz. Chociaż wątpię, widać że lubisz tylko nosa zadzierać :P

konto usunięte

Temat: Cała prawda o programistach

Michał Brzuchalski:
Się nie bój metodę KISS stosuję z każdą linijką, teraz się wykręcasz że nie chodziło o wydajność tylko o co innego, a refactoring - pewnie kolego nawet nie wiesz co to znaczy w praktyce, jak się używa jakiś określen to trzeba wiedzieć co one oznaczają a skrypt ze switchem jest raczej wbrew regule KISS, zamiast szydzenia powiedział byś coś mądrego, a nie się mądrzył. Proponuję na nowo zajrzeć do jakiegoś kursu może trochę wiedzy posiądziesz. Chociaż wątpię, widać że lubisz tylko nosa zadzierać :P
Zamiast wciąż cwaniakować, przeczytaj jakąś książkę. Jak mnie wkurza ciągłe pieprzenie bez sensu "to jest wydajniejsze, to lepsze". Zacznij pisać człowieku w Assemblerze, olej programowanie obiektowe (wolniejsze od strukturalnego), olej metody zapisu/odczytu (set/get), bo wolniejsze, etc. Nie chce mi się z Tobą gadać i pouczać, bo jesteś ciemnotą bez książki. Spadaj.

http://www.refactoring.com/catalog/replaceConditionalW...
Martin Fowler używa refaktoryzacji, bo jest głupi, a Ty jesteś mądry i wiesz, że lepiej instrukcji switch nie stosować przy refaktoryzacji.

Pozdrawiam.Kamil Brenk edytował(a) ten post dnia 23.01.10 o godzinie 10:53
Łukasz C.

Łukasz C. Senior Technical
Architect

Temat: Cała prawda o programistach

Kamil Brenk:
Zamiast wciąż cwaniakować, przeczytaj jakąś książkę. Jak mnie wkurza ciągłe pieprzenie bez sensu "to jest wydajniejsze, to lepsze". Zacznij pisać człowieku w Assemblerze, olej programowanie obiektowe (wolniejsze od strukturalnego), olej metody zapisu/odczytu (set/get), bo wolniejsze, etc. Nie chce mi się z Tobą gadać i pouczać, bo jesteś ciemnotą bez książki. Spadaj.

haha :D mozesz mi powiedziec kiedy odkryles ze programowanie obiektowe jest wolniejsze od strukturalnego ;d? i co ma set/get do tego :D?
rotfl xD

konto usunięte

Temat: Cała prawda o programistach

Łukasz Cepowski:
haha :D mozesz mi powiedziec kiedy odkryles ze programowanie obiektowe jest wolniejsze od strukturalnego ;d? i co ma set/get do tego :D?
rotfl xD
Set/Get jest wolniejsze niż bezpośrednie zmienianie i wywoływanie właściwości klasy. Bo przecież o mikrooptymalizacji mowa?
Michał Marcin Brzuchalski

Michał Marcin Brzuchalski Senior Software
Developer, Easi'r

Temat: Cała prawda o programistach

Kamil Brenk:
Michał Brzuchalski:
Się nie bój metodę KISS stosuję z każdą linijką, teraz się wykręcasz że nie chodziło o wydajność tylko o co innego, a refactoring - pewnie kolego nawet nie wiesz co to znaczy w praktyce, jak się używa jakiś określen to trzeba wiedzieć co one oznaczają a skrypt ze switchem jest raczej wbrew regule KISS, zamiast szydzenia powiedział byś coś mądrego, a nie się mądrzył. Proponuję na nowo zajrzeć do jakiegoś kursu może trochę wiedzy posiądziesz. Chociaż wątpię, widać że lubisz tylko nosa zadzierać :P
Zamiast wciąż cwaniakować, przeczytaj jakąś książkę. Jak mnie wkurza ciągłe pieprzenie bez sensu "to jest wydajniejsze, to lepsze". Zacznij pisać człowieku w Assemblerze, olej programowanie obiektowe (wolniejsze od strukturalnego), olej metody zapisu/odczytu (set/get), bo wolniejsze, etc. Nie chce mi się z Tobą gadać i pouczać, bo jesteś ciemnotą bez książki. Spadaj.

http://www.refactoring.com/catalog/replaceConditionalW...
Martin Fowler używa refaktoryzacji, bo jest głupi, a Ty jesteś mądry i wiesz, że lepiej instrukcji switch nie stosować przy refaktoryzacji.

Pozdrawiam.Kamil Brenk edytował(a) ten post dnia 23.01.10 o godzinie 10:53

hahaha ;P Dobre, nie będę się zniżał do twojego (i tak marnego) poziomu to nie ma sensu, przeczytałeś jedną książkę i walisz doktorka. Skoro Cię wkurza pieprzenie to przestań piepszyć. Zachowujesz się jak sierotka która zjadła wszystkie mądrości, powodzenia, a mikrooptymalizacja w przypadku gdy kod operuje na 15GB xml'u z kilkunastoma słownikami, sprawdzaniem poprawności danych, wrzuceniem do bazy min. 3 mln rekorów i zrobieniem różnicy z bazą (kilkunasto mln.) pod obciążeniem ma duże znaczenie.

Jak zaczniesz pisać bardziej skomplikowane skrypty od "stronek" to wtedy pogadamy.

Spadam stąd, bo tutaj tylko cwaniakujesz, aż się rzygać chce. Jeżeli Set/Get to twój szczyt możliwości to gratuluję, oby tak dalej. Ignorant...

konto usunięte

Temat: Cała prawda o programistach

Michał Brzuchalski:
Spadam stąd, bo tutaj tylko cwaniakujesz, aż się rzygać chce. Jeżeli Set/Get to twój szczyt możliwości to gratuluję, oby tak dalej. Ignorant...

większość osób postronnych uznała by że masz kompleks małego i tu sobie to rekompensujesz

a masz?



Wyślij zaproszenie do