• Reklamy Google

  • belefiz +1  

    Pewnie chodziło o BHP, a nie PHP :)

    pokaż komentarz
    belefiz
  • parsiuk +8  

    Trochę p#%%%#$enia bez żadnych konkretów...

    pokaż komentarz
    parsiuk
  • luinnar +16  

    czyli standardowy poziom webhostingu

    pokaż komentarz
    luinnar
  • parsiuk +6  

    Wniosek? Nie nadaje się...

    pokaż komentarz
    parsiuk
  • Sh1eldeR +3  

    Czy ja wiem? Przytaczają konkretne porady Google i przy każdej z nich komentarz twórcy PHP wyjaśniający, że jest od około 100 lat (czyli od wyjścia PHP4) nieadekwatna. Czego chcieliście? Dokładnych wyjaśnień, jak jest zaimplementowane kopiowanie zmiennych w silniku Zend? Ba, można to sobie wyobrazić czytając to, co tam napisali.

    Wg mnie, jeśli twórca PHP mówi, że jest tak i tak, to jest co najmniej 90% szans na to, że ma rację i mogę mu ślepo wierzyć. Pozostałe 10% niepewności wynika z ludzkiej omylności i tego, że może czegoś tam nie chciało mu się sprawdzać. A może to nie 10%, tylko 5%. Nieważne -- twórcy PHP można po prostu wierzyć na słowo, jeśli mówi o samym PHP.

    To może parsiuk przeczytasz linkowaną przez webhosting wypowiedź pana Raskinda i podasz parę przykładów konkretów, które zostały przez WH pominięte, a które uważasz za niezwykle istotne? Bo może ja coś przeoczyłem?

    edit: Tbh nie mam pewności co do tego używania switcha zamiast if/else. Może to jednak ma sens? Zakładam, że sprawdzamy, czemu jest równa wartość jakiegoś wyrażenia (bo do tego nadaje się switch; if/else oczywiście też). Jeśli mamy powiedzmy 3 wartości i 3x if/else if, to wartość tego wyrażenia jest obliczana trzykrotnie (wątpię, by to było jakoś buforowane). W switchu tylko raz. Oczywiście można sobie to wyrażenie podstawić pod zmienną i wtedy zrobić if/else, ale ci z Google dali przykład bez tego.
    Tak na chłopski rozum wydaje mi się, że jednak trzykrotne obliczenie $_POST['action'] wiąże się z pewnym narzutem czasowym (a co dopiero, gdyby to było wywołanie jakiejś funkcji?)
    Nie mówię, że to jest wielki problem i że oznacza to konieczność używania switcha -- jestem zdecydowanym przeciwnikiem przedwczesnej optymalizacji. Ale jeśli narzut czasowy związany z wielokrotnym obliczeniem (potencjalnie skomplikowanego) wyrażenia istnieje, to argument Google nie jest jednak "nonsensem".

    pokaż komentarz
    Sh1eldeR
  • dalka5000 -3  

    To, co napisałeś, świetnie odnosi się do twojego komentarza. Standardowo. A wyjaśnienie kwestii masz powyżej.

    pokaż komentarz
    dalka5000
  • Sh1eldeR +1  

    @dalka5000:
    Pisałeś do parsiuka, czy do mnie, bo już sam nie wiem...?

    @scotty:
    Mi to wygląda na jakiś dziwny suchar. Jakby ktoś chciał być sprytniejszy niż powinien. Nie widzę tu też tej optymalizacji, jaką opisałem w poprzednim poście. Wyrażenia warunkowe w tym "Twoim" przykładzie są i tak i tak normalnie obliczane, tak jak w przypadku instrukcji warunkowej if-else. Ich wartość jest porównywana z true podobnie jakby to było w instrukcjach warunkowych (w których oczywiście wcale nie trzeba pisać == true).

    Ciekawy przykład nadmiernie przekombinowanego kodu. Nie do końca kumam, po co ktoś to zminusował -- programiści powinni skumać tego nietypowego switcha, możliwego tylko w niektórych językach, pozwalających na dynamiczne wartości case. Sam czegoś takiego nigdy nie użyłem, ani nigdy nie widziałem. Konwencja jednak wymagałaby, żeby wartości w case były wyrażeniami "w miarę stałymi" nawet w PHP (czyli stringi mogą być, ale złożone warunki i zmienne już raczej nie).

    pokaż komentarz
    Sh1eldeR
  • occulkot -2  

    jezeli tam byl switch w ktorym po kazdym "case" byly break to rzeczywiscie fail. Jezeli natomiast w niektorych wypadkach zdarzaly sie case bez break to jest to akurat wygodne rozwiazanie ;). Mozna wykonac operacje dla paru warunkow ze stosu i zrobic wyjscie tylko przy odpowiednich warunkach.

    pokaż komentarz
    occulkot
  • Sh1eldeR 0  

    @occulkot:
    Dobre spostrzeżenie. Faktycznie, bywają przypadki, gdy takie coś mogłoby się sprawdzić i uchroniłoby przed dublowaniem kodu (ale tylko wtedy, gdy gdzieniegdzie nie byłoby breaków). Nie znałem takiego wzorca. Osobiście przeważnie tworzę w takich wypadkach radzę sobie w inny sposób -- np. ustawiając w niektórych wypadkach jakąś zmienną oznaczającą, że po serii warunków trzeba jeszcze coś wykonać, czy zamykając wykonywaną w powiedzmy 2 przypadkach logikę w oddzielnej funkcji (szczególnie dobrze działa to w języku funkcyjnym, np. w JavaScripcie). scotty jednak napisał to razem z breakami, choć może po prostu nie pamiętał, że gdzieś któregoś brakowało.

    pokaż komentarz
    Sh1eldeR
  • scotty 0  

    Tam breaki (a nawet w tym konkretny przypadku returny) były wszędzie. Koleś sprzedaje swoje usługi po 125$ za godzinę więc sprytny chyba jest. Myślę, że to kwestia stylu. W niektórych specyficznych konfiguracja warunków wersja bez breaków mogła by być celowa, ale ze względu na to, że jest możliwa tylko w językach, w których po case nie musi być stała, nawet w tych przypadkach powinna chyba być unikana na korzyść standardowego podejścia z flagami i ifami.

    pokaż komentarz
    scotty
  • Adaslaw 0  

    @scotty
    Nie widzę ani jednego zastosowania jak i żadnego sensu stosowania tego pokręconego switch'a.
    Ten wklejony przez Ciebie swich (ta konstrukcja) jest totalnie nieczytelna, a czytelność kodu to jedna z najważniejszych rzeczy w projektach (jak również chodzi o zasadę http://en.wikipedia.org/wiki/KISS_principle ). Według mnie taką konstrukcję mógł napisać jedynie amator.

    btw:
    A sam 'switch' jest według mnie bardzo dobry. Staram się jego stosować wszędzie, gdzie to tylko możliwe. Jest czytelny, w przypadku enumów kompilator może dać po łapach ostrzeżeniem, że w switch brakuję niektórych enumów, kompilatorom zapewne łatwiej zoptymalizować switch'a, niż ciąg if'ów.

    pokaż komentarz
    Adaslaw
  • scotty 0  

    @Adaslaw
    Może nieelegancko ale napiszę. Takie switche popełnia ten pan (Zend ceritified engineer): http://www.oscommerce-freelancers.com/ w tym pluginie: http://www.oscommerce.com/community/contributions,2823/category,5/search,ultimate+seo+urls
    i chyba chciałbym być takim amatorem który bierze 125 dolarów z godzinę swojego czasu. Choć dziwny switch nie podoba mi się chyba równie bardzo jak Tobie, ale mam chyba ciut większą tolerancję na dziwne rzeczy.

    pokaż komentarz
    scotty
  • sciana +3  

    Nie mi ktoś wytłumaczy jakim cudem string w " ma być szybciej przetwarzany niż w '. Przecież logicznie rozumując, to nie jest to nawet możliwe. W " są parser wyszukuje 2 znaki specjalne ( \ i $ ) a w ' tylko 1 ( \ ) więc samo to daje przewagę pojedynczym cudzysłowom. Druga sprawa to jakość kodu, owszem można 10 zmiennych wrzucić do jednego stringa ale jak to będzie wyglądało. Taki sposób programowania jest śmieciowy. Czy nie lepiej po prostu do wszystkiego używać konkatencji i uzyskać przejrzysty kod? Owszem, w perlu wpycham zmienne do ", ale to jest perl, skrypty są krótkie, same w sobie pogmatwane ale zazwyczaj modyfikowane tylko przeze mnie.

    pokaż komentarz
    sciana
  • Arvenia -4  

    " jest dwa razy dłuższe od ' ;)

    pokaż komentarz
    Arvenia
  • westsiderr -9  

    Milcz, dopóki nie będziesz mieć nic ciekawego do powiedzenia.

    pokaż komentarz
    westsiderr
  • scotty +1  

    Może dlatego że jeżeli robisz: "blala $zmienna blabla" zamiast 'blbla'.$zmienna.'blabla' to silnik ma większe szanse domyśleć się zawczasu ile pamięci będzie potrzebne do przechowywania tego wynikowego stringa. Nie musi allokować na każdy kawałek z osobna, potem na całość, kopiować podczas konkatenacji a na koniec zwalniać małe kawałki.

    Myślę, że można wymyślić sporo optymalizacji dla konstrukcji z cudzysłowami bo w jej przypadku łatwiej odczytać intencję programisty (nie trzeba szukać na około, żeby ją odczytać, wystarczy to co jest między cudzysłowami).

    pokaż komentarz
    scotty
  • kedar +1  

    [komentarz usunięty]

    pokaż komentarz
    kedar
  • tv2 +6  

    Z frameworkami da się przeżyć. W sumie zawsze myślałem, że dla prawdziwych masochistów jest C - wskaźnik na wskaźnik na tablicę wskaźników do funkcji...

    pokaż komentarz
    tv2
  • RudeDude +3  

    Oświeć mnie i powiedz co powinienem używać zamiast php?

    pokaż komentarz
    RudeDude
  • arti040 +1  

    Co sie porobilo na tym swiecie?... Jezyki programowania se "passe", frameworki szaleja i taki jeden z drugim uwaza, ze jak zna Drupala, PHPTal czy jQuery, to jest juz wielkim programista PHP/Javascript :/

    pokaż komentarz
    arti040
  • Sh1eldeR +1  

    @tv2:
    Zwykle nie jest aż tak źle, choć w ogóle konieczność ręcznego zarządzania pamięcią jest przerypana. A to, co wymieniłeś, to byłoby chyba jedynie wtedy przydatne, gdyby ktoś chciał zrobić trójwymiarową tablicę do funkcji -- to się raczej nie zdarza ;). Problemem w C jest też odczytywanie deklaracji. Język ma stosunkowo niewiele słów kluczowych, w szczególności nie ma odpowiednika "function", za to typy zapisuje się w dość... pokraczne sposoby. Stąd tablica wskaźników do funkcji, które zwracają jakieś inne wskaźniki, nie wygląda w zapisie najczytelniej.

    @RedDude:
    Rozważmy parę alternatyw:
    -PHP - popularne, wszędzie dostępne. Z bezpieczeństwem -- różnie (wkurzające ustawienia bezpieczeństwa dla amatorów). Szybkość całkiem niezła. Bibliotek multum, niektóre implementacje bardzo dobre (preg z PERL-a). Sam język... zaśmiecony. Synonimy, niejednolite nazewnictwo. Nie jest funkcyjny. Nie ma wyjątkowej czytelności, choć oparta o C składnia jest standardowa. Nie ma zbyt wielu konstrukcji ułatwiających szybkie pisanie.
    -Perl. Ma sporo ułatwień zmniejszających ilość kodu. Doskonałe narzędzie do tworzenia nieczytelnego kodu, ale jeśli jest używany z rozwagą i zgodnie z jasno określonymi zasadami, to można tworzyć i czytelny i bardzo kompaktowy kod. Doskonała obsługa wyrażeń regularnych. Funkcyjność. Mi osobiście jednak nie podpada, sam nie wiem czemu -- może odrzucają mnie te niektóre konstrukcje (mam małe doświadczenie w tym języku).
    -Java (J2EE). Mistrz powolności. Nieprawdopodobnie wręcz wolna. Choć i tak teraz przyspieszyła. Dość skomplikowane i miejscami upierdliwe biblioteki/frameworki. Niby pro, ale i tak na mało którym serwerze to postawisz. Przynajmniej powstały kod jest uporządkowany. Sporo profesjonalnych technologii. Newbies rzadko używają. Jak dla mnie podstawowym problemy to wydajność (a raczej jej brak), złożoność i niedostępność serwerów.
    -Ruby. Żałuję, że go nie używam, choć z serwerami jest znacznie gorzej niż w przypadku PHP. Ciekawy, zręczny język. Dużo mu daje Ruby on Rails. Podobno nadaje się tylko do niektórych zastosowań, ale ja widziałem już parę średnich i większych projektów, które doskonale sobie radzą i są napisane w Rubym. Składnia już jednak nie jest C-podobna ;).
    -Python. Może właśnie na to powinieneś się przerzucić? Język funkcyjny -- jest. Elegancki, czytelny kod -- jest. Zaśmiecenia - brak. Prędkość naprawdę dobra. Dostępność całkiem niezła.

    @arti040:
    Mi się też bardzo nie podoba, gdy ktoś nagle wyjeżdża, że w JavaScripcie nazwy zmiennych zaczynają się od znaku $ (!!!), bo widział na oczy tylko jQuery. I jak taki script-kiddie ma tworzyć domknięcia, bardzo zresztą przydatne w tworzeniu jQuery? Albo jak ma napisać 50 linii czystego JavaScriptu w niewielkim projekcie, jeśli tyle wystarczy (bez żadnej biblioteki) do oskryptowania całej strony? Nie -- on od razu rzuci się do jQuery i zwiększy jej rozmiar nie o 50 linijek, tylko o powiedzmy 10 plus... kilkadziesiąt KB na samą bibliotekę.

    Muszę jednak dodać, że całkowite odcinanie się od frameworków i bibliotek na pewno nie jest dobre. Jest złe. Wiem to z własnego doświadczenia, bo bardzo długo zapierałem się przed nimi rękami i nogami. To był błąd. Jest multum przypadków, gdy użycie frameworków ma znacznie więcej plusów niż minusów. Sam używam teraz jQuery w sporej części dużych projektów. A wyobrażasz sobie Ruby'ego bez Ruby on Rails? Tak samo w PHP użycie Code Ignitera, czy Zend Frameworka potrafi polepszyć bezpieczeństwo, wygląd i kompaktowość kodu.

    Przy ich stosowaniu trzeba jednak koniecznie znać dobrze sam język. To jest po prostu niezbędne minimum. Potem można używać frameworków całkiem świadomie.

    pokaż komentarz
    Sh1eldeR
  • Adaslaw 0  

    @Sh1eldeR

    Ktoś powiedział, że Perl to jezyk write only. [#]
    [#]... że pisać w nim idzie, ale przeczytać, ze zrozumieniem, źródła w Perlu – już nie sposób ;]

    Że Java ma upierdliwe frameworki?
    Po pierwsze – ja tego nie zauważyłem.
    Po drugie – to nie używaj upierdliwych frameworków ;]

    Ruby / Python: od lat obiecuję sobie, że się z tymi językami zapoznam, ale ... jakoś nie mam czasu ;]
    Za to (dopiero dziś) dowiedziałem się, że NetBeans ponoć ładnie wspierają oba te 2 języki. To zdecydowanie mnie dodatkowo motywuje, aby poeksperymentować z tymi dwoma językami.

    pokaż komentarz
    Adaslaw
  • Adaslaw -1  

    I żeby włożyć kij w mrowisko:
    Jeśli ktoś używam C do czegoś poważniejszego niż "Hello world", to jest ... lama ;]

    pokaż komentarz
    Adaslaw
  • Sh1eldeR -1  

    @Adaslaw:
    Czy dobrze widzę? Używasz Javy (webowej) i jesteś zadowolony? :o Imponujące!

    Można wiedzieć, z jakich technologii korzystałeś do stworzenia przykładowego (wybranego przez Ciebie, byle nie mikroskopijnego) projektu? Ja kiedyś robiłem duży portal, czego to myśmy tam używali... Na pewno Hibernate'a, EJB i JSP, ale w sumie zbyt miłych wspomnień to ja z tego nie mam.

    edit:
    Twoje ostatnie zdanie przekażę Linusowi :D

    pokaż komentarz
    Sh1eldeR
  • Adaslaw 0  

    @Sh1eldeR
    Co to jest Java webowa?

    Tak, używam (zawodowo i prywatnie) Javy od kilku lat. I bardzo sobie to chwalę ;] Java (obok C++, ale C++ to jakby inna bajka) to mój ulubiony język.

    Ostatnio zrobiłem 2 projekty - na Javie (100 tys linii kodu i 50 tys linii kodu). Oba systemy są backendowe - żadne historie webowe. Oba też są w zwykłym Java SE pisane (żadne JEE).
    Jeden z nich robi koło miliona transakcji bazodanowych per dzień (to taki mój komentarz, że Java niby tak wooolna jest - jak twierdzisz ;] ).
    A korzystam np. z Hibernate, Log4j, c3p0, commons-collections, commons-lang, fastutil, guice, junit - rzekłbym standardowy zestaw JARów javowych.

    pokaż komentarz
    Adaslaw
  • Adaslaw 0  

    @Sh1eldeR
    Ale ja Linusa bardzo szanuję :)

    Ale upieram się: dla mnie ktoś piszący w C to laaaaama ;]

    A propos Linusa i języka C i C++:
    W sieci jest słynny flamewar w Którym brał udział Linus ;]
    http://thread.gmane.org/gmane.comp.version-control.git/57643/focus=57918
    W wątku tym Linus uparcie twierdzi, że C++ się do niczego nie nadaje ;]
    Tego dnia Linus w moich oczach bardzo wiele stracił ;]

    pokaż komentarz
    Adaslaw
  • scotty -1  

    @Sh1eldeR
    > Nie -- on od razu rzuci się do jQuery i zwiększy jej rozmiar nie o 50 linijek, tylko o powiedzmy 10 plus... kilkadziesiąt KB na samą bibliotekę.

    Od kiedy google hostuje jquery ( http://code.google.com/intl/pl/apis/ajaxlibs/documentation/#jquery ) wrzucam ją bez bólu kiedy tylko potrzebuję. Skoro nie żre mojego transferu i robi to co potrzebuję, na dodatek jest spora szansa, że u klienta już jest a po pierwszym requeście napewno będzie to czemu nie.

    pokaż komentarz
    scotty
  • Sh1eldeR 0  

    @Adaslav:
    "Co to jest Java webowa?"

    Domyśl się z kontekstu mojej (krótkiej) wypowiedzi. Albo całej rozmowy podpiętej do posta o PHP-ie. Dasz radę wykombinować, co miałem na myśli!

    Backendu nie skomentuje, bo tutaj to mi się też całkiem przyjemnie i skutecznie Javy używa. Padło jednak pytanie o języki typu PHP, a więc -- jak się domyślam -- do tworzenia aplikacji webowych (intra/internetowych i w dodatku wypluwających (X)HTML-owe witryny). Na tym polu nie mam dobrych doświadczeń z Javą.

    "dla mnie ktoś piszący w C to laaaaama ;]"
    Ależ nie widzę tu najmniejszego problemu. Dla mnie możesz się upierać, że każdy piszący w C potrafi transformować się w różowego, latającego słonia-robota-ninję.

    Dzięki ta tego flamewara! O dziwo chyba go nigdy nie czytałem! Jeśli chodzi o samego Linusa, to jego podejście typu "mam zawsze rację" + brak szacunku do tych, co się z nim nie zgadzają, akurat mi się bardzo nie podobają. Nie lubię takiej postawy, choć przynajmniej jego wypowiedzi nie są nudne ;). Ten flamewar kompletnie mnie nie dziwi.

    @scotty:
    To nie zawsze rzeczywiście działa. Jestem za tym, żeby linkować do repozytorium Google, ale czy Twoim klienci (końcowi) rzeczywiście mają to zbuforowane... na to pytanie sam już sobie musisz odpowiedzieć.

    pokaż komentarz
    Sh1eldeR
  • Adaslaw 0  

    @Sh1eldeR
    W temacie "web-a" się nie wypowiadam, bo się na tym nie znam ;]
    A Javę lubię nie dlatego, że to Java, tylko dlatego, że jest to jeden z języków, po których źródłach jest łatwa i wygodna nawigacja (dzięki zaawansowanym środowiskom IDE). Łatwo wyszukać referencje do danych bytów - na ten przykład.
    Dlatego do takich języków jak Python i Ruby podchodzę wciąż z ostrożnością i jakoś nie mogę się zmusić, aby się ich (Python i Ruby) w końcu nauczyć ;]

    pokaż komentarz
    Adaslaw
  • Adaslaw 0  

    @RudeDude
    Co powiesz o JBoss Seam?
    Kiedy czytam dokumentacje do Seam'a - wygląda miodzio.
    Od razu sygnalizuję: nie znam się na frameworkach webowych. Znam się (jedynie) na Java i Hibernate. Ciekaw jestem Waszego zdania.

    pokaż komentarz
    Adaslaw
  • Pavlus -2  

    żatki - przepraszam pomylilem sie.

    pokaż komentarz
    Pavlus
  • Pavlus 0  

    frameworki to zlo tego swiata, a wracajac do tego artykulu to rozwiazania ze switchami sa zazwyczaj bezpieczniejsze, w kazdym razie i tak zadko je stosuje :D

    pokaż komentarz
    Pavlus
  • Adaslaw 0  

    @Pavlus
    Rzadki to jest twój komentarz.

    pokaż komentarz
    Adaslaw
pokaż 

Wykopali i zakopali (49 / 29)