Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> Autorski framework, czy udostępnić?
matrik
post 9.02.2015, 11:21:08
Post #1





Grupa: Zarejestrowani
Postów: 115
Pomógł: 2
Dołączył: 23.07.2009

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


Witajcie
Chciałbym udostępnić autorski system framework, który teoretycznie (hmm, nawet praktycznie) kładzie inne systemy.
Wykonałem prosty test na surówkach dwóch frameworków. Konfig domyślny i bez połączenia z bazą danych.
Zwykłe wyświetlenie tekstu "Hello world!". Bez wykorzystania eAccelerator'a

CodeIgniter: [0.011924028396606] 1 mb
Yii: [0.050626039505005] 5 mb
Autorski: [0.005169153213501] 768 kb

System jest okrojony i pozbawiony śmieci takich jak generatory do tworzenia formularzy czy też tworzenie zapytań SQL.
Tworzony był dla szybkiego stawiania serwisów (wiele stron korzystało i korzysta z tego systemu), dlatego nie ma wzorca projektowego MVC, lecz autorski model CCV (Controller - Component - View) dzięki któremu osiąga takie wyniki (ale czepiając się innych frameworków zasada działania jest bardzo zbliżona).
Ładowarka klas Singleton i Router nieszablonowego wywoływania kontrolerów.

Yii czy CI nie powinien ładować bibliotek, których nie potrzebuje aktualnie więc co o tym sądzicie?
Go to the top of the page
+Quote Post
rad11
post 9.02.2015, 11:25:09
Post #2





Grupa: Zarejestrowani
Postów: 1 270
Pomógł: 184
Dołączył: 7.10.2012
Skąd: Warszawa

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


Tylko tyle? I ze niby ma kłaść narzędzia dla programistów i web developerów na kolana? Udostepnic zawsze mozesz, frontendowcom moze sie przydac, ale dla powaznych programistow raczej to nie pomoze.
Go to the top of the page
+Quote Post
Pyton_000
post 9.02.2015, 11:31:57
Post #3





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

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


Cyferki to i Ja Ci mogę pokazać. Mogę Ci nawet powiedzieć że Moje rozwiązanie kładzie Twoje na łopatki.
Chcesz to udostępniaj i wtedy chwal się wynikami "benchmarków", jak nie to nie. Co mamy Ci powiedzieć? Rozwiązać dylemat typu: "Kanapka z chlebem czy bułką?"
Go to the top of the page
+Quote Post
aniolekx
post 9.02.2015, 11:53:05
Post #4





Grupa: Zarejestrowani
Postów: 340
Pomógł: 46
Dołączył: 31.07.2009
Skąd: A

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


Napisałeś jakieś testy do niego? (TDD, BDD), jeżeli tak to jakie masz pokrycie testami? Pytam bo to jest kolejny aspekt często pomijany przez amatorów wink.gif
Go to the top of the page
+Quote Post
pyro
post 9.02.2015, 11:54:23
Post #5





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

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


Testowanie szybkości frameworka poprzez `echo "Hello world"`. Czasami zwyczajnie nie potrafię sobie wyobrazić rzeczy, które mogłyby mnie tak zaskoczyć wink.gif


--------------------
ET LINGUA EIUS LOQUETUR IUDICIUM
Go to the top of the page
+Quote Post
matrik
post 9.02.2015, 11:57:00
Post #6





Grupa: Zarejestrowani
Postów: 115
Pomógł: 2
Dołączył: 23.07.2009

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


Chodziło mi tylko o wyrażenie opinii na ten temat biggrin.gif

Cytat
Cyferki to i Ja Ci mogę pokazać. Mogę Ci nawet powiedzieć że Moje rozwiązanie kładzie Twoje na łopatki.
Chcesz to udostępniaj i wtedy chwal się wynikami "benchmarków", jak nie to nie. Co mamy Ci powiedzieć? Rozwiązać dylemat typu: "Kanapka z chlebem czy bułką?"

Jeśli masz problem z czytaniem ze zrozumieniem to współczuję, jak wyraźnie napisałem "prosty test", który już coś wnosi.
Co z tego, że może masz lepsze rozwiązanie? Skąd wiesz, że akurat do tego będzie pasować? A na siłę nie zmuszam żeby sobie robił bułkę z chlebem, to jego decyzja.

Cytat
dla powaznych programistow raczej to nie pomoze

masz jakieś ogólne zasady poważnych programistów?

Jak zwykle na tym forum chamstwo jakiego nie mało... Jeden przez drugiego chce pokazać tylko kto go bardziej zjedzie, lepiej? Ale cóż taki polak cebulak...
Może moim błędem było napisanie tego tematu dla niepoważnego społeczeństwa?
Go to the top of the page
+Quote Post
Forti
post 9.02.2015, 12:02:15
Post #7





Grupa: Zarejestrowani
Postów: 655
Pomógł: 73
Dołączył: 2.05.2014

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


Cytat
Jak zwykle na tym forum chamstwo jakiego nie mało... Jeden przez drugiego chce pokazać tylko kto go bardziej zjedzie, lepiej? Ale cóż taki polak cebulak...
Może moim błędem było napisanie tego tematu dla niepoważnego społeczeństwa?


A może zamiast się obrażać to przyjmij krytyke i pokaż coś więcej. Masz testy do tego? Mówisz, że korzysta z czystym zapytań sql, podczas gdy ORM bardzo ułatwia pracę.

Ten twój prosty test nie wiele mówi wink.gif


--------------------
Overwatch24 - najbardziej zaawansowany Polski portal Overwatch od fanów dla fanów.

Fachowo.co

Behance.net/fachowo
Go to the top of the page
+Quote Post
matrik
post 9.02.2015, 12:14:23
Post #8





Grupa: Zarejestrowani
Postów: 115
Pomógł: 2
Dołączył: 23.07.2009

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


Forti
Krytyka czasem jest taka, że czasem trzeba się bronić...
ORM może i ułatwia pracę, ale stawiam tylko na optymalizację a nie na ułatwienie pracy. Prostym przykładem może być zapytanie "SELECT * FROM t1 LEFT OUTER JOIN t2 ON(t1.p1=t2.p2)", zajmuje Ci to napisanie pare sekund.
Facebook korzysta z ORM? Google korzysta z innych tego typu rzeczy, które spowaniają pracę całego serwisu?
Przy dużym ruchu te milisekundy robią różnicę a chcąc ograniczać koszty związane z administracją serwerami (loadbalancer, cały cluster a może nawet i chmura) lepiej się zastanowić nad lepszymi rozwiązaniami a nie stawiać na tą wygodę pracy, która po dłuższym użytkowaniu serwisu staję się wolniejszy dodając czynnik wzrostu bazy danych gdzie nawet relacje i partycjonowanie nie pomaga.
Go to the top of the page
+Quote Post
Janusz1200
post 9.02.2015, 12:17:07
Post #9





Grupa: Zarejestrowani
Postów: 110
Pomógł: 6
Dołączył: 19.12.2010
Skąd: Krzyżanowice

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


Za mnie framework ma robić 3 rzeczy:
1. bezpieczeństwo
2. obsługa bazy (zamiast rzeźbić w sql niech to będzie chociaż select składany jak w Zend czy fluent ORM jak w Laravel)
3. obsługa frontendu (całe te walidacje, formatowanie, przerzucanie z formularza do bazy i z powrotem, NUDA)

Ponieważ Twój nie robi 2 i 3, dla mnie - nieprzydatny.

Testy wydajnościowe obchodzą mnie coraz mniej - najwyżej się dorzuci jeszcze jeden procesor, to nie to co 20 lat temu.
Go to the top of the page
+Quote Post
Pyton_000
post 9.02.2015, 12:21:11
Post #10





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

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


@matrik trochę więcej samokrytycyzmu. Co z tego że mówisz że masz superzajebisteochahhehhrozwiązanienaframweork które pokazuje debilny ihmo test "hello World" (ten sam test na Phalconie wykoona się dużo szybciej niż twoje rozwiązania więc jakie tu porównania). Takie testy nie pokazują zupełnie żadnej wiedzy nt. wydajności frameworka. Ot ile pamięci zajmuje czysty system. Koniec wiedzy.

W benchmarku FW trzeba by było postawić coś bardziej skomplikowanego, coś do da lepszy obraz niż głupie wyświetlenie tekstu. Wiadomo że jedne zrobią tak, inne tak.

Co do Twojego autorskiego rozwiązania... Hmm.. dopóki nie pokażesz jakiegoś kodu i super rozwiązań śmiem twierdzić że nie nada się to do niczego bo:
- jest/może być dziurawe jak ser
- wydajność jest super ale tylko na poziomie Hello World
- brakuje testów jesdnostkowych
- stworzenie czegoś bardziej skomplikowanego będzie wymagało 20x większego nakładu pracy, sił
- itd. itd. itd.

To są tylko moje spekulacje i domysłu bo tylko tyle można wywnioskować na podstawie Twojego "ogłoszenia"
Go to the top of the page
+Quote Post
by_ikar
post 9.02.2015, 12:58:34
Post #11





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

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


Wydajność może być super, bez żadnych libów, nakładek etc ta wydajność też będzie super. Ale wtedy dochodzi kwestia jak szybko za pomocą takiego "frameworka" stworze coś. Jeżeli powiedzmy za pomocą laravela wygeneruje jakiegoś prostego cruda w 2 minuty, a z twoim rozwiązaniem to będzie ponad godzina. To pracodawca wówczas woli dołożyć ramu, czy procka, niż opóźniać prace nad projektem.

Taki slim czy jemu podobne micro frameworki, też osiągają mega wydajność, co z tego skoro w niewielu rzeczach mi pomagają? Modele musisz tworzyć samemu od podstaw, walidacje tak samo. Można powiedzieć że do twojego FW można dołożyć jakieś modele, jakieś walidatory, tyle że wtedy ta wydajność będzie zbliżona do innych już istniejących FW, które będą bardziej popularne niż twoje rozwiązanie, będą miały pokrycie testami, będą miały aktywnie pracującą nad tym społeczność etc.

To jest jak z kernelem linuxa. Nie jest on idealny, bo można go tu i ówdzie zoptymalizować pod konkretne rozwiązanie. Tyle że czas jaki się przekłada na taką optymalizacje jest dużo bardziej kosztowny, niż te 500kb pamięci ram, czy 10 cykli procesora.

Kiedyś miałem zapały na swojego FW, wydawało mi się że mogę pewne rzeczy zrobić lepiej, koniec końców, dość szybko wycofałem się z tego zdania i teraz raczej wolę coś tworzyć z gotowych, dobrze udokumentowanych frameworków, niż na siłę skupiać się nad swoim rozwiązaniem..

Tak czy inaczej, pokaż swój kod, wrzuć go gdzieś na githuba, czy innego bitbucketa.

PS. źle odebrałeś słowa krytyki, zamiast zapytać się skąd taka krytyka, od razu strzeliłeś focha. Przyzwyczaj się do tego że ktoś kto już powtarzał 10 osobą przed tobą, z takim samym podejściem (napisze fw lepiej niż wszyscy inni!) może nie mieć już cierpliwości do kolejnego narwańca. Ale z drugiej strony masz rację, że mimo wszystko trzeba jakąś kulturę osobistą zachować. Bo bez tego jesteśmy zwykłymi małpami stukającymi w guziki.
Go to the top of the page
+Quote Post
fizzlebubble
post 9.02.2015, 13:02:10
Post #12





Grupa: Zarejestrowani
Postów: 272
Pomógł: 28
Dołączył: 13.02.2011

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


Yet another PHP framework... Jeśli dla Twoich zastosowań robi robotę to chwała, ale lepiej po prostu zachowaj go dla siebie, bo juniorowi nie wytłumaczysz dlaczego ORM jest zły, po prostu nie wytłumaczysz... smile.gif


--------------------
Nie obrażę się, jeśli za udzieloną pomoc odwdzięczysz się klikając w "Pomógł" :).
Go to the top of the page
+Quote Post
matrik
post 9.02.2015, 13:07:25
Post #13





Grupa: Zarejestrowani
Postów: 115
Pomógł: 2
Dołączył: 23.07.2009

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


Jeśli chodzi o "Hello World!" to specjalnie tak zrobiłem, żeby przedstawić ile na starcie wszystkiego się wykonuje.
Co do dziur to przez 4 lata nie miałem żadnej takiej akcji, wystarczy nie korzystać ze zmiennych get/post/request bezposrednio tylko przez filtr i nie ma sera
Skomplikowane rzeczy są różne, wszystko zależy od sposobu ich wykonania i dobrego zorganizowania by uzyskać pożądany rezultat. Dla jednych logowanie to udręka a dla innych to codzienność.
Go to the top of the page
+Quote Post
pyro
post 9.02.2015, 13:15:31
Post #14





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

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


@matrik, jeżeli tak bardzo Ci zależy na milisekundach pomijając zupełnie użytecznośc, wygodę, czytelność, zużycie procesora i tysiąc innych rzeczy to proponuję zacząć pisać strony w Assembly


--------------------
ET LINGUA EIUS LOQUETUR IUDICIUM
Go to the top of the page
+Quote Post
!*!
post 9.02.2015, 13:19:40
Post #15





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


14 postów w temacie, a Wy rozmawiacie o czymś co istnieje tylko w głowie jego twórcy... Już wiem, czemu tak rzadko zaglądam na to forum...


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
Pyton_000
post 9.02.2015, 13:25:58
Post #16





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

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


Ojj tam @!*! Trzeba jakoś dzień odreagować wink.gif Na piwo za wcześnie, na seks nie ma czasu to chociaż trzeba sobie pomagać haha.gif
Go to the top of the page
+Quote Post
b4rt3kk
post 9.02.2015, 13:27:17
Post #17





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


Cytat(!*! @ 9.02.2015, 13:19:40 ) *
14 postów w temacie, a Wy rozmawiacie o czymś co istnieje tylko w głowie jego twórcy... Już wiem, czemu tak rzadko zaglądam na to forum...


Nie no, chyba coś tam jednak istnieje, bo jakieś testy jednostkowe były.

Wracając do tematu - udostępnij jakiś fragment kodu, pokaż jakieś unikalne rozwiązanie z którego jesteś szczególnie dumny.


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
Go to the top of the page
+Quote Post
matrik
post 9.02.2015, 13:41:53
Post #18





Grupa: Zarejestrowani
Postów: 115
Pomógł: 2
Dołączył: 23.07.2009

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


Nie wiem co z tym... Wrzuciłem:
smarty (wiem, że ostry hejt na to leci ale spełnia swoja rolę biggrin.gif ),
autoryzację,
+ pobieranie danych z 4 baz SQLite,
brak cache
Wynik: [0.03563404083252]1835008b. W sumie prawie wszędzie mam tyle. Wiem, że Smarty spowalnia.
Akurat tworzę coś w stylu OpenID z REST API i działa zadowalająco.

Znowu inny serwis, budowany pod społeczność, tablica, znajomi i pełno relacji pomiędzy komponentami ma znowu: [0.19151997566223]2.5 mb:
- przyciski al'a "lubie to"
- komentarze
- sqlite jako podstrony komentarzy,
- powiadomienia i inne bzdety które ma fb
A takie demo bloga Yii? Jest ktoś w stanie zrobić taki test, żebym nie tylko ja miał takie dane?
W wolnej chwili postawie xdebug i sprawdzę co się dzieje ale to by było bliżej początku udostępniania tego systemu bo tak jak @fizzlebubble wspomniał, że nie wytłumaczysz niektórych rzeczy.

Cytat(b4rt3kk @ 9.02.2015, 13:27:17 ) *
Nie no, chyba coś tam jednak istnieje, bo jakieś testy jednostkowe były.

Wracając do tematu - udostępnij jakiś fragment kodu, pokaż jakieś unikalne rozwiązanie z którego jesteś szczególnie dumny.

Może nie tyle co unikalne, zwykły singleton, ładowarka klas i główna klasa odpalenia skryptu (widać w metodzie run) biggrin.gif
Swoje zadanie spełnia, mało kodu i to się liczy, nie ma co kombinować i wymyślać a póżniej z igły robią się widły jak to się mowi biggrin.gif
http://pastebin.com/7Rg8eCYF

CCV byłby widoczny przy rozbudowanym kontrolerze i komponencie.
Go to the top of the page
+Quote Post
Forti
post 9.02.2015, 13:58:22
Post #19





Grupa: Zarejestrowani
Postów: 655
Pomógł: 73
Dołączył: 2.05.2014

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


Dawno nie widziałem takiego "nested if/else" ;]


--------------------
Overwatch24 - najbardziej zaawansowany Polski portal Overwatch od fanów dla fanów.

Fachowo.co

Behance.net/fachowo
Go to the top of the page
+Quote Post
matrik
post 9.02.2015, 14:06:53
Post #20





Grupa: Zarejestrowani
Postów: 115
Pomógł: 2
Dołączył: 23.07.2009

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


Cytat(Forti @ 9.02.2015, 13:58:22 ) *
Dawno nie widziałem takiego "nested if/else" ;]

Stare ale jare biggrin.gif
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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: 26.06.2025 - 05:16