Tuesday, June 29, 2010

UML – хорошее начало для проектирования сайта на Java. Часть 3: учусь на своих ошибках

По диаграмме сайта из этого поста я уже получил конструктивное замечание от моего друга-программиста, за что очень признателен. Вывод, который я сделал для себя: не нужно было связывать эту диаграмму с UML. Суть замечаний следующая:

...рисунок, который отображает структуру сайта, не есть UML диаграмма.

Во первых, любое взвимоотношение между классами может быть только:
- зависимость
- ассоциация
- наследование
- композиция

В том рисунке не понятно о роде взаимоотношений.
Таже не понятно чем DVD1 отличается от DVD2 или CD2 от CD1 (кроме порядкового номера).
НИКОГДА не используй переменные или константы (и методы) в ввиде номера (типа v1, const3) чтобы отобразить, что они отличаются.

Переменная, константа или метод должны играть 2 роли:
1) Ссылка на данные (если метод, то на действие);
2) Описание. Оно не есть обязательным для исполнения компьютером, а для человека.
Когда описательной информации нужно больше, то добавляют комментарий. НО коментарий не должен заменять названия. Сравни:
а) S v1 = new S()
b) S v1 = new S() // this is circle
c) Shape shape = new Circle();

Ты читаешь код, что для воспрятия/понимания лучше?

Дальше.

Суть UML в том, что есть определенный набор знаков/символов, которые являются стандартом.
Сам символ/знак несет определенную информацию вместо кучи текста, о котором знают все, кто знает стандарты UML. Как говорят, 1 рисунок заменяет 1024 слова.

По этому, в UML существует определенный набор символов и диаграмм UML, которые нужно понимать что они значат и уметь ими пользоваться. Каждая диаграмма описывает модель с разных точек зрения, контекстов и целей. Это значит, что при описании любой структуры в UML нужно:
а) выбрать нужную диаграмму UML;
б) описать модель пользуюсь стандартными символами/знаками UML.

И тебя поймут многие :)

Кроме всего прочего этот человек считает, что лучшая книга по UML написана Мартином Фаулером (на англ. Martin Fowler). Судя по всему эта книга называется "UML Distilled: A Brief Guide to the Standard Object Modeling Language".

Благодаря таким конструктивным замечаниям, я вношу поправку к предыдущему посту об UML: сделанную диаграмму сайта webnetika.com лучше рассматривать, как карту сайта, а не UML диаграмму. Я решил оставить эту диаграмму, и не переделывать уже написанные посты. Возможно это поможет кому-то избежать моих ошибок.

Saturday, June 26, 2010

Не швыцай.

Не швЫцай. (Выудил из подкаста Budama).

Это выражение с еврейского, что означает "не хвастай" в контексте осторожности, которую надо соблюдать, что бы не вызвать зависти ближних и не нажить себе лишних недоброжелателей на ровном месте. Не говорите, что у вас все лучше, чем у других.

И еще один афоризм: кто знает – делает, кто не знает – учит.
Высказывание Генри Форда (вольный перевод с англ.): если вы думаете, что можете это сделать – вы правы, если вы думаете, что не можете это сделать – вы тоже правы.

UML – хорошее начало для проектирования сайта на Java. Часть 2.

Для начала я сделал диаграмму сайта www.webnetika.com в его изначальном состоянии (html+css, no Java) на момент 26 июня 2010 года. Это простая диаграмма взаимодействия всех страниц сайта. Возможно, если делать диаграмму в паре с другим программистом (а именно на этом настаивает Крэг Ларман в своей книге по UML), то она могла бы получиться у меня еще правильнее. Хотя я уверен, что старую структуру  сайта (назаву ее так) я изобразил правильно.





UML – хорошее начало для проектирования сайта на Java. Часть 1.

UML - Unified Modeling Language (унифицированный язык моделирования).

Прослушав подкаст (podcast) под названием "Програмирование в стране Утопия" от Budam, я понял что любую программу нужно начинать с ее диаграммирования (хотя кому-то это может показаться и утопией). В принципе, о пользе и необходимости такого подхода (использования UML в начале любого проекта по программированию) я не раз слышал и от знакомых программистов. Польза от этого всем: такой подход не только помогает разобраться другим в программе, но и, в первую очередь, самому программисту, который работает над этой программой.

Лучшая книга по UML называется "Применение UML и шаблонов проектирования: введение в объектно-ориентированный анализ, проектирование и унифицированный процесс UP" (английское название: Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development). Автор книги: Крэг Ларман (Craig Larman). Уже вышло третье издание этой книги, я нашел ее англ. версию и уже читаю, правда не в PDF, а в DJVU (маковскую версию проги для чтения djvu можно скачать здесь).

Итак, основная идея этого поста такая: проектирование сайта на Java должно начинаться с диаграммирования, созданного с помощью UML. Таким же образом полезно начинать проектирование любой программы на Java.

Friday, June 25, 2010

Josefine – CMS на Java

Я побывал на сайте разработчиков Josefine – CMS на Java. Было интересно узнать какие плюсы CMS на Java они выделяют.

Во-первых, РЕПУТАЦИЯ. Они сравнивают разработку сайта на PHP, как строительство дома из конструктора лего. Их вывод: дешево и быстро, но не надежно. Поэтому подход к разработке сайта на Java они смело называют "решением для тех, кто дорожит своей репутацией", и пользуется профессиональными инструментами (читай Java).

Во-вторых, БЕЗОПАСНОСТЬ. Они убеждены, что сайт на Java намного труднее взломать, чем на PHP. Они утверждают, что "случаев успешного взлома веб-систем на основе Java практически не известно".

В третьих, БЫСТРОДЕЙСТВИЕ. Быстродействие систем на Java (обрабатка множества одновременных запросов) на порядок превышают показатели аналогичной системы на основе PHP.

В четвертых, ИНДИВИДУАЛЬНОСТЬ. Разработчики CMS Josefine считают, что технология Java позволит создать сайт, отличающийся своей индивидуальностью от дешевых штатных экземпляров.

Конечно, не все согласятся с мнением авторов по части PHP (см. форум на sql.ru), но взять себе на заметку эти сравнения не помешает.

По мимо всего прочего с этого сайта можно скачать видео размером около 100Мб, что бы посмотреть эту CMS на Java в работе. Видео показывает как создается новый шаблон сайта на основе шаблона Yahoo. ИМХО идея интересная, но реализация кажется сложной.

Sites on Java

The list of sites that works on JAVA check this link:
http://www.ieee.org
http://browser.netscape.com/ns8/
http://www.zonelabs.com/store/content/home.jsp
http://www.consumerreports.org/main/home.jsp
http://www.diabetes.org/home.jsp
http://mlb.mlb.com/NASApp/mlb/index.jsp
http://www.freefoto.com/index.jsp
http://www.delta.com/home/index.jsp
http://www.ca.gov/state/portal/myca_homepage.jsp
http://europa.eu.int/eurodicautom/Controller
http://www.furl.net/index.jsp 

http://headhunter.ru/
http://job.ru/
http://www.siemens.com/index.jsp
http://www.tsa.gov/public/
http://www.mass.gov/portal/index.jsp?pageI...me&sid=massgov2
http://www.students.gov/STUGOVWebApp/index.jsp
http://www.bt.com/index.jsp
http://www.adweek.com/aw/index.jsp
http://kidshealth.org/kid/
http://www.belgium.be/eportal/index.jsp
http://www.nymex.com/jsp/index.jsp
http://www.questia.com/
http://europa.eu.int/eures/index.jsp
http://www.caregiver.org/caregiver/jsp/home.jsp
http://www.idnnow.com/index.jsp
http://www.jewishencyclopedia.com/index.jsp
http://www.fly.faa.gov/flyfaa/usmap.jsp
http://buros.unl.edu/buros/jsp/search.jsp
http://www.oceansatlas.org/index.jsp
http://www.transunion.com/
http://www.walmart.com/
http://www.walmartstores.com/ 

http://www.eagames.com 
http://www.ribk.net/
http://www.novell.com/
http://www.ibm.com/us/

http://lgservice.com/index_b2c.jsp
http://netscape.com/main3.adp
http://www.siemens.com/index.jsp
http://www.1c.ru/
http://www.ntv.ru/
http://www.corel.com/servlet/Satellite?pagename=Corel3/Home

http://e.gov.kz/
http://www.linux.org.ru

About this blog

This blog is about everything related programming and something else )).
There are many things to learn, so I don't want to loose useful material that I am finding during my work.
I hope this blog will help somebody else and not just to me.