Stwórz profil

Musisz wpisać swoje imię
Musisz wpisać swoje nazwisko
Musisz wpisać poprawny e-mail
Musisz wpisać hasło (min. 8 znaków)
Musisz zaakceptować regulamin

Tomasz Zadora extends Human

Temat: Yii framework - czy ktoś używa?

Robert B.:
[...]
Hm... a jeśli dopiero uczysz się tego co Twoja aplikacja ma robić ? np.: zawsze robiłeś aplikacje do obsługi ruchu na
[...]

Do takich sytuacji generalnie nie powinno dochodzić. Najpierw całość "ogarnięta" dopiero na samym końcu kodowanie.

Patrząc ogólnie na temat przeprowadzania zmian w aplikacji na etapie dev. lub później prod. można się zastanowić co jest lepsze: najpierw zmiana modelu domeny a później warstwy bazy czy odwrotnie. Przypominam, że są także programy do modelowania baz danych (np. kartka i ołówek) :)
[...]
Zgaduję - dane w cache mogą być nieaktualne ?

Nie do końca, chociaż dane nieaktualne, lub brak danych w keszu to punkt w którym zaczyna się potencjalny problem. Tu chodzi o błąd polegający na braku synchronizacji.

Wyobraź sobie że tworzenie elementu keszowanego trwa relatywnie długo, jest to pewne okno czasowe, jeżeli jest brak synchronizacji i np. w to okno wejdzie kilka wątków/procesów to każdy z nich pobiera ten wolno tworzący się zasób (czyli w założeniu obciążający) a następnie próbuje zapisać go do keszu.
12.09.2011, 13:11

Robert B. Web Development
Manager

Temat: Yii framework - czy ktoś używa?

Tomasz Zadora:
Robert B.:
[...]
Hm... a jeśli dopiero uczysz się tego co Twoja aplikacja ma robić ? np.: zawsze robiłeś aplikacje do obsługi ruchu na
[...]

Do takich sytuacji generalnie nie powinno dochodzić. Najpierw całość "ogarnięta" dopiero na samym końcu kodowanie.

Patrząc ogólnie na temat przeprowadzania zmian w aplikacji na etapie dev. lub później prod. można się zastanowić co jest lepsze: najpierw zmiana modelu domeny a później warstwy bazy czy odwrotnie. Przypominam, że są także programy do modelowania baz danych (np. kartka i ołówek) :)
Nie wiem jaką metodę pracy stosujesz, ale cokolwiek bym nie zrobił, to o projekcie wszystko jest wiadomo wtedy kiedy on się skończy :-) Mindmaping, unit testy, scrum - wszystko powoli iteracyjnie prowadzi do pożądanego działania (scrum akurat jest iteracyjny :) )
[...]
Zgaduję - dane w cache mogą być nieaktualne ?

Nie do końca, chociaż dane nieaktualne, lub brak danych w keszu to punkt w którym zaczyna się potencjalny problem. Tu chodzi o błąd polegający na braku synchronizacji.

Wyobraź sobie że tworzenie elementu keszowanego trwa relatywnie długo, jest to pewne okno czasowe, jeżeli jest brak synchronizacji i np. w to okno wejdzie kilka wątków/procesów to każdy z nich pobiera ten wolno tworzący się zasób (czyli w założeniu obciążający) a następnie próbuje zapisać go do keszu.
Zgadza się - i to powoduje chwilowy peak obciążenia, ale z regóły jest on akceptowalny na potrzeby aplikacji web. Pojęcie 'realatywnie' jest bardzo szerokie, ale w webie tylko strona główna jest w tym rozwiązaniu wąskim gardłem - na pozostałych podstronach, w warunkach bojowych ten problem można pominąć :-)
12.09.2011, 13:56

Tomasz Zadora extends Human

Temat: Yii framework - czy ktoś używa?

Robert B.:
[...]
Nie wiem jaką metodę pracy stosujesz, ale cokolwiek bym nie zrobił, to o projekcie wszystko jest wiadomo wtedy kiedy on się skończy :-) Mindmaping, unit testy, scrum - wszystko powoli iteracyjnie prowadzi do pożądanego działania (scrum akurat jest iteracyjny :) )

Ja stosuję taki, że nie dotykam kodowania dopóki wszystkiego nie wiem, z pewnymi wyjątkami których staram się unikać. Po prostu nie opłaca się kodować i jednocześnie dowiadywać: to ma być tak, czy inaczej ? Za długo to trwa, za dużo kosztuje. Chociaż specyfika mojej pracy pewnie mi to ułatwia: ja nie rozmawiam bezpośrednio z klientami (bo naprawdę czasem tracę cierpliwość) ja jestem podwykonawcą, i tak długo rozmawiam z pośrednikiem między mną i klientem aż wszystko będzie jasne.
Zgadza się - i to powoduje chwilowy peak obciążenia, ale z regóły jest on akceptowalny na potrzeby aplikacji web. Pojęcie 'realatywnie' jest bardzo szerokie, ale w webie tylko strona główna jest w tym rozwiązaniu wąskim gardłem - na pozostałych podstronach, w warunkach bojowych ten problem można pominąć :-)

Buuu nieładnie :) Niebezpieczne założenie... za to zrobienie takiej synchronizacji nie jest specjalnie trudne
12.09.2011, 14:03

Krzysztof Zalasa Szef technologii

Temat: Yii framework - czy ktoś używa?

Bo zawsze można dokupić więcej ramu i procka?


Nie koniecznie. Optymalizować strukturę DB według mnie wygodniej dopiero wtedy, gdy mamy już odpowiednie modele encji, które dobrze reprezentują dziedzinę aplikacji. Na końcu najlepiej widać, czy efektywniej będzie skorygować strukturę bazy danych, czy zrobić cache, który zapewni wydajność aplikacji, bez ruszania DB.

Buuu nieładnie :) Niebezpieczne założenie... za to zrobienie takiej synchronizacji nie jest specjalnie trudne

Zależy, co się trzyma w cache. Gdy są to całe podstrony z kilkudziesięcioma zapytaniami, to niebezpieczeństwo istnieje, natomiast przy cache'owaniu pojedynczych zapytań, MySQL i Memcached problem jest mniej istotny, bo MySQL świetnie cache'uje podobne zapytania, a czas zapisu w Memcached jest niski. Według mnie taka synchronizacja może w sumie więcej obciążyć niż odciążyć serwis, ale to mocno zależy od specyfiki konkretnego rozwiązania.

Ja stosuję taki, że nie dotykam kodowania dopóki wszystkiego nie wiem, z pewnymi wyjątkami których staram się unikać. Po prostu nie opłaca się kodować i jednocześnie dowiadywać: to ma być tak, czy inaczej ? Za długo to trwa, za dużo kosztuje.

Jak na moje oko utopijne podejście, często i klient i zespół nie wie, co tak na prawdę powstanie na końcu i dlatego stosuje się metodyki zwinne. Analiza i zbieranie wymagań to czynność iteracyjna i doprecyzowanie wymagań poza pewien poziom szczegółowości na początku jest nieopłacalne z uwagi na naturalną tendencję do zmian w projekcie podczas jego trwania.

Nawet przy małej stronce na końcu zdarza się "A ten obrazek 3 pixele w górę, a ten napis czcionka 1pkt większy" mimo, że klient widział już makiety i projekty graficzne.
12.09.2011, 21:42

Tomasz Zadora extends Human

Temat: Yii framework - czy ktoś używa?

Krzysztof Zalasa:
[...]
Według mnie taka synchronizacja może w sumie więcej obciążyć niż odciążyć serwis, ale to mocno zależy od specyfiki konkretnego rozwiązania.

Jeżeli się ją zrobi źle, to na pewno.

[...]
Jak na moje oko utopijne podejście, często i klient i zespół nie wie, co tak na prawdę powstanie na końcu i dlatego stosuje się metodyki zwinne.

Pracowałem już nad naprawdę skomplikowanymi projektami i jeszcze nie miałem akcji, żeby nie było wiadomo co powstanie na końcu, trochę mnie to rozbawiło co napisałeś (bez urazy), no ale pewnie są takie projekty gdzie tak może być.

Przykład: projektowałem serwis dla zespołu różnych placówek w Los Angeles i okolicach należących do jednej firmy udzielającej korepetycji. Oddzielne placówki, oddzielne konta/loginy dla nauczycieli, rodziców i dzieci.

Synchronizacja planu zajęć - rezerwacja godzin nauczycieli, oceny postępów uczniów, mnóstwo różnych funkcji i wszystko ładnie udało się ustalić przed napisaniem 1szej linijki kodu. Późniejsze zmiany były kosmetyczne.

Oczywiście wymagało to kilku rund rozmów, ale klient ani pośrednik między klientem a mną nie wymagał czegoś pod tytułem: weźcie napiszcie mi jakieś rozwiązanie, chce się pobawić i zobaczymy, może zmienimy to, może tamto bo w sumie to nie wiem do końca czego chcę, gdyby ktoś się uparł na coś takiego to koszty projektu automatycznie rosną.

Jeżeli klient nie wie czego chce, bo np. nie zna specyfikacji internetu to mu się doradza.
iteracyjna i doprecyzowanie wymagań poza pewien poziom szczegółowości na początku jest nieopłacalne z uwagi na naturalną tendencję do zmian w projekcie podczas jego trwania.

Właśnie dlatego tak długo się planuje i ustala różne rzeczy, aż prawdopodobieństwo zmian podczas dev. będzie minimalne.

Co innego aktualizacja serwisu w wersji produkcyjnej - tutaj metodyki zwinne IMHO mogą być sensowniejszym narzędziem niż przy budowie od podstaw.

Nawet przy małej stronce na końcu zdarza się "A ten obrazek 3 pixele w górę, a ten napis czcionka 1pkt większy" mimo, że klient widział już makiety i projekty graficzne.

Racja, tylko tutaj mówimy o grafice, designie, w tym obszarze faktycznie najczęściej się zdarzają zmiany, ale gdzie design a gdzie modelowanie procesów, struktur, etc., myślę, że nie o tym jest ta dyskusja.

Natomiast warto stosować to co się zna i działa - jeżeli SCRUM i inne "zwinne" metody pozwalają na tworzenie projektów w sensownym czasie i budżecie to po co to zmieniać. I na odwrót, po co mam wywracać do góry swoją metodologię pracy, jeżeli to jak pracuje teraz przynosi dobre rezultaty.Tomasz Zadora edytował(a) ten post dnia 12.09.11 o godzinie 22:20
12.09.2011, 22:04

Filip Sobczak digital invaders™

Temat: Yii framework - czy ktoś używa?

Bardzo polecam Yii. Pisałem już pod wieloma frameworkami webowymi, więc napiszę trochę, dlaczego go najbardziej lubię.

Yii robi wszystko, co trzeba i co najważniejsze - tylko to. Nie ma w nim żadnej czarnej magii w stylu Zenda, żeby zrozumieć działanie jakiejkolwiek częsci, wystarczy przeczytać dokumentację, a chwila spędzona nad kodem rozwiewa wszelkie tajemnice implementacji. Formsy i modele są intuicyjne, zawierają wszystkie najważniejsze funkcje - walidacja pól formularzy i modeli, wzorzec active record (odwzorowanie wiersza do klasy), scopes (rodzaj programatycznych widoków). Wszystko chodzi tak, jak tego się oczekuje i przy tym całość jest bardzo elastyczna.

Nie jest to framework fullstackowy w stylu Railsów, czy CakePHP, wszystko jest szybkie, a stos wywołań względnie niewielki. Yii przypomina Django pod względem architektury, więc jak ktoś lubi Django (ja bardzo lubię), to Yii też mu się spodoba. Wcześniej pisałem większość rzeczy pod Django, obecnie właśnie ze względu na Yii, wróciłem do PHP.

Produktywność:
- routing używa podobnych rozwiązań jak Django (dopasowywanie argumentów do wzorca, proste reguły przepisywania urlów);
- zastosowana konwencja ponad konfiguracją;
- chociaż Yii jest małe, ładne i zwięzłe, zawiera tylko najbardziej potrzebne funkcje, to jest dużo extensions (dodatków do Yii), w którym można znaleźć mnóstwo przydatnego kodu;
- bardzo elastyczny, generowany cms;

Zrozumiałość:
- dokumentacja jest najlepsza z wszystkich dostępnych frameworków PHP (wynika to częściowo z faktu, że ma po prostu ładną, obiektową architekturę);
- jako jeden z niewielu frameworków PHP wyznaje zasadę szybkiego wyłapywania błędów - jak coś nie działa, od razu rzuca wyjątkami i ładnie drukuje stacktrace (tutaj też podobieństwo do Django);
- Yii jest bardzo zwięzły, więc można się łatwo połapać, co się dzieje pod spodem;
- brak zbędnych, motających kod wynalazków typu podjęzyk templatów (halo! PHP jest językiem templateów!);

Szybkość:
- dużo obiektów ładuje z opóźnieniem (lazy loading), przez co jest znacznie szybszy niż Zend, czy jakikolwiek framework fullstackowy (do wyświetlania każdej strony nie jest uruchamiana cała machina zbędnego kodu);
- implementacja potrzebnych funkcji jest dużo prostsza (przy formsach nie ma np. zamotanych obiektów do każdego pola w stylu Zend);
- jeden z testów prędkości: http://www.yiiframework.com/performance/;Filip Sobczak edytował(a) ten post dnia 20.09.11 o godzinie 01:21
19.09.2011, 14:55

Mariusz M. FabrykaWafelkow.pl

Temat: Yii framework - czy ktoś używa?

Potwierdzam wypowiedź Filipa, dla mnie jest fantastyczny do pisania aplikacji.

Całe środowisko jest czytelne i bardzo logiczne, moduły, pod moduły zależności, modele, etc itp są łatwe do ogarnięcia i rozwijania. Napisałem w nim aplikację synchronizująca mysql z mssql (sklep z programem księgowym) była to pierwsza aplikacja na Yii, kiedyś pisałem w Zend i z całą pewnością Yii jest idealny do pisania aplikacji, dodać do tego możliwość wykorzystania bilbiotek z Zend oraz innych frameworków tworzy z tego bardzo dobrze przygotowane środowisko.

Powtórzę to co napisał Filip Yii robi własnie to co powinien i nic więcej.

Na forum Yii zawsze otrzymywałem lub znajdowałem odpowiedź. Dokumentacja jak ktoś potrafi czytać i myśleć ;) jest bardzo czytelna :)
20.02.2012, 18:42



Wyślij zaproszenie do