powered by simpleCommunicator - 2.0.37     © 2025 Programmizd 02
Форумы / Delphi [игнор отключен] [закрыт для гостей] / XML как альтернатива INI
25 сообщений из 154, страница 6 из 7
XML как альтернатива INI
    #40094933
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock
Fr0sT-Brutal
пропущено...

То есть заботы программера скинуть на админа БД и умыть руки :)) отличное решение!
Не говоря уже о том, что половина перечисленных плюсов очень сомнительна
Админу и так и так надо бэкапить базу. Тут работы только уменьшится - не надо будет бэкапить конфиги.

А когда умрёт винт - достаточно будет установить программу и взять базу из бэкапа (реплику, или как там сделано). И всё.

Меньше работы - меньше требуется людей на поддержке. Это тупо деньги.

Опасное направление выбрано. Если развивать идею дальше - то можно просто предложить
использовать вместо десктопа веб-приложения. Их вообще не надо бэкапировать.
...
Рейтинг: 0 / 0
XML как альтернатива INI
    #40094938
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А ведь когда-то о трехзвенках спорили, а теперь - об инифайлах...
...
Рейтинг: 0 / 0
XML как альтернатива INI
    #40094943
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
YuRock
пропущено...
Админу и так и так надо бэкапить базу. Тут работы только уменьшится - не надо будет бэкапить конфиги.

А когда умрёт винт - достаточно будет установить программу и взять базу из бэкапа (реплику, или как там сделано). И всё.

Меньше работы - меньше требуется людей на поддержке. Это тупо деньги.

Опасное направление выбрано. Если развивать идею дальше - то можно просто предложить
использовать вместо десктопа веб-приложения. Их вообще не надо бэкапировать.

У меня для тебя плохие новости. То, что за тебя хостер делает бакапы - вовсе не значит, что бакапить их не надо :)

авторА ведь когда-то о трехзвенках спорили, а теперь - об инифайлах...

одних уж нет а те далече...
...
Рейтинг: 0 / 0
XML как альтернатива INI
    #40094945
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какой еще хостер. Кажется мы говорим на разных языках.
...
Рейтинг: 0 / 0
XML как альтернатива INI
    #40094946
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zeon11
6. Снимается проблема сложных настроек. Например, настройки таблиц, с шириной колонок и их ассортиментом достаточно геморройно сохранить в любом месте, кроме БЛОБа

Вот вообще не проблема сохранить нужные настройки в Ini.
Если единственным вариантом видится только БЛОБ, то ИМХО что-то не то в консерватории.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
[FrmSA]
Top=109
Left=235
Width=1470
Height=719
FsubstrF9=эпох
EditOstMin.Text=1
EditNsklad.Text=-54
Fnsklad=-1
Fmin_ost=0
CDS.Width=ID=-60;ISFOLDER=-60;ID_LCL=70;NAME=1005;OST=70;CENA=90;KOL=60;CENA_IN=-90;CENA_OUT=-90;MARKUP_CAT=-90;DOC_EXISTS=-60;FPU=-60;AGC=60;LTB1=-50;LTB2=-50;LTB3=-50;LTB4=-50;LTB5=-50;LTB6=-50;ROW_FONTSTYLE=-60;ROW_COLOR=-60;
CBoxEAN13synt.Checked=0
F_F9_model=LR03
Ctrl+F=Клей
GoodsMarkBold_KolMin=1
GoodsMarkBold_KolMinX=1
EditEAN13prefix.Text=
CBoxEAN14auto.Checked=0

Параметр CDS.Width - это список колонок в клиентском CDS и их ширина. Ширина со знаком минус - коронка скрыта. Пользователь может управлять видимостью колонок, скрывая ненужные.
...
Рейтинг: 0 / 0
XML как альтернатива INI
    #40094961
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
makhaon
YuRock,

у нас база бакапиться в одном архиве вместе с инишками. что мы делаем не так? :)
Всё так. Только это сложно, ведь базу бэкапить онлайн - требуется спец. средство, после чего еще файлы копировать.
Да, это один раз делается (если с одной папки), а потом само работает.
Но всё равно работы больше.
...
Рейтинг: 0 / 0
XML как альтернатива INI
    #40094963
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
YuRock
пропущено...
Админу и так и так надо бэкапить базу. Тут работы только уменьшится - не надо будет бэкапить конфиги.

А когда умрёт винт - достаточно будет установить программу и взять базу из бэкапа (реплику, или как там сделано). И всё.

Меньше работы - меньше требуется людей на поддержке. Это тупо деньги.

Опасное направление выбрано. Если развивать идею дальше - то можно просто предложить
использовать вместо десктопа веб-приложения. Их вообще не надо бэкапировать.
Чем это плохо?
...
Рейтинг: 0 / 0
XML как альтернатива INI
    #40094966
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я запрыгнул не в свой вагон. Форум я имею в виду. Поэтому я с вашего позволения
создам форк этой темы в Программировании. С вопросом о конфигах.
...
Рейтинг: 0 / 0
XML как альтернатива INI
    #40094969
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Какой еще хостер. Кажется мы говорим на разных языках.

То, что фронт не бэкапиться вовсе не значит что бэка вообще не существует и бакапить его не нужно.

авторВсё так. Только это сложно, ведь базу бэкапить онлайн - требуется спец. средство, после чего еще файлы копировать.
Да, это один раз делается (если с одной папки), а потом само работает.
Но всё равно работы больше.

Работа админа заключается только в указании места (папки) автобакапа и/или нажатия кнопки ручного бакапа. Всё остальное делает сам софт: бакапит базу, упаковывает бакап + инишки в архив. Собственно кода там десяток строк. Ну а если программистам лень десять строк написать для удобства себя и пользователей (админов) - то тут, конечно, печально и безисходно.
...
Рейтинг: 0 / 0
XML как альтернатива INI
    #40094984
zeon11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fraks
zeon11
6. Снимается проблема сложных настроек. Например, настройки таблиц, с шириной колонок и их ассортиментом достаточно геморройно сохранить в любом месте, кроме БЛОБа

Вот вообще не проблема сохранить нужные настройки в Ini.
Если единственным вариантом видится только БЛОБ, то ИМХО что-то не то в консерватории.

....



Fraks, будьте уж последовательными. У Вас-же EXE-шник в БД, и оттуда разворачивается, и это хорошо. У меня EXE-шник в БД "живет" много лет. Помимо этого в БД "живут" DLL-ки, плагины, шаблоны отчётов, и прочая обвеска. И в БД я это запихивал не в один день. Проверял, сравнивал производительность. И ini у меня когда-то болтались на диске, потом я это дело вытравил и не жалею.
И по поводу "консерватории". Я не писал про единственный вариант хранения в БЛОБ.
Я написал, что по сравнению с БЛОБ всё остальное более затратно. Будьте внимательны
...
Рейтинг: 0 / 0
XML как альтернатива INI
    #40095009
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
XML как альтернатива INI
    #40095013
Fr0sT-Brutal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
zeon11
Вам сомнительна, а мне нет. Ваш опыт против моего опыта. Я попробовал все варианты и остановился на лучшем, с моей точки зрения. Я перечислил все плюсы, и постарался аргументировать, Вы даже не удосужились перечислить сомнительные с Вашей точки зрения пункты. И даже если половина, как Вы пишете, сомнительна, то вторая половина, даже для Вас бесспорна.
Сомнения примем как 50 на 50, с учетом бесспорной для Вас половины, Вы согласны на 75% с моими выкладками.
Так что админ может и потерпеть.
И да, чем там программер нагрузил админа БД в данном кейсе?

Подозреваю, здесь у нас разное понимание области обсуждения. Если говорить о клиенте к БД, который уже общается с БД на выделенном сервере, то даже обсуждать нечего: сократить используемые сущности - это правильно.
Но изначальный вопрос стоял про программы в целом, без БД. И вот сюда тащить БД только ради профилей (без весомого обоснования) - ересь
...
Рейтинг: 0 / 0
XML как альтернатива INI
    #40095015
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник

А зачем он нужен? Ну тоесть... какие преимущества дает?
...
Рейтинг: 0 / 0
XML как альтернатива INI
    #40095020
tunknown
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fr0sT-Brutal
Но изначальный вопрос стоял про программы в целом, без БД. И вот сюда тащить БД только ради профилей (без весомого обоснования) - ересь
Mozilla Firefox с вами несогласна. SQLite и для профилей неплох. Но ради трёх строчек в .ini файле вряд ли стоит.
...
Рейтинг: 0 / 0
XML как альтернатива INI
    #40095021
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

там же написано
...
Рейтинг: 0 / 0
XML как альтернатива INI
    #40095024
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну вот так было.

Код: sql
1.
2.
3.
4.
Owner,Year,Make,Model,Description
"Henry Ford",1997,Ford,E350,"Super luxurious truck"
"Thomas Anderson",2000,Mercury,Cougar,
John,,,,


И так стало.

Код: sql
1.
2.
3.
4.
# --y=Year,m=Make,md=Model,d=Description
Henry Ford --y=1997,m=Ford,md=E350,"d=Super luxurious truck"
Thomas Anderson --y=2000,m=Mercury,md=Cougar
John



Как по мне - нечитабельная фигня. Плюс еще нужно держать справочник ключей в голове.

Уж лучше yaml.
...
Рейтинг: 0 / 0
XML как альтернатива INI
    #40095026
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zeon11
fraks
пропущено...
Вот вообще не проблема сохранить нужные настройки в Ini.
Если единственным вариантом видится только БЛОБ, то ИМХО что-то не то в консерватории.


Fraks, будьте уж последовательными. У Вас-же EXE-шник в БД, и оттуда разворачивается, и это хорошо.


Что-то не уловил связи между exe в БД и настройками программы.
У меня в БД не только exe, но и печатные формы, и файлы шаблонов прайсов, и собственно данные лежат :)

zeon11

И ini у меня когда-то болтались на диске, потом я это дело вытравил и не жалею.


У меня рядом с программой лежит 2 ini.
Одна - со стокой коннекта к БД, и этот файл правится руками, когда надо.
Второй ini пишет и читает само приложение, сохраняя туда локальные настройки которые нет смысла хранить в БД.

zeon11

И по поводу "консерватории". Я не писал про единственный вариант хранения в БЛОБ.
Я написал, что по сравнению с БЛОБ всё остальное более затратно. Будьте внимательны


Я не вижу в чем тут затратность.
В ini у меня на каждую форму по секции, далее параметр=значение. Читаю/пишу.
А где эта ini хранится - как-бы не суть. Но раз она имеет смысл только к рядом лежащему exe то почему бы не лежать рядом?
А так, можно этот ini хранить не в виде файла а в виде блоба в БД, ну ровно ничего от этого не меняется. Кроме головняка как различить какой из ini нужно из базы выковыривать.

Мое приложение однопоточное. Если нужна какая-то параллельная работа - то просто запускается второй экземпляр. Если нужно для одного экземпляра иметь одни настройки а для второго - другие - тупо копируем папку с приложением, что бы у них были разные ini-файлы - и всё.
...
Рейтинг: 0 / 0
XML как альтернатива INI
    #40095030
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник


Какая-то странная поделка. Чуть улучшает ситуацию для частного случая, но даже с ним как-то не очень. Но привносит свои ограничения. Мне например непонятно почему нужно себя ограничивать неупотреблением символа-разделителя между типа NAME и остальными параметрами. Разделитель там ' --'. А что если такая последовательность встречается в NAME?

Единственное что можно рассматривать как некоторый плюс DDV перед CSV - именованные поля, зная ключ поля можно выковыривать его произвольно из строки. Но однако, зная ключ (индекс поля) точно так же он выковыривается и из CSV.
Если же большой список параметров каждый из которых довольно редко встречается, то это тот самый ini и есть.

Код: xml
1.
2.
3.
4.
5.
6.
7.
[NAME]
param1=value1
param2=value2

[NAME2]
param3=value3
param10=value1


То что типа можно сортировать.. тоже непонятнько. Разница между DDV и CSV в показанных примерах только в том что в CSV поля могут быть окавычены и нет, это сбивает сортировку, но зато дает отсутствие проблемы с разделителем полей.
Сортировка прямо по файлу будет все равно корявая, длина поля для сортировки не фиксирована, да и зачем это надо, сам файл сортировать? Все равно это все загружается в некую структуру и там уже и сортируется по нормальному.

Кроме того, эта поделка решает вопрос как разобрать одну строку/секцию. А как найти нужную в файле? Ini этот вопрос решает, а тут остается за кадром. И в чем смысл?
Единственное где хоть как-то это может иметь смысл, я вижу в случае если типов полей тыща, но в конкретной записи штук 5. CSV в таком варианте будет состоять из большого количества разделителей полей.
...
Рейтинг: 0 / 0
XML как альтернатива INI
    #40095041
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот я-бы так сделал. На базе имеющегося стандарта.

Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
CarOwners:
 - Owner : "Henry Ford"
   Year : 1997
   Make : Ford
   Model : E350
   Description : "Super luxurious truck"
 - Owner : "Thomas Anderson"
   Year : 2000
   Make : Mercury
   Model : Cougar
 - Owner : John



Можно горизонтально развернуть. Тоже в рамках того-же формата.

Код: python
1.
2.
CarOwners:
  [ { Owner : "Henry Ford",  Year : 1997,  Make : Ford ..... } ]
...
Рейтинг: 0 / 0
XML как альтернатива INI
    #40095043
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вспомнил, у меня же есть в базе таблица для хранения настроек :)

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
CREATE TABLE SETTINGS (
    ID           INTEGER     NOT NULL,
    USER_NAME    VARCHAR(32) NOT NULL,
    PARAM_NAME   VARCHAR(70) NOT NULL,
    VAL_STR      VARCHAR(1000),
    VAL_INT      INTEGER,
    VAL_CUR      NUMERIC(18,2),
    VAL_DATE     TIMESTAMP,
    CREATE_DT    TIMESTAMP   DEFAULT CURRENT_TIMESTAMP,
    CREATE_USER  VARCHAR(32) DEFAULT CURRENT_USER,
    MODIFY_DT    TIMESTAMP   DEFAULT CURRENT_TIMESTAMP,
    MODIFY_USER  VARCHAR(32) DEFAULT CURRENT_USER
);

ALTER TABLE SETTINGS ADD CONSTRAINT SETTINGS_UNI_USER_PARAM UNIQUE (USER_NAME, PARAM_NAME);
ALTER TABLE SETTINGS ADD CONSTRAINT SETTINGS_PK PRIMARY KEY (ID);


Планировалось засунуть настройки туда, но что-то не зашло.
Там сейчас только общие настройки, для всех, типа путь к папке с картинками и префикс URL до картинок на сайте.
...
Рейтинг: 0 / 0
XML как альтернатива INI
    #40095045
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По поводу сортировки колонок. В NoSQL-ных системах наподобие Apache Cassandra такой подход
используется. Но Cassandra оперирует бинарным форматом блока (партишена). И поэтому для нее
точечный или диапазонный поиск колонки - занимает короткое (логарифмическое) время.

Для текстового формата данная сортировка ничего нам не дает. Ведь для парсинга мы все равно
обязаны вычитать всю DDV строку целиком. Или всю entity для Json/Yaml. Чтоб моя мысль была
более понятна - представте себе что строка очень длинная (до 1Гб на диске).
...
Рейтинг: 0 / 0
XML как альтернатива INI
    #40095046
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Вот я-бы так сделал. На базе имеющегося стандарта.
Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
CarOwners:
 - Owner : "Henry Ford"
   Year : 1997
   Make : Ford
   Model : E350
   Description : "Super luxurious truck"
 - Owner : "Thomas Anderson"
   Year : 2000
   Make : Mercury
   Model : Cougar
 - Owner : John




Тот самый случай когда yaml начинает иметь смысл и незачем изобретать недовелосипеды :)
...
Рейтинг: 0 / 0
XML как альтернатива INI
    #40095049
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Для текстового формата данная сортировка ничего нам не дает. Ведь для парсинга мы все равно
обязаны вычитать всю DDV строку целиком. Или всю entity для Json/Yaml. Чтоб моя мысль была
более понятна - представте себе что строка очень длинная (до 1Гб на диске).

При таких размерах (тем более одной записи) я бы уже давно хранил это в БД, что бы иметь возможность читать нужную часть не разматывая предварительно весь файл.
...
Рейтинг: 0 / 0
XML как альтернатива INI
    #40095062
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А это - экономия на спичках.

Код: plaintext
1.
Thomas Anderson --y=2000,m=Mercury,md=Cougar


Вот вообще-вообще ничего не дает. В наше время. Ну надыбал -30% и что?

В 90х было популярно такое. Когда тактовая частота мерялась единицами мегагерц а память только мегабайтами
и сети были модемные. Был создан торговый протокол (FIX/QuickFix) для покупок продаж.

Вот пример такого торгового сообщения с вики https://en.wikipedia.org/wiki/Financial_Information_eXchange

Код: pascal
1.
8=FIX.4.2|9=65|35=A|49=SERVER|56=CLIENT|34=177|52=20090107-18:15:16|98=0|108=30|10=062|



Здесь теги - числа. Я помню по памяти что 9 определяет всю длину сообщения в байтах. Да есть целые
биржевые суб-справочники на базе этого. И каждая торговая организация расширяет его новыми тегами.

Вот если автор гнался за экономией - пусть берет такой подход. Хотя в наше время это ничего кроме
проблем не создает.

По хорошему если хочет скорости и компактности - пусть берет Apache Thrift . И куча языков
совместима по типу.
...
Рейтинг: 0 / 0
XML как альтернатива INI
    #40095064
Fr0sT-Brutal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tunknown
Fr0sT-Brutal
Но изначальный вопрос стоял про программы в целом, без БД. И вот сюда тащить БД только ради профилей (без весомого обоснования) - ересь
Mozilla Firefox с вами несогласна. SQLite и для профилей неплох. Но ради трёх строчек в .ini файле вряд ли стоит.

Речь про полноценную БД на выделенном сервере.
SQLite , возможно, как общий знаменатель для всех систем - т.к. это дефолт под Android. Тем не менее, настройки там и в виде js хранятся
...
Рейтинг: 0 / 0
25 сообщений из 154, страница 6 из 7
Форумы / Delphi [игнор отключен] [закрыт для гостей] / XML как альтернатива INI
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]