Monday 29 December 2008

Студентската книжарничка и подобни

В магистратурата по "Софтуерни технологии" на ПУ "Паисий Хилендарски" когато се стигне до курсови проекти, независимо дали става въпрос за направата на уеб сайт/онлайн магазин или приложение за бази данни, темата обикновено е свързана с книгите - библиотека или книжарница. Този триместър заданието е комплексно - изисква да се приложат знания и по трите изучавани дисциплини. Иначе казано в онлайн книжарницата (или кой каквото сътвори, защото книжарницата е само кнотролен пример) трябва да е уеб базирано Java приложение, в което да присъстват в една или друга степен следните технологии:
  • HTML + CSS - като представителен слой;
  • JavaScript - най-малкото за валидация на формите;
  • XML - като персистентен механизъм (вместо база данни);
  • JSP и Servlet-и - отново за представителния слой и за изграждане на логиката на приложението;
  • MVC (Model, View, Controller design pattern) - цялостната архитектура на програмата трябва да отговаря на този шаблон за дизайн.
На пръв поглед възможността за създаване на пълна бъркотия изглежда доста реална. Всъщност в наши дни изброените технологии никак не са много, защото реалнте прокети, с които се сблъскват професионалните прогамисти са доста по-сложни и като архитектура (MVC е само част от картинката), и като изисквани технологии. Все пак за начинаещите това е едно доста добро начало и не би било излишно едно рамо в правилната посока. Според мен верния подход не е само един, но няма да разисквам повече. Най-близка до мисловната ми настройка е следната схема:
  1. Стартиране на нов проект като уеб приложение.
  2. Изграждане на механизма за съхранение на данните - оформяне на хранилището за данните в XML файл. Стуктурата му може да се установи в DTD или XML Schema файл, достъпен при необходимост от валидация.
  3. Като добавка може да се напишат Java Beans обектите, който ще подпомагат съхраняването на данните.
  4. Оформяне на вида на приложението (като се започне от индексната страница) - статичните страници могат да са в HTML формат, но динамичните е необходимо да бъдат JSP.
  5. Свързване на страниците и реализиране на функционалностите - разширяване на JSP и HTML страниците, чрез свързването им с реализираните на тази стъпка Servlet обекти. Последните трябва да могат да съхраняват данните в XML с помощта на Java Beans обектите.
  6. Дооформяне на външния вид на страниците посредством CSS, който е приложим както към HTML, така и към JSP файловете.
  7. Довършване на функционалността на страниците, чрез добавяне на JavaScript валидация на полетата за въвеждане на данните.
Тук не са задължителни нито последователността на стъпките, нито грануларността им (броят на степените, на които е разбита задачата). Подробностите по реализиране на всяка от стъпките могат да се видят с примери в документните файлове дадени по време на упражненията и разгледани вече един път там. В крайна сметка сметка изпълнен по този начин проекта би трябвало да е отговаря на MVC шаблона.

No comments: