Niezalogowany [ logowanie ]
Subskrybuj kanał ATOM Kanał ATOM

Autor wpisu: Piotr Śliwa, dodany: 20.10.2014 22:17, tagi: php

Programista nie małpa, czytać musi. Wrzucam listę książek z niezwykle prestiżowym, moim certyfikatem jakości. Nie zamieszczałem tytułów, których nie przeczytałem, a wiem że są świetne i są na mojej liście do przeczytania. Kolejność nie ma większego znaczenia. Jeśli chcesz dodać coś od siebie, to są komentarze pod tym wpisem.

Programowanie i projektowanie obiektowe

Refaktoryzacja

Dobre praktyki i samorozwój

Wzorce projektowe

Testowanie

Języki programowania

  • Javascript: mocne strony - fajna książeczka opisujące tą jasną stronę Javascriptu - jeśli piszesz coś w js, to musisz ją przeczytać
  • Java: Podstawy - dobra książka do rozpoczęcia nauki Javy
  • Java: Techniki zaawansowane - uzupełnienie powyższej pozycji
  • Java Efektywne programowanie - świetna książka na temat dobrego kodu napisanego w Javie
  • Scala od podszewki - nie jest to książka o podstawach Scali, a o jej bardziej zaawansowanych mechanizmach. Warto przeczytać gdy chce się poznać Scalę, zapewniam że głowa nie raz będzie swędziała podczas lektury ;)

Programowanie funkcyjne

  • Real-World Functional Programming - świetna książka o programowaniu funkcyjnym. Warto przeczytać aby na nowo znaleźć się w piaskownicy. Do książki drukowanej jest prezent - wersja elektroniczna w formatach pdf, epub i mobi - lubię to! Nie należy zrażać się przykładami, które są w C# i F#. Tak swoją drogą, F# wygląda bardzo ciekawie ;)
  • Scala od podszewki - w tej książce jest również wiele o programowaniu funkcyjnym w bardziej zaawansowanym wydaniu

Bezpieczeństwo

  • The Tangled Web - porusza tematy bezpieczeństwa aplikacji webowych oraz protokołu http. Autor jest Polakiem, więc jest również polskie wydanie
  • Cisza w sieci - o bezpieczeństwie sieci i protokołów
  • Metasploit. Przewodnik po testach penetracyjnych - daje wyobrażenie na temat ogólnego bezpieczeństwa systemów informatycznych, w tym aplikacji webowych. Dobre wprowadzenie do Metasploit

Narzędzia

  • Pro Git - świetny podręcznik git, dostępna darmowa wersja online, darmowa anglojęzyczna wersja mobilna oraz darmowa polskojęzyczna wersja mobilna (ale trzeba sobie samemu zbudować z repozytorium na githubie)

Autor wpisu: matipl, dodany: 29.09.2014 19:41, tagi: php

PHPers 3city

Za chwilę październik i przed nami 2 spotkania/konferencje w Trójmieście, na które moim zdaniem warto się wybrać.

Już 1 października odbędzie się powakacyjny tech.3camp w Gdyni. Uczestnictwo jak zwykle darmowe, ale wymagana jest wcześniejsza rejestracja. Przed nami 4 prelekcje. Prelegenci poruszą tematykę Big Data (Artur Senk, OKE Poland), testowania (Marcin Maj, Kainos) oraz komunikacji między developerami a managerami produktu (Bartek Gatz, Spartez). Będzie też o tym, jak programista może rozkręcić swój biznes (Piotr Macuk, Konfeo.com).

Miejsce: PPNT (Gdynia) Termin: 1.10.2014 18:00 Rejestracja: https://tech3camp1pazdziernika.konfeo.com

Natomiast 17 października zapraszam na kolejne spotkanie organizowane przez PHPers 3city. W planie są 3 prelekcje. Michał Łukaszewski opowie nam „Jak naprawić kod, żeby nie zepsuć aplikacji, czyli kilka słów o refactoringu” (mocno polecam). A Maciej Iwanowski pokaże „Współbieżność w ekosystemie PHP”. Trzeci temat to jeszcze zagadka.

Miejsce: GPNT (Gdańsk) Termin: 17.10.2014 18:00 Rejestracja/info: wydarzenie na FB

PS: A osobom mieszkającym w Warszawie polecamy Aulę Polskę, najbliższe spotkanie 9 października.

Autor wpisu: Piotr Śliwa, dodany: 27.09.2014 00:15, tagi: php

Poprzedni mój wpis objaśniał podstawy programowania funkcyjnego, tym razem zajmę się wzorcem projektowym, który wywodzi się z języków funkcyjnych i jest szeroko stosowany w Haskellu, Scali, czy F#. Mowa tutaj o type Option. Inne nazwy tego patternu to Optional (java8), czy Maybe (Haskell) - podaję jabyście chcieli coś na ten temat wygooglować.

Nadmiar ifów w kodzie nie jest dobry, jest wiele sposobów które pozwalają zredukować ich liczbę. Takimi sposobami są niektóre wzorce takie jak State, czy NullObject. Wzorzec Option Type w php ma ograniczone zastosowanie, ale mimo to w wielu przypadkach jest użyteczny.

Przykład

Może na początek przykład, który będzie nam towarzyszył do końca artykułu. Jest on z grubsza zaczerpnięty z kodu produkcyjnego, więc jest jak najbardziej praktyczny i nie modeluje zoo.

Na początek zarysuję trochę dziedzinę problemu oraz sam problem. Mamy kanały, które agregują wiadomości, a każdy kanał należy do grupy kanałów.

ChannelGroup 1----* Channel 1----* Message

Grupa kanałów m. in. określa, czy w kanałach które do niej należą jest aktywne "zaawansowane targetowanie wiadomości" (cokolwiek to znaczy - dla przykładu nie jest to ważne). Mamy tablicę danych, w których prawdopodobnie jest wartość pod kluczem "channelId", chcemy dodać coś do zapytania z Doctrine2 (np. join lub warunek where) z id grupy, gdy grupa podanego kanału ma włączone zaawansowane targetowanie.

W powyższym opisie występują słowa takie jak: "prawdopodobnie", "gdy", więc kilka ifów będzie niezbędnych.

Przykład kodu w stylu imperatywnym:

if(isset($data['channelId'])) {  
    $channel = $this->channelRepo->find(data['channelId']);

    if($channel !== null) {
        $group = $channel->getGroup();

        if($group->hasAdvancedMessageTargeting()) {
            $qb->...;//Dodanie jakiegoś warunku do zapytania
        }
    }
}

3 ify, w dodatku zagnieżdżone. Ten kod nie wygrałby konkursu piękności...

Ale działa.

Czy ten kod da się zapisać nie używając ani jednego wyrażenia warunkowego (ifa lub operatora trójkowego)? Tak, za pomocą typu Option.

Czytaj dalej tutaj (rozwija treść wpisu)
Czytaj dalej na blogu autora...

Autor wpisu: Kamil Adryjanek, dodany: 18.09.2014 21:19, tagi: javascript

ExtJS5 Ostatnio szukałem tutoriala, który opisywałby w prawidłowy sposób nadpisywanie komponentów ExtJS5, niestety nie udało mi się znaleźć nic ciekawego – może z wyjątkiem dobrego artykułu na temat nadpisywania klas w ExtJS4, niestety zastosowane rozwiązanie nie działało w ExtJS5. Ponadto, nie znalazłem również właściwych informacji w oficjalnej dokumentacji ExtJS, dlatego w tym artykule w kilku zdaniach postanowiłem opisać jak to powinno wyglądać.

Post Rozszerzanie i nadpisywanie komponentów ExtJS5 pojawił się poraz pierwszy w Kamil Adryjanek.

Autor wpisu: Kamil Adryjanek, dodany: 15.09.2014 15:13, tagi: javascript

ExtJS5Recently i was looking for tutorial about proper way of overriding ExtJS5 class methods but unfortunately i haven’t found anything interesting – maybe except one good tutorial about overriding in ExtJS 4 but for me that solution was not working in ExtJS 5. I have also not found sufficient information about proper way of overriding in ExtJS docs, so i decided write a few words of explanation.

Post Extending and Overriding ExtJS5 components pojawił się poraz pierwszy w Kamil Adryjanek.

Autor wpisu: Łukasz Socha, dodany: 11.09.2014 19:18, tagi: css

Kodując wszelkiego rodzaju formularze zapewne nie raz spotkałeś się z problemem o stylowania pól typu radio i checkbox. Nie da się ich stylować za pomocą CSS tak prosto jak pola tekstowe, ale wraz z powstaniem CSS 3 powstał pewien prosty sposób :)

Autor wpisu: Kamil Adryjanek, dodany: 08.09.2014 09:45, tagi: javascript

A couple of weeks ago Sencha has introduced new version of their flagship product: ExtJS 5. After “slow and heavy” ExtJS 4 this version is expected to be the best ExtJS release ever. In next few chapters i will try to explain you why.

Post Is ExtJS5 really so awesome? pojawił się poraz pierwszy w Kamil Adryjanek.

Wszystkie wpisy należą do ich twórców. PHP.pl nie ponosi odpowiedzialności za treść wpisów.