Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Nowe jądro - założenia, Praca nad założeniami pod nowy PuciekOS
Puciek
post
Post #1


TAO programowania


Grupa: Zarejestrowani
Postów: 340
Pomógł: 3
Dołączył: 25.03.2003
Skąd: ze słoika

Ostrzeżenie: (30%)
XX---


Ostatnio postanowiłem zacząć pisać całkiem nową wersje PuciekOS, takiego mojego jądra. Postanowiłem przejść z jednej skrajności z drugą, znaczy z bardzo małej zależności od jądra na całkowitą zależność.

Tak więc jedynym dostępnym outputem będzie aktywny Cache. Jako szablon modułu myślę nad czymś w stylu:
  1. <?php
  2. /*Opis modulu*/
  3.  
  4. if( $alvl == 2 )
  5. {
  6.  //tutaj wykona sie modol
  7. }
  8. else
  9. {
  10.  call_403();
  11. }
  12. ?>
Jak można zauważyć (acz ciężko z powodu małej ilości kodu) mam zamiar nieużywać opcji echo, a jądro będzie przyjmowało sygnały od każdego modułu, sumowała wynik i wybierało odpowiednią stronę z cacha.

Diabeł tkwi w tym jak zrealizować ładowanie modułów, czy choćby segregację sygnałów otrzymywanych z modułów, ładowania ich oraz sam system cachowania strony.


--------------------

http://puciek.wordpress.com prywatnie o świecie
Go to the top of the page
+Quote Post
scanner
post
Post #2





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




Chyba za bardzo nie wiadomo o Co Tobie tak w zasadzie chodzi...


--------------------
scanner.info
Warto pamiętać: KISS, DRY
Go to the top of the page
+Quote Post
DeyV
post
Post #3





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




rozwiązanie jest proste, i mieści sie w jednym słowie...

Smarty

Dlaczego?
Bo zawiera świetny moduł cache, który w pełni rozwiązuje problemy z wydajnością.
Bo pozwala na uniknięcie kodu html w php
Bo pozwala na łątwe sprawdzenie, czy istnieje scachowany output dla danego moduły, co oznacza, że nie ma konieczności ładowania go, czy też potrzeba go wykonać.


A jak tym zarządzać?
Kłania się MVC.
Czyli istnieje jakiś router, który decyduje jaka akcja ma zostać wywołana (poprzednio nieopatrznie użyłem słówa moduł).
Przesyła tą informację dalej, gdzie jest sprawdzane, czy taka akcja istnieje, czy musi zostawać wykonana, czy też może wszystko już jest w cache.
Jeśli jest - po prostu to wyświetlamy.
Jeśli nie - na podstawie nazwy akcji otrzymanej z routera generujemy nazwę pliku z klasą akcji, i uruchamiamy ją.
Akcja ta generuje jakieś dane, i przesyła je do smarty, które na zakończenie, generuje wynik.

Proste, prawda? tongue.gif


--------------------
"Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
Go to the top of the page
+Quote Post
rogrog
post
Post #4





Grupa: Zarejestrowani
Postów: 602
Pomógł: 1
Dołączył: 3.04.2004
Skąd: Trójmiasto (Gdańsk)

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


z tego co wiem to generalnie dąży się do tego żeby jądro było tylko ogólne i nakładało jak najmniejsze ograniczenia... i żeby można było wykonać duże zmiany w aplikacji nie ruszając jądra... albo z kolei wypuścić poprawki w jądrze, które nie spowodują błędów w aplikacji - po prostu taka jest tego idea smile.gif

PS. Puciek: jeśli chodzi o nazwę tego twojego jądra, to mam pytanie: czy na pewno wiesz co oznacza skót OS questionmark.gif


--------------------
Go to the top of the page
+Quote Post
M4chu
post
Post #5





Grupa: Zarejestrowani
Postów: 135
Pomógł: 0
Dołączył: 28.09.2003
Skąd: Rzeszów

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


Cytat(rogrog @ 2004-10-16 16:30:04)
PS. Puciek: jeśli chodzi o nazwę tego twojego jądra, to mam pytanie: czy na pewno wiesz co oznacza skót OS questionmark.gif

Sorki, ze sie wtrace ale moze Open Source? smile.gif
Go to the top of the page
+Quote Post
Aztech
post
Post #6





Grupa: Zarejestrowani
Postów: 276
Pomógł: 3
Dołączył: 22.10.2003
Skąd: Wrocław

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


Oh Shit Operating System
Do adminówi Pućka: sorki ale nie mogłem się powstrzymać biggrin.gif
Go to the top of the page
+Quote Post
Dravo
post
Post #7





Grupa: Zarejestrowani
Postów: 207
Pomógł: 0
Dołączył: 7.09.2003

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


Według mnie należy zwrócić uwagę na odwrotna zależność (pisze z kawiarenki między lekcjami, więc przpraszam za `po łebkach`). Tzn. w tym przypadku moduly mają być zależne od jądra a nie na odwrót, czyli:
każda zmiana w jądrze może (ale nie musi) pociągać zmiany w modulach. Dlatego tak ważne jest dobre zaprojektowanie serca systemu.
Można również odpowiednio zdefiniować używane standardy i w razie jakiś zmian czy to w jednym czy to w drugim dalej będzie wszystko ladnie ze sobą gralo.
Ale tu nas ogranicza czas... Wiadomo że inaczej się pisze na prace magisterską a inaczej dla wlasnych potrzeb - w celach praktyki.

PS. Jestem niewyspany, więc prosze o wybaczenie...


--------------------
Oooo, cia is on the phone... Ok, I got it. Shit I lost it.
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 Aktualny czas: 20.08.2025 - 13:26