Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

Niskie progi PHP

Znacie najkrótszy kawał o PHP? Uwaga kawał:

Programista PHP
Koniec kawału.

Nie trzeba wiele polotu żeby wyskrobać echo „witaj użytkowniku” Tylko czy ktoś taki może już się nazywać programistą? Ja często tankuję samochód, a nawet czasem doleję oleju i płynu do spryskiwaczy, jednak mechanik ze mnie żaden. Podobnie z PHP – jest to język o tzw. niskim progu wejścia – co nie oznacza,że nie można w nim pisać całkiem fajnych aplikacji i posiadać umiejętności pozwalające nazwać się programistą przez duże P.

Skoro pokonaliśmy próg PHP to chodźmy po schodach w górę:)

Na początek wystarczy znajomość instrukcji echo – kilka innych i możemy budować pierwsze strony interaktywne. Dorzucimy bazę danych i można stworzyć już całkiem sporą aplikację. Ba! Można zrobić prawie wszystko! Tylko co z tego jeśli kod będzie wielki, wymieszany z HTML-em i będziemy wszystko pisać liniowo? Trzeba troszkę rozwinąć nasze umiejętności. Kolejnym krokiem niech będą funkcje i i rozbicie na pliki. O zgrozo! - pomyślał każdy, kto przedzierał się przez kod strony napisany na includach. Taka struktura jest sztywna i nie przejrzysta – dodatkowo includowanie kolejnych stron zaciemnia kod, mimo że można zachować porządek w takiej strukturze, często wprowadzanie zmian jest kłopotliwe, nie wspominając o przenoszeniu fragmentów kodu. Także zasięg zmiennych jest zbyt duży,co może prowadzić do poważnych błędów. Myślę, że właśnie przez to, że wiele stron jest pisanych w wyżej opisany sposób, PHP zyskał taką złą sławę.
Można jednak iść dalej i poprawiać swój kod, wybierając programowanie obiektowe, które uporządkuje nasz kod php i zamknie zmienne w odpowiednich zakresach.

Zatrzymajmy się na chwilę i przypomnijmy jak działa serwowanie po internecie. W istocie jest to prosty schemat: przeglądarka wysyła żądanie, serwer zwraca odpowiedź i tak w kółko. W najprostszym podejściu przeglądarka żąda dokumentu php/html, a serwer go zwraca – wysyłany jest adres dokumentu, i otrzymujemy jego zawartość. Proste.
Struktura aplikacji oparta na adresach katalogów jest sztywna, a wprowadzanie zmian trudne – przydałoby się coś, dzięki czemu prościej i bardziej efektywnie wybieralibyśmy którą stronę otworzyć i nie musielibyśmy trzymać się przy tym struktury katalogów – to właśnie jest celem routingu. Żądanie odwołuje się do jednego pliku php który decyduje, jaką stronę wyświetlić i co w ogóle zrobić. Dzięki temu lepiej możemy zorganizować strukturę katalogów, umieszczać klasy w odpowiednich dla nich miejscach, prościej zorganizować adresy URL.
Żądanie, odpowiedź, żądanie odpowiedź, żądanie odpowiedź.....
I przeglądarka pięknie wyświetla stronki – no ale jak te stronki tworzyć? Za każdym razem kopiować nagłówek, stopkę i podmieniać środek?? Nie wydaje mi się żeby to było optymalne rozwiązanie.
O wiele lepiej będzie rozbić layout na kilka części np. foot, head, content i dołączać te części. Należy też oddzielić logikę od wyświetlania- to bardzo ważne żebyśmy mieli przejrzysty kod. Logikę wydzielimy do oddzielnych plików – nazwijmy je hmmmm.... może by tak kontrolerami?
Natomiast html niech nazywa się – no nie wiem,nie wiem.... Widok?

Przy czym widoki możemy tworzyć jako pliki php z includami, ale mogli byśmy skorzystać też ze smartów albo Twigów itp.- więcej w temacie może następnym razem.
Po tych zmianach schemat wygląda tak: żadanie-> główny plik PHP(decyduje które akcje wykonać) -› kontroler( przetwarza dane i przesyła wynik do widoku) -› widok wyświetla stronę.

Pod pojęciem „przetwarza dane” - kryje się jeszcze za dużo, bo oprócz tzw. logiki biznesowej znajduje się tu też interakcja z bazą danych, przez co nasz kod wymieszany jest z zapytaniami SQL i operacjami na rekordach bazy danych. Można te funkcjonalności rozbić i utworzyć coś, co będzie się zajmowało interakcją z bazą danych, a w kontrolerze zajmiemy się tylko logiką.
Byt odpowiedzialny za interakcję z bazą danych nazywa się Modelem – dzięki modelowi następuje odseparowanie części odpowiedzialnej za bazę danych od czystej logiki i zamiast w kontrolerze mieć „insert into dobre_komentarze ….” możemy mieć na przykład „$komentarze->dodajNowy(..”. Prawda że lepiej? Jeśli wydaje ci się to w tej chwili zbyteczne, to na pewno doceniłbyś takie podejście, w momencie wprowadzania zmian w aplikacji.
(Model View Controller to oczywiście nie mój wymysł tylko podstawowy wzorzec projektowy)

To dopiero wierzchołek tego, co „programista PHP” umieć powinien.
Aplikacja PHP mocno różni się od javy,c++ , c# czy innych – główną różnicą nie jest składnia języka, ale przebieg aplikacji.”Normalnie” po odpaleniu aplikacji rusza najczęściej main loop – pętla która reaguje na wszystkie zdarzenia i steruje przepływem aplikacji. Użytkownik kończy taką aplikację zamknięciem okna, lub w podobny sposób.W międzyczasie wszystkie utworzone obiekty, dane, i powiązania mogą być dostępne w pamięci komputera, i gubią się dopiero z końcem życia aplikacji. W PHP cały cykl zawarty jest pomiędzy żądaniem i odpowiedzią – nie ma nic więcej i nie ma „programu pomiędzy” wywołaniami, a mimo to ciągłość nawigacji po stronach musi być zachowana. Pociąga to za sobą szereg konsekwencji, jak konieczność używania sesji, ciasteczek, ciągłego kreowania obiektów itd. Jest to czynnik, który potrafi komplikować tworzenie aplikacji. Kolejnym takim czynnikiem jest jej dostępność – najczęściej aplikacja dostępna jest z wielu komputerów i dla każdego, przez co narażona może być na więcej ataków niż plik exe siedzący na komputerze lokalnym. Także zakres działań użytkownika w tradycyjnej aplikacji jest bardziej ograniczony – np. jeśli aplikacja okienkowa posiada jeden guzik, to można tylko go wcisnąć, natomiast, jeśli aplikacja webowa posiada jeden guzik, to nadal można wysłać żądanie inne, niż naciśnięcie tego przycisku, które np. - podmieni wartość przekazywaną przez owy guzik.
O tych zagrożeniach także trzeba pamiętać.

Słyszałem opinię, że ktoś kto nie zna assemblera nie może nazywać się informatykiem, podobna opinia jest o programistach PHP- jeśli ktoś koduje w PHP nie może nazywać się programistą. Mimo, że nie chcę nazywać siebie programistą, to muszę z takimi opiniami się nie zgodzić.
Programista PHP nie ma łatwo- okazuje się, że często w jego gestii jest utworzenie schematu bazy danych, design i wszystko inne. Sam HTML, css i javascript to potężna ilość wiedzy, którą także trzeba posiadać.
Tworzenie aplikacji webowych to równie duże wyzwanie, co pisanie aplikacji okienkowych, mimo że zdaję sobie sprawę z ułomności php, to uważam że stosując dobre praktyki można tworzyć dobry kod i być Programistą PHP – już bez żartu.

P.S.
Jeśli będę miał trochę czasu to napiszę coś o Symfony 2.0 na którym pracuję od lipca i szerzej omówię dotknięte tu kwestie 

programowanie

Komentarze

0 nowych
  #1 11.01.2012 13:05

Jedna prośba - nie przedstawiaj MVP zamiast MVC podobnie jak to robi multum książek.
Na razie nie stwierdzam że to zrobiłeś, bo za wcześnie aby o tym mówić (z wpisu nie da się jednoznacznie wywnioskować :P)

Limak   6 #2 11.01.2012 13:20

Zgadzam się - gdy często mówię, że potrafię programować w PHP, to ludzie wyśmiewają mnie mówiąc, że to nie jest programowanie, że to śmieciasty język itp. Zgodzę się, że 90% ludzi mówiących że potrafi programować w PHP tak naprawdę klepie tak śmieciasty kod, że z krzesła można spaść.. Co nie znaczy, że ja tak robię. I właśnie to mnie najbardziej denerwuje w PHP - wymiatasz w PHP, a ludzie patrzą na Ciebie ogólnikowo i myślą, że "programujesz" tak jak dzieciaki z gimnazjum które odpaliły sobie kurs "php w 10 minut" i myślą, że umieją php, bo im pętla wypisująca 10 liczb kolejno zadziałała. Często też się mówi że np asp.net jest lepszy itp, bo są wzorce, jest narzucona obiektowość, a całość jest bardziej logiczna i spójna. W PHP też da się tak pisać - jest mnóstwo frameworków (jak np wspomniany przez Ciebie Symfony, czy ZF), ORM-ów (np propel czy doctrine), systemów szablonowych (np. wspomniany smarty). Ludzie, tego naprawdę się używa! Nie wiem dlaczego sporo ludzi myśli że nie i że (prawdziwi) programiści PHP klepią strukturalny kod, przemieszany z tagami html i zapytaniami sql w kodzie...

P.S.: Napisałeś, że PHP różni się od innych języków tym, że C++, java itp są zorientowane na zdarzenia, tzn jest main loop i są wykonywane różne akcje, a w php to jest po prostu przebieg programu, zawarty pomiędzy żądaniem a odpowiedzią - zgodzę się z Tobą oczywiście, lecz w PHP można "symulować" zachowanie programu znane z asp.net, czy innych języków typu java, czyli programowanie zorientowane na zdarzenia, korzystając z frameworka PRADO (http://www.pradosoft.com/).

Mifczu   12 #3 11.01.2012 13:23

Na php narzekają osoby które nie potrafią w tym języku programować tylko o tym nie wiedzą :) Ale z Javascript jest jeszcze gorzej, ktoś klepnie kilka akcji w jQuery i wydaje mu się, że zna ten język.

ttomas   11 #4 11.01.2012 13:28

Dziwny zbieg okoliczności :) wczoraj ustawiłem opis gg: jaki jest najkrótszy żart informatyczny, "programista php".
Używam PHP (w pomieszaniu z najróżniejszymi bibliotekami i frameworkami) do tworzenia aplikacji "okolicznościowych" które będą używane do pewnego czasu i mają spełniać konkretnie sprecyzowane zadanie. I tutaj niestety muszę odchodzić od dobrych praktyk pisania na rzecz szybkiego czasu realizacji, kod jest po prostu tragiczny :P - jeśli aplikacja spełnia swoją rolę i działa wystarczająco wydajnie to wszyscy są zadowoleni :). Myśl o pisaniu bardzo dużego projektu jest kusząca lecz nie wiem czy w takim obliczu nie wybrał bym innego języka.

  #5 11.01.2012 13:29

Żarcik na otwarcie, pierwsza klasa :)
Sam aktualnie dłubie w PHP i niestety jest dużo prawdy w artykule. Niski próg startu jest jednocześnie wadą i zaletą. PHP nie było by tak popularne gdyby nie to, z drugiej strony, mnóstwo projektów napisanych jest przeraźliwie źle "bo się da i zawsze tak pisałem".

Można np. jak Facebook pisać aplikacje w PHP i kompilować kod do C++

Limak   6 #6 11.01.2012 13:35

@Mifczu: otóż to! Ktoś kto twierdzi, że php jest śmieciaste, daremne, itp po prostu nie umie w nim pisać porządnie - fakt faktem, że w PHP bardzo trudno pisać ładny kod, który jest zgodny z jakimiś normami programowania, ale jest to możliwe, tylko trzeba umieć. Jak to kogoś przerasta, to sie przerzuca na C# zwykle.

Mifczu   12 #7 11.01.2012 14:11

@ttomas dużego wyboru nie ma a pod niemal każdym aspektem PHP okaże się najkorzystniejszy. Używając np Zend Framework-a kod aż prosi się by być ładny. Problem opinii programistów PHP nie leży w języku a w samych programistach. Przez to, ze łatwo jest nauczyć się podstaw PHP i poczuć się programistą sprawie, że wiele osób zaglądając do takiego kodu łapie się za głowę. I tak większość open source-owych projektów w PHP jest napisana tragicznie albo ma na sobie piętno PHP 4.x wszystko to składa się na to o czym napisał autor blogu. Nie dajmy się zwariować miejmy swój mózg i zamiast czytać opinie osób które są wątpliwym autorytetem starajmy się znajdować własną opinię. Wikipedia, Facebook większość Forów dyskusyjnych, blogów gdyby PHP było problemem ktoś by to zauważył i się z tego wycofał oraz oczywiście opisał dlaczego. A takie luźne komentarze są nic nie warte.

  #8 11.01.2012 14:22

PHP nie jest idealny i wiele mu brakuje, ale dobry programista PHP jest dużo lepszym programistą niż np. C#-owiec dla którego połowę roboty robi V-Studio. Miałem okazję porównywać programowanie w ASP.NET MVC do Zend Framework i doszedłem do wniosku, że w .NET jest po prostu łatwiej. A każdy kto śmieje się z PHP czy innego skryptowego języka jak np. Javascript ( który jest według mnie świetny ) nic konkretnego w tym nie pisał. Co do specjalistów Javy, którzy się tak wywyższają - spójrzcie w czym piszecie, język lat 90, toporny i bez polotu.

  #9 11.01.2012 14:30

Jak jeszcze istniał Polski Kateos developerzy wpadli na pomysł że nakładka na konsolowe narzędzie instalacji pakietów i aktualizacji napisać w php5 i gtk. Do dziś mam traumę, tak wolne to było.

Ale php fajny język, szybko się tworzy a dokumentacja kodu i komentarze to podstawa bo fakt wywnioskować później coś z kodu to tragedia szczególnie jak się np. do niego po pół roku wraca.

  #10 11.01.2012 14:32

PHP po prostu nic nie narzuca sam decydujesz czy piszesz ładnie czy brzydko. Skoro istnieje taki kawał to znaczy że wiekszość osób piszących w PHP to "programiści" a nie programiści.

PS. Sam pisałem brzydko do momentu poznania MVC i CI 2.1.0

soanvig   10 #11 11.01.2012 15:08

A tam, prawdziwego myślenia uczy Brainfuck. Fakt, że może troszkę mało czytelny, ale bardziej elementarny od Assemblera :D Ja utknąłem na miejscu gdzie musiałem zrobić if-a. Masakra xD

soanvig   10 #12 11.01.2012 15:09

A co sądzicie o Rubym? Ostatnio w nim trochę piszę, specem nie jestem, ale ogarniam względnie proste rzeczy.

L337 Crew   6 #13 11.01.2012 16:32

Ja wiem czy pojęcie "programista PHP" jest takie krzywdzące dla programistów obracających się w środowiskach innych języków? Kiedyś była moda na opisywanie znajomości "języki programowania: HTML bdb+, PHP db." Wówczas krytykowano powagę HTMLa.

Jeżeli uznamy PHP prostym językiem, zgodzę się. Jest bardziej user-friendly niż wiele innych. Zgodzę się również z autorem wpisu, jako że budową i działaniem nie przypomina tradycyjnych j. programowania. Ale prymitywem bym go nie nazwał, chociażby zważając na fakt obecności w zdecydowanej większości serwisów WWW.

Niestety problem właściwej nomenklatury istnieje od dawna. W ogłoszeniach poszukują np. Informatyka do stworzenia strony www. Najłatwiej uciec od tego używając pojęć Web Developer, Web Designer czy programista aplikacji internetowych.

Druedain   14 #14 11.01.2012 18:17

A ja powiem, że dawno nie widziałem większej głupoty niż twierdzenie, że informatyk musi znać Asemblera. Informatyk tak na prawdę nie musi wiedzieć jak wygląda komputer, kiedy jest np. świetnym twórcą algorytmów. Nie trzeba znać się na wszystkim. Nie twierdzę również, że ideą bycia informatykiem jest umiejętność tworzenia świetnych algorytmów. Po prostu Asembler jest domeną programistów, a nazywanie programistów informatykami czasami nie jest najlepszym pomysłem. Abstrahując od tego stwierdzenia, najbardziej mnie boli jak ktoś mnie prosi o zpiracenie Windowsa i naprawienie komputera, który się nie włącza bo ktoś słyszał, że studiuję informatykę…

O PHP niestety nie mam żadnego pojęcia :( Jak dotąd jeszcze się nie spotkałem z nauczaniem tego języka, a samemu nigdy nie byłem bardziej zainteresowany tworzeniem stron. Słyszałem za to, że Ruby miał byś następcą PHP. Dobrze piszę? W każdym razie z nauczaniem Ruby'iego się już spotkałem, choć sam z tego nie skorzystałem.

Jeszcze w kwestii PHP… Przerażało mnie zawsze dynamiczne typowanie. Jest to świetne do robienia sztuczek, ale nie wyobrażam jak można w PHP pisać większe systemu bez nadmiaru pracy służącej zabezpieczaniu systemu przed dziwacznymi błędami i problemami z debugowaniem.

Druedain   14 #15 11.01.2012 18:21

@L337 Crew Niedawno przeglądałem oferty pracy dla programistów i… większość dotyczyła PHP.

adpawl   7 #16 11.01.2012 18:34

To ja może z innej nieco perspektywy.
"Koszmarki" można tworzyć przy użyciu dowolnego języka - nie wyłącznie php.
Z ta obiektowością i frameworkami też bym uważał, ma to swoje zalety i ma pewne wady.
Przede wszystkim trzeba MYŚLEĆ, potrafić radzić sobie z problemami i umieć dobierać środki adekwatne do potrzeb.
Znam geniuszy, programistów przez duże "P", co stawiają cms'a czy zaprzęgają jakiegoś frameworka by zrobić 2-3 stronicową statyczną wizytówkę. To jak strzelanie do muchy z armaty - ale przecież to takie PRO. ;-p

Jeszcze inna bajka - stare, dobre "Jaka płaca, taka praca".
Jakość kosztuje! - a dzisiaj każdy chciał by mieć za darmo albo jak najtaniej.
-za grosze nie będziesz nikomu wymuskanych perełek trzaskał, chyba że nie masz co z czasem począć i możesz sobie pozwolić taką działalność charytatywną.

tfl   8 #17 11.01.2012 19:01

problemem php nie jest mozliwosc pisania strukturalnego i wynikajacego z tego powodu zanieczyszczenie kodu, tylko brak konsekwencji w nomenklaturze oraz dopychane na sile do jezyka paradygmaty.

  #18 11.01.2012 21:33

Ja od siebie dodam że z wpisu wynika iż autor sam mało wie o php :P
PHP może też świetnie sprawdzać się w roli aplikacji konsolowych. Toolsy do generowania kodu dla fw to nie nowość, a tworzy się je w php_cli. Kolejna sprawa - wspomnij łaskawie o asynchroniczności, pcntl, memcached , apc itd ;)
Dodajmy że w php pisze się nie tylko stronki dla userów ale również korporacyjne kombajny o których zwykły śmiertelnik nigdy się nie dowie, a to właśnie tam zaczyna się prawdziwa zabawa z algorytmami, wzorcami, mało popularnymi bibliotekami itd.

TheBlackMan   7 #19 11.01.2012 22:59

@Limak

[[[@Mifczu: otóż to! Ktoś kto twierdzi, że php jest śmieciaste, daremne, itp po prostu nie umie w nim pisać porządnie - fakt faktem, że w PHP bardzo trudno pisać ładny kod, który jest zgodny z jakimiś normami programowania, ale jest to możliwe, tylko trzeba umieć. Jak to kogoś przerasta, to sie przerzuca na C# zwykle.]]]

Zgadzam się w 100%. Narzekają na PHP najbardziej ci, którzy nie potrafią pisać trzymając się określonej wizji.

Jeżeli ktoś nie ma dyscypliny, to nic dziwnego, że wybierze język, który mu tą dyscyplinę narzuca, bo tak jest łatwiej. Nie zmienia to wcale faktu, że w PHP nadal można napisać tak strukturalnie piękną, użyteczną i wydajną aplikację, jak w którymkolwiek innym języku.

Tylko po co to robić, skoro można szybko i tanio śmiecić ? Tak niestety postępuje większość "programistuff php" i powstaje ten bajzel, który często się spotyka w bibliotekach napisanych w PHP.

TheBlackMan   7 #20 11.01.2012 23:03

PS.

Za to zdecydowaną zaletą PHP w porównaniu do innych języków, jest to iż dzięki niemu programowaniem zacznie interesować się więcej ludzi niż kiedyś.

A więcej ludzi interesujących się programowaniem = więcej programistów -> więcej bibliotek do zabawy -> większe możliwości ogółem -> więcej mocy dla nas wszystkich.

Nie wiem czy jest drugi taki język na sieci, do którego jest tyle CMSów, systemów, frameworków, przykładów i gotowców co do PHP.

meron11   4 #21 11.01.2012 23:18

Znam php dobrze, obiektowka, framework symfony 2(słabo), strukturalne w jednym palcu, i też powiesz że nie jestem programistą?
Ostatnio pisałem kilka aplikacji w perlu również, i jak umiesz php to perla bez problemu łykniesz.

Mifczu   12 #22 12.01.2012 07:46

@meron11 programowanie to nie tylko znanie składni, to również znanie wzorców projektowych stosowanych w danym języku różnych protokołów i formatów danych. Do tego dochodzą różne narzędzia dodatkowe do przetwarza i caschowania danych. Ważna jest też świadomość jak pisać nie robiąc w kodzie dziur które każdy pseudo h4ck3r wykorzysta by namieszać w serwisie. Jeżeli to wszystko znasz a do tego starasz się być na bieżąco ze wszystkimi nowinkami w świecie programowania to możesz o sobie powiedzieć, że jesteś dobrym programistą. Ale prawda jest, że jakiś tam programistą stajesz się pisząc pierwsze echo 'Hello World';

  #23 12.01.2012 10:27

@TheBackMan, @Limak
PHP jest smieciasty i jakos kodu nie ma tu nic do rzeczy, polecam od czasu do czasu wyjsc poza proste stronki i napisac cos co ma obslugiwac jednoczesnie np 50 serwerow, gwarantuje wam ze standardem bedzie error 500 bo php zwyczajnie nie bedzie wyrabial przy kilku tysiacach userach (dlatego np facebook ma duza czesc swojej platformy napisana w c/c++). Wada php jest jego baznadziejna wydajnosc, owszem obecnie powstaja kompilatory i inne cuda ale nie rozwiazuja one w ogole problemu (ot php dzieki temu dogania jakos konkurencje i dziala PRAWIE tak samo szybko).


"Nie wiem czy jest drugi taki język na sieci, do którego jest tyle CMSów, systemów, frameworków, przykładów i gotowców co do PHP."
tylko co z tego BlackMan? polowa tego to zwykly bubel, joomla nadaje sie do kompletnego przepisania bo wydajnosciowo to kpina (rowniez jakosc kodu) podobnie jest z php-fusion.


PHP samo w sobie nie jest zle ale nie mozna tego jezyka traktowac zbyt powaznie i ladowac na sile tam gdzie sie nie nadaje.


@phpowiec
troche bzudry piszesz, korporacyjne kombajny pisze sie w java/net, a powod tego jest prosty interacje na php sa po prostu za wolne

PS najsmutniejsze jest to ze nawet Ci, ktorzy uwazaja sie za specjalistow od php nie potrafia wydajnie korzystac z tego jezyka - szczerze ilu z was napisalo sobie w c/c++ rozszerzenie by odciazyc waskie gardlo zamiast na sile pakowac cache tam gdzie sie nie nadaje?

hiropter   10 #24 12.01.2012 10:48

PHP w cale nie jest złe - jeżeli ma się tylko głowę na karku i wie co chce się zrobić... Inna sprawa to jakość kodu. Tutaj zależy to tylko od samego programisty, bo jeżeli piszesz dobrze i czytelnie to wszędzie będziesz tak pisał, a jak nie to wiecie sami co z tego wychodzi...

Dobrze, że także ktoś z przedmówców poruszył temat ceny do jakości. Często się przecież zdarza, że strona wizytówko-wa jest zrobiona jest jakimś "wypasionym" framework'u, który ni jak ma się do tego co można było zrobić w kilku plikach połączonych zwykłym includem albo nawet w zwykłym HTML - jak kto woli. Nie wspomnę już tutaj o zamówieniach na kwoty 250 zł, które omijam szerokim łukiem - łosi szukajcie gdzie indziej...

hiropter   10 #25 12.01.2012 10:56

@ria.dev (niezalogowany)
"(...)szczerze ilu z was napisalo sobie w c/c++ rozszerzenie by odciazyc waskie gardlo zamiast na sile pakowac cache tam gdzie sie nie nadaje?(...)"
Przyznam się, że ja nigdy i w sumie z prostej przyczyny - aplikacja ma być uniwersalna, i nie wymagać kombinowania jak koń pod górę, bo ile serwerów (nie liczących tych poważnych klientów, którzy inwestują środki we własną infrastrukturę) jest w stanie wybrzdąkać na zwykłym HOME czy NAZWIE by ich rozszerzenie było dostępne dla ich aplikacji?

Co do reszty to masz rację... Większości CMS (znienawidzona przeze mnie Joomla jest tu na pierwszym miejscu) nie jest w stanie obsłużyć dużej liczby użytkowników, nie potrzebując przy tym sporego zapasu mocy na serwerze.

  #26 12.01.2012 11:30

@ria.dev
W java/net pewnie też, my pisaliśmy w php i spisywał się świetnie.

Sidhmor   7 #27 12.01.2012 11:46

Od ponad roku prowadzę swoją mikro firmę. Realizuje zwykle niewielkie projekty, chociaż coś większego też się nawinie. Szczerze mówiąc nie wyobrażam sobie na dzień dzisiejszy kodowania w czymś innym jak PHP. Jest to na tyle powszechne i uniwersalne narzędzie, że dzięki niemu mogę zrealizować praktycznie każdy projekt internetowy bez zbędnej gimnastyki.

W PHP można stworzyć naprawdę dobre rozwiązania, jednak trzeba poświęcić naprawdę wiele czasu na dobre opanowanie nie tylko samego języka, ale tez wielu frameworków, wzorców projektowych oraz wielu zagadnień z dziedziny bezpieczeństwa.

Z PHP może łatwo zacząć, ale trudno się rozwijać. Jedno jest pewne - czasem należy napisać coś w innym języku, chociażby dla tego żeby wyrabiać dobre nawyki, bo w PHP, ze względu na elastyczność, naprawdę trudno tworzyć kod dobrej jakości :-)

  #28 12.01.2012 12:26

@hiropter
niestety nie uzywam hosting, praktycznie wszystko co pisze zwykle dziala na przygotowanym serwerze, odpowiednio zoptymalizowanym do konkretnego softu a mimo to i tak jestem czesto zmuszony ratowac modulami do php by aplikacja byla w miare wydajna


" Jest to na tyle powszechne i uniwersalne narzędzie, że dzięki niemu mogę zrealizować praktycznie każdy projekt internetowy bez zbędnej gimnastyki. "
gwarantuje ci ze nie jestes, napisz serwis spolecznosciowy, ktory docelowo ma miec polowe uzytkownikow facebook, nie ma mozliwosci napisania w czystym php takiej aplikacji by dzialala szybko i stabilnie, podobnie jest z web-CRM, php wysiada gdy zaczyna miec doczynienia z bazami 50GB+ (przy crmach to norma)

Druedain   14 #29 12.01.2012 14:33

Nie wiem, kto wspomniał, że zaletą jest możliwość programowania na różne sposoby, ale do prawdy nie wiem jaka w tym zaleta. Tak np. Java nie pozwala na zbyt wiele inwencji w tym względzie, a i tak tworząc program trzeba ustalać jednolity sposób układania kodu, żeby po złożeniu wszystko było czytelne i sensowne…

Druedain   14 #30 12.01.2012 14:36

@ria.dev Pochwal się co to ma być! G+ nie ma chyba 10% tego co FB, a wy oczekujecie pół miliarda… Chyba, że piszesz o G+, bo to na razie chyba jedyna realna konkurencja :D

mordesku   8 #31 12.01.2012 15:20

ogólnie jeśli chodzi o szybkie pisanie fajnych aplikacji w przejrzysty sposób. To da się, osobiście przygotowałem sobie mini (5 klas, 6 plików i 4 foldery + Propel do baz danych) silnik w konwencji mvc, oczywiście wszystko obiektowo. Silnik leży sobie bezpiecznie w repo, tworząc aplikacje, pobieram repo, eksportuje i w kilka minut mam naprawdę fajną aplikacje i przejrzysty prawie jak łza kod.

Frankfurterium   10 #32 12.01.2012 21:18

Z niektórych komentarzy wynika, że PHP jest dobry, bo jest znany i używa go dużo osób - taka Paris Hilton języków programowania ;-)


A na poważnie - w prawie wszystkim można napisać prawie wszystko, więc pisanie o najlepsiejszości konkretnego ma średni sens. PHP, Python, Java, Ruby, ASP, whatever, dopóki umiejętności (bo to one częściej stanowią barierę) pozwalają napisać konkretną aplikację.
Osobiście sądzę, że istnieją ciekawsze i ciekawiej rozwijane języki do aplikacji webowych, ale przecież nie będę nikogo nawracał...

dav4   4 #33 15.01.2012 20:32

Ja bawię się php, ale nie nazywałem siebie programistą i po przeczytaniu tego mądrego wpisu, wiem że przez długi czas jeszcze siebie tak nie nazwę ;)

dr.boczek   8 #34 16.01.2012 08:08

to samo można powiedzieć o programiście C#

  #35 16.01.2012 08:53

Ja muszę z dumą(!) stwierdzić że pracuję jako programista PHP i bardzo mi z tym dobrze. I tak jak ktoś wyżej napisał - większość aplikacji internetowych jest napisana w tym języku, oczywiście zawarcie skryptów w JavaScript / jQuery to dodatkowe "fajerwerki" dla strony. Lepszym żartem jest wlaśnie "programista HTML" jak niektórzy o sobie mowią.

Co do frameworków MVC to polecam CakePHP - tworzenie aplikacji jest mega proste i szybkie. Na rozmowie kwalifikacyjnej miałem do napiania aplikację do tworzenia i obsługi BLOGA. Miałem na to pół godziny. Zadanie przy CakePHP wykonałem w jakieś.. 20 min.

soanvig   10 #36 16.01.2012 17:07

W Railsie da się w 30 sekund ;D Potem własne drobne dodatki i poprawki, razem około 5 minut ^^ No, ale własne to to zbytnio nie jest.

maroogaro   1 #37 22.01.2012 13:00

Szkoda tylko ze większość z wypowiedzi to powtarzanie tego co ktoś gdzieś usłyszał bez uzasadnienia i zastanowienia. PHP jest bardzo szybki. Napisany jest w C i działa z jego prędkością, ograniczoną przez dostęp do plików tekstowych z kodem, połączeniem z bazą danych oraz samym przekazaniem wyniku do serwera www.

Myślę że i tak większość z was zaraz napisze ze to nie prawda...

soanvig   10 #38 24.01.2012 23:03

Bo będzie wolniejszy od C. Gdybym teraz w PHP napisał język programowania o nazwie "Maniuwajcha", w nim stworzył język programowania o nazwie "ŁapMakrela", to każdy język będzie interpretowany przez poprzedni, przez co coraz wolniejszy. Czyż to nie logiczne?

soanvig   10 #39 24.01.2012 23:04

Na tej zasadzie każdy język kompilowany powinien mieć tą samą prędkość, bo wszystkie parsowane są do assemblera.

soanvig   10 #40 24.01.2012 23:05

Czyż nie? Dlatego Twoja teoria jest błędna :)

maroogaro   1 #41 29.01.2012 20:20

FCGI to program w C, który wykonuje nasze pliki PHP (pod windowsem nazywa się inaczej). Działa z prędkością C i tu już nic nie wymyślisz. On nie kompiluje plików PHP tylko je wykonuje.

Wyobraź sobie program w C który otwiera plik tekstowy szuka określonych znaczników i na tej podstawie wykonuje pewne operacje z parametrami z tych znaczników.

Jeśli napisałbyś w PHP nowy język to on działałby on z prędkością PHP ( tak naprawdę C ) a spowolniony by był o zawiłość twojego kodu. Możemy to zaobserwować we frameworkach które to zmieniają PHP nie do poznania przez co niektóre bez cachowania są strasznie wolne.

I tak będą wszyscy powtarzać będą to samo...

soanvig   10 #42 03.02.2012 17:22

No właśnie, i tak wszystko zależy od interpretera