Какой подход я должен использовать, чтобы понять большое приложение J2EE, если я еще не знаю ни одной из задействованных платформ? - PullRequest
6 голосов
/ 04 марта 2010

Я начал работать в моей компании 5 или 6 лет назад в качестве младшего разработчика Java, и мне пришлось заниматься программированием на J2EE с использованием Servlets и Jsp. Я не проводил много времени в этой должности и начал работать с базами данных, поэтому дистанцировался от мира разработки программного обеспечения. Теперь мне пришлось вернуться к программированию на Java, и мне дали веб-приложение для разработки и поддержки.

Когда я открывал проект, я абсолютно ничего не понимал. Приложение было построено с использованием многих высокоуровневых сред, таких как Spring, Hibernate, Wicket, Axis для веб-сервисов и Maven для построения проекта. Люди, которые работали в приложении, - превосходные программисты, поэтому я уверен, что они правильно применили шаблоны и концепции, но сейчас это слишком много вещей, которых я никогда раньше не видел.

Что я могу сделать, чтобы эффективно ознакомиться с текущими инфраструктурами и технологиями? Я достаточно хорошо знаком с основами Java 1.4 и хорошо разбираюсь в шаблонах проектирования и объектно-ориентированном дизайне, но ничего не знаю о тех платформах, о которых упоминал ранее. Я действительно ценю некоторые предложения от людей, которые лучше понимают, чем вслепую читать первую книгу, которую я нахожу об этих разных предметах.

Заранее большое спасибо за помощь.

Ответы [ 7 ]

6 голосов
/ 04 марта 2010

Я предполагаю, что «превосходные программисты» все еще существуют, поэтому лучше всего их использовать. Хотя не каждый разработчик умеет объяснять что-то, он должен быть в состоянии дать вам обзор приложения, чтобы вы могли понять, что обеспечивает каждая инфраструктура и как они работают вместе.

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

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

Курсы и документация, конечно, помогут, но ничто не заменит теплое тело (компетентное), которое поможет вам что-то понять, даже более того, если они что-то создали.

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

Примечание: Кроме того, с курсами вы можете проверить, чтобы убедиться, что они соответствуют специфике используемой вами структуры. Spring довольно обширный, и изучение Spring MVC может оказаться мало полезным для вас (в вашей текущей позиции), если ваша компания использует исключительно другие платформы для веб-разработки, в то время как Spring DI (ядро) и доступ к данным могут быть тем, что вам действительно нужно.

4 голосов
/ 04 марта 2010

Единственным (или, я бы сказал, лучшим способом) было бы: запустить этот проект в вашей локальной среде и оттуда начинать касаться кода, пока вы его не поймете.

Например, начните со страницы входа в систему:

  • Где это?
  • Что вызывает что?
  • Где находится компонент?
  • Какой код внизу.
  • Что произойдет, если вы измените эту строку кода или другую.

    В конце концов вы сможете сказать «Хорошо, это действие такой структуры» или «Это настраивается через эту страницу конфигурации»

Не бойтесь что-нибудь сломать, когда это произойдет, восстановите свое окружение и начните заново.

Я нахожу чрезвычайно быстрее и эффективнее изучать новые технологии таким образом, чем переходить от теоретического к практическому.

Время от времени читайте что-то о конкретной структуре, используемой для увеличения вашего словарного запаса и получайте полную картину всего этого. Затем вернитесь и снова копайте код.

3 голосов
/ 04 марта 2010

Для меня самое большое препятствие с большинством этих веб-фреймворков - это слесарное дело: « этот xml параметр соответствует этому одному, который тому классу ищет для "- Чтение весенней книги, вся информация о конфигурации сливается воедино в огромную массу сорта-настраиваемые-то-xml-точки-к-этому-xml-к-wha ?? - да ?? вещи. Лучший способ, который я нашел для понимания фреймворков, - это создание игрушечных проектов. Все книги и документация в мире не могут заменить грязные руки.

Итак, я сделал небольшой весенний проект. например, 2 класса, может быть, 1 jsp, чтобы понять, какие части конфигурации делают что-то в упрощенной среде. Следующим шагом будет добавление фрагмента - добавление простого hibernate-доступного класса, настроенного с помощью Spring. Приступая к пошаговому процессу, вы начинаете понимать, как все части подходят, и какие части вы ищете, когда пытаетесь понять функциональность части приложения. Есть много настраиваемых частей, и мне приходилось делать это не раз.

1 голос
/ 04 марта 2010

Не делайте этого сами ... Используйте этих "превосходных программистов" ... надеюсь, они все еще работают с вами над этим проектом. Парное программирование - отличный способ максимально быстро расширить свои знания. Вы можете прочитать все книги в мире, но ничто не сравнится со старым добрым практическим опытом. Черт возьми, если вы находитесь в ротации поддержки, возьмите телефон на несколько недель ... эти разгневанные клиенты на конце телефона - надежный мотиватор. :)

Я был техническим руководителем проекта, в котором только двое из нас имели опыт работы с Hibernate & Spring (и по иронии судьбы с JUnit). Мы вдвоем часто в паре с этими «младшими» разработчиками до такой степени, что они просто начали демонстрировать, что они «получили». Это не произошло за одну ночь, но между созданием пар и написанием хороших тестов у нас теперь есть команда из 5 опытных разработчиков.

Удачи!

1 голос
/ 04 марта 2010

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

Одна из вещей, которые я нашел наиболее полезными, - это начать изучать Spring.Возьмите книгу (мне понравилось Spring Recipes , но многие люди рекомендуют Spring In Action ), или возьмите учебный класс (тот, который предлагается на веб-сайте Spring, очень хорош).Изучив Spring, я узнал, как интегрироваться с другими платформами, такими как Hibernate и другие платформы Web-сервисов, и в процессе я изучил основы этих платформ и концепций JavaEE в целом.

Есть некоторые фундаментальные различиямежду Java 1.4 и 1.5, так что вы можете найти хорошую книгу по Java полезной, если у вас возникнут проблемы.

Но, честно говоря, как сказал @Oscar Reyes, поначалу это будет ошеломительно, но лучше всегоВы можете просто погрузиться. Начните играть в локальной среде или в среде разработчиков.Создание простого приложения "Привет, мир!" Даст вам массу понимания.

Удачи!

1 голос
/ 04 марта 2010

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

Весенняя документация

Обучающие программы Hibernate

Apache Wicket

Ось для веб-сервисов

Maven

Как только вы поймете, как работают различные фреймворки, вам нужно взглянуть на код. Есть ли документация, есть ли комментарии в коде, узнайте, что они говорят, и попробуйте следовать тем частям кода, которые вы понимаете. Лучше подходить к огромному сайту по одной странице за раз и выяснять, что делает каждая часть, прежде чем просматривать все страницы сразу.

Как только вы почувствуете сайт, начните с изменения простых вещей в коде, даже если он тут и там выводит «привет мир», это даст вам представление о том, как код влияет на сайт на экране.

Но самое главное - не паниковать, сохранять спокойствие. Если это начинает вас ошеломлять, лучше вернуться к началу, чем пробовать.

Если у меня есть другой совет, я добавлю правку.

Удачи вам.

** РЕДАКТИРОВАТЬ

Если вам трудно понять, как все эти вещи работают вместе, вы всегда можете спросить, есть ли у них документация для системы. Если у них есть блок-схемы, какой подход к проектированию они использовали, водопад и т. Д. Найдите пользовательские методы, классы, функции. обычно они должны быть хорошо задокументированы и объяснены программистами, которые их кодируют. также логический и физический дизайн сайта. Теоретическая фаза сайта так же важна для понимания, как и сам сайт.

Надеюсь, это поможет.

0 голосов
/ 04 марта 2010

Мой совет - начать с нахождения учебника «Привет, мир» для каждой из фреймворков и, на самом деле, следовать написанию кода в вашей среде.Я обнаружил, что учусь намного быстрее, если на самом деле пишу код, а не просто читаю примеры.

Как только вы это сделаете, подумайте, что, по вашему мнению, было бы полезно или круто использовать для себя, и начните создавать его, используя один фреймворк за раз.Напишите простое приложение для создания заметок, которое, например, хранит заметки в текстовых файлах, и используйте Spring для управления зависимостями классов.Тогда используйте maven, чтобы построить и выполнить флягу.Затем добавьте hibernate для хранения в базу данных вместо текстовых файлов.Затем используйте wicket, чтобы превратить его в веб-приложение и т. Д.

Затем перейдите на amazon, купите и прочитайте книгу по каждому фреймворку.

Кроме того, для меня, если фреймворк не работаетМеня не очень интересует, я постараюсь убедить себя, что достаточно просто понять концепции высокого уровня.Но это всегда возвращается, чтобы укусить меня.Я всегда заканчиваю тем, что возвращаюсь назад, кусаю пулю и действительно изучаю материал.Поэтому я бы сказал, чтобы попытаться избежать этой игры, если вы можете.

Отличный вопрос, кстати, я думаю, что это ситуация, в которой разработчики часто оказываются!

...