PDA

Zobacz pełną wersję : Mambo - Cake



nexus246
18-10-2007, 23:29
Taki ciekawy news znalazłem, to dla Mambowców :)

Dylek
19-10-2007, 00:15
Jaki? :)

nexus246
19-10-2007, 09:52
Ups :) http://bakery.cakephp.org/articles/view/mambo-licious

I wydaje mi się że to bardzo ciekawy pomysł.

kuba
30-11-2007, 23:35
Ups :)

I wydaje mi się że to bardzo ciekawy pomysł.

Ano ups ... czy poza blogami, jakimiś małymi galeriami , czy czym kolwiek innym , powstała na kejku, jakaś aplikacja, której baza składała by sie z więcej niż 20 tabel, przy jednoczesnym założeniu, ze naraz aplikacja powinna obsłużyć kilkuset userow ?


Odpowiedz jest oczywista - NIE.

Szczerze wątpię, żeby mambo kiedykolwiek użyło kejka jako podstawy do budowy CMS'a - chociażby dlatego ze do frameworkow takich jak symphony, zend framework czy CI kejkowi brakuje tyle co notepadowi do worda.

W kejku jest "magia" - wszystko szybko , przyjemnie ( o ile w ogóle działa ), tylko, że bardzo nieoptymalnie - o ile w ogóle można mówić o jakiej kolwiek optymalizacji.

Za jakieś 2 miesiące od dziś dobiega końcowi support zenda dla php4, cake planue zgodność z php5 w wersji bodajże 2.0 lub 3.0 - przy obecnym tempie rozwoju ( jakieś 6 miesięcy pomiędzy v 1.1 i 1.2 ( przy czym 1.2 to narazie nawet nie beta ) kejk zacznie wspierać php5 w momencie gdy zend zapowie php8 ;)

nexus246
01-12-2007, 13:55
Ano ups ... czy poza blogami, jakimiś małymi galeriami , czy czym kolwiek innym , powstała na kejku, jakaś aplikacja, której baza składała by sie z więcej niż 20 tabel, przy jednoczesnym założeniu, ze naraz aplikacja powinna obsłużyć kilkuset userow ?

Odpowiedz jest oczywista - NIE.

To że ani Ty ani ja takiej nie znamy, to nie znaczy że jej nie ma. Z tymi oczywistościami oczywistymi to ostrożnie. Jakiś czas temu tacy jedni się na tym przejechali :P

Chociaż... też uważam że cake jest fajny do robienia małych "zamkniętych" (funkcjonalnie) aplikacji.



W kejku jest "magia" - wszystko szybko , przyjemnie ( o ile w ogóle działa ), tylko, że bardzo nieoptymalnie - o ile w ogóle można mówić o jakiej kolwiek optymalizacji.

Za jakieś 2 miesiące od dziś dobiega końcowi support zenda dla php4, cake planue zgodność z php5 w wersji bodajże 2.0 lub 3.0 - przy obecnym tempie rozwoju ( jakieś 6 miesięcy pomiędzy v 1.1 i 1.2 ( przy czym 1.2 to narazie nawet nie beta ) kejk zacznie wspierać php5 w momencie gdy zend zapowie php8 ;)

No działa, działa. Chociaż faktycznie z wydajnością w cake jest nie najlepiej, ja to bym się czepiał ładowania wszystkiego do pamięci przy dużej ilości wykorzystywanych modeli na jednej stronie i dużej ilości zależności pomiędzy nimi. Także faktycznie nie jest tak słodko :)

Ale uważam że pomysł jest ciekawy, Joomla (w ver.1), która wywodzi się z Mambo ma problemy z wydajnością co testowałem na różne sposoby a i w necie się pojawiają różne opinie i problemy z tym związane. Na pewno oglądałeś kod wielu komponentów - można chyba pokusić się o stwierdzenie że często nie trzyma "standardu". Nie wiem jak z tym jest w Mambo bo ostatnich wersji nie ściągałem i zatrzymałem się tak naprawdę chyba koło wersji 4.52. Ale jestem ciekawy co z tego wyjdzie, a nauczony doświadczeniem nie oceniam pochopnie zanim nie zobaczę efektów.

Btw, Symfony z którego też korzystam był dość mocno krytykowany za wysoki stopień komplikacjia, niską wydajność etc. A Yahoo wzięło Symfony i coś tam sobie na tym wdrożyli ( nie chce mi się szukać linka ;) ).

kuba
01-12-2007, 18:09
To że ani Ty ani ja takiej nie znamy, to nie znaczy że jej nie ma. Z tymi oczywistościami oczywistymi to ostrożnie. Jakiś czas temu tacy jedni się na tym przejechali :P

Właśnie kończę pisać aplikację , dla której na bazę ktoś tam zielony , wybrał właśnie kejka ( łącznie jakieś 150 tabel w dwóch bazach, pełno asocjacji ( ralacji ) między nimi, wszelkiego możliwego typu ). To chyba duży projekt. Dopiszę coś na końcu o tym projekcie.

Pyzatym społeczność kejka wręcz zachłysnęła sie wyborem owego przez mambo, gdyby była jakaś duża aplikacja napisana w kejku, na pewno zadbali by o to żeby temat był przewałkowany w BBC innych mniejszych serwisach informacyjnych....



No działa, działa. Chociaż faktycznie z wydajnością w cake jest nie najlepiej, ja to bym się czepiał ładowania wszystkiego do pamięci przy dużej ilości wykorzystywanych modeli na jednej stronie i dużej ilości zależności pomiędzy nimi. Także faktycznie nie jest tak słodko :)

Cake uporczywie pakuje w pamięć dosłownie wszystko - łącznie ze strukturą tabel ( nazwy pół, typy pół, ich długości) - można by to było ścierpieć , gdyby był to proces jednorazowy, a dane później wykorzystywane. Niestety dane nie są na razie nigdzie wykorzystywane ( nie ma czegoś takiego jak automatyczna walidacja ), co więcej, kejk lubi sie przy tym z czytywaniu asocjacji zapętlać - np w zależności od rodzajów, ilości asocjacji możemy mieć dowolną ilość obiektów reprezentujących ten sam model, dla każdego z nich dane o tabeli są z czytywane z osobna...

Tak, wiem ... tak bug był i został "poprawiony" , efekt u mnie był taki że zamiast 7 razy kejk pojechać po tabeli users pojechał jedynie 3 może 4 razy...

Odkryje kolejnego asa w rekawie sceptyka ( czyli moim ).

ACL, zgadnienie proste, wręcz trywialne, a jednocześnie niezwykle funkcjonalne... jak to działa w kejku, lub jak nie działa ...

Założenie : chcemy mieć grupy ARO :
1. admini
2. userzy

w nich podgrupy :

1. admini :
a - top admin
b - advanced admin
c - admin

2. userzy
a - user
b - advanced user


teraz grupy ACO , zeby bylo prościej będziemy sprawdzać dostęp do kontrolerów i ich akcji wyglądało by to tak :


1. UsersController
a. admin_index
b users_index


nadamy jakieś grupie ARO jaki kolwiek typ uprawnień do grupy ACO np :

ARO : admini , ACO : UsersController , crud : -1 , - 1 , -1 , -1 -czyli brak dostępu do czego kolwiek - tak jak powinno byc.

teraz dla ARO : admini , ACO admin_index dajmy uprawnienia allow ALL , czyli same 1 w crdzie ...

to samo zrobmy dla top admin dla tego samego aco ustawmy taki sam crud ...i co ? i **************** ... kejk ZAWSZE będzie sprawdzać tylko dla parenta z ARO dostęp do parenta ACO z pominięciem dziedziczenia.

Rozwiązaniem byłoby posiadanie jedynie drzewa w tabeli ARO lub ACO , ale dziedziczenie nie działa dla tabeli ARO poprawnie ...

Po ostatnich 7 czy 8 miesiącach z kejkiem w pracy na prawdę nie mogę powiedzieć o nim dobrego słowa.



Btw, Symfony z którego też korzystam był dość mocno krytykowany za wysoki stopień komplikacjia, niską wydajność etc. A Yahoo wzięło Symfony i coś tam sobie na tym wdrożyli ( nie chce mi się szukać linka ;) ).

Symfony to świetny fm do budowy aplikacji intranetowych , gdzie wydajność nie gra takiej roli, nawet przy dużym oblężeniu aplikacji przez klientów, w necie już lekko zamula. Do aplikacji netowych szczególnie wysoko wydajnych polecam zenda - brak magii kejka, upierdliwe linkowanie plików ( to jest celowe ... ładujesz tylko niezbędne rzeczy - wszystko ma lazic szybko ).

Obydwa te frameworki są skomplikowane, 90% ludzi którzy wybierają kejka robią to dlatego, że nie mają pojęcia o programowaniu obiektowym ( w kejku jest ono sprowadzone do programowania proceduralnego wewnątrz metod , i odwoływania się do wszędzie obecnego $this ), lub w ogóle stawiają pierwsze chwiejne kroki w programowaniu i od razu sięgają po magię kejka twierdząc, że nawet gdy będą mieli napisać jednolinijkowy kod, zrobią to w kejku.

W moim projekcie, kejk jest teraz niesamowicie wdajnym i sprawnym .... form helperem. Wykastrowałem go z całej magii ( głownie związanej z bazą danych ) pozostawiając jedynie częściowo przepisana klasę obsługi ACL. Pisząc wszytsko z palca i implementująć wzorzec MVC uzyskałbym znacznie wydajniesza, elestyczniejsza i w pełni obiektową aplikację.

nexus246
01-12-2007, 19:50
Co prawda rzeczy które robiłem/robię (tymi frameworkami) nie składają się z dużej ilości tabel (trzymając się już tego wyznacznika wielkości aplikacji) jednak wydaje mi się, że skomplikowanie Symfony przewyższa Cake. Na pewno wiąże się to z prostotą Cake i zgodzę się z tym, że wybór Cake może się wiązać z jego pseudoobiektowościa i pewną prostotą w konstrukcji aplikacji. Może i dlatego jest często wybierany przez ludzi produkujących swoje pierwsze aplikacje.

Tak się zastanawiam czy ze strony decydentów Mambowych właśnie to nie jest powodem wyboru (o ile oczywiście wdrożą nowe Mambo na kejku). Wydaje się, że popularność Mambo pomalutku spada (vide google trends jako prosty przykład) i ciągnie się chyba za Mambo opinia, że Joomla jest jego następcą i jest lepsza. Stąd być może chęć pozyskania użytkowników którzy nie są zawodowymi programistami, nie używają frameworków typu Zend/Symfony.

Mambo i teraz Joomla w swoim aktualnych wersjach stable to aplikacje masowe, prosto napisane, bez super funkcjonalności. W kilku miejscach fajnie przemyślane w kilku mniej, i jak już pisałem ze sporą ilością lepszych lub gorszych dodatków. Myślę, że dotychczas nie były to skrypty, które można by nazwać super napisanymi - oceniając od strony niuansów programistycznych, standardów etc. Ale są popularne i działają :)

Bardzo ciekawi mnie Twoja opinia o konstrukcji Joomla 1.5

kuba
02-12-2007, 01:26
Wg mnie wybór kejka na jajko nowego mambo ( o ile takowe powstanie ) to raczej decyzja niezbyt przemyślana i podjęta pod wpływem wszystkich ochów i echów zawartych w manualu kejka i na google groups.

Co do popularności mambo ... google trends prawdopodobnie uwzględnia ilość sitów używających mambo a nie ich przyrost. Zakładając, że o popularności joomli i mambo stanowi wielkość i aktywność community i patrząc na dzienny przyrost postów na forum jednego i drugiego CMS'a ( co świadczy w jakiś, ale na pewno miarodajny sposób o aktywności community )

postów na forum dziś rano : mambo - 399,898 - chwil kilka temu : 399,910
joomla rano : 1,097,905 : chwil kilka temu : 1,098,719

można stwierdzić, że kiedyś świetny projekt, dziś ma się ku końcowi.


[quote]
Bardzo ciekawi mnie Twoja opinia o konstrukcji Joomla 1.5 [/qoute] Któraż to, bo nie pamiętam abym na trzeźwo krytykował joomle ? :)


Chyba, że chodzi Ci o moje odczucia odnośnie j1.5 ?

nexus246
02-12-2007, 23:50
Google trends pokazuje ilość wyszukiwań wybranej frazy/słowa.

Tak, chodzi mi o odczucia :)

kuba
06-12-2007, 21:06
Pod maskę nie zaglądałem z braku czasu, co do różnic pomiędzy 1.x a 1.5, to na pierwszy rzut oka rzucają sie zmiany w GUI back-endu. Pod względem dopracowania interfejsu użytkownika Mambo/Joomla zawsze były niedoścignione przez inne aplikacje webowe.

W 1.5 AJAX mógłby być znacznie częściej wykorzystywany - np do walidacji, zamiast alertów JS , lub w paginacji Article Managera , który również w 1.5 w stosunku do tego z 1.x jest znacznie bardziej funkcjonalny ( być może zapomniałem już jak wyglądał on we wcześniejszych wersjach, ale kiedyś uważałem że ten z 1.5 bije na głowę poprzednie wersje ).

Pamiętam, że w becie była opcja podglądu pozycji modułów na aktualnie przypisanym szablonie , później wyleciała ze stable i tym byłem troszkę rozczarowany ( przynajmniej początkowo - bo w końcu jak często była by ta funkcjonalność używana ).

Troszkę zawsze mnie bolał brak zaawansowanego ACL'a w joomli/mambo , ale znów nasuwa mi się pytanie ... czy to konieczne ?

Nie wiem jak zmieniła się obsługa BD w stosunku do poprzedniej wersji, ale pewnie nie wiele, w końcu to CMS dla mas, i z założenia ma sprawnie działać na jak największej liczbie maszyn....

Wg mnie to akurat błąd, bo jak podejrzewam problemy z wydajnością o których wspominałeś, mają właśnie związek z "kulawą" obsługą baz danych ( brak triggerów, procedur składowych - które z pewnością przyczyniły by się do wzrostu wydajności , i pewnie spadku ilości obsługiwanych baz mysql - o ile dobrze pamiętam większość ciekawych rzeczy została wprowadzona do mysql 4.1.5 czy 4.5.1 ).

Gdybym to akurat ja miał wpływ na taką decyzję , to nie przejmowałbym się hostingami, które spowalniają hmmm "postęp", a najprawdopodobniej zdecydowałbym się na natywną ( nie poprzez żadne sterowniki - protezy ) obsługę postgresa. Po przemodelowaniu BD ( pewnie tez klas, metod czy funkcji ) , i solidnej obsłudze na poziomie bazy ( proc. , triggery, widoki, itd ) strzelam, że przyrost wydajności byłby na poziomie 15 - 60 %.

Tak wiem postrgres ma opinie bazy rozwijającej skrzydła przy dużej ilości danych ( niekoniecznie mam na myśli ilość rekordów ) i poziomie ich komplikacji , a mulącej przy sytuacji odwrotnej, ale czy to ważne, że zapytanie wykona się w ciągu 0.00014 s czy 0.005 s.

Temat rzeka, a moje pojecie o joomli jest naprawdę znikome, wiec poprzestanę na tych kilku "przemyśliwywaniach".