Quote:
Originally Posted by stabker
В чем каша и почему она убивает смысл модульности? Как раз все перечисленные пункты выполняются:
> каждая система скрипта помещается в свой инклуд (+)
> инклуд помещается на своё место (+)
> если к какой-либо из переменных требуется доступ из любого другого инклуда, я просто создаю функцию для работы с ней и всё (+, но отпадает необходимость)
> налаживается область видимости и других объектов, например макросов (+)
Каждый инклуд (модуль) будет делать только то, что вы от него хотите. И логично, что если "модуль" зависим от другого, то нужно убедиться внутри него, что и тот подключен.
В общем, ваше дело, особой разницы нет.
UPD: Хотя, тут есть косяки. Вариант White_116 лучший.
|
А, всё, я понял что ты имеешь ввиду.
Но это, в любом случае, довольно глупо, ибо тогда для чего нам основной скрипт?
Все зависимости прописываются в основном скрипте для того, чтоб потом удобно этими зависимостями управлять. Разводить ещё и в каждом инклуде сотни условий (утрирую) не вижу смысла.
Если брать в пример массив с данными аккаунта, то доступ к определённым переменным может понадобиться в каких-нибудь сторонних библиотеках, например, с фиксами стандартных багов. Ну или для конкретной библиотеки и конкретной функции в этой библиотеке. Это всё, конечно, можно сделать с помощью различных условий или переносом самого массива в самое начало мода, но тогда придётся разрывать массив для аккаунтов и саму систему аккаунтов, что не очень-то хочется делать. Вот и думал как всё сделать и максимально удобно/красиво, и, при этом, чтоб всё работало как надо.
Если кому интересно, сейчас пришёл к варианту, при котором для всех переменных аккаунта, доступ к которым нужен в инклудах, подключённых выше системы аккаунта, создаю свою функцию и уже через неё работаю. Таким образом хоть и не будет какого-то общего стиля при работе с переменными аккаунта, но зато и лишних вызовов функций не будет + можно всё так же сохранить независимость кода на случай, если вдруг инклуд, для которого будет создана функция, будет отключён.
А вариант White_116 необоснованно сложный для Pawn, как по мне
Мой вариант вполне работоспособен и без всех тех заморочек, о которых я тут говорю. Это, тащемта, уже конкретно мои заморочки, в результате которых я хочу добиться максимально удобной и дружелюбной среды для разработки. Основа принципа взята из
статьи Ziggi и уже доработана под свои хотелки. Получается вполне удобная и гибкая структура, которую пытаюсь сделать ещё удобнее и гибче
Но спасибо всем за отклик