Перейти к содержимому



Добро пожаловать на пользовательский форум CR-MP.RU
Зарегистрируйтесь или авторизуйтесь на нашем форуме, чтобы получить доступ ко всем функциям.
Если у Вас уже имеется аккаунт, нажмите, чтобы войти.
Если у Вас нет аккаунта на нашем форуме, нажмите, чтобы перейти к регистрации. Возникли проблемы с регистрацией ? Обратитесь на почту admin@cr-mp.ru с вашей проблемой.
Фотография

Архитектура проекта

* * * * * 1 Голосов Мануал

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 2

#1
MYSTERYMAN

Уважаемый


Репутация: 29

*
Популярное сообщение!

Доброго времени суток, в данной статье я хочу поговорить по поводу организации архитектуры проектов. За многолетнюю историю на поприще программирования игровых режимов сложилась тенденция писать всю логику в один файл, что в корне неверно и является дурным тоном и в современном мире является признаком некоторой бездарности программиста. Данная тенденция сложилась ешё в зародыше развития мультиплеера и связи с этим дожила до наших дней, но она является не практичной, так как при увеличении количества кода возрастает и сложность его чтения.
 
Для того чтобы в процессе изменения вашей программы не создавались накладные расходы, следует придерживаться грамотно спроектированной архитектуры вашего проекта, давайте определимся что же такое хорошая архитектура.
 
Хорошая архитектура — это архитектура, делающая процесс разработки и сопровождение программы более простым и эффективным. Программа с хорошей архитектурой легче поддаётся расширению и изменению, а также тестированию.
 
Так как большинство игровых режимов написано одним большим монолитом, то к ним данное определение никак не подходит. И решение этому есть, разбиение программы на ряд независимых программ, называемых модулями, сам процесс разбиения программы называется декомпозицией.
 
Декомпозиция программы — принцип разделения сложных систем и процессов на множество простых отдельных частей, которые согласованно взаимодействуют друг с другом.
 
Идея декомпозиции состоит в разбиении программы на такие части, как:

  • заголовочный файл модуля;
  • файл реализации модуля.

В заголовочный файл помещают определение данных используемые файлом реализации, а также прототипы используемых функции.
Файл реализации содержит в себе основную логику вашей программы.
 
Также, следует заметить, что если вашей программе разные модули используют единые функции, то такие функции следует выносить в общий модуль.
 
Ваш проект может быть организован подобным образом:

Скриншот

5h-SzIycUMw.jpg



В файле main.pwn происходит подключение всех модулей, и он cодержит в себе следующий листинг:

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытый текст

У вас наверное возник вопрос, а как же происходит взаимодействие с колбеками, а производится оно с помощью деректив препроцессора, пример данного взаимодействия представлен в листинге ниже:

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытый текст

На этом всё, надеюсь вы стали более образованными и будете применять данную практику в разработке.

P.S: Возможно дополню данную статью в дальнейшем, т.к. некоторые моменты выглядят весьма дико и незакончено.


Сообщение отредактировал MYSTERYMAN: 17 Июль 2017 - 18:55


#2
Wеb

Скриптизер


Репутация: 192

Наконец-то годнота на портале.



#3
Miron_Moraev

Уважаемый


Репутация: 21

может так, или я не так понял) ?

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытый текст

А так мне оч понравилось)







Темы с аналогичным тегами Мануал

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных


Место свободно Место свободно