Anonymous
переходи на Go, у нас есть печеньки :)))
я и так в go 8 месяцев и работаю на нём, просто решил свой сайт портфолио сделать, Go в плане сайтов пока слишком фи
Ryan
я вручную сделал
Nikita
у меня трабла, не видит файла в директории index.html, хотя он там есть
Если ты хочешь index.html отдать, отдавай как статику. Загугли. "Express.js как отдавать статику" А лучше, прикрути nginx и пусть он отдаёт статику
Nikita
Пути писать лучше полные, а не относительные. Зайти в деррикторию, где лежит файл, вбей pwd и получишь полный путь
Nikita
Да, это правда. А кто мешает вынести путь в переменную окружения?
Nikita
и при переносе приложения с машины на машину менять его?) Всё равно приложение настраивается при переносе)
Nikita
Завернуть в докер, тоже как вариант. Внутри докера путь всегда будет одинаковый
Nikita
Не всегда и не везде относительный путь работает. Я как-то сталкивался с такими проблемами. В кроне точно, в докере помоему ещё и ещё где-то. Не конкретно со статикой, конечно, но где-то точно были такие проблемы. Я бы вообще в конфиг nginx запихнул отдачу статики, и не мучил бы приложение.
Nikita
Ну смотря как переносится. У нас как-то админы переносили не просто виртуалку с тачки на тачку, а прям на другой сервер, с другим юзером и другими конревыми путями
Nikita
Ручками
Nikita
не помню контекст, но приходилось всё настраивать по новой
Nikita
Вот недавно переезжали, там да. Там виртуалку перебросили и все директории остались как были :)
Nikita
Мне не нравится :D Взял, виртуалку перекинул с машины на машину и всё. Все конфиги, пользователи ssh доступы все актуальные. Ты ничего даже и не заметил :)
Nikita
@reijo1337 мне вдруг стало интересно, если у тебя в приложении хардкодом зафигачен путь до статики относительный, и ты пытаешься запускать кроном какие-то скрипты, импорты и т.д., короче куски приложения, оно отработает корректно, или не поймёт чё за пусть? Я не тестил, любопытно стало чёт
Nikita
Я соглашусь полностью, звучит как полная фигня, но самое простое решение, и самое быстрое. Для человека, который не может статику отдать, наверное, будет самым простым :)
Nikita
У меня вся статика в конфигах nginx, я вообще не парюсь) А пути прописаны в файлах конфигурации в константах, и помоему относительные пути. Но каждый раз смотрю на это и мне не нравится, хочу полные. Несколько раз спотыкался на относительных, больше не хочу
Nikita
Возможно :)
Nikita
а нельзя ли сделать какой-то генератор конфигов, который запускать при переезде?
Как мне кажется, это ещё более странное решение, чем переменная окружения) Конфиг на то и конфиг, что бы сконфигурировать приложение) Не, эт моё имхо, я не претендую на истину в последней инстанции )
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
Тогда вопрос в необходимости существования apiserver
ARTEM
Ну в нем ты можешь отдавать json данных
Tikhon
Ну, так и есть, просто названия немного другие В apiserver лежат обработчики для api, в webserver лежат обработчики для сайта
Tikhon
Что ? В обработчиках сразу с бд взаимодействовать ? Не думаю что это хорошая идея
Tikhon
Да и какой в этом смысл ? Сейчас вопрос в другом
Tikhon
В этом и вопрос, через что их дёргать. Через обработчики сайта, или организовать работу с данными полностью через api
AO
Оба приложения, веб и аписервер по своей сути одно и тоже, если грубо брать. Так для чего ещё одна прослойка в для веб приложения, в виде аписервера? Где будет зашита логика постобработки данных? В любом случае, если не требуется хайлоад и распараллеливание серверов, то достаточно одного вебрииложения.
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
Я думаю выбор всем очевиден
Зря ты так думаешь :) Тут все очень неоднозначно) Боль и скорость, против удобства и рефлексии)
Nikita
Я не помню как, не я делал, а другой разработчик из команды, но мы к своим методам для работы с базой прикрутили бенчмарки. Время выполнение запроса и нагрузка на бд Но проще наверное да, через time
Tikhon
Ребят, кто-нибудь здесь использовал wails (html based gui framework) ? Читаю сейчас к нему документацию, и всё безумно нравится, webview забылся как страшный сон. Но не может ведь всё быть так хорошо. Итак, кто-нибудь пользовался ? Есть недостатки, костыли ?
Tikhon
Куча костылей
Tikhon
Первое что приходит в голову - добавление обычных изображений на html страницу - через src в теге img не получится: как вариант - тебе надо изображение в закодировать в base64, потом передать это в js, там раскодировать, и уже это в элемент вставить
Tikhon
И это ещё цветочки
Tikhon
В общем, советую документацию wails почитать. Я в своё время эту библиотеку почему-то пропустил, не знаю почему, и сел с webview мучиться
Tikhon
Сейчас ознакомился с wails, и не могу перестать радоваться. Годная штука
Tikhon
А с electron не сравнивали?
К сожалению особо большого опыта работы с электроном у меня нет
Tikhon
Про меню окна тоже можешь забыть
Tikhon
Изначально под него были заделки в webview, но затем автор его удалил, как и огромное количество других полезных функций
Tikhon
Автор webview обозначил свою позицию так, что он хочет писать полностью платформонезависимый код
Tikhon
А webview в разных ОС использует разные браузерные движки
Tikhon
И соответственно описывать функционал под 3 разных движка он отказывается Поэтому, всё что у нас есть в webview - самый базовый функционал, а всё остальное нужно создавать самому
Vladislav
А зачем вообще писать gui приложения на go, если для этого есть давно известный инструментарий?
Vladislav
Qt например.
Vladislav
Flutter в туже копилку
Vladislav
Для винды есть тот же c# с его конструктором формочек
Vladislav
Научный интерес
Ну если только ради научного интереса
Tikhon
Мне очень Electron нравится, но его производительность и отсутствие возможности скрыть исходный код..
Tikhon
Я о том же, иногда это намного быстрее и проще
Tikhon
А вы что именно запускали ? Только не говорите, что биндинги под go
Vladislav
И как по скорости против flutter?
Vladislav
А что с кастомизацией интерфейса?
Vladislav
То, что у них на гитабе выглядет убого.
Maks
Maks
вот это конечно кек
Ron Mount
Да не, эт ещё ладно
Ron Mount
>Российское экологическое общество просит признать Greenpeace и WWF иноагентами, так как они «формируют негативное общественное мнение о действиях российского правительства и компаний в сфере охраны природы»
Ron Mount
Вот это кек.
Maks
я кстати в гринпис жертвовал где то пол года уже
Maks
по тыщи