Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Duża aplikacja
Forum PHP.pl > Forum > PHP
Akcelerator
Witam. Chce stworzyć własny dużą aplikacje a konkretnie CMS, ale nie za bardzo wiem jak się pisze takie duże aplikacje. Czytałem że duże aplikacje pisze się modułowo ale jak to wygląda w praktyce ? Nie mogę doszukać się jakichś dokładniejszych informacji na ten temat. Chce żeby ten CMS dał się łatwo rozbudowywać i modyfikować. Proszę o pomoc.
Piogola
Zacznij od nauki OOP
Akcelerator
Obiektowo pisać jako tako umiem, przynajmniej tak mi się wydaje. Nie jestem całkiem zielony, wcześniej udało mi się strukturalnie CMS'a napisać, ale to raczej nie to. Teraz próbuje pisać na nowo, i staram się pisać obiektowo, ale nie jestem pewien czy dobrze to robię. Chce dowiedzieć się o tym jak najwięcej, żeby napisać to dobrze.
darko
Przywitaj się z terminem framework, wybierz któryś dla siebie, który będzie Ci najbardziej odpowiada. ps. czy to już jest jakaś mania z tym pisaniem cmsa? Każdy musi pisać własnego cmsa ? Tyle tego w sieci istnieje, do wyboru do koloru, ale nie każdy musi napisać własny. Po co się pytam?
Fifi209
Cytat(darko @ 16.02.2011, 01:35:34 ) *
Tyle tego w sieci istnieje, do wyboru do koloru, ale nie każdy musi napisać własny. Po co się pytam?

W celach edukacyjnych zapewne. To, że jest później pełno syfu na necie to sprawa druga.
Zyx
Projektowanie aplikacji to duży i wcale nie taki łatwy dział informatyki. Nawet nie zdajesz sobie sprawy, ile można zrobić w dużym projekcie, nie tworząc ani jednej linijki kodu. Znajomość OOP i frameworków bez jakichś podstaw projektowania nic Ci tu nie da, bo są to tylko narzędzia. Cieśla młotkiem i dłutem może zdziałać cuda; laik co najwyżej sobie palec rozwali. Skoro dla Ciebie projektowanie obecnie to parę mętnych haseł, o których "gdzieś tam kiedyś" słyszałeś, zacznij od mniejszych rzeczy, a dopiero później wskakuj w coś większego.
Akcelerator
Czy znacie jakąś stronę godną polecenia, która będzie pomocna ?
wookieb
Stary tego nie zdobędziesz po przeczytaniu jednej książki. Kolokwialnie twoje pytanie jest podobne do "chciałbym zostać lekarzem, polećcie mi jakąś książkę"... No nie ma takiej możliwości. Pytanie zbyt ogólnikowe.
Zadaj jakieś precyzyjniejsze.
darko
Jak już wcześniej napisałem - wybierz sobie jakiś framework, przejrzyj jego dokumentację, przerób podstawowe tutoriale (masz nawet videotutoriale z lektorem na youtube). Frameworki z reguły jako zbiór gotowych narzędzi ułatwiają pracę. Do wyboru najbardziej popularne (kolejność przypadkowa): Zend, Kohana, Symfony, CodeIgniter, CakePHP, Prado, Agavi <-- sprawdź nawet i wszystkie, pobierz, skonfiguruj, naucz się poprawnego korzystania z tych narzędzi. Na koniec zadecyduj, który z nich jest najbliższy Twojej filozofii programowania (a z pewnością każdy z wybranych frameworków reprezentuje inne podejście do tworzenia projektu). Tak naprawdę to najlepiej gdybyś wybrał taki framework, którego nauka zaowocuje znalezieniem zatrudnienia i tu masz do wyboru 3, może 4: Zenda, Symfony, CodeIgniter (proszę się nie czepiać o ostatnie zdanie, to moja prywatna opinia).
Powodzenia i owocnej nauki!
//edit
Dodam jeszcze, że w praktyce duże projekty (cokolwiek przez to rozumiemy) pisane są nie przez jednego, a przez kilku programistów i tu pojawia się kolejna kwestia mianowicie - wybór systemu kontroli wersji. I znowu do wyboru najpopularniejsze: Git, SVN, Mercurial, CVS. Nie bez powodu podkreślam, że przy wyborze narzędzi (frameworka oraz systemu kontroli wersji) należy brać pod uwagę popularność danego rozwiązania, gdyż im bardziej popularne rozwiązanie tym:
- większe szanse, że dane narzędzie będzie rozwijane, będą wprowadzane ulepszenia i ułatwiające życie modyfikacje
- łatwiej o pomoc w przypadku jakichkolwiek problemów (od tego są fora internetowe, aby pytać)
- większa szansa, że projekt w ogóle nie upadnie i będzie dalej rozwijany (jest "popyt" jest "podaż")

// edit2 (sorry za tyle edytów ale nie chcę nabijać postów
cd.
ostatnią już chyba sprawą jest wybór narzędzia (ide) z podpowiadaniem składni i wieloma użytecznymi opcjami i tu masz do wyboru: Eclipse PDT, NetBeans, Aptana, Zend Studio (płatne) i wiele innych gorszych lub lepszych.
screamart
Jeśli chodzi o teorię projektowania to dla mnie bardzo przydatnym przedmiotem na studiach inżynierskich była Inżynieria Oprogramowania. Proponuję się co nieco zainteresować bo materiału do tego jest sporo.
Mephistofeles
Zrób sobie Jobeeta. To taki tutorial do symfony, łatwy w zrozumieniu, efekty ciekawe.
Akcelerator
Raczej nie chodzi mi o użycie jakichś gotowych frameworków, ale bardziej o napisanie wszystkiego samemu. Napisać tak by działało umiem, ale chce też aby to w miarę wyglądało i było napisane tak by łatwo to można było rozwijać. Nie mogę się doszukać jakichś wytycznych mówiących w jaki sposób pisać takie duże rzeczy. Wiem że trzeba pisać takie rzeczy obiektowo. Chce napisać to w modelu MVC. Coś tam już napisałem, ale dowiedziałem się, że lepiej nie używać zmiennych globalnych, a takie zmienne u mnie już się pojawiły. Dlatego wole dowiedzieć się jak najwięcej by nie popełniać kolejnych błędów.
Crozin
@Akcelerator: Użyj gotowego FW, np. Symfony2 (na chwilę obecną właściwie jedyny FW wykorzystujący nowe możliwości PHP5.3) bo nie masz ani wiedzy, ani umiejętności by zaprojektować aplikację lepiej.

Podobnie jak nie da się zaprojektować samochodu lepszego od jakiegoś Bentleya nie znając jego wad ani wymagań stawianych takiemu produktowi, podobnie nie da się zaprojektować porządnej architektury dla aplikacji internetowej nie mając sporego bagażu doświadczeń.
Mephistofeles
Nie dasz rady, dlatego porzuć taką opcję. Używanie gotowców to żadna hańba.
osl
Nie chce jakoś Cię z łomotem na ziemię sprowadzać, bo sam wiem jakie kiedyś miałem ambicje wink.gif
Fajnie jest napisać coś swojego. Sam napisałem kiedyś frameworka, całkiem spore możliwości, własny ORM i takie tam.
Ale im dłużej pisałem, tym bardziej dostrzegałem wady i własne braki. Napisać coś, co działa, żaden problem.
Weź pod uwagę jeszcze inne aspekty, takie jak bezpieczeństwo czy wydajność. A do tego czas, który spędzisz na magicznym "WTF".
Cytat
Używanie gotowców to żadna hańba.
chciałoby się rzec, święte słowa wink.gif
symfony nawet się specjalnie nie kryje z tym, że jak widzi coś lepszego u konkurencji to sobie "pożycza" wink.gif
Bags_Bunny
Cytat(osl @ 16.02.2011, 19:38:05 ) *
symfony nawet się specjalnie nie kryje z tym, że jak widzi coś lepszego u konkurencji to sobie "pożycza" wink.gif

Inspiruje się! smile.gif
Latem zeszłego roku byłem na konferencji Adobe promującej CS5. Jeden z prowadzących (nie pamiętam kto to był konkretnie, ale jestem przekonany, że ktoś z zarządu) powiedział, że jeśli bierzemy kod jakiejś strony, a następnie umieszczamy go na swojej to nie jest to kradzież, ponieważ zabieramu z internetu i oddajemy z powrotem do niego smile.gif.
Taka mała dygresja, na rozluźnienie.

@Akcelerator, IMO to, czy napiszesz swój framework czy skorzystasz z czegoś gotowego zależy od celu.
Jeśli tworzysz jakiś produkt, to zdecydowanie wybierz framework, który już istnieje. Zwróć uwagę na to, że gotowe frameworki (nie mówię, że wszystkie, ale zasadniczo) są dość dobrze przetestowane, ze względu na dużą rzeszę użytkowników.

Jeśli chcesz się po prostu nauczyć to uważam, że warto napisać całość od początku, żeby zrozumieć w pełni zasadę działania wszystkiego. Po prostu siadaj i pisz. Nie liczyłbym jednak na zbyt wiele. Jeśli nie masz dużego doświadczenia, to nie zrobisz cuda, nawet jeśli będziesz się do tego przygotowywał na papierze wiekami (co ja osobiście odradzam, choć pewnie sporo osób się ze mną nie zgodzi).

W tym momencie polecałbym też książke "Getting Real" napisaną przez, o ile się nie mylę, założycieli 37Signals.
Traktuje ona właśnie o procesie tworzenia aplikacji webowych sposobami odbiegającymi od klasycznej inżynierii oprogramowania.

Pisanie frameworka to sprawa o wiele poważniejsza niż pisanie poszczególnych modułów.
Swojego czasu w Windowsie była dziura pozwalająca pobrać "zagwiazdkowane" hasło w dialogach konfiguracji.
Z tego co mi wiadomo, nie było możliwe jej bezbolesne załatanie, bo zmiana WinAPI spowodowałaby konieczność wprowadzenia zmian we wszystkich aplikacjach zeń korzystających.

Jeśli napiszesz cały system i zorientujesz się, że sknociłes framework, może okazać się, że będziesz musiał zmodyfikować wiele elementów systemu. Czasami może okazać się, że nie będzie to opłacalne.

Przygotuj się na duże straty kodu, jeśli piszesz coś dużego bez doświadczenia ze złożonymi aplikacjami.
Ale jeśli chcesz i możesz to zrobić dla własnego rozwoju - warto.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.