• 14402
  • 120
  • 7
Нравится блог?
Подписывайтесь!

Старт проекта на Java (J2EE)

Вобщем работал в крупной КЗ компании, одна из лидеров в разработке. Проекты в основном т.н. масштаба предприятия - серьёзные клиент-серверные приложения, со структурой БД из сотен таблиц, зачастую распределённые. На разных проектах использовались разные языки и технологии, соответственно и среды разработки тоже. Практически всегда выбор инструментария ложился на разработчиков проекта.

Для примера - один из проектов стартовал видимо в основном из команды тогда ещё молодых бойцов, там применили Дельфи, С++, и практически всё писали с нуля своими руками. Другой проект начинал матёрый разработчик и архитектор, там применили Java и сопутствующие ей бесплатные готовые решения.

На Java процесс и инструментарий примерно таков:

  • среда разработки Idea, на машине главного разработчика создаётся новый проект, готовится начальная структура модулей и пакетов, достигаются базовые договорённости разработчиков о её использовании и дальнейшем развитии. Также часто используется Eclipse, очень большой плюс этой среды - бесплатность;
  • разворачивается сервер контроля версий SVN, проект выкладывается на него; все разработчики в Idea настраивают коннект к SVN, апдейтятся;
  • разворачивается сервер приложений или веб-сервер. Мы много лет и на многих проектах успешно использовали сервер приложений JBoss, либо самостоятельный веб-сервер Tomcat. JBoss содержит в себе Tomcat, плюс множество сервисов, полезных при разработке приложений масштаба предприятия. Чистый Tomcat можно использовать для облегчённых по функциональности проектов.
  • разворачивается СУБД, какая - зачастую зависит от Заказчика. Чаще всего это Oracle. На сервере разворачивается БД с начальной структурой проекта. Достигаются договорённости между разработчиками о процессе её развития и обновления. Обычно скрипты сразу выполняются разработчиком в тестовой БД, и выкладываются на SVN для выполнения их в боевой при обновлении версии. Если разработчиков и скриптов много, пишется утилита для автоматического выполнения обновления в БД, в противном случае скрипты выполняются на боевой БД вручную. Каждый разработчик ставит себе какой-либо клиент, для удобной работы с БД, например DbVisualizer, Aqua Data Studio, и т.д. Как-то сложилось, что средства, поставляемые в составе СУБД использовались нечасто.

Вот в основном и всё, на этом этапе можно начинать активную командную разработку.

vovan_sidorytch
18 ноября 2009, 10:41
2749

Загрузка...
Loading...

Комментарии

Werser
0
0
Ты забыл про NIGRAHATE. Жабофаги ему поклоняются же!
Сорри, но я видимо немного не в теме, не пойму о чём речь... Не знаю чем вам не по душе язык Java, но предлагаю не начинать очередной бессмысленный холивар. Мир-дружба-жвачка?
Werser
0
0
Ну почему же сразу не по душе. :)
Речь о Hibernate.
Харе Hibernate! *истово бьюсь головой о пол*

Технологии объектно-реляционного отображения давно поработили J2EE разработчиков (да в других высокоуровненвых языках они уже есть). Hibernate одна из самых распространённых. Помню, как раньше раздражало постоянное написание кода перекладывающего из считанных полей таблиц данные в бизнес-объекты, и потом обратно при сохранении. Объектно-реляционный маппинг рулит! :) Некоторые сложные запросы на Hibernate Query Language написать затруднительно, но обычно поддерживаются т.н. Native-запросы, на стандартном (или же специфическом для провайдера) SQL. При этом результат нативной выборки может быть прозрачно для разработчика загружен в те же маппинг-объекты, что возвращаются HQL-ем.
tumar
0
0
Может быть, вы имели виду Hibernate?
вообще, эту запись сделал в качестве комментария к А какими средствами программирования пользуетесь вы?, поэтому как самостоятельная тема, она немного слабовата
Раз уж вы профессиональный разработчик, то позвольте спросить пару вопросов личного характера :)

1. нашли ли вы применение дискретной математике в построении энтерпрайзных приложений? (структуры данных, алгоритмы, реляционная алгебра, теория автоматов и т.д)
2. есть ли у вас бэкграунд в распределенных и конкурентных вычислениях?
3. какие профессиональные темы вас интересуют?

Не сочтите за допрос, реально интересно же :)
Нет при разработке энтерпрайзных приложений не нужно применять алгоритмы. Энтерпрайзные приложения, они такие, без алгоритмов могут работать, ага..
С удовольствием отвечу: :)

1. Т.к. по образованию я строитель, и к тому же не имею высшего образования, ваши термины меня просто пугают. Не буду утверждать, что эти знания для меня излишни, НО - я без них пока обхожусь. В этом я схож Шерлоком, которого мало интересовал тот факт, что земля круглая ;) . Прошу никого камнями не кидаться - любые знания нужны, но чтобы знать ВСЁ человеческой жизни не хватит, приходится идти на компромисы и хватать только то, что нужно прямо сейчас (или похоже на то, что понадобится в будущем)
2. довольно растяжимое понятие... был интересный опыт разработки многопоточных конкурентных задач; была распределённая многоуровневая система из более сотни серверов с репликацией данных между ними... в основном дело касалось чтения, модификации, распространения данных; сложных вычислений (да и несложных тоже) там не было.
3. трудно ответить. занимаясь разработкой, всегда приходится что-то новое узнавать, связанное с текущими нуждами. честно говоря мне текущих задач более чем хватает для удовлетворения жажды знаний. Хотя конечно было бы здорово быть на острие всего нового хотя бы в своей области (J2EE), но - лень. Пожалуй я страдаю недостатком любобытства :( . Да и кроме интересной профессиональной деятельности есть ещё и отдых, личная жизнь, на это тоже время надо находить...

Вообще, современные языки программирования и готовые технологии берут на себя много низкоуровневых вычислительных задач, программисту остаётся в основном бизнес-логика конкретных требований Заказчика. Тем не менее до времён, когда менеджер будет сам создавать программные продукты, без программиста, ещё очень далеко ;)...
>1. Т.к. по образованию я строитель, и к тому же не имею высшего образования, ваши термины меня просто пугают.

Да ничего страшного :)

>Тем не менее до времён, когда менеджер будет сам создавать программные продукты, без программиста, ещё очень далеко ;)...

Думаю, такие времена настанут, если менеджеры станут программистами. :)
За ответы благодарю, приятно вести конструктивный разговор.
2kost
0
0
1,2. Обычно в вебе это происходит когда надо провести "Data Mining". Что то интересное и необычное, что-то отличное от сбора комментариев пользователей.
1 структуры данных - Когда не хватает функциональности массива, когда готовые решения не удовлетворяют логике приложения, простейший пример - linked list из с++(помоему везде используют этот ADT). На этой неделе один ADT реализовал очень на него похожий. Правда не на си.
алгоритмы - когда надо оптимизировать работу чего-то или написать что - то новое (парсер, червь)
теория автоматов - да почти тот же предыдущий абзац.
2 хорошее железо позволяет забить на бэкграунд. Кстати, там конкурентно все ( ядер до кучи ), так что наполовину так и есть. А если надо будет написать, то напишу на Java или Erlang ( хотя не факт, пока хочу купить железку и сделать "домашний проект", чтобы опробовать )
3 работа
4 вопрос - какие тесты используют? (В моем случае *Unit и Selenium, Yahoo!набор тестов).
5 Чем профилируют?
6 вопрос - паттерны юзают?
От себя:
J2EE - отстой. Реально. Play Framework спасет его! А старый J2EE должен сгореть в аду за все что он сделал с вебом в яве. Реально J2EE был раньше как "российский браузер" - возможность быстро распилить бабло под "контейнеры энтерпрайз приложений. Ой, а вы знаете, какие они запутанные стали, мы их писали - писали? выделите еще $1kk".

Вопрос личного характера:
Походу все бабло в Алмате. Астана слегонца отстает?
Насчёт веба и Java, а также горения в аду J2EE - eBay построен на J2EE. миллиард транзакций в день. Мне кажется, в Казахстане некому сказать что eBay - отстой, и я на раз-два сделаю лучше

Насчёт бабла - я не менеджер, я разработчик, потоками средств не занимаюсь

И ещё, я дико извиняюсь, но манерой общения вы похожи на тролля. Надеюсь что ошибаюсь
О, нет. На счет тролля прям в точку.
О, да. На счет на счет ты прямо в точку.
Я с мудаками не общаюсь.
Да, кстати - вот этот Казахстанский проект построен на J2EE. Пока ещё Бета-версия, но он ещё станет казахстанким eBay-ем ;)
Да, но нафига такие урлы, 21 век же.
http://www.shopline.kz/jsp/frontend/search/searchResult.xhtml?ss=Жопа&st=Default
И в поиске по городам(дропдаун) 2 Петропавловска, один из них на 2 месте!!! Я рад!!!
Скриншот не делал, могу потом показать, если надо будет и не исправите
За Петропавловск - спасибо, исправим.
EpeTuK
0
0
Полезный пост)) Плюсую.
jad
0
0
таск менеджмент? ведение внутренней доки?
Да! :)
Этапов создания продукта много, в каждом есть свои задачи, по каждому написано немало книг. Я описал лишь инструментарий программиста, и кратко затронул процесс построения решения, т.е. - работу программиста. А есть ещё аналитики, архитекторы, руководитель проекта, тестировщики (в алфавитном порядке, чтобы никому не обидно было). И это только основные роли, участвующие в проекте непосредственно...
Это проектирование ИС? (начинаю только все эти дебри изучать)
Проектирование - этап предшествующий описанному мной. Проектированию предшествует подготовка общего видения, требований Заказчика, планирование и др. Непосредственно работа программистов - только часть процесса создания продукта. Соответственно и программисты - только часть проектной команды. Это относится к достаточно крупным проектам, на более простых некоторые этапы отсутствуют, некоторые функции совмещаются одними и теми же людьми (и жнец, и швец, и на дуде игрец)
Olzhas
0
0
Можно несколько вопросов?
1. Как построена организационная структура? Кто является главным? Есть ли у вас менеджер проекта? Архитектор? Какие еще люди задействованы на проекте?
2. На сколько полно вы используете спецификацию J2EE? Нужна ли она вообще в рамках задач которые возникают в Казахстане?
1. На разных проектах состав команды может различаться. В любом случае в проектной команде главным является Руководитель проекта. Ролевые группы (не путать с играми) равны между собой. В каждой группе есть главный специалист (главный программист, главный аналитик, главный тестировщик), который несёт ответственность за распределение задач в своей группе, являясь звеном в иерархии между Руководителем проекта и своими специалистами. Роль Архитектора довольно непроста, он может являться кем-то вроде координатора для главных специалистов других ролей. В проекте опосредовано могут быть задействованы различные менеджеры, секретари, но эти роли обычно не так жёстко привязаны к проектной команде.

2. Я честно говоря не вижу связи между программными спецификациями и задачами, "которые возникают в Казахстане". Эти задачи такие же, что и в других странах, а на некоторых другим странам можно ещё и поучиться у нас. Очень многое зависит от профессионализма команды, а использование спецификаций - конкретно от программистов. Заказчика редко всерьёз интересует какими средствами будет достигнут результат. Конкретно J2EE - одна из лидирующих платформ для создания приложений масштаба предприятия, и такие приложения в Казахстане создаются. Насчёт полноты использования: простое перечисление названий используемых J2EE API скучно и несёт мало смысла, а полное описание архитектуры конкретного проекта - это уже отдельная тема...
Olzhas
0
0
Просто мне кажется что задачи то у нас в КЗ простые, просто почему-то народ у нас любит все усложнять. Мне приходилось сталкиваться с J2EE в частности EJB больше времени потратил на отлов багов самой технологии чем на решение задачи.
Ну, насчёт задач в КЗ я уже высказался.
А насчёт J2EE - технология обширная и сложная, просто столкнуться с ней недостаточно, её надо серьёзно изучать и практиковать. Ещё раз повторюсь: основное назначение её - крупные проекты, пытаться использовать её для простых задач - стрелять пушкой по воробьям. Это в общем и целом, а в частности - можно подходить к внедрению J2EE плавно, чем больше проект, тем больше API использовать. Любой проект на Java, работающий с БД, использует JDBC. А JDBC - один базовых API J2EE. При этом факт использования JDBC ещё не говорит о том, что проект соответствует спецификациям J2EE.
Вобщем я кажется флудить уже начал...
Вообще-то JDBC не в входит с спецификацию J2EE, JDBC - это SE.
Мы оба правы, JDBC входит и в SE и в EE. В конце концов, это всё - Java :)
2kost
0
0
Где самое главное - тестирование? Где UML?
Полпоста о DbVisualizer, Aqua Data Studio, и т.д, бла бла бла.
Диаграмму классов показал бы лучше.
>тестирование?

Ну JUnit по дефолту наверное и юзают.
2kost
0
0
>JUnit по дефолту
вдруг нет
>юзают
вдруг ничего не юзают, а то так расписали подробно про красивые финтифлюшки к бд, а про JUnit - 0.(это не смайл, это ноль, точка, скобка)
UML, диаграммы классов, JUnit... Я тоже знаю много страшных слов про незаменимые при разработке техники и технологии, и прекрасно понимаю насколько они важные и нужные. Но к сожалению нельзя в реальном проекте применить их все. Можно много теоритезировать, но когда проект стартует с изначально нереальными сроками завершения, то любыми путями надо делать одно - укладываться в них. Или как минимум суметь показать что-то работоспособное к наступлению дедлайна. И я делал это, естественно не один, а в составе команды. Иначе - штрафники, напряжённость с Заказчиком, юридические проблемы и прочие "радости жизни"... Так что не тыкайте мне пожалуйста с умным видом своё "бла бла бла", я в мире разработки ПО не одну собаку сожрал, и очень сильно сомневаюсь что лично вам есть чему меня в этом учить...
[ Но к сожалению нельзя в реальном проекте применить их все. Можно много теоритезировать, но когда проект стартует с изначально нереальными сроками завершения, то любыми путями надо делать одно - укладываться в них. Или как минимум суметь показать что-то работоспособное к наступлению дедлайна. И я делал это, естественно не один, а в составе команды. Иначе - штрафники, напряжённость с Заказчиком, юридические проблемы и прочие "радости жизни"... ]

Полностью согласен. Особенно, если проекты имеют связь с государством, там вообще срок ставят "от балды", вот вам три месяца и хоть порвитесь сделайте. А начальство тоже фантазеры, на это соглашаются, а в итоге попадают разработчики...

По теме: Я работаю в довольно крупной компании, и все проекты подымают на Wicket + Oracle. На проектирование дают очень мало времени, в основном это проектирование БД таблиц, и написание ЧТЗ по ТЗ заказчика, потом это все ложиться в систему управления проектами любую. И понеслась душа в рай ...
П.С. На UML диаграммы просто нет времени, вместо этого есть ведуший специалист, который координирует постоянно весь процесс разработки.
Да ладно вам, разнервничался я что-то... И вообще, это темы для книг, а не для комментов...
Как это замечательно, когда у тебя есть ТЗ, ах. :)
Наступил акост на любимую мозоль.
Парень ещё не пуганый, вьюношеский идеализм, то-сё. :)

Честно говоря, я бы даже разговаривать об этом не стал. Всё равно что сказать прямо: "я делаю говно из говна по-говняному потому, что мне по-другому не дают". Или наоборот, надо об этом говорить? Чтобы все знали, что разработка в казахстанских конторах ведётся абы как и с нарушением всех предусмотренных технологией правил и предписаний.
Позволю себе возразить:
1. Во-первых, конкретно у нас всё было не так уж и плохо. Не идеально - не значит плохо. Даже в жёстких условиях умели и процессами управлять и архитектуру строить, и это себя оправдывало.
2. Второе: сроки, компромисы, и т.д. - это не казахстанские проблемы, а мировые.
В большинстве случаев вы правы, все так и делают, все ведуться на деньги, а не на качество, но мы не говорим о мелких конторах которые штампуют сайты. Изначально подразумевались "крупные проекты", в них абы как сделать не прокатит, потому что за такие системы платят большие деньги, и спрашивают за эти деньги по взрослому. (Если один маленький пунктик не будет выполнен из ТЗ, то проект не примут, и это издержки, деньги). Поэтому не все так плохо как кажется, в некоторых конторах ведутся разработки с соблюдением технологий, правил.
ПРОФЕССИОНАЛ.
Ты действительно думаешь все эти страшные слова сделаны для усложнения жизни? ЛОЛ. Хоть бы ченибудь четали местные J2EE гуру отличное от хабра и подобного говна. А когда функционал добавляешь, то нефигова все ети сложные слава помогают если че. Так как ТЗ всегда меняется. Но хули, если есь MysQLLSuperVieverr!
>всех предусмотренных технологией правил и предписаний.
Запомни, это "страшные слова".
>Изначально подразумевались "крупные проекты", в них абы как сделать не прокатит, потому что за такие системы платят большие деньги, и спрашивают за эти деньги по взрослому.
Все потом укладывается в
> Можно много теоритезировать, но когда проект стартует с изначально нереальными сроками завершения, то любыми путями надо делать одно - укладываться в них.
А то что что-то не работает в чем-то - Ну это же риальная жизня.
>. Так что не тыкайте мне пожалуйста с умным видом своё "бла бла бла", я в мире разработки ПО не одну собаку сожрал, и очень сильно сомневаюсь что лично вам есть чему меня в этом учить
Ясен пень, тебе даже на JUnit похуй, куда уж мне строителя учить.
Надо говорить. Я лично хочу знать, с чем столкнусь через полтора года
Вы строитель? Вам же ближе архитектура:)
Не расскажите про архитектуру какого-нибудь серъезного проекта?
Я уверен, что это будет интересно многим.
з.ы. Могу ошибаться, но паттерны проектирования пришли в программирование из строительства.
Про паттерны - абсолютно верно :)

Про архитектуру: комменты и так ужасно распухли. Наверное на следующей неделе скину в свой блог две статьи о J2EE, которые публиковал в Digital Kazakhstan. Там много интересного... Боюсь только что после этого на работе придётся поставить крест и отдать себя целиком комментам ))
С удовольствием почитаю про архитектуру какого-нибудь казахстанского проекта.
Несмотря на то, что я совсем недавно перешел с java на dotnet. Все равно интерес к java не пропал.
Отмечу, что очень радует связка: Servlet Container + Spring MVC + Hibernate +POSTGRE.
Но, к сожалению, я так и не увидел на ней ничего масштабного.
Также нравится Apache Wicket, GWT и Flex(BlazeDS). Много было технологий... но хочется единости.
И в этом microsoft мой друг в лице dotnet-а.
А у вас не возникало мыли перейти на другие языки и технологии?

Возникали мысли изучить другие языки и технологии, перейти - нет. Просто нет свободного времени...
кстати, IDEA стала бесплатной -) слышал в одном из последних выпусков подкаста NOBSIT
Ну не совсем уж бесплатной, повится бесплатная версия Community Edition, при этом параллельно будет выпускаться более функциональная платная Ultimate Edition

Оставьте свой комментарий

Спасибо за открытие блога в Yvision.kz! Чтобы убедиться в отсутствии спама, все комментарии новых пользователей проходят премодерацию. Соблюдение правил нашей блог-платформы ускорит ваш переход в категорию надежных пользователей, не нуждающихся в премодерации. Обязательно прочтите наши правила по указанной ссылке: Правила

Также можно нажать Ctrl+Enter

Популярные посты

Как казахстанцы могут получить кусок международного рынка аутсорса?

Как казахстанцы могут получить кусок международного рынка аутсорса?

Сокурсник Илона Маска инвестировал в образовательные проекты, и теперь хочет создать в Казахстане рабочие места на глобальном рынке аутсорса.
Zhumanova
18 мая 2017 / 13:38
  • 52081
  • 23
Поддержим пенсией жиреющие банки! На что казахстанцам разрешат досрочно тратить свои накопления в ЕНПФ

Поддержим пенсией жиреющие банки! На что казахстанцам разрешат досрочно тратить свои накопления в ЕНПФ

Со стороны ЕНПФ в очередной раз прозвучало крайне неоднозначное заявление, от которого, на наш взгляд, лучше было бы воздержаться.
openqazaqstan
вчера / 11:08
  • 6778
  • 23
А-ля Астана: новый город начали строить на левом берегу Сырдарьи

А-ля Астана: новый город начали строить на левом берегу Сырдарьи

Свершилось! Сегодня в Кызылорде приступили к застройке левобережной части Сырдарьи. Через 10 лет на месте этого пустыря будет шумный и современный новый город, наш престижный деловой Левый берег!
socium_kzo
17 мая 2017 / 17:39
  • 5134
  • 8
Пристань для обиженных людей. Как Жарылкап Калыбай Родину поменял

Пристань для обиженных людей. Как Жарылкап Калыбай Родину поменял

Этот несомненно талантливый, яркий, достаточно харизматичный журналист приобрёл себе много поклонников в среде оппозиционно-либеральной интеллигенции. Теперь они вновь, стоя, аплодируют своему кумиру.
openqazaqstan
17 мая 2017 / 16:01
  • 4544
  • 57
Кого нам ждать: обнародована культурно-развлекательная программа EXPO-2017

Кого нам ждать: обнародована культурно-развлекательная программа EXPO-2017

Рианны не будет (как и ожидалось, в общем-то). Зато будут Мумий Тролль с Би-2, Эрос Рамазотти, 30 Seconds to Mars, и даже почему-то Limp Bizkit. А также фестивали J Azzia и "The Spirit of Tengri".
Clair-de-la-Lune
18 мая 2017 / 1:19
  • 3908
  • 11
Алматинские проститутки превращаются в шпионок

Алматинские проститутки превращаются в шпионок

Попасть в притоны на алматинском проспекте Сейфуллина, которых, как бы ни старались полицейские, меньше не становится, теперь можно, только зная явки и пароли.
Mirogloff
19 мая 2017 / 13:25
  • 3829
  • 31
Что бы ни сделал пешеход – все равно водитель сядет

Что бы ни сделал пешеход – все равно водитель сядет

Вопрос о равной ответственности водителя и пешехода при наезде на последних, только-только начинают обдумывать в высоких кабинетах. Но, пока государственные головы думают, водители продолжают...
Mirogloff
22 мая 2017 / 23:29
  • 3682
  • 32
Нью-Йорк – другая планета. Дороги тут переходят, как в моем родном Чимкенте

Нью-Йорк – другая планета. Дороги тут переходят, как в моем родном Чимкенте

Тут нет безвкусицы, нет осуждающих взглядов на меховые тапки под вечерним платьем. Тут все одеваются как дети. Нацепили и пошли. Тоже самое и о волосах.
miyatov
17 мая 2017 / 11:09
  • 3240
  • 8
Как я погрузилась в общажный мрак – это место сделало из меня монстра

Как я погрузилась в общажный мрак – это место сделало из меня монстра

Попрощавшись с уже полюбившейся мне маленькой раздолбанной квартиркой, где соседки слезно умоляли меня остаться, я погрузилась в общажный мрак. Но тогда я этого еще не знала.
AutumnRain
17 мая 2017 / 10:07
  • 3445
  • 63