Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [inny]gotowe rozwiązania vs własne
marcus753
post 12.07.2014, 10:29:20
Post #1





Grupa: Zarejestrowani
Postów: 281
Pomógł: 3
Dołączył: 8.06.2009
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Witajcie,

Najpierw może 2 słowa o mnie: w php-ie programuje od kilku lat (głównie hobbystycznie i dorywczo) na co dzień jestem frontend developerem. W tym roku postanowiłem wziąć się za frameworki no i na początku był codeigniter w którym się zakochałem wink.gif potem był laravel z którym cały czas walczę i przez który co nieco straciłem przyjemność kodzenia bo zamiast napisać coś samemu ściągam daną bibliotekę uczę się jak ją obsługiwać itp. - składam wszystko z gotowych klocków, jak się ma dziesiątki takich samych projektów świetna sprawa wink.gif
Dosyć dużo czytam o różnych wzorcach projektowych - bardzo ciekawy temat.

Chciałem Was zapytać o zdanie bo mam mały dylemat… Na horyzoncie pojawiły się 3 stosunkowo proste projekty do zrobienia (prosty blog, katalog produktów oraz przeglądarka i wyszukiwarka załadowanych zdjęć z możliwością ich lekkiej modyfikacji) i tu pojawia się mój dylemat bo zarówno codeigniter jak i laravel wydają mi się zdecydowanie za duże i zbyt zasobochłonne do tych projektów.

Zastanawiam się nad wykorzystaniem jakiegoś micro frameworka lub napisaniem swojego micrusa który w założeniu miałby mi rozdzielić kod na MVC a dokładniej HMVC + routing i w zasadzie tyle z ORM nie potrzebuje korzystać bo działam na jednej bazie zresztą tak jak już pisałem niekiedy zwykłe zapytanie sql jest krótsze niż to z ORM, z laravela wziąłbym funkcjonalność stosowania filtrów, w CI bardzo spodobała mi się możliwość pisania uniwersalnych funkcji do bazy które mogą być wykorzystane z wieloma tabelami(w modelu mam funkcje np. dodajRekord($data,$table){specjalne zapytanie sql} ) i tą funkcję mogę wykorzystać do różnych tabel a do tego dodałbym możliwość łatwego pisania zew. bibliotek i wrzucania ich do projektu.

Co o tym myślicie czy ma to jakikolwiek sens ? czy może lepiej skorzystać z czegoś gotowego ? a jeśli tak to co polecacie ? silex ? - chociaż tam chyba nie ma obsługi resizu i cropowania zdjęć a jak mam pisać swoje własne biblioteki to chyba wole oprzeć to na swoim własnym systemie z drugiej strony wszyscy mówią że pisanie swojego frameworka jest bezsensu i tak koło się zamyka…

Pozdrawiam


--------------------
Cokolwiek zostanie upuszczone na uklad elektroniczny, spadnie zawsze tam gdzie wyrzadzi najwiecej szkody.
Go to the top of the page
+Quote Post
Crozin
post 12.07.2014, 11:01:25
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Pierwsza rzecz której nigdy nie zrozumiem: [...] bo zarówno codeigniter jak i laravel wydają mi się zdecydowanie za duże i zbyt zasobochłonne do tych projektów
Co z tego że są "za duże" w czym to konkretnie przeszkadza? Zasobochłonne? Nie napisałeś co powoduje problemy z wydajnością więc domyślam się, że pewnie w ogóle nie masz takich problemów. Jeżeli znasz już jakieś narzędzie, które masz pod ręką i które nadaje się do danego zadania nic nie stoi na przeszkodzie by z niego skorzystać. To trochę tak jakbyś musiał wkręcić jeden wkręt w deskę, miał dosłownie pod ręką wkrętarkę, ale uznałbyś że to zadanie jest "nieproporcjonalne" i poszedł do piwnicy po śrubokręt. Trochę durne co nie? smile.gif

Czy pisanie własnego frameworka ma sens? Jak najbardziej tak! - ale muszą istnieć ku temu jakieś konkretne przesłanki. Jeżeli nie istnieje żadne narzędzie, które nadawałoby się do wykorzystania przy danym projekcie, albo powodowałby jakieś problemy - wtedy jest sens myśleć nad czymś własnym. W tym przypadku wygląda na to, że nie ma sensu pisać czegoś własnego - poświęcisz masę czasu na zrobienie tego co już masz i zapewne wiesz jak działa w takim CI/Laravelu, a dopiero później weźmiesz się za faktyczny projekt. Ten czas lepiej poświęcić na doskonalenie znajomości obecnie używanych narzędzi albo poznanie nowych. Pisałeś o bibliotece do obsługi podstawowych operacjach na zdjęciach, zapoznaj się więc może z Imagine, którego przecież możesz użyć w projekcie pisanym z wykorzystaniem CI/Laravela.
Go to the top of the page
+Quote Post
by_ikar
post 12.07.2014, 12:51:01
Post #3





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

Ostrzeżenie: (0%)
-----


Do czasu kiedy nie masz jakichś odgórnych wymagań, powiedzmy dana aplikacja ma spory ruch, a sam właściciel nie ma jakiegoś super serwera, to wtedy musisz się sam zastanowić jak to ogarnąć żeby nie wywalało out of memory. Ale jeżeli takich wymagań nie masz, a takie bardzo rzadko się trafiają, to "wielkość" jest tylko twoim subiektywnym określeniem. Dla ciebie taki laravel może być wielki, a dla kogoś innego może to być mikrus do mikro projektów. Np taki silex wcale taki mały nie jest, ale wciąż to jest mikro framework.

Ja aktualnie siedzę nad projektem znajomego który ma biednego vps'a, ma dość często ddosy ze względu na treść jaką trzyma na stronie (linki..), no i ma całkiem spory ruch (100k uu), a sama aplikacja musi mieć max 1mb z hakiem na request inaczej wywala mu out of memory, a za serwer zapłacił już za rok z góry całkiem niedawno i nie chciałby rezygnować z tego serwera. Więc użyłem komponentów symfony, spiąłem je, no i rezultaty są całkiem ciekawe. Tyle że to też nie jest taki "swój" framework, tylko budowanie z już istniejących komponentów, bo IMO nie wiem czy ma sens pisanie czegoś takiego kompletnie od zera. Więc zamiast pisać od zera, warto poznać już jakieś gotowe komponenty, jak one działają, jak ich używać. A potem jak przyjdzie ci do jakiegoś takiego mikro zadania, to kilkoma linijkami w composer możesz poskładać sobie coś fajnego, o ile jakieś fajne komponenty/biblioteki znasz.
Go to the top of the page
+Quote Post
Dejmien_85
post 12.07.2014, 14:14:57
Post #4





Grupa: Zarejestrowani
Postów: 251
Pomógł: 23
Dołączył: 23.04.2013

Ostrzeżenie: (0%)
-----


Cytat(marcus753 @ 12.07.2014, 11:29:20 ) *
(..) wszyscy mówią że pisanie swojego frameworka jest bezsensu i tak koło się zamyka…


A nieprawda, nie wszyscy tak mówią. To zależy jaki jest Twój cel. Jeśli chcesz się uczyć PHP, wtedy droga wolna, pisz własny FW i ucz się. Jeśli chodzi Ci jednak tylko o wykonanie zadania, wtedy szybciej to zrobisz korzystając z gotowych FW - przecie do PHP jest miliard FW i bibliotek.

Ty najlepiej wiesz czego chcesz, także sam sobie odpowiesz na to pytanie - jeśli masz ochotę napisać coś swojego, wtedy pisz i p#%&@!@ to co inni mówią. ; )

Z punktu czasowego lepiej wyjdziesz na gotowym FW.

No i jedna mała uwaga - mędrcy mawiają, aby na wydajności skupiać się na samym końcu, wyjątkiem są sytuacje, kiedy to z góry wiadomo, że coś musi być wydajne (gdy klient wspomina, że dziennie na stronie siedzieć będą dziesiątki lub setki tysięcy użytkowników). Mogę się mylić, ale wydaje mi się, że w Twoim wypadku możesz na spokojnie użyć CI lub Laravela.

Najlpiej zapytaj się klienta czy przewiduje wdawanie góry kapuchy na reklamy w Adwordsach lub pozycjonowanie - jeśli nie, wtedy ruch na jego stronach będzie pewnie wynosił kilka osób na miesiąc. ; )
Tak to już jest, klient robi stronę i liczy, że ludzie mu tam spadną z... drzewa. Nie ma kasy na reklamę == miasto duchów.
Go to the top of the page
+Quote Post
marcus753
post 12.07.2014, 19:37:00
Post #5





Grupa: Zarejestrowani
Postów: 281
Pomógł: 3
Dołączył: 8.06.2009
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Dzięki Panowie za opinie - jak zawsze są bezcenne wink.gif

Cytat(Crozin @ 12.07.2014, 12:01:25 ) *
Co z tego że są "za duże" w czym to konkretnie przeszkadza? Zasobochłonne? Nie napisałeś co powoduje problemy z wydajnością więc domyślam się, że pewnie w ogóle nie masz takich problemów.


Może po prostu mam dosyć naiwne podejście do programowania ale model zendowski gdzie 80% aplikacji ktoś już za nas napisał nie do końca mi odpowiada. A może po prostu nie jestem na tym etapie ? Dla mnie programowanie to nowe wyzwania, szukanie lepszego kodu itp. tymczasem frameworki dają nam gotowe rozwiązania sprowadzają nas do roli robotów choć oczywiście rozumiem że robiąc tysięczny raz tą samą rzecz lepiej jest ją skopiować niż wymyślać koło od nowa…

Ostatnimi dniami szukam frameworku który nie daje mi nic prócz podstawowych narzędzi, czystego szablonu - płótna które jest lekkie szybkie i proste… A do którego ewentualnie mogę dopisać jakąś bibliotekę której potrzebuję, lub ją po prostu wgrać już gotową. Chyba pozostaje mi porządnie przemyśleć taki system i napisać coś swojego wink.gif


--------------------
Cokolwiek zostanie upuszczone na uklad elektroniczny, spadnie zawsze tam gdzie wyrzadzi najwiecej szkody.
Go to the top of the page
+Quote Post
Pyton_000
post 12.07.2014, 21:02:28
Post #6





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Z jednej strony masz całkowitą rację, z drugiej strony pisanie większości komponentów jest strasznie błędogenne. O ile będą mniejsze lub większe to tracimy sporo czasu na szukanie i eliminowanie błędów.
Framework daje nam gotowe komponenty dzięki którym możemy zbudować większe moduły.

Wszystko ma swoje plusy i minusy. Trzeba sobie zadać pytanie czy chcemy budować większe aplikacje i mieć pewność (a raczej zaufanie) że komponenty z których korzystamy są dobre i wydajne, albo piszemy od nowa i tracimy w pewnym sensie czas na rzeźbienie koła które dopiero po jakimś czasie będzie okrągłe.

Ja do dziś mam awersję do Zend ze względu na jego przerost i relatywnie niską wydajność. Takie moje odczucie. Za to ostatnio poznaję Phalcon budując małą aplikację. Uważam że to jest świetne rozwiązanie aczkolwiek nie jest dostępne na szeroką skalę. Nie zainstalujemy tego na byle hostingu. Na tych lepszych można poprosić o doinstalowanie i jest szansa że Admin posłucha.
Go to the top of the page
+Quote Post
Crozin
post 13.07.2014, 07:49:31
Post #7





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


@marcus753: To zacznij pisać w takim razie odrobinę bardziej ambitne projekty, bo nawet te najbardziej rozbudowane frameworki (Symfony/Zend) i cała rzesza rozszerzeń do nich nie dają nic poza "czystym płótnem". Jeżeli 80-90% pracy załatwiają za Ciebie gotowe komponenty, to nie przychodzi mi do głowy nic innego, jak właśnie fakt, że robisz tylko najprostsze/najbardziej typowe rzeczy.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.04.2024 - 19:00