hudrogen
@hudrogen

Как прокачать навык разработки архитектуры информационной системы?

На курсах по Java, как побочный продукт, создавали систему управления библиотекой.
В пакете models создали классы:
Book - описание книги
BookInstance - описание уникальной книги(В библиотеке может быть много одинаковых книг)
Reader - посетитель библиотеки
Booking - класс описывающий "взятие посетителем книги в аренду"
В пакете library создали класс
Library - в нем создали Set-ы из Book, BookInstance, Reader, Booking ов. Методы добавление книги в библиотеку, выдача книги юзеру и т.д.

Архитектуру такую предложил преподаватель.
Как самому уметь строить такую архитектуру информационных систем и как потом убедиться в правильности выбранной
архитектуры?
  • Вопрос задан
  • 460 просмотров
Пригласить эксперта
Ответы на вопрос 5
sergey-gornostaev
@sergey-gornostaev Куратор тега Java
Седой и строгий
Главным инструментом проектирования
программного обеспечения является мозг
человека, хорошо знакомого с принципа-
ми проектирования. Это не технология.

© Крейг Ларман

Проще говоря, это придёт только с опытом.
Ответ написан
Комментировать
@red-barbarian
Получить знания можно из книг. Получить навыки только из опыта.
В частности, сделать архитектуру, получить рабочую модель. Затем внести изменение. Понять сколько времени и сил стоит это изменение. Понять как малейшее изменение может вызвать каскад по всей программе. Понять как изменение в чём-то ломает все на другом конце программы. Почитать что написал через три месяца. Понять почему важно разбивать на модули и правильно наименовать.
Показать другим, понять что писать нужно максимально просто как для человека с топором.
Ну потом можно почитать про SOLID и гибкую разработку. Про TDD. Прочитать шаблоны и зачем они. Если начинать с книг, то риск что шаблоны только усложнят систему.

Архитектура не бывает правильной. Первая цель что бы работала. Вторая легко сопровождалась.
Ответ написан
Комментировать
artemgapchenko
@artemgapchenko
Чтение (Роберт Мартин aka Uncle Bob, Майкл Физерс, Стив Макконнелл, Банда Четырех и так далее), изучение чужого кода и практика. Только так. Можете начать с изучения аббревиатуры SOLID (всё тот же Мартин, книга называется "Быстрая разработка программ. Принципы, примеры, практика") и выбирать литературу дальше, основываясь на сносках в Мартине.

Хотя, если вы на совсем начальном уровне (что подразумевает ваш вопрос), то вам бы в хороший офис года на полтора-два - там привьют начальные представления о хорошем и плохом, заложат фундамент правильных привычек, а дальше можно уже и за литературу браться, как усвоите основы и набьёте свои шишки.
Ответ написан
Комментировать
lxsmkv
@lxsmkv
Test automation engineer
Разбивание предметной области на классы называется декомпозицией.
Почитайте про Domain Driven Design
Хорошая ахтитектура - удобная архитектура, она гибкая, позволяет писать минимум кода. Она позволяет горизонтальное и вертикальное расширение, без конфликтов. Она позволяет писать модульные тесты. Она проста и понятна - обьяснить ее можно на одном листе бумаги за чашкой кофе. Вобщем когда вам ничего не мешает - архитектура хорошая :)
Ответ написан
Комментировать
@jimquery
С примерами на Java есть ещё книга Мартина Фаулера "Архитектура корпоративных программных приложений"
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Bell Integrator Ульяновск
До 400 000 ₽
Bell Integrator Хабаровск
До 400 000 ₽
Bell Integrator Ижевск
До 400 000 ₽
19 апр. 2024, в 17:06
15000 руб./за проект
19 апр. 2024, в 16:53
1000 руб./за проект
19 апр. 2024, в 16:45
5000 руб./за проект