• O stronie
  • Projekty
    • CodeIgniter IMG
    • CodeIgniter minify
    • Simple FAQ
  • Narzędzia
    • GeoIP
    • konwerter WebP
    • Tools
    • Sprawdź szybkość strony
  • Linkownia
  • Kontakt
blog web developera

blog web developera

  • O stronie
  • Projekty
    • CodeIgniter IMG
    • CodeIgniter minify
    • Simple FAQ
  • Narzędzia
    • GeoIP
    • konwerter WebP
    • Tools
    • Sprawdź szybkość strony
  • Linkownia
  • Kontakt

Jak to się stało, że ciągle wracam do PHP i CodeIgniter

Jako entuzjasta nowych technologii, zawsze “sprawdzam” wszystkie nowinki w postaci node.js, frameworki PHP Laravel czy Phalcon PHP. Wszystko ładnie, pięknie – wszystko jest szybsze i lepsze niż jego poprzednicy. Niektóre, nawet pozwalają na niepisanie kodu, a używanie generatorów.

Niestety większości przypadków nowe technologie nie są wcale lepsze. Weźmy na przykład node.js – super szybkie, super łatwe (przecież to JavaScript) ! Milion dostępnych bibliotek. Problemy pojawiają się jednak jak trzeba napisać coś bardziej złożonego, gdzie nad projektem pracuje więcej niż jedna osoba. Złożoność kodu i piekło odwołań powodują że każdy projekt staje się koszmarem. Ilość zagłębień w metodach i odwołań – emitery, callback – dramat. Łatwo zginać w kodzie a jeszcze trudniej znaleźć problemy jak już się pojawią.

OK. Może więc nie szukajmy za daleko, skupmy się na PHP – phalcon, Laravel – dwa super fajne frameworki. Zasadniczo koncept wszędzie jest podobny – MVC – modele, widoki klasy, wsparcie dla Composer i cheja. Sprawdziłem oba – phalcon jest super fajny – szczególnie do budowania API typu REST i microframeworków – przepięknie proste modele, ładne konstrukcje. Gdzie leży problem? Po pierwsze trzeba skompilować moduł, po drugie – brakuje mi czystej struktury katalogów – a próbowaliście obsługiwać CLI w phalconie ?

Może więc Laravel – framework dla rzemieślników. No nie do końca – rzemieślnik dobiera sobie sam narzędzia, którymi pracuje – tutaj mamy Blade, Eloquent ORM i kilka innych rozwiązań które nie do końca dają mi tą swobodę. Np generatory z linii poleceń. Czy naprawdę nie można się bez tego obejść ? Oczywiście – można wymienić na coś innego, tylko… ja lubie jak działa prosto pudełka. Bez dostosowywania przez godzinę moich ustawień.

Dlaczego więc jak bumerang wraca CI ? Bo jest proste, bo działa – bo ma wszystko co trzeba po rozpakowaniu i nie trzeba kombinować za dużo. Zestaw solidnych bibliotek na których można polegać i aktualizacje nie pojawiają się raz na tydzień. Zasadniczo nie jestem zmuszony do niczego. Mogę korzystać z Active Record, albo nie. Mogę używać PHP w widokach, a mogę podpiąć Smarty, albo inne rozwiązanie. A linia poleceń ? Nigdy nie była prostsza – php index.php controller metoda – działa ?

Aby skończyć ten przydługi wywód dodam tylko, że CI nie umarł, wciąż żyje – i żyć będzie bardzo długo. Bo to zdrowy, solidny framework i nie należy się go bać. Należy go szanować…

Summary
22/11/2014 CodeIgniter JavaScript PHP Programowanie
10 komentarzy

testowanie kodu PHP online - TehPlayground

PHP The Right Way

  1. Marek 23/11/2014 o 15:08

    Jeśli lubisz eksperymentować to spróbuj golang. To jest na prawdę wypas. Jest też wydajniejszy od nodejs-a. Posiada statyczne typowanie (znacznie lepsze od tego które znamy z c++ czy javy) którego nie odczuwasz i masz lekkość pisania kodu z dynamicznego języka. No i projekt kompiluje się na jedną binarkę bez zależności. Kompilować można kros-platformowo. Czyli że na linuxie przykładowo skompilujesz sobie binarkę na windowsa, solarisa czy cokolwiek tam chcesz 🙂

    Jeśli tego spróbujesz to już nigdy więcej nie wrócisz do php 😉 Tak było w moim przypadku przynajmniej 🙂

  2. Slavomir J 23/11/2014 o 23:46

    Spędziłem trochę czasu z golang ostatnio, faktycznie jest bardzo przyjemny i wygodny do pisania. Dużo bardziej zorganizowany niż node.js.
    Czy jest w stanie zastąpić PHP ?

    Nie sądze – w PHP możesz naprawdę szybko prototypować i budować aplikacje które uruchomisz praktycznie wszędzie i na każdym sprzęcie. Go lang wymaga trochę więcej pracy żeby cokolwiek przygotować – oczywiście dając w zamian super wydajność.

    W go lang napisałem kilka “usług” takich jak SMTP relay, prosty serwer do przechwytywania wszystkich emaili, oraz bramkę do przekazywania danych do innego API via SOAP. Z większych tematów – nie było potrzeby.

  3. Marek 24/11/2014 o 19:23

    > Nie sądze – w PHP możesz naprawdę szybko prototypować i budować aplikacje które uruchomisz praktycznie wszędzie i na każdym sprzęcie. Go lang wymaga trochę więcej pracy żeby cokolwiek przygotować – oczywiście dając w zamian super wydajność.

    Nietrafiony argument. W php możesz stworzyć bardzo szybko bardzo zły kod. W go, możesz stworzyć bardzo szybko bardzo dobry kod. Statyczne typowanie niesamowicie ułatwia pracę. Kompilator szybko zwraca informację o miejscu wystąpienia błędu. Dodatkowo obsługa błędów poprzez wartość zwracaną z funkcji to coś czego zawsze mi brakowało. Znacznie upraszcza się “flow” programu. Dodatkowo możliwość zwrócenia wielu argumentów z funkcji pozwala na łatwą refektoryzację kodu (tak jak statyczne typowanie zresztą też).

    Go też uruchomisz na każdym sprzęcie. Kompiluje się w jedną binarkę bez zależności.
    W przypadku php już nie jest tak przyjemnie. Trzeba się pozastanawiać która aktualnie flaga w php.ini powoduje wywalanie się świeżo przeniesionego skryptu na nowy serwer. Dodatkowo aktualizacje php są ryzykowne bo mogą łatwo wywalić istniejące oprogramowanie.

    W go jest takie narzędzie jak gofix. Jeśli zdarzy się że w przyszłej wersji w języku zmieni się coś co spowoduje utratę wstecznej kompatybilności kodu napisanego w starszej wersji, to po uruchomieniu tego narzędzia, kod jest automatycznie konwertowany do nowszego dialektu.

  4. Slavomir J 24/11/2014 o 23:36

    I tak… i nie 🙂 W każdym języku możesz zrobić gówniany kod – zależy od tego jakim programistą jesteś.

    Facebook jest zrobiony w całości w PHP (a właściwie to już w HACK), PayPal korzysta z node.js a Dropbox przepisał Pythona na Golang – więc każdy język ma swoje zastosowania i entuzjastów.

    Nie zrozum mnie źle – uwielbiam Go – jest bardzo czysty, klarowny i nie widziałem lepszej implementacji asynchroniczności, ale nie potrzebujesz sportowego auta, żeby pojechać na zakupy do biedronki. Możesz pojechać np. autobusem…

  5. Marek 25/11/2014 o 06:28

    Jasne. Twój wybór 🙂

    W przypadku złego programisty i tak mniej gówniany kod zostanie napisany w “go” (bo mu na wiele rzeczy nie pozwoli).

    Mega fajne jest to że bardzo dużo pracy którą normalnie musisz poświęcić w dynamicznym języku programowania na poszukiwanie “głupich” błędów, jest przerzucona na kompilator. Dzięki czemu można się skupić na algorytmie a nie na tym czy w którymś miejscu projektu funkcja została wywołana z czterema a nie trzema argumetami.

    To jest jak dla mnie niesamowite ułatwienie 🙂

    Rozbudował bym Twoje porównanie. Go jest jak sportowe auto i limuzyna jednocześnie (z jacuzzi w środki) 🙂

  6. Slavomir J 25/11/2014 o 06:31

    Zgadzam się – dużo trudniej przegapić coś w Go niż w PHP. Trzeba dużo więcej “myślenia” włożyć w napisanie czegokolwiek, co powoduje że pisanie jest wolniejsze, ale efekty są lepsze.

  7. Paweł P. 25/11/2014 o 18:09

    I Ja Kohane lubię 😉

  8. Marek 25/11/2014 o 19:34

    Chociaż jak dla mnie to szybciej się pisze kod w go 🙂 Dobra, już nie ciągnę tematu dalej 🙂

  9. Robert 17/12/2014 o 14:04

    polecam Laravel

  10. Maciek 28/08/2016 o 20:28

    Polecam zobaczyć Yii framework, fajny i prosty.

Dodaj komentarz Anuluj pisanie odpowiedzi

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.

Szukaj

Kategorie

  • Ogólnie
    • Humor
    • Pamiętnik malkontenta
  • Programowanie
    • CodeIgniter
    • CSS
    • GoLang
    • JavaScript
    • PHP
  • Przydatne
    • CMS
    • Przedruki
  • Sprzęt
    • Mac
    • Serwery

Reklamy





Digital Ocean

Popularne wpisy

  • Lista publicznych API
  • HP LaserJet 1018 i Mac OS X
  • Dowcipy o Francuzach
  • Jak używać SCP
  • pfSense kilka smutnych wniosków
  • Szybki podgląd PSD, AI i EPS
  • Centralka VoIP czyli Asterisk i FreePBX
  • Tworzenie map obrazów
  • Logowanie bez hasła przez PuTTy
  • Jak sprawdzić prędkość WiFi na Mac
Dumnie wspierane przez WordPressa | Motyw: Neblue by NEThemes.