Подтвердить что ты не робот

Как создать приложение Java?

Каковы общие рекомендации и рекомендации, которые следует учитывать при разработке приложения Java [Простые консольные приложения для приложений J2EE]?

Привет

Недавно я закончил учебник по программированию Java от Sun и практиковал ядро ​​Java (у меня есть предыдущий опыт программирования). Теперь я понимаю основы Наследования, Абстракции, Полиморфизма, Инкапсуляции

Теперь я пишу Java-код без особых трудностей, но не уверен в дизайне приложения. Это моя главная проблема: "ПРОЕКТИРОВАНИЕ" приложения. Скажем, если я задал задачу создания приложения на Java, С чего мне начать? Как обдумать? Любые формальные/неформальные рекомендации, которые я должен соблюдать при разработке иерархии классов? Я действительно запутался (абстрактный класс или интерфейс или подкласс...?). Должен ли я начинать с модели все, прежде чем писать код?

Было бы очень полезно для таких людей, как я, иметь УСТАВ ОБЩИХ РУКОВОДЯЩИХ ПРИНЦИПОВ/НАИЛУЧШИХ ПРАКТИКОВ, за которыми мы можем последовать, приступая к разработке нового Java-приложения.

Пожалуйста, предоставьте мне некоторые рекомендации/мысли/книги/ресурсы/инструменты, которые я должен прочитать или использовать

Спасибо заранее Скотт

4b9b3361

Ответ 1

Трудно дать общий совет, поскольку в разных доменах существует так много разных приложений Java. Тем не менее, одна абсолютно рекомендуемая книга Domain Driven Design от Эрика Эванса. См. Также Wikipedia для краткого ввода на него.

Общий совет:

  • не пытайтесь спроектировать все впереди - создайте достаточно хороший дизайн, который позволит вам начать кодирование, а затем реорганизовать, как ваше понимание проблемного домена, а реализация углубляется
  • попытайтесь разделить сложные проблемы на более мелкие части/шаги/модули, которые вы можете решать по одному.
  • попытайтесь думать в терминах объектов с четко определенными обязанностями, которые (более или менее) моделируют проблемную область и взаимодействуют для решения проблемы/обработки задачи.
  • При создании дизайна требуется, прежде всего, практика; не бойтесь делать ошибки. Однако, когда вы это делаете, анализируйте их и учитесь у них как можно больше.
  • узнайте шаблоны проектирования, но не переусердствуйте - используйте их только тогда, когда они действительно решают проблему и очищают ваш код.

Ответ 2

По-моему, все сводится к следующему

  • легко понять
  • легко поддерживать и развиваться
  • несколько разработчиков, способных внести вклад в проект (в основном в параллельно)

Чтобы достичь вышеуказанного, существуют определенные принципы и принципы, которые предлагаются экспертами на основе опыта, который

  • Следуйте многоуровневой архитектуре
  • Следуйте принципам SOLID внутри и между слоями. Все шаблоны проектирования - это один из способов или другой способ помочь только этим принципам. SRP: принцип единой ответственности, OCP: открытый закрытый принцип, LSP: принцип замещения Лискова, ISP: принцип разделяемости интерфейса, DIP: принцип инверсии зависимостей
  • Принципы DRY и KISS

Эти принципы и принципы не зависят от какой-либо парадигмы программирования или языка. Однако языки OOP помогают реализовать их проще.

Ответ 3

Существуют различные парадигмы (очень часто аббревиатуры из 3 букв):

  • DDD: дизайн, управляемый доменом
  • SDD: дизайн, ориентированный на обслуживание.
  • MDA: модельная архитектура (код и архитектура извлекаются из модели UML)
  • TDD: Test Driven Development (тесты проверки выполняются перед приложением)

С помощью ключевых слов вы найдете много информации в Интернете.

В J2EE я бы сказал, что SDD является наиболее используемым (теперь он очень "нормализован", даже если я не уверен, что это лучшее решение): service (software "intelligence" ) > domain (bean объекты, используемые для устойчивости) > DAO (стойкость).

Теперь DDD становится все более и более используемым: концепция переориентируется на объекты домена, которые берут слой "Software Intelligence".

Ответ 4

Я действительно советую вам взглянуть на принципы GRASP, он дает вам хорошие навыки проектирования.

Ответ 6

Начните с просмотра диаграмм классов UML, которые заставят мяч двигаться в правильном направлении, а затем взгляните на шаблоны дизайна Gang of Four. Это отличный первый шаг.

http://en.wikipedia.org/wiki/Class_diagram

http://en.wikipedia.org/wiki/Design_Patterns

Наконец, я бы наполнил хороший открытый исходный код, например Spring Framework

http://www.springsource.org/

Ответ 7

Я бы рекомендовал возникший дизайн с TDD.

Я думаю, что нет ничего конкретного в дизайне Java: если вы уже знаете об Object Design, вы готовы к работе!

Ответ 8

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

Насколько вы опытны на этом языке, ваш первый общий дизайн будет гораздо более эффективным способом для вашей программы.

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

Ответ 9

Вероятность того, что вы будете делать, уже была сделана раньше - по крайней мере, что-то подобное. К счастью, в наше время много материалов с открытым исходным кодом. Поэтому, если вы действительно не знаете, одно можно сделать, это загрузить несколько приложений с открытым исходным кодом, которые делают то же самое и изучать их. Это должно дать вам хорошее начало.