Jak są zbudowane profesjonalne strony internetowe?

0

Witam. Po wejściu na poziom semi intermediate z HTML5, CSS3, JavaScript (jQuery), PHP/MySql zacząłem się zastanawiać jak się w praktyce tworzy serwisy internetowe. Wszystko fajnie, potrafię zbudować coś, co jakoś tam wygląda, ale jak to zebrać do kupy? Mam podstawy podstaw Zenda, więc wiem mniej więcej jak taka aplikacja wygląda, ale co z resztą? Przypuszczam, że jest milion możliwości i chciałbym je poznać. Jak np. wygląda budowanie strony nie opartej na Zendzie, co z widokami? Jak jest to porozdzielane? Jakie są inne techniki budowy takiej aplikacji ? Przypuszczam, że nie przepisujemy np. ogólnego layoutu strony milion razy w każdym pliku html itd. Jak wygląda przykładowa struktura katalogów itd

Jeżeli macie jakieś linki to walcie śmiało, ja niestety nic nie potrafiłem sensownego znaleźć w tym temacie.

2

Wszystko zalezy od konwencji uzywanej w danym frameworku, wiekszosc tutoriali i chyba kazda ksiazka do popularnych frameworkow php powinna to dobrze wyjasnic. Dodatkowo znajdz sobie zrodla jakiejs popularniejszej aplikacji (np. na sourceforge, github, google :) i zobacz jak to wyglada w praktyce.

1
Fi3rce napisał(a):

Przypuszczam, że nie przepisujemy np. ogólnego layoutu strony milion razy w każdym pliku html itd. Jak wygląda przykładowa struktura katalogów itd

Jasne że czegoś takiego się nie robi, chyba że w stary sposób (proceduralnie np.) ale to już przeżytek. Teraz się robi master layout, do którego wstrzykujesz po prostu później content dla określonej podstrony, to jest zresztą pewien wzorzec. W ASP.NET to się nazywa Master Page i też tam jest coś w rodzaju content placeholder.

Co framework to określona struktura katalogów i określone założenia, ten temat jest tak rozległy że sporo można by o tym pisać. Dla Kohana np. może być tak:

application
  classes
    controller
    kohana
    model
  config
  i18n
  logs
  messages
  views
    template
  bootstrap.php
assets
  js
  css
  images
modules
system
uploads
vendor
index.php  
.htaccess
robots.txt      

To co za co odpowiada to jest jasno określone w dokumentacji Kohana i na forach dyskusyjnych, to jest tak rozległy temat że nie da się tego tak tutaj opisać w kilku zdaniach :-)

0

Czaje, czaje, chodziło mi właśnie o rozwianie moich wątpliwości co do kodu itd., bo kiedyś się tym troche zajmowałem jak byłem małym smrodem i moja wiedza na ten temat jest daleko za murzynami. Z tego co widzę, to teraz wszystko jest oparte na takim czy innym frameworku. Mi są znajome tylko frameworki php, a np. frameworki js? Jakbyś mógł mi nakreślić wykorzystanie tego i tego, bo ogladajac tutoriale na yt natknalem sie wlasnie na cos takiego jak framework js (chyba to był Node.js). Tak samo zastanawia mnie wykorzystanie frameworków php, bo kojarzy mi się to własnie z sytuacją w której musimy pobierać coś z bazy itd., a gdybym chciał prostą stronę złożoną z kilku stron statycznych o jakiejś tematyce (np. o kotach w/e) to co wtedy? Czy trzeba strzelać do muchy z armaty, wszystko na jedno kopyto tylko nie korzystamy z "pełnych możliwości" np. Zenda?

Pytanie trochę poza tematem. Załóżmy, że nauczę się jakiegoś frameworka MVC, to czy przejście później na jakiś inny framework jest okupione ogromnym wysiłkiem, czy może jest to tak jak z programowaniem, gdy posiadłem podstawową wiedzę z zakresu Javy chłonąłem jak gąbka js/php itd. ? A może jest tak, że z Symfony/Zenda jest się łatwo przerzucić na inne fw, a odwrotnie już ciężej?

0

Nie korzystałem jak dotąd z Node.js czy Angulara bo nie miałem takiej potrzeby, nie znam tego więc się tu nie wypowiem. Co do prostej strony z kilkoma podstronami, a kto tu mówi o takich kombajnach jak Symfony czy Zend?

Sprawa jest dość prosta. Kohana np. jest dość prostym i szybkim frameworkiem, są też i inne jak CodeIgnither, CakePHP, Phalcon i są one w miarę przejrzyście zbudowane więc i łatwe do nauki. Łatwo będzie przejść na inne o podobnej konstrukcji. W samym tylko HTML, CSS zrobisz tylko statyczną stronę, wiadomo że teraz żeby móc aktualizować treść to trzeba mieć jakiś CMS, więc łączysz się po prostu z taką MySQL czy PostgreSQL.

Zaletą frameworków jest to, że mają np. wbudowane już zabezpieczenie przed SQL Injection czy XSS, CSRF więc nie musisz już implementować tego, są po prostu albo biblioteki albo np. coś jak Query builder, także konfiguracja jest dość prosta, bo masz odpowiednie pliki do tego.

Kohana ma np. wbudowany system sprawdzania błędów, więc jak się w czymś walniesz to Ci się wyświetli w ognie przeglądarki informacja i nawet fragment kodu ze wskazaniem gdzie ten błąd mniej więcej jest. To jest dobre rozwiązanie nawet do prostej stronki, zresztą to się tylko tak może wydawać że to prosta robota a tak naprawdę jak chcesz zadbać o zabezpieczenia i łatwość w utrzymaniu czy rozbudowy, to sobie wybierasz co Cię interesuje (ja tu nawet nie będę sugerował Kohana, podaję tylko jako przykład). Do wyboru, do koloru.

Te kombajny jak symfony to raczej do czegoś poważniejszego, choć w Kohana, CI, Phalcon, CakePHP też można napisać coś poważnego.

0

Jest podobnie - frameworki różnią się w szczegółach (niektore są wręcz odgałęzieniami innych), ale zasada co do podziału ect jest podobna - wtedy raczej się orientujesz co gdzie i w jaki sposob (czasem w jakim języku) możesz napisać, tudzież co masz gotowego, a co musisz stworzyć sam.

1

Polecam książkę o Symfony 2 napisaną przez polskiego autora
http://helion.pl/ksiazki/symfony-2-od-podstaw-wlodzimierz-gajda,symfo2.htm

1

node.js to to nie jest sprawa frontendu tylko backendu. node.js to normalny serwer www, z tym, że przetwarza kod napisany w javascript. Stosuje się go głównie do operacji ze stałym połączeniem np chat. Czyli cała stronę piszesz np w php ale livechat nie działa na php tylko "obok" na node.js bo będzie to dużo wydajniejsze.

A co do prostych stron to jak przedmówcy, najlepiej postawić na jakimś prostym lekkim frameworku (ja stworzyłem swój), ale nie zmienia to faktu, że strony z 5 podstronami to w 95% wordpress..

0

@mr_jaro Czat internetowy z wykorzystaniem node.js jest wydajniejszy od np. jquery i ajaxa? Mam zamiar napisać aplikacje czata i znam rozwiązanie z wykorzystaniem node.js z książki o tym frameworku. Jak byś napisał aplikacje czata obsługującą 300 - 400 czatujących w tym samym czasie + plus prywatne rozmowy, wiele czatroomów i inne funkcjonalności. Większość znanych mi czatów jest zaimplementowana w Java, ale w moim przypadku Java odpada. Na jakim hostingu można by testować czat z wykorzystaniem node.js?

0

Czat internetowy z wykorzystaniem node.js jest wydajniejszy od np. jquery i ajaxa?

node.js to to nie jest sprawa frontendu tylko backendu.

0

@mr_jaro napisał też:

Czyli cała stronę piszesz np w php ale livechat nie działa na php tylko "obok" na node.js bo będzie to dużo wydajniejsze.

Wiem,że node.js to backend. Jesli pisze się aplikacje czata z node.js po stronie serwera, to klienta, czyli frontend też można napisać w JavaScript.
Moje rozwiązanie bazuje na php i mysql po stronie serwera i na jquery i ajax po stronie klienta. Moje zainteresowanie wzbudziła możliwość wykorzystania node.js, bo jest bardziej wydajne czyli szybsze i pewnie nie ma opóźnień, ale trudno zrobić taki czat dla ok. 300 czatujących. Może @mr_jaro ma jakieś ciekawe opinie na ten temat.

3
bus45 napisał(a):

@mr_jaro napisał też:

Czyli cała stronę piszesz np w php ale livechat nie działa na php tylko "obok" na node.js bo będzie to dużo wydajniejsze.

Wiem,że node.js to backend. Jesli pisze się aplikacje czata z node.js po stronie serwera, to klienta, czyli frontend też można napisać w JavaScript.
Moje rozwiązanie bazuje na php i mysql po stronie serwera i na jquery i ajax po stronie klienta. Moje zainteresowanie wzbudziła możliwość wykorzystania node.js, bo jest bardziej wydajne czyli szybsze i pewnie nie ma opóźnień, ale trudno zrobić taki czat dla ok. 300 czatujących. Może @mr_jaro ma jakieś ciekawe opinie na ten temat.

Prosta sprawa, co najbardziej opóźnia i zjada zasoby podczas komunikacji klient-serwer w chacie? Łączenie. I teraz sobie pomyśl o tym, że siedzi ci 400osób i o co sekundę (albo i mniej) wysyłają żądanie do serwera (komunikacja ajax + php). W tym momencie taki hostingowy serwer zdycha. Na tę mała ilość userów musisz wykupywać silny vps lub najlepiej dedykowany serwer. Jak to rozwiązać, żeby były mniejsze koszty? Używać websocketów po stronie klienta które umieją trzymać dwustronne połączenie z serwerem (websockety to nic innego jak część html5 której używasz poprzez js). Ale serwer php tego nie obsłuży więc potrzebujesz serwera node.js wraz z kodem serwerowym w js dla tego serwera, który takie połączenie umie utrzymać po stronie serwera. Co zyskujemy? Bardzo szybki chat, na który starczy na te 400 osób tańszy vps.

http://ahoj.io/nodejs-and-websocket-simple-chat-tutorial przykład chata w websocketah i node.js
http://zgadzaj.com/benchmarking-nodejs-basic-performance-tests-against-apache-php benchmark

0 użytkowników online, w tym zalogowanych: 0, gości: 0