Ryan
я вручную сделал
Nikita
Пути писать лучше полные, а не относительные.
Зайти в деррикторию, где лежит файл, вбей pwd и получишь полный путь
Nikita
Да, это правда.
А кто мешает вынести путь в переменную окружения?
Nikita
и при переносе приложения с машины на машину менять его?)
Всё равно приложение настраивается при переносе)
Nikita
Завернуть в докер, тоже как вариант. Внутри докера путь всегда будет одинаковый
Nikita
Не всегда и не везде относительный путь работает.
Я как-то сталкивался с такими проблемами.
В кроне точно, в докере помоему ещё и ещё где-то.
Не конкретно со статикой, конечно, но где-то точно были такие проблемы.
Я бы вообще в конфиг nginx запихнул отдачу статики, и не мучил бы приложение.
Nikita
Ну смотря как переносится. У нас как-то админы переносили не просто виртуалку с тачки на тачку, а прям на другой сервер, с другим юзером и другими конревыми путями
Nikita
Ручками
Nikita
не помню контекст, но приходилось всё настраивать по новой
Nikita
Вот недавно переезжали, там да.
Там виртуалку перебросили и все директории остались как были :)
Nikita
Мне не нравится :D
Взял, виртуалку перекинул с машины на машину и всё. Все конфиги, пользователи ssh доступы все актуальные.
Ты ничего даже и не заметил :)
Nikita
@reijo1337 мне вдруг стало интересно, если у тебя в приложении хардкодом зафигачен путь до статики относительный, и ты пытаешься запускать кроном какие-то скрипты, импорты и т.д., короче куски приложения, оно отработает корректно, или не поймёт чё за пусть?
Я не тестил, любопытно стало чёт
Nikita
Я соглашусь полностью, звучит как полная фигня, но самое простое решение, и самое быстрое.
Для человека, который не может статику отдать, наверное, будет самым простым :)
Nikita
У меня вся статика в конфигах nginx, я вообще не парюсь)
А пути прописаны в файлах конфигурации в константах, и помоему относительные пути. Но каждый раз смотрю на это и мне не нравится, хочу полные. Несколько раз спотыкался на относительных, больше не хочу
Nikita
Возможно :)
Oleg
Tikhon
Вопрос по поводу структуры проекта, или архитектуры, не знаю к чему это больше относиться. В общем, по поводу логической цепочки в проекте.
Есть некий apiserver, его обработчики и service, через который реализована работа с БД. Также есть некий webserver, который уже собственно уже отвечает за отображение html страниц в браузере - через обработчики и компонент view рендерит и возвращает эти страницы, при переходе по url адресам сайта.
Возник вопрос насчёт веб-сервера, а конкретно насчёт его доступа к данным из БД через обработчики - будет ли хорошим тоном, если я напрямую из обработчиков webserver буду дёргать некий service, и из него получать данные из БД ? Или лучше из обработчиков webserver дёргать apiserver, и уже через него получать данные ? Какой вариант лучше использовать ?
Получение данных для их отображения на странице:
1) webserver handlers -> service -> данные из БД
2) webserver handlers -> apiserver -> service -> данные из БД
ARTEM
apiserver и web server это у тебя типо два разных приложения ?
Tikhon
Ну.. Скорее да, чем нет. Уже начал сомневаться, в необходимости некого api сервера. Я новичок, и я запутался))
Tikhon
Сначала сделал apiserver, чтобы с ним просто через ajax взаимодействовать. Потом появилась научная необходимость перевести сайт на go, и оттуда webserver вырос
Tikhon
На данный момент есть сайт, бэкенд которого написан на go. Не могу определиться - описывать абсолютно всё взаимодействие с БД через apiserver, или напрямую из бэкенда сайта из БД данные дёргать. Как лучше ?
ARTEM
Ну у тебя есть сервис, через который ты можешь получать данные из БД, ты его юзаешь в своём webserver, получаешь данные и отдаёшь во view
Tikhon
Tikhon
Тогда вопрос в необходимости существования apiserver
ARTEM
Ну в нем ты можешь отдавать json данных
Tikhon
Ну, так и есть, просто названия немного другие
В apiserver лежат обработчики для api, в webserver лежат обработчики для сайта
Tikhon
Что ? В обработчиках сразу с бд взаимодействовать ? Не думаю что это хорошая идея
Tikhon
Да и какой в этом смысл ? Сейчас вопрос в другом
Tikhon
В этом и вопрос, через что их дёргать. Через обработчики сайта, или организовать работу с данными полностью через api
AO
Оба приложения, веб и аписервер по своей сути одно и тоже, если грубо брать. Так для чего ещё одна прослойка в для веб приложения, в виде аписервера? Где будет зашита логика постобработки данных? В любом случае, если не требуется хайлоад и распараллеливание серверов, то достаточно одного вебрииложения.
Tikhon
Andrey
1) 300 не так много, чтобы делать частями, я около 100к всьавлял, и вот частями быстрее было. Советую тебе самому выяснять как быстрее.
2) в постгре есть же своя функция NOW() , вот ее и используй для установки времени
Andrey
Не знаю. Не изучал этот вопрос
Nikita
Я бы проставил всем мапам поле с временем в цикле, а потом батч запросом фиганул на создание)
300 не много, работать будет быстро, база не пострадает)
Если заметишь нагрузку критическую, фигач или пачками по меньше или поштучно
Но Условно 5 батчей по 60 точно будет почти бесплатно)
Nikita
Raw sql или orm?
Nikita
https://gorm.io/docs/create.html
Nikita
Для горма
Nikita
Для raw в целом на оверфлоу написано
Nikita
Всегда пожалуйста)
Nikita
Я вообще не уверен что для raw есть best practices
Сообщество до сих пор не договорились, орм или роу
Как два лагеря с вилами и факелами
Ваня Гречка
Ваня Гречка
Я думаю выбор всем очевиден
Nikita
Append бесплатный почти, если создать массив с ёмкостью заранее.
Если при аппенде ёмкость массива не достаточная, для увеличения длинны, создаётся новый массив
Nikita
Я не помню как, не я делал, а другой разработчик из команды, но мы к своим методам для работы с базой прикрутили бенчмарки.
Время выполнение запроса и нагрузка на бд
Но проще наверное да, через time
Tikhon
Ребят, кто-нибудь здесь использовал wails (html based gui framework) ? Читаю сейчас к нему документацию, и всё безумно нравится, webview забылся как страшный сон. Но не может ведь всё быть так хорошо. Итак, кто-нибудь пользовался ? Есть недостатки, костыли ?
Tikhon
Куча костылей
Tikhon
Первое что приходит в голову - добавление обычных изображений на html страницу - через src в теге img не получится:
как вариант - тебе надо изображение в закодировать в base64, потом передать это в js, там раскодировать, и уже это в элемент вставить
Tikhon
И это ещё цветочки
Tikhon
В общем, советую документацию wails почитать. Я в своё время эту библиотеку почему-то пропустил, не знаю почему, и сел с webview мучиться
Tikhon
Сейчас ознакомился с wails, и не могу перестать радоваться. Годная штука
Vladislav
Tikhon
Про меню окна тоже можешь забыть
Tikhon
Изначально под него были заделки в webview, но затем автор его удалил, как и огромное количество других полезных функций
Tikhon
Автор webview обозначил свою позицию так, что он хочет писать полностью платформонезависимый код
Tikhon
А webview в разных ОС использует разные браузерные движки
Tikhon
И соответственно описывать функционал под 3 разных движка он отказывается
Поэтому, всё что у нас есть в webview - самый базовый функционал, а всё остальное нужно создавать самому
Vladislav
А зачем вообще писать gui приложения на go, если для этого есть давно известный инструментарий?
Vladislav
Qt например.
Vladislav
Flutter в туже копилку
Vladislav
Для винды есть тот же c# с его конструктором формочек
Tikhon
Tikhon
Мне очень Electron нравится, но его производительность и отсутствие возможности скрыть исходный код..
Tikhon
Я о том же, иногда это намного быстрее и проще
Tikhon
А вы что именно запускали ? Только не говорите, что биндинги под go
Vladislav
И как по скорости против flutter?
Vladislav
А что с кастомизацией интерфейса?
Vladislav
То, что у них на гитабе выглядет убого.
Maks
Maks
вот это конечно кек
Ron Mount
Да не, эт ещё ладно
Ron Mount
>Российское экологическое общество просит признать Greenpeace и WWF иноагентами, так как они «формируют негативное общественное мнение о действиях российского правительства и компаний в сфере охраны природы»
Ron Mount
Вот это кек.
Maks
я кстати в гринпис жертвовал где то пол года уже
Maks
по тыщи