Sly32

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

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

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

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

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

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

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

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

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

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

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

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

А давайте, голубчик, вы приведете примерчик запросика, который будет из таблички выгребать все данные по ключу. Потом профилируем запрос и сравним скорость запроса в базу данных и скорость вычитывания данных  из json-файла. Причем я его загружаю на бэке, вычитываю из него только нужный мне ключ и на фронт отправляются уже сформированный словарь, который напрямую используется в шаблонизаторе и который весит мизер. Надеюсь вы в состоянии прочитать 10 строчек кода, которые я привел. Также, раз вас заинтересовала эта тема, надеюсь в с начала читали и заметили, что вариант с вычиткой файла - на первом этапе, в дальнейшем это переедет в noSQL базу данных, по сравнению с которой ни одна реляционнка и близко не сравниться . Вообще есть вариант уйти в графовую базу.

Жду от вас ответ - как вы будете хранить данные в базе(таблица) и какие будете строить запросы для получения данных. В идеале - как будете все это применять на фронте.

Надеюсь, вы не уподобитесь известному персонажу тут.

vitaliy11 #:

Я для себя так сделал мультиязычность (и там не 3 языка):

На файлах. Идет масив $L_ar_main [ название1 => текст1, название2 => текст2,  ].

Для каждого языка есть своя директория, в ней отдельные файлы: основной

У меня примерно похожее решение. Только роутинг в fastapi не требует создавать папки. 

В любом случае Хранить нужно в json - это самое удобное и масштабируемое решение

divv #:

lang name value autoload

ru mentors учителя 1

ru mentees ученики 1

pl subject blabla 0


Тут по примеру вордпресса в таблице опций, одним запросом можно получить все настройки, которые чаче всего используются, к примеру lang=ru and

autoload=1


Для редкоиспользуемого или больших данных придется уже делать отдельные запросы, lang=pl and subject = blabla

Да, можно так хранить. Но я сразу  вижу несколько сложностей, одну из которых ты уже привел - разные запросы под разные меню. Мне нужно универсальное решение с минимумом запросов, тут цикломатическая сложность на выходе должна быть О(1) иначе решение неправильное.

Дальше. Простой запрос по языку типа SELECT * FROM table WHERE table.lang='ru',  мне выдаст n-ое количество строк, как мне потом обрабатывать это? Jinja2 шаблонизатор  использует очень простой конструктор работы с контекстом в виде словарей и мне не очень хотелось бы городить огород с сериализацией.
то есть  если мне в респонсе пришел такой словарь {"ru": {"mentee": "ученик"}}, то я просто в шаблоне использую:

<ul class="navbar-nav me-auto mb-2 mb-lg-0">
   <li class="nav-item">
        <a class="nav-link href="/mentee/{{user_id}}">{{lang.mentee}}</a>
   </li>

И все. Если это обьект респонса из базы - мне нужно будет в цикле найти все нужные значение. Такие вещи не стоит отдавать на фронт, с бэка уже должен приходить ответ в нужном формате.

ArbNet #:
А что касается тебя, то это как раз будет уроком,

Это точно - урок что ты ничего не знаешь, умеешь только дуть щеки и попытка с тобой нормально общаться - бесполезна. Ты почему то решил, что мне нужна твоя помощь 😂. А мне хотелось просто подискутировать на технические темы. И только ты тут пытаешься развести срач, остальные по делу отвечают. Напрашивается очевидный ответ.

ArbNet #:
этот навык такие как ты утратили..

Как обычно, надежда на нормальный диалог с тобой - бессмысленна. Тебе не лень писать про свои обидки, но ты не в состоянии привести 2 строки кода - как ты думаешь, это не говорит о твоем уровне?Может у тебя когнитивный диссонанс? потому что сначала это

ArbNet #:
всё делается очень просто

но потом

ArbNet #:
просто надо подумать.
ArbNet #:
Django тоже наверняка есть мультилэнгвич решения

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

ArbNet #:
это тебе не на готовых конструкторах и библиотеках по готовым примерам что-то накидать, тут думать и соображать надо, а этот навык такие как ты утратили..

Пока что ты демонстрируешь не то что утрату, а полное отсутствие.

Но!!!! Я еще раз предлагаю отставить детские обидки и поговорить на технические темы. Это полезно будет и тебе и мне. Продемонстрируй навыки нормального разработчика, а не обидчивого школьника. Думаю это будет полезно всем. Мне реально было бы интересно, как кто-то, ты в том числе видит реализацию этого.
Я пока пытался сформулировать, пришел к выводу, что мне реально проще хранить языковые настройки в json файле и один раз оттуда забирать нужный язык. Примерно так

[json]
{
    "en":{
        "home": "home",
        "subjects": "subjects",
        "mentors": "mentors",
        "scheduler": "scheduler",
        "news": "news",
        "adverts": "adverts",
        "search": "search"
    },
    "ru": {
        "home": "домой",
        "subjects": "предметы",
        "mentors": "преподаватели",
        "scheduler": "расписание",
        "news": "новости",
        "adverts": "обьявления",
        "search": "поиск"
    }
}
и обработчик в 10 строк
[lang.py]
import os
import json
from fastapi import Depends, Path

def get_language_dependency(lang: str = Path(...)) -> dict:
    return get_language(lang)

def get_language(lang: str = "en") -> dict:
    file_name = "lang_settings.json"
    file_path = "".join((os.getcwd(), "/src/settings/", file_name))
    with open(file_path, "r") as f:
        data = json.load(f)
        lang = {"lang": data.get(lang)}
        if not lang:
            return {"lang": data.get("en")}
        return lang

При этом при переходе на БД и переделывать ничего не надо. Монго и так работает с джейсонами, в постгрес тоже есть поле типа json и никакой огород не надо городить

Побьешь мое решение  своим?

ArbNet #:

😁

ЗЫ. Окэй

Докажи хоть раз что ты не пустозвон. Приведи пример. Пока я вижу так. Чтоб было проще, базовый текст, на английском - так будет проще строить роутинг. Есть вкладки для en: ['mentor', 'mentee', 'schedule', 'subject', 'news']. Пока что все прекрасно кладется в одну таблицу:

en mentors mentees
schedule
subject
news
ru учителя ученики расписание предмет новости
pl nauczycielstwo studenci harmonogram ... ...

Все вроде как прекрасно. Но тут я решил добавить радел, например, реклама. Добавлять новый столбик?
А если раздел предметы содержит подразделы - Математика, История, Химия.... Куда их пихать?
Жду твои варианты.
И давай без надувания губ. Чисто техникал дискуссия. Может, я что-то упускаю, усложняю, а ты видишь простой путь.

ArbNet #:
Всё как обычно

То есть ты не знаешь как? Мне вот почему то кажется что хранить все данные в одной таблице не получится

Всего: 7322