[famework] Ouzo framework |
[famework] Ouzo framework |
28.02.2014, 14:08:52
Post
#1
|
|
Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków |
Została wydana stabilna wersja frameworka Ouzo. Zapraszamy do wypróbowania na http://ouzoframework.org i zgłaszania ewentualnych uwag.
-------------------- |
|
|
28.02.2014, 14:14:07
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) |
Podstawowe pytanie: dlaczego miałbym wybrać tego FW zamiast innego, tj. co go wyróżnia spośród innych.
|
|
|
28.02.2014, 14:47:32
Post
#3
|
|
Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków |
ORM:
http://symfony.com/doc/current/book/doctrine.html
Ekwiwalent w Ouzo: https://github.com/letsdrink/ouzo/wiki/ORM
lub
lub
------------------- Doctrine:
Ouzo:
Ouzo implementuje wzorzec ActiveRecord. Ouzo ma wbudowaną obsługę migracji schematu bazy danych. Posiada bardzo dobre zaplecze do rozwijania aplikacji w oparciu o TDD/BDD (https://github.com/letsdrink/ouzo/wiki/Tests). -------------------- |
|
|
28.02.2014, 14:57:01
Post
#4
|
|
Grupa: Zarejestrowani Postów: 272 Pomógł: 28 Dołączył: 13.02.2011 Ostrzeżenie: (0%) |
Garażowy framework jakich 34535353534534.
-------------------- Nie obrażę się, jeśli za udzieloną pomoc odwdzięczysz się klikając w "Pomógł" :).
|
|
|
28.02.2014, 15:05:31
Post
#5
|
|
Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków |
Ciężko mi się zgodzić z tą "konstruktywną" krytyką.
Framework mający ponad 800 commitów, ponad 13 000 linii kodu, 5 contributorów, w 85% pokryty testami i używany aktualnie produkcyjnie u kilkudziesięciu klientów można nazwać garażowym. //EDIT Stats: http://www.ohloh.net/p/ouzo
Powód edycji: [piotrooo89]:
-------------------- |
|
|
28.02.2014, 15:11:53
Post
#6
|
|
Grupa: Moderatorzy Postów: 4 069 Pomógł: 497 Dołączył: 11.05.2007 Skąd: Warszawa |
|
|
|
28.02.2014, 15:17:17
Post
#7
|
|
Grupa: Zarejestrowani Postów: 272 Pomógł: 28 Dołączył: 13.02.2011 Ostrzeżenie: (0%) |
5 contributorów? Wow... Tworząc projekt komercyjny w jakimś frameworku trzeba założyć, że może potrwać XX lat, nawet jeśli specka mówi inaczej. Nie chcę mi się rozpisywać, wystarczy zapoznać się z pojęciami dług technologiczny i okres wsparcia, dziękuję dobranoc.
Ten post edytował fizzlebubble 28.02.2014, 15:17:32 -------------------- Nie obrażę się, jeśli za udzieloną pomoc odwdzięczysz się klikając w "Pomógł" :).
|
|
|
28.02.2014, 15:19:20
Post
#8
|
|
Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków |
@piotrooo89 - to ma być alternatywa dla CI czy Symfony? Do kogo kierujesz to narzędzie? CI osobiście nie wiem jak wygląda. Niemniej dla Symfony i jego ociężałego ORM'a, braku łatwego testowania napisanego kodu jak najbardziej. A narzędzie skierowane do osób znających Rails'y, rozwijających aplikacje za pomocą metodologi TDD/BDD. Ale nie widzę powodu dla którego każdy nie miałby spróbować. -------------------- |
|
|
28.02.2014, 15:29:04
Post
#9
|
|
Grupa: Zarejestrowani Postów: 272 Pomógł: 28 Dołączył: 13.02.2011 Ostrzeżenie: (0%) |
To ostatnie pytanie jako, że jestem devem Railsów, dlaczego miałbym wybrać ten FW skoro znacznie szybciej, lepiej i sprawniej napiszę to w Railsach? :-) Jedynym 'podobieństwem' jest ORM, więcej nie dostrzegam.
-------------------- Nie obrażę się, jeśli za udzieloną pomoc odwdzięczysz się klikając w "Pomógł" :).
|
|
|
28.02.2014, 15:49:17
Post
#10
|
|
Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków |
To ostatnie pytanie jako, że jestem devem Railsów, dlaczego miałbym wybrać ten FW skoro znacznie szybciej, lepiej i sprawniej napiszę to w Railsach? :-) Jedynym 'podobieństwem' jest ORM, więcej nie dostrzegam. Ouzo powstało jako alternatywa Railsów do PHP bo nie było czegoś takiego. Skoro ktoś może używać RoR, bo to dla niego najlepsza opcja to oczywiste że należy ich używać, niektórzy z różnych powodów muszą zostać przy PHP. Zapewniam Cie że podobieństw jest więcej (migracje, testy). -------------------- |
|
|
28.02.2014, 16:21:46
Post
#11
|
|
Grupa: Zarejestrowani Postów: 272 Pomógł: 28 Dołączył: 13.02.2011 Ostrzeżenie: (0%) |
Migracje to już akurat podciągnąłbym pod ActiveRecord . Nie wiem czy jest taki sens pisać "Yet another testing suite", skoro większość PHPowców używa jednak PHPUnita. Nie zrozum mnie źle, jestem pełny podziwu dla Waszych starań, umiejętności i wiedzy jako dev teamu, ale czy środowisku PHP potrzebuje właśnie kolejnego frameworka? :-)
-------------------- Nie obrażę się, jeśli za udzieloną pomoc odwdzięczysz się klikając w "Pomógł" :).
|
|
|
28.02.2014, 17:00:35
Post
#12
|
|
Grupa: Zarejestrowani Postów: 1 Pomógł: 0 Dołączył: 28.02.2014 Ostrzeżenie: (0%) |
Migracje to już akurat podciągnąłbym pod ActiveRecord . Nie wiem czy jest taki sens pisać "Yet another testing suite", skoro większość PHPowców używa jednak PHPUnita. Nie zrozum mnie źle, jestem pełny podziwu dla Waszych starań, umiejętności i wiedzy jako dev teamu, ale czy środowisku PHP potrzebuje właśnie kolejnego frameworka? :-) PHPUnit to kopia pierwszych wersji xUnita. Dla ludzi z doświadczeniem z innych języków (Java, Ruby) używanie PHPUnit to jak podróż w czasie do roku 2004. Pomimo, że JUnit 4 i PhpUnit dzieli przepaść to w i tak w javie nikt nie używa samego JUnita, zawsze do tego dochodzi np hamcrest, fest-assert, mockito i np guava. Stan bibliotek tego typu w php jest tragiczny. Pewnie jest to spowodowane tym, że TDD w php nadal raczkuje (rok 2004). Ouzo to próba wprowadzenia best-practises z innych języków. Między innymi klasy Arrays i FluentArray, Functions to fasady normalizujące niespójny interfejs funkcji array_xxx. Wzorowane są na jednej z najpopularniejszych bibliotek do javy guavie. Klasa Strings jest wzorowana na StringUtils z apache commons. Mock jest inspirowany najpopularniejszą biblioteką do mockowania: mockito (werjsa php Phockito jest ciężka, nie działa z composerem, a kod jest tragiczny i nieutrzymywany). Assert jest inspirowany biblioteką fest-assertions. Nie będę wymieniał teraz wszystkiego, odsyłam do dokumentacji, którą staramy się uzupełniać (lub naszych testów, które też służą za dokumentację). Do kodu Ouzo na bieżąco przenosimy użyteczne klasy z naszych wewnętrznych projektów, więc można się spodziewać nowych ficzerów. Ten post edytował phpsucks 28.02.2014, 17:06:22 |
|
|
28.02.2014, 17:02:45
Post
#13
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) |
1. Ilość linii kodu jest właściwie bez znaczenia, często ten dłuższy pisze się szybciej, łatwiej i lżej jest dbać o niego, także ten argument jest kompletnie nietrafiony.
2. Przykłady, które podałeś nie są ekwiwalentami. Kod w wersji Symfonowskiej/Doctrine'owskiej ma sporo zalet i różnic w działaniu w stosunku do Ouzowych przykładów. 3. Migracje baz danych są wspierane we wspomnianym Doctrine. 4. Na Doctrine świat się nie kończy w temacie ORM-ów. Skoro już jesteśmy przy Symfony podpowiem, że można w nim spokojnie skorzystać z innego. Czy Ouzo radzi sobie z takim czymś? Jak dobrze? Pytam tutaj konkretnie o możliwości podmiany większości z "pobocznych" komponentów frameworka. 5. W temacie TDD nie widzę niczego specjalnego w stosunku do konkurencji. Cytat Ouzo powstało jako alternatywa Railsów do PHP bo nie było czegoś takiego. No, w końcu coś konkretnego. RoR-a nie znam na tyle by być wstanie samodzielnie ocenić czy tak faktycznie jest, ale jeżeli Twój FW ma być jego PHP-owym odpowiednikiem (oczywiście w granicach rozsądku), to jest to w końcu coś co daje mu jakiegokolwiek plusa na tle reszty.Cytat Cytat Podstawowe pytanie: dlaczego miałbym wybrać tego FW zamiast innego, tj. co go wyróżnia spośród innych. A co wyróżnia laravela po za wielkim szumem? |
|
|
28.02.2014, 17:26:22
Post
#14
|
|
Grupa: Zarejestrowani Postów: 272 Pomógł: 28 Dołączył: 13.02.2011 Ostrzeżenie: (0%) |
@phpsucks - tak samo w Railsach mało kto używa testsuit'a dostarczanego z Railsami, a skupia się na gemach typu Rspec czy Cucumber, jednakże uważam że marnujecie swój czas i umiejętności na tworzenie kolejnego frameworka skoro moglibyście ulepszyć już jakiś istniejący :-)
-------------------- Nie obrażę się, jeśli za udzieloną pomoc odwdzięczysz się klikając w "Pomógł" :).
|
|
|
28.02.2014, 18:46:05
Post
#15
|
|
Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków |
1. Ilość linii kodu jest właściwie bez znaczenia, często ten dłuższy pisze się szybciej, łatwiej i lżej jest dbać o niego, także ten argument jest kompletnie nietrafiony. Chyba sam sobie zaprzeczasz trochę jeśli o coś jest łatwiej dbać to ja biorę to w ciemno bo utrzymam to w porządku. 2. Przykłady, które podałeś nie są ekwiwalentami. Kod w wersji Symfonowskiej/Doctrine'owskiej ma sporo zalet i różnic w działaniu w stosunku do Ouzowych przykładów. Czy mógłbyś powiedzieć coś więcej na ten temat? Bo wydaje mi się że ten kod dodaje rekord do bazy danych, dokładnie tak jak w Ouzo. 3. Migracje baz danych są wspierane we wspomnianym Doctrine. Rzeczywiście, są - niestety nie wiem jak działają nie korzystałem więc na ten temat nie mogę się wypowiedzieć. 4. Na Doctrine świat się nie kończy w temacie ORM-ów. Skoro już jesteśmy przy Symfony podpowiem, że można w nim spokojnie skorzystać z innego. Czy Ouzo radzi sobie z takim czymś? Jak dobrze? Pytam tutaj konkretnie o możliwości podmiany większości z "pobocznych" komponentów frameworka. Właśnie po to zrobiony jest built-in ORM aby nie trzeba było korzystać z pobocznych ORM'ów. Jednak wsparcie do tego typu rzeczy, jeśli są one dodawane przez composer jak najbardziej jest ale na poziomie aplikacji. 5. W temacie TDD nie widzę niczego specjalnego w stosunku do konkurencji. Nie widziałem aby ktokolwiek miał TestCase do bazy danych, takie które w pełni pomagają przetestować model bez konfigurowania miliarda rzeczy (napisałem inżynierkę w Zendzie i poświęciłem sporo czasu aby testować model). -------------------- |
|
|
28.02.2014, 19:16:14
Post
#16
|
|
Grupa: Zarejestrowani Postów: 879 Pomógł: 189 Dołączył: 14.06.2006 Skąd: Bytom Ostrzeżenie: (0%) |
Jak zwykle bywa przy takiej dyskusji co jest lepsze co jest gorsze pojawiają się bzdurne przykłady wyższości jednego nad drugim. Nie wiem czy to brak wiedzy czy też celowe działanie.
Cytat Niemniej dla Symfony i jego ociężałego ORM'a Symfony2 jak i poprzednia wersja nie ma ORMa, więc nie wiem co jest dla Ciebie ociężałe. Dodam, żeORM nie jest jedyną możliwością implementacji modelu w aplikacji, zwłaszcza jeśli utrwalanie odbywa się w API, to też nie jest wymagany przez framework. Cytat braku łatwego testowania napisanego kodu jak najbardziej. To chyba żart skoro napisałeś to w tym samym zdaniu z Symfony2. Tylko proszę nie licytujmy się, że coś jest wygodniejsze bo zabiera mniej lub więcej linijek. Dorzucając do tego istnienie Behata to już kompletnie nie rozumiem o co Ci chodzi. Jeżeli porównujesz Ouzo do Doctrine2 to ok. Pokaż mi jak zaimplementować Value Objects? Jak wykonać mapowanie typów danych z PostGIS? Dużo czasu zajmie mi podmiana na jakiś silnik NoSQL? Fajnie, że Wam się chciało. Fajnie, że postanowiliście pochwalić się tym, dobrze wiedząc, że spadnie na Was głównie krytyka. Pytanie czy nie było lepiej skorzystać z gotowych bibliotek (logger, shell itd.)? Oprzeć się na dostępnych już rozwiązaniach dodając swoje pomysły? Jeszcze jedno mi się przypomniało: jeśli chcę skorzystać z klasy Ouzo\Utilities\Strings to koniecznie cały framework muszę pobierać czy przewidujecie podzielić to na kawałki? Ten post edytował destroyerr 28.02.2014, 19:18:31 |
|
|
28.02.2014, 19:46:18
Post
#17
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) |
Cytat Chyba sam sobie zaprzeczasz trochę jeśli o coś jest łatwiej dbać to ja biorę to w ciemno bo utrzymam to w porządku. Nigdzie sobie nie zaprzeczyłem. Napisałem tylko, że niejednokrotnie bardziej obszerny kod (pod względem linii) pisze się szybciej i jest go łatwiej utrzymać w porządku. Odniosłem wrażenie, że próbowałeś pokazać zwięzłość kodu Twojego ORM-a jako zaletę - co w tym konkretnym przypadku raczej ją nie jest.Cytat Czy mógłbyś powiedzieć coś więcej na ten temat? Bo wydaje mi się że ten kod dodaje rekord do bazy danych, dokładnie tak jak w Ouzo. Masz rację, oba kody mają docelowo dodać nowy obiekt do bazy i zapewne robią to podobnie. Jednak ten Doctrine'owy napisany jest z uwzględnieniem zestawu zasad SOLID czyli nie będzie rzucać kłód pod nogi przy próbie zrobienia czegokolwiek co nie jest wręcz do bólu szablonowe. Zwróć uwagę na to, że w Twoim kodzie nie wykorzystam dobrodziejstw IDD, nie rozszerzę kodu poprzez podpięcie zdarzenia, nie zastąpię Twojej klasy Ouzo\Db\QueryExecutor swoją, która robiłaby jakieś dodatkowe rzeczy, długo by jeszcze wymieniać...Cytat Właśnie po to zrobiony jest built-in ORM aby nie trzeba było korzystać z pobocznych ORM'ów. Jednak wsparcie do tego typu rzeczy, jeśli są one dodawane przez composer jak najbardziej jest ale na poziomie aplikacji. Doprecyzuję swoje pytanie: czy jeżeli będę miał taką zachciankę by podpiąć do projektu ORM Doctrine czy inny XYZ, czy po napisaniu kilku adapterów/sterowników i zmianie konfiguracji będę wstanie z niego korzystać z innymi komponentami FW, przykładowo obsługą formularzy lub walidacją?Cytat Nie widziałem aby ktokolwiek miał TestCase do bazy danych, takie które w pełni pomagają przetestować model bez konfigurowania miliarda rzeczy (napisałem inżynierkę w Zendzie i poświęciłem sporo czasu aby testować model). Zapewne dlatego, że napisanie testów wykorzystujących bazę danych to już zadanie programistów aplikacji, a nie frameworka.Nie zrozum mnie źle, zapewne na Wasze potrzeby jest do dobre narzędzie i spisuje się jak powinno. Jednak jeżeli nie wprowadza ono niczego ciekawego/nowego/dobrego-z-innych-platform to niestety pochwał zbierać nie będzie. |
|
|
6.03.2014, 08:42:58
Post
#18
|
|
Grupa: Zarejestrowani Postów: 340 Pomógł: 46 Dołączył: 31.07.2009 Skąd: A Ostrzeżenie: (0%) |
a dlaczego nie wykorzystacie http://redbeanphp.com/ ?
|
|
|
6.03.2014, 12:08:59
Post
#19
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) |
@aniolekx - nie jestem zwolennikiem ORM w jakiejkolwiek postaci, choć doceniam logikę niektórych narzędzi, ale to co zaproponowałeś jest po prostu mocno popieprzone, gdzie w tym wszystkim jest "easy" ze sloganu?
@piotrooo89 - dobra robota, witamy w gronie ludzi potrafiących napisać solidny framework. Ciekawe ile jest ich na forum, naliczyłem 3... a w Polsce? -------------------- 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). |
|
|
6.03.2014, 12:33:44
Post
#20
|
|
Grupa: Moderatorzy Postów: 4 069 Pomógł: 497 Dołączył: 11.05.2007 Skąd: Warszawa |
|
|
|
Wersja Lo-Fi | Aktualny czas: 24.04.2024 - 12:09 |