правильное написание кода

Tema05

Известный
Автор темы
1,443
403
Версия MoonLoader
.026-beta
Недавно задумался как лучше создавать переменные для хранения информации и работать с ними.
Для примера возьмём ситуацию что мне нужно записывать все данные серверного и локального диалога. Какие диалоги и в какой момент неважно.

Как лучше создать переменную для хранения информации?
Lua:
--расписать все параметры в 1 массиве
local dialog = {
    server = {
        exist = false,
        data = {},
        text = '',
        list = 0
    },
    client = {
        exist = false,
        data = {},
        text = '',
        list = 0
    }
}

--или юзать 2 переменные?
local dialog_server = {
    exist = false,
    data = {},
    text = '',
    list = 0
}
local dialog_client = {
    exist = false,
    data = {},
    text = '',
    list = 0
}

Как лучше записывать информацию?
Lua:
--каждай параметр отдельно
local data = ffi.cast('void*', memory.getuint32(sampGetDialogInfoPtr() + 0x1C))
local func = ffi.cast('char*(__thiscall *)(void*,int,unsigned int)', sampGetBase() + 0x82C50)
dialog.server.exist = true
dialog.server.data = {sampGetCurrentDialogId(), sampGetDialogCaption(), sampGetDialogText(), ffi.string(func(data, 20, 0) + 0x4D), ffi.string(func(data, 21, 0) + 0x4D), sampGetCurrentDialogType()}
dialog.server.text = sampGetCurrentDialogEditboxText()
dialog.server.list = sampGetCurrentDialogListItem()

--или целиком перезаписывать массив?
local data = ffi.cast('void*', memory.getuint32(sampGetDialogInfoPtr() + 0x1C))
local func = ffi.cast('char*(__thiscall *)(void*,int,unsigned int)', sampGetBase() + 0x82C50)
dialog.server {
    exist = true
    data = {sampGetCurrentDialogId(), sampGetDialogCaption(), sampGetDialogText(), ffi.string(func(data, 20, 0) + 0x4D), ffi.string(func(data, 21, 0) + 0x4D), sampGetCurrentDialogType()}
    text = sampGetCurrentDialogEditboxText()
    list = sampGetCurrentDialogListItem()
}

А может вообще забить на название всех параметров?
Lua:
local dialog = {}

local data = ffi.cast('void*', memory.getuint32(sampGetDialogInfoPtr() + 0x1C))
local func = ffi.cast('char*(__thiscall *)(void*,int,unsigned int)', sampGetBase() + 0x82C50)
dialog = {
    true,
    sampGetCurrentDialogId(),
    sampGetDialogCaption(),
    sampGetDialogText(),
    ffi.string(func(data, 20, 0) + 0x4D),
    ffi.string(func(data, 21, 0) + 0x4D),
    sampGetCurrentDialogType(),
    sampGetCurrentDialogEditboxText(),
    sampGetCurrentDialogListItem()
}