Почему в SAMP Lua не принято писать код в нескольких файлах?

Ben Puls

Активный
Автор темы
110
26
Версия MoonLoader
.027.0-preview
Почему же в большинстве случаев никто не пытается писать код, разбивая его на отдельные файлы и папки, создавая читабельную структуру кода. Может быть, я не прав и не видел, кто так делает. Но насколько я понял, при написании кода здесь непринято импортировать другие Lua файлы, использовать папки. Но почему лучше писать 5000 строк кода в одном файле, чем разбить всё на папки и отдельные файлы?

Полистал документацию с примерами и, действительно, импортировать файл достаточно просто. Вот простейший пример, подтверждающий мои слова (я не пишу на lua, хотя пытался. Поэтому мной и вызван столь большой интерес к данному вопросу).
functions.lua:
function hello(arg)
    print('Привет, ' .. arg)
end

main.lua:
require('functions')
hello('Мир')

Консоль:
>> Привет, Мир
 
Последнее редактирование:
Решение
Может быть, я не прав и не видел, кто так делает. Но насколько я понял, при написании кода здесь непринято импортировать другие Lua файлы, использовать папки. Но почему лучше писать 5000 строк кода в одном файле, чем разбить всё на папки и отдельные файлы?
Это скорее массовая привычка. Возможно, чем-то она связана с встроенным инструментом для чтения файлов на форуме (по крайней мере в моём случае). Модульность это хорошо, но многие (особенно те, кто пишут только на lua) даже не задумываются о ней. Из последних проектов, которые выкладывали, последний раз подобное видел у @Mintha в NeverSuck

why ega

РП игрок
Модератор
2,547
2,238
Может быть, я не прав и не видел, кто так делает. Но насколько я понял, при написании кода здесь непринято импортировать другие Lua файлы, использовать папки. Но почему лучше писать 5000 строк кода в одном файле, чем разбить всё на папки и отдельные файлы?
Это скорее массовая привычка. Возможно, чем-то она связана с встроенным инструментом для чтения файлов на форуме (по крайней мере в моём случае). Модульность это хорошо, но многие (особенно те, кто пишут только на lua) даже не задумываются о ней. Из последних проектов, которые выкладывали, последний раз подобное видел у @Mintha в NeverSuck
 
  • Нравится
Реакции: Mintha и Ben Puls

why ega

РП игрок
Модератор
2,547
2,238
Как с языка снял. В последнее время тоже задал себе такой вопрос. Вот библиотеки могут почему-то себе такое позволить, а скрипты нет. Хотя даже они иногда пишутся 1 файлом.
Библиотеки обычно пишут более прошаренные люди (сам себя не похвалишь, никто не похвалит), которые понимают немного архитектуру, скорее всего из-за этого
 

Tema05

Известный
1,443
403
Теперь понятно, что структура и написание кода обусловлены исключительно коммьюнити, а не серыми документациями.
Добавлю от себя:
Как я лично вижу корень проблемы в том, что написанные скрипты в нескольких файлах будут работать в нескольких файлах)

Если ты пишешь на плюсах то можно сборщиком скомпилировать всё в 1 exe. На жаваскрипте вебпаком собрать всё в 1 файл и минифицировать. А главное эти процессы можно автоматизировать. В том числе есть хорошие ide под работу.

На луа это всё наверняка есть, но не распространено или не совместимо с moonloader. Если бы всем в рот положили готовый сборщик по 1 кнопке может практика писать в отдельных файлах и стала популярный. Но у луа низкий порог вхождения. Кучу челиков например не поймут почему они создали переменную в 1 файле, а она недоступна в другом. Так что им реально проще писать в 1 файле)

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

Истеблишмент сампа неспособный распаковать архив без 5 минутного гайда на ютубе отдельно под каждую версию винды и расположение папки с игрой. А если у тебя скрипт это больше чем 1 файл значит нужен архив. И это реально без преувеличений большая проблема. Некоторые неспособны даже 1 файл правильно закинуть руиня в тех местах о которых ты даже не подозревал. Ну а если не дай бог нужно закинуть с заменой. Установка может затянуться на недели. И эти люди неспособные найти кнопку

СКАЧАТЬ ТУТ!!!​

, но сука каким-то образом находящие твои контакты по ссылке, под не выделенным словом в предложении, внутри хайда, особо циничным образом заебут тебя. В какой-то момент начнёшь тратить больше времени на помощь в распаковке архивов чем на написание кода. Ведь 70% обращений это как раз "сложности" с установкой. А если ты особо умный и решил сделать exe установщик они тебе скажут "Мы не тупые, так сразу лоадер и скачали, чтобы ты нас взломал. Ищи лохов дальше."

Так что писать в 1 файле это скорее жизненная необходимость)
 
Последнее редактирование:
  • Нравится
Реакции: Ben Puls и TastyBread123

THERION

Известный
Проверенный
88
324
Почему же в большинстве случаев никто не пытается писать код, разбивая его на отдельные файлы и папки, создавая читабельную структуру кода.
сам задавался єтим вопросом. сначала подумал что сборщика нет. написал себе сборщик, а недавно еще нашел уже существующий
https://github.com/LuaDist/squish

попробовал, получилось, подкрутил еще ci/cd

вот тебе примерьі проєктов которьіе используют многофайловую структуру и собираются в 1 файл в итоге:

Это скорее массовая привычка
пану не лень 3000 строчек мотать в большом проекте? отвьікайте

Ведь 70% обращений это как раз "сложности" с установкой.
кстати єтот сквиш еще умеет файльі require'ить, вот вам и контра на віслюков которьіе иконки не могут поставить для imgui
 

chapo

🫡 В армии с 17.10.2023. В ЛС НЕ ОТВЕЧАЮ
Друг
8,777
11,223
Добавлю от себя:
Как я лично вижу корень проблемы в том, что написанные скрипты в нескольких файлах будут работать в нескольких файлах)

Если ты пишешь на плюсах то можно сборщиком скомпилировать всё в 1 exe. На жаваскрипте вебпаком собрать всё в 1 файл и минифицировать. А главное эти процессы можно автоматизировать. В том числе есть хорошие ide под работу.

На луа это всё наверняка есть, но не распространено или не совместимо с moonloader. Если бы всем в рот положили готовый сборщик по 1 кнопке может практика писать в отдельных файлах и стала популярный. Но у луа низкий порог вхождения. Кучу челиков например не поймут почему они создали переменную в 1 файле, а она недоступна в другом. Так что им реально проще писать в 1 файле)

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

Истеблишмент сампа неспособный распаковать архив без 5 минутного гайда на ютубе отдельно под каждую версию винды и расположение папки с игрой. А если у тебя скрипт это больше чем 1 файл значит нужен архив. И это реально без преувеличений большая проблема. Некоторые неспособны даже 1 файл правильно закинуть руиня в тех местах о которых ты даже не подозревал. Ну а если не дай бог нужно закинуть с заменой. Установка может затянуться на недели. И эти люди неспособные найти кнопку

СКАЧАТЬ ТУТ!!!​

, но сука каким-то образом находящие твои контакты по ссылке, под не выделенным словом в предложении, внутри хайда, особо циничным образом заебут тебя. В какой-то момент начнёшь тратить больше времени на помощь в распаковке архивов чем на написание кода. Ведь 70% обращений это как раз "сложности" с установкой. А если ты особо умный и решил сделать exe установщик они тебе скажут "Мы не тупые, так сразу лоадер и скачали, чтобы ты нас взломал. Ищи лохов дальше."

Так что писать в 1 файле это скорее жизненная необходимость)
Так можно же бандлером 'склеить' все файлы в 1
 
  • Нравится
Реакции: Ben Puls