1 / 15

Knihovna pro zjednodušení tvorby webových aplikací v  JavaScriptu

Knihovna pro zjednodušení tvorby webových aplikací v  JavaScriptu. Diplomová práce. Autor: Filip Minx Vedoucí: Ing . Petr Jedlička, Ph.D. c íl práce.

barry-witt
Download Presentation

Knihovna pro zjednodušení tvorby webových aplikací v  JavaScriptu

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Knihovna pro zjednodušení tvorby webových aplikací v JavaScriptu Diplomová práce Autor: Filip Minx Vedoucí: Ing. Petr Jedlička, Ph.D.

  2. cíl práce • Cílem práce je vytvoření knihovny jazyka JavaScript, která usnadní použití tohoto jazyka při tvorbě webových aplikací s cílem dosažení co nejlepší rozšiřitelnosti, stability, kompatibility a výpočetní náročnosti softwaru.

  3. Cíl práce • Navržení knihovny jazyka JavaScript, která umožní zjednodušit vytváření kvalitních webových aplikací. • Odstínění od rozdílů v implementaci JavaScriptu • Správa asynchronních volání funkcí • Abstrakce práce s DOM • Ověřování formulářových dat • HTML5 rozšíření • Další často používané nástroje

  4. Cíl práce • Knihovna by měla rovněž představovat určitou platformu, na které se dají stavět složitější systémy.

  5. Metodika • Používání „bestpractices“ a návrhových vzorů pro psaní kvalitního kódu v JavaScriptu. • Optimalizace časové náročnosti algoritmů. • Vytvoření intuitivního a lehce použitelného API.

  6. Výsledky • Knihovna OrchidJS • Vlastnosti: • Rozhraní s konzistentním chováním mezi prohlížeči • Funkcionální selektorový systém pro práci s DOM • Abstrakce manipulace se strukturou DOM • Nástroj pro bezpečné rozšíření prostředí (řeší kolize) • Systém pro správu asynchronně volaných funkcí. • Podpora objektového programování v JS. • Nástroj pro rozšíření funkcionality vlastních objektů. • Dynamická změna obsahu stránky

  7. Abstrakce Práce s DOM • Koncepce kontextů. • Speciální kolekce objektů. • Kontextové modifikátory Nahrazení textových CSS selektorů řetězitelnými funkcemi. • Kontextové manipulátory Rychlá aplikace funkcí na objekty v kontextu

  8. Správa asyncrhonních funkcí • Pomocí objektů, které umožňují správu asynchronních funkcí. • Objekty Thread, ThreadQueue, ThreadMeetup • Řeší peklo callback funkcí.

  9. Podpora OOP • JavaScript je objektový jazyk založený na prototypech. Nepodporuje klasický koncept tříd. • Většinou se v OOP v JavaScriptu dělají podstatné chyby. • Řešení pomocí funkcí, které simulují definování tříd a jejich dědičnost. • Funkce Class a Inherit.

  10. Rozšíření funkcionality objektů • Knihovna poskytuje nástroj, který k vývojářem vytvořeným objektům dokáže přidat rozhraní poskytující přídavnou funkcionalitu. • Možnost přidat rozhraní pro: • systém naslouchání událostí. • rozhraní spustitelného charakteru • Tento nástroj rozšiřuje možnosti JavaScriptu jako takového a podporuje vývoj komplexních systémů.

  11. Šablony • Umožňují oddělit prezentační a logickou stránku aplikací. • Mají schopnost měnit obsah stránky dynamicky se změnou dat. • Objekty Template a TemplateData. • Template naslouchá události „change“ instance TemplateData. • Možnost volby automatického udržování obsahu up-to-date. • Možnost zápisu struktury šablony přímo do HTML.

  12. MOdularita • Knihovna je vysoce modulární. • Je možné vypustit nepotřebnou funkcionalitu pro zmenšení velikosti knihovny. • Moduly: • Validator – nástroj pro automatizovanou validaci formulářových vstupů. • DataSystem – systém pro strukturované ukládání dat. Využívá HTML5 objektu localStorage.

  13. Rozšiřitelnost • Prostředí knihovny je lehce a bezpečně rozšiřitelné. • Funkce extendFrameumožňuje: • načítání modulů i při chodu aplikace. • Určuje co dělat při kolizích. • Zamezuje vícenásobnému načítání stejných modulů. • Díky této funkci je možné tuto knihovnu použít jako základní platformu, na které bude vývojář stavět vlastní systém za použití funkcí této knihovny.

  14. Přínos pro praxi • Knihovna je navržena tak, aby řešila typické problémy vývoje webových aplikací. • Knihovna je naprosto soběstačná a poskytuje asi 150 různých funkcí a objektů, které značně usnadňují a zrychlují vývoj. • API knihovny je velice jednoduché a intuitivní, a tudíž jej mohou využívat i méně zkušení programátoři. • Knihovna rovněž poskytuje nástroje, které podporují tvorbu komplexních systémů v tomto jazyce. • Detailní dokumentace API s ukázkou použití veškerých funkcí.

  15. Dotazy ?

More Related