ďťż
Podstrony
|
telcocafePowstaje coraz więcej aplikacji w Javascript bez użycia żadnych wtyczek. Działają na każdej platformie. Poruszę ważne zagadnienie projektowe.W takim projekcie korzystamy zazwyczaj z HTML, CSS, Javascript, grafiki i w niektórych przypadkach XML, SVG... Zakładamy, że serwer NIE pośredniczy w interpretacji kodu, a więc można go uruchomić bez przeszkód u klienta. Jak zachować niezależność poszczególnych warstw, czyli: 1) Warstwy prezentacyjnej - struktury elementów 2) Warstwy prezentacyjnej - wyglądu, układu elementów, CSS 3) Języka 4) Logiki aplikacji 5) Połączeń logiki z warstwą prezentacyjną Można wzorować się na MVC, ale nie do końca. Założenia warstw: 1) Można zmodyfikować warstwę prezentacyjną bez naruszania logiki 2) Można dynamicznie podmieniać arkusze CSS - to chyba nie sprawi nikomu kłopotu 3) Aplikacja może obsługiwać dowolną ilość języków 4) Logika działa poprawnie niezależnie od struktury dokumentu HTML 5) Zmiany w 1 warstwie nie wymagają zmian w pozostałych warstwach 6) Jak najmniej kodu, dołączanych plików i zbędnych odwołań 7) Logikę można wykorzystać w innych aplikacjach (opcjonalnie) Spełnienie wszystkich założeń nie jest łatwym zadaniem. Jeżeli teksty dla poszczególnych języków będą wczytywane z osobnych plików, czy zatem kod HTML powinien zawierać jakiekolwiek napisy na przyciskach i linkach, instrukcje, porady, podpisy pól, itd? Czy jest potrzeba tworzenia warstwy kontrolującej przepływ informacji między HTML-em a logiką (ona zajmowałaby się wczytywaniem języka, itp.)? Czy kod HTML powinien określać jakiekolwiek zdarzenia, np. onclick? Czy jedynie generować układ elementów? Czy istnieje jakiś lekki framework, który pomaga w utrzymaniu tego typu aplikacji? Kiedyś napisałem interpretator języków ezoterycznych. Przepisuję go na nowo, ale właśnie z założeniami projektowymi. Zakładając, że program obsługuje kilka języków, tutaj jeszcze dochodzi warstwa INTERPRETATORA. Każdy język musi mieć swoją funkcję, która generuje wynik na podstawie wejścia (wprowadzonego kodu). Chyba lepsze to niż zbiór definicji (ilość znaków, operatory, itd). Powinna ona oczywiście ładnie komunikować się z główną warstwą logiki. :) Jak widzicie strukturę takich aplikacji? Google używa GWT. Poza tym rozwiązań stricte client-side bez uwzględniania server-side raczej się nie robi, bo to najczęstszy przypadek gdy interfejs oparty o JS współpracuje z siecią. |
|||
Sitedesign by AltusUmbrae. |