Sly32

Рейтинг
367
Регистрация
29.03.2012
webinfo #:
Значит, людей вводит в заблуждение заголовок темы.

Ну вот и стоило бы прочитать сначала, о чем речь, прежде чем приходить и демонстрировать отсутствие понимания вопроса.  Для моих проектов нормально использование нескольких ресурсов для хранения данных - Mongo/Dynamo,  Postgresql/Oracle, Redis,  теперь вот на горизонте Neptune графовый.
Мне неинтересно нарисовать сайтик под Adwords, мне интересен сервис, который будет полезен. И повторюсь, по свои задачи - свой способ.  Для авторизации и хранения данных пользователя лучше  sqlDB  ничего не придумано.  А например  создать курс какой то по предмету с квизами, задачами - тут уже noSql.  И так далее. 

Забавно. сначала ты агитируешь за 

WebStorm #:

нужно ввести в указанной таблице поле с идентификатором меню и вытаскивать записи по нему и по языку

а потом оказывается, что 

WebStorm #:
языковые файлы, если вы не в курсе, они есть во многих популярных cms (например DLE) и хранятся также, как и у меня в  отдельных пхп файлах

WebStorm #:
они как раз и не изменяются, в вашем интерпретаторе расходы может быть и одинаковые, а в пхп нет,

По сравнению с чем? Сделать запрос в базу, хранить в коде, хранить в файлах?  Вы уж определитесь. В Питоне тоже весь код компилится в байт-код. Хранить настройки в коде - bad practice, почитайте может книги по чистому коду. Причин изменения кода может быть две -  обнаружение  бага и изменение функциональности. Если мне для расширения меню нужно менять данные в коде - это не код а мусор.

Gettext - тарая и известная штука, полезная, но в моем случае избыточная. С таким же успехом я могу AI использовать для перевода. 
Моя цель - с наименьшими расходами перевести интерфейс.

webinfo #:
Вообще-то во всех популярных CMS почему-то "ходят" и собирают.

Это их право. Я не пишу сайты, я занимаюсь сервисами.  Тут немножко другие амбиции. Упираться в одну базу не вижу причин.

WebStorm #:
хранение в пхп файлах, сам так храню,

Вот интересно, что? Это очень дилетанские подход. Хранить прямо в коде можно данные, которые гарантированно никогда не изменятся после выхода в прод. И даже в этом случае это лучше хранить в переменных окружения, вычитывая их из .env файла. 

и расходы на чтение файла и на работу интерпретатора одинаковые

vitaliy11 #:
нужно по возможности меньше делать запросов к базе данных

Однозначно. Просто тут вебмастера, воспитанные на жутком вордпрессе, котором все собирается из базы. А вместо оптимизации начинается игра с кэшами...

webinfo #:
На сервере всё хранится в файлах на диске или в оперативной памяти. В том числе и БД. Но БД специально оптимизирована именно для работы с данными. Поэтому где "быстрее" - большой вопрос. Зависит от структуры данных и их объёма.

Почему это вопрос? Лично я взял и проверил - это называется профилирование запросов. И как раз на маленьких обьемах БД проигрывает всухую. Я уже писал. файлы, в которых хранятся данные  сами себя читать не умеют. Для этого над БД висит СУБД. И это не  самая легкая штука. Тут не надо оперировать догадками, это проверяется за 5 минут.

webinfo #:
В файлах json можно вообще хранить все данные

Нельзя. Точнее конечно впихнуть-то можно, но вот эффект какой будет? json - для хорошо структурированных данных. SQLDB - гибче, проще работать с разными форматами и типами. 

webinfo #:
Для реализации мультиязычности правильнее использовать те же базы данных.

Я не вижу обоснований, можно тут поподробнее? Почему правильнее? Каждый раз ходить на сервер, чтобы собрать менюшку из 20-30 значений? Думать как реализовать вложеность? 

Ну и опять же, для тех кто внимательно читал - хранение в файле - это прототип, чтобы потом перейти к noSQL базе, а она все равно будет мне нужна. Сответственно я не вижу причин  мучать сервер лишним запросом, когда есть  решение удобнее. 

Заморочился и в итоге из языковых настроек выросло полноценное создание меню. Теперь, что бы добавить меню, нужно внести изменения в json файл типа такого-
{
    "en": {
        "subjects": {
            "subjects": {
                "chemistry": "chemistry",
                "math": "mathematics"
            }
        },
        "mentors": "mentors",
        "scheduler": "scheduler",
        "news": "news",
        "adverts": "adverts"
    },
    "ru": {
        "subjects": {
            "предметы": {
                "chemistry": "химия",
                "math": "математика"
            }
        },
        "mentors": "преподаватели",
        "scheduler": "расписание",
        "news": "новости",
        "adverts": "обьявления"
    }
}

И отдельный метод соберет не просто перевод, а из ключей второго уровня создаст меню сразу с переводом. Также добавил уровнеь вложености.  Пока только один, но ничего не мешает сделать их сколько угодно. 
Если из этого вырастет коммерческий проект - редактирование  меню будет проходить в админке, не нужно будет руками править что-то в json-е, при этом будет сразу валидироватся правильность добавления данных. И скорее всего подключу тут уже AI - отдаешь ему структуру  меню  и язык и он сам собирает переводы. 


PS. Отстаньте уже от Arbneta,  он в очередной раз показал что ничего из себя не представляет, не вижу смысла загаживать техническую тему  

Openso #:
Одного не пойму, зачем вы разводите холивар с этим арбайтеном? Неужели из других его высеров не понятно какой это дилетант.

Ответ простой, скука. Все пытаюсь выжать из него хоть что-то дельное.

Openso #:
У него небойсь и сайта ни одного нет.

Это как раз не самое страшное. Хуже что и ума для того чтобы его сделать у него тоже не сильно много.

ArbNet #:
А то мнит себя мега профи, а как элементарные вещи делаются без готовых инструментов, конструкторов и не знает..

На чудик, можешь посмотреть, как это работает в личку линку отправил.
Если кому интересно пишите, покажу

ArbNet #:
Троллинг 80го уровня 😁 разумеется я не знаю, что такое база данных.

Конечно не знаешь. Если бы знал - давно бы уже привел бы пример, как бы ты хранил данные, как получал и как обрабатывал. Могу поспорить, что на собесе после 3-5 вопросов по бд я бы уже прекратил интервью и отправил бы тебя домой. Спросил бы тебя про атомарность, уровни изоляции, типы баз и отличия, про, например, реплицирование. До вопросов  - как строятся индексы, как читаются, когда нужны а когда нет, функции, эксплэйны  бы точно не дошли. 
Раз уж для тебя сложность написать простецкий пример.

И ходить в базу чтобы получить 25-30 фиксированных значений - это как раз подход вебмястера, который не понимает, как это работает и будет микроскопом гвозди заколачивать. 

ArbNet #:
Вы на мой вопрос-то не ответили.. БД это коллекция данных, которая позволяет быстро делать выборку нужных.

Фантастика, ты даже не знаешь что такое база данных))) А как по твоему, данные эти извлекаются? Волшебство? Нет, это СУБД, в которой свой язык, которая строит реляционные модели, которая строит индексы. Сколько  операций происходит даже при простом селекте? Открыть коннект, отправить запрос, обработаеть его, вытянуть данные из таблиц, вернуть, закрыть соединение. И это мы еще даже не начали работать с фронтом. Потому что дальше - обработай полученные данные, отправь это на фронт. Если бы ты умел, ты бы давно сам написал профайлер и увидел, сколько памяти и времени займет работа с базой  и сколько - обратиться к файлу. 

Всего: 7118