![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 240 Pomógł: 278 Dołączył: 11.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Mam problem. Otóż moim zadaniem w najbliższym czasie jest stworzenie dosyć zaawansowanego skryptu (kilkadziesiąt tabeli SQL, dużo modeli i widoków). Próbowałem pisać ten skrypt "od ręki" tzn. bez przygotowania żadnych planów jednak po kilku tysiącach linijek kodu ciężko jest dojść co i jak. Tym tym razem postanowiłem zabrać się za to jak trzeba tzn. przygotować jakiś projekt. Ale w jaki sposób? Chciałem Was zapytać jak wy przygotowujecie projekt większych skryptów. Czy rozpisanie wszystkiego na kartce ułatwi sprawę? Może macie jakieś narzędzia które by pomogły w planowaniu takiego skryptu (zarówno tabel SQL jak i funkcjonalności skryptu). Najlepiej gdyby ktoś udostępnił mi taki projekt w celach czysto naukowych abym mógł sprawdzić jak to zrobić (IMG:style_emoticons/default/smile.gif) Pozdrawiam i proszę o wasze opinie. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 46 Pomógł: 1 Dołączył: 15.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
W kwestii projektowania bazy danych - radzę wykorzystać jakieś narzędzie pokroju mysql workbrench
Pozwala ono tworzyć wizualnie tabele - powiązania między nimi - organizować je wizualnie kolorami itp. co ułatwia zarządzanie bazą Następnie taki schemat możesz wyeksportować do gotowego zapytania SQL, które utworzy bazę Jeśli korzystasz z jakiejkolwiek innej bazy Oracle SQL czy innej - to znajdziesz podobne narzędzia dla każdego innego typu Zaś co do samego kodu PHP - wystarczy, że pracujesz w programie typu Netbeans czy Eclipse albo jakimkolwiek innym środowisku, które ułatwia programowanie - wtedy łatwo możesz nawigować po klasach, które tworzysz, dokonywać refaktoryzację itp. - najlepiej w ogóle projekt oprzeć o jakiś gotowy Framework w stylu Zend wtedy też Twój kod będzie od razu miał jakiś lepszy podział, będzie czytelniejszy i łatwiej będzie go zmieniać w przyszłości |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 240 Pomógł: 278 Dołączył: 11.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za mysql workbrench. A co jeśli chodzi o dokumentacje? Opis funkcji, klas itp.
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 467 Pomógł: 77 Dołączył: 6.09.2008 Skąd: Miechów / Kraków Ostrzeżenie: (0%) ![]() ![]() |
Cytat Zaś co do samego kodu PHP - wystarczy, że pracujesz w programie typu Netbeans czy Eclipse albo jakimkolwiek innym środowisku Niestety nie wystarczy (IMG:style_emoticons/default/tongue.gif) Nie wiem jak pozostali, ale jeśli o mnie chodzi to korzystam z zasady od ogółu do szczegółu. Na początek wypisz sobie co aplikacja ma w zasadzie robić, jakie przewidujesz funkcjonalności itp. Następnie rozpisuj sobie coraz bardziej szczegółowo jak ma ona wyglądać. Im więcej Ci się uda, to na podstawie projektowania będziesz w stanie wychwycić więcej problemów i poprawić projekt. Do tworzenia schematów lub makiet możesz użyć pencil tool. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 559 Pomógł: 93 Dołączył: 4.03.2008 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
Podziel cały projekt na zadania, a zadania na mniejsze zadania,
Jak np masz zrobić system rejestracji/logowania to: rejestracja/logowanie rejestracja praca z SVN czy GIT umożliwia śledzenie zmian, dobrze opisane commity pozwalają domyślić się po co były zmiany komentarze są bardzo dobrym źródłem informacji Ten post edytował buliq 30.08.2013, 12:55:35 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 455 Pomógł: 49 Dołączył: 12.04.2010 Ostrzeżenie: (0%) ![]() ![]() |
Mi bardzo pomógł phpdoc w połaczeniu z IDE.
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 63 Pomógł: 1 Dołączył: 28.08.2013 Ostrzeżenie: (0%) ![]() ![]() |
Lepiej napisac sobie to na kartce czy uzyc jakiegos programu do zaprojektowania tego?
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 559 Pomógł: 93 Dołączył: 4.03.2008 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
Kwestia, jak ci wygodniej (IMG:style_emoticons/default/smile.gif) . Ja lubię pod taska w redmine mieć podpięte zmiany w kodzie, jak coś się sypie to wiem dlaczego.
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 7.09.2013 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Witam! Mam problem. Otóż moim zadaniem w najbliższym czasie jest stworzenie dosyć zaawansowanego skryptu (kilkadziesiąt tabeli SQL, dużo modeli i widoków). Próbowałem pisać ten skrypt "od ręki" tzn. bez przygotowania żadnych planów jednak po kilku tysiącach linijek kodu ciężko jest dojść co i jak. Tym tym razem postanowiłem zabrać się za to jak trzeba tzn. przygotować jakiś projekt. Ale w jaki sposób? Chciałem Was zapytać jak wy przygotowujecie projekt większych skryptów. Czy rozpisanie wszystkiego na kartce ułatwi sprawę? Może macie jakieś narzędzia które by pomogły w planowaniu takiego skryptu (zarówno tabel SQL jak i funkcjonalności skryptu). Najlepiej gdyby ktoś udostępnił mi taki projekt w celach czysto naukowych abym mógł sprawdzić jak to zrobić (IMG:style_emoticons/default/smile.gif) Pozdrawiam i proszę o wasze opinie. Do mysql: workbench zdecydowanie PHP: napisz sobie coś, co ci rozwarstwi aplikację, koniecznie u mnie zwykle wyglada to tak: core/ core/controller/ router.php router aplikacji core/models/ jakaś ogolna logika view.php core/data coś, czego bede uzywał czesto do pobierania danych, np przywileji użytkownika core/libraries prototypy metod dla klas, które prezentuja coś, co chcę zrobic core/drivers coś, co coś robi, np operacje na mysql: connect, prepare, query, fetch, dataOperations, close dla loginu: login/ login/controllers/ login.php login/models login/models/login.php login/data login/data/loginform.php login/data/userverification.php ułatwio to zapanowanie nad aplikacją Koniecznie poczytaj o SOLID, DRY i KISS |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 251 Pomógł: 23 Dołączył: 23.04.2013 Ostrzeżenie: (0%) ![]() ![]() |
Witaj,
Oprócz trafnych porad kolegów powyżej mogę Ci polecić jedną dość pomocną rzecz: UML. To może Ci pomóc w rozplanowaniu całej aplikacji. Ważne jest, aby nie zaczynać od kodowania. Najpierw sobie usiądź i zapisz na papierze jakie funkcje będzie posiadał ten serwis. Wypisz wszystko co Ci przyjdzie do głowy, od prostych rzeczy typu "logowanie", czy "sytem autoryzacji", po bardziej skomplikowane. Następnie dla każdej funkcjonalności zaplanuj klasy/metody. Nad tym możesz spędzić dzień, albo i nawet kilka dni (w zalężności od wielkości projektu), ale korzyści płynące z takiego planowanie przerosną Twoje najśmielsze oczekiwania. Ważne jest, abyś miał plan jak zabrać się do pracy. Ogromnie ważne jest to, abyś wszystko dobrze przemyślał, zanim zabierzesz się do pracy, bo później może się okazać, że pewne rzeczy będziesz musiał przepisać/napisać od nowa/wywalić w cholerę - (tą droge już poznałeś i nie chcesz do tego wracać!). Zdaję sobie sprawę, że chciałbyś się pewnie od razu rzucić do kodowaia, jednak ta droga jest zgubna- zresztą w tej chwili wiedzisz do czego doprowadziła (napisałeś sporo kodu, który idzie do śmieci). Naprawdę warto jest najpierw zaplanować całą aplikację (choćby ogólnikowo), a później zacząć przechodzić do szczegółów i na końcu do pisania. Poza tym - do dużych projektów polecam frameworki PHP (Symfony, Laravel, FuelPHP itd). Ułatwią Ci znacznie pracę i sprawią, że Twój kod będzie utrzymany w ładzie i porządku. Polecam edukację z tematu OOD (Object Oriented Design) - pomoże Ci to znacznie w ogarnięciu kodu. Nie chcesz raczej powracać tutaj po kilku tysiącach linijek kodu i napisać: "Kurcze, napisałem XYZ linijek kodu i... dupa". ; ) Ogólnie życzę powodzenia! Po stworzeniu tego serwisu Twoje doświadczenie wzrośnie drastycznie. Pamiętam swój piewrszy serwis (pisany samodzielnie). Kodziłem go ok. 2 miesięcy. Kod z pierwszych tygodni był napisany amatorsko, korzystałem z FW PHP i wzorca MVC. Na początku pisałem niezbyt przemyślanie, tworzyłem "grube kontrolery" i przerośnięte funkcje/metody (mimo tego, że wiedziałem naprawdę duzo o OOP/OOD), ale w drugim miesiącu wszytko wyglądało już całkowicie inaczej. Najwięcej zmieniło się wtedy, gdy mojemu klientowi co jakiś czas wpadały do głowy zmiany, których nie uwzględnił w specyfikacji. Wtedy dopiero odczułem na własnej skórze co na myśli mieli Ci, którzy mawiali, że liczy się utrzymywanie aplikacji ("maintenance"). OOD doceniłem wtedy, gdy klient przychodził do mnie z nowymi pomysłami, które wywracały kompletnie wcześniej tworzone algorytmy, lub wymagały przeprowadzenia dość sporych zmian - i tak jest do tej pory. W takich chwilach dowiadujesz się ile tak naprawdę warte jest to co "płodzisz". Napisałeś, że gubisz się we własnym kodzie - niedobrze, jednak wiedz, że każdy tak zaczynał, także głowa do góry i zabieraj się za to, co może pomóc Ci w rozwijaniu swoich umiejętności. OOD (Object Oriented Design) to droga, którą powinieneś zacząć podążać - i ta dorga doprowadzi Cię do reszty przydatnych narzędzi/idei. Na koniec kilka krótkich porad: - każda klasa w osobnym pliku + określona funkcjonalność (bedziesz miał ład), - każda metoda danej klasy powinna robić jedną okreśłoną rzecz (unikniesz tworzenia "grubych" metod ciężkich do powtórnego wykrozystania czy modyfikacji - a uwierz mi, że modyfikacje będą i przygotuj na to tą aplikację), - metody powinny być krótkie (głównie chodzi o to, aby uniknąć tworzenia "grubych" metod, które wykonują X różnych rzeczy na raz i które... są trudne do powtórnego wykorzystania/modyfikacji), Ten post edytował Dejmien_85 17.09.2013, 11:52:09 |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 26.09.2013 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
z kontrolkami bardzo łatwo wykonasz taką akcje. zresztą jest wiele programów które to ułatwia.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 26.08.2025 - 06:18 |