notmeowmeow
Andrey
тдд не всегда хорош, тдд хорош когда ты например пишешь биндинги к чужой апишки, у тебя есть апишка, понятно что надо сделать, ты пишешь тест, потом реализацию запускаешь и это получается очень удобно и быстро, а когда к тебе пришел босс и говорит надо сделать красиво, то ты накидал какой-то херни лапшакодом идешь к боссу говоришь так красиво? он говорит нет тут на пару пикселей левее, идешь переделываешь и так пока не скажут что так и надо было. потом все это приводишь к нормальному виду и тогда уже пишешь тесты, я конечно утрирую, но посыл такой что не всегда понятно что в итоге должно получиться. И да реальные живые проекты они такие.
Andrey
еще тдд очень удобно когда переписываешь с одного языка на другой
Nikita
Суть в том, что когда ты учишь что-то новое, то по началу не совсем желательно накидывать функционал поверх, которым бы ты редко пользовался или который не подходит под цели твоего обучения. А то будет потом сборная солянка, бот, sql/nosql, какой-то отдельный сервер кэширования, да еще и сваггер
Не, ты сделал сперва просто, по тупому. Потом что-то переписал, добавил и т.д. то есть идея та же, то по тихоньку усложняешь (улучшаешь) реализацию Например, сперва на монолите все, затем что-то вынес в микросервис И этим небольшим проектом можешь показать знания тех или инеых технологий, а так же их применение
Nikita
Ну да
Потом, в будущем, можешь еще накинуть метрики в виде Prometheus и для отображения Grafana
Nikita
Еще в будущем докеры добавить и например, загружать на сервер через DockerHub
Nikita
Ну это тебе чисто накидываю технологии, которве ты можешь потом внедрить Конечно, сразу их не надо
Andrey
еще гитхаб екшены настроить или гитлаб пеплайн для ci/cd
Nikita
Ну докер норм тема для начала
Ну если ни разу не работал с ним и еще даже в гошке не тыкался, то пусть попозже будет
Alexander
еще гитхаб екшены настроить или гитлаб пеплайн для ci/cd
А гитхаб экшон работает на собственных серверах или только на aws и прочее?
Andrey
я не работал с гитхаб экшонами, только с гитлабом
Nikita
я не работал с гитхаб экшонами, только с гитлабом
А у них сильные отличия? У меня ровно противоположнач ситуация 🤪
Andrey
у гитлаба есть селфхостед, и через докер ранер он может докер контейнер куда угодно запульнуть
Nikita
Удобно
Andrey
докер ранер там работает так что ты запускаешь прогу у себя на сервере она слушает гитлаб, если в гитлабе есть что-то новенькое, то гитлаб отдает это ранеру и ранер уже делает что-то с этим, в общем ты в своем окружении получаешь докер контейнер и уже сам можешь его где хочешь раскатывать если я вообще правильно помню схему
Nikita
Офигеть, круто
Nikita
А на гитхабе я сперва в докерхаб пушил, а потом пуллил на сервере контейнеры оттуда и запускал Все это в основном ручкам в ci/cd писал
Nikita
А тут, получается, можно напрямую
Andrey
ну тут это тоже надо ручками в ci/cd писать и еще на своем сервере этот ранер настроить )
Andrey
я думаю там примерно все одно и то же
Nikita
Ну, наверное
Nikita
Кстати, а на каком примерно уровне бекенд разработчик должен знать фронт?
Andrey
Andrey
если ты хотел бы подучить фронт но никак до этого не дойдут руки то это плохо, если ты хочешь подучить фронт то надо сесть и подучить, если не хочешь то делаешь что хочешь )
Nikita
А есть типа, что "хороший бекенд разработчик должен более менее понимать хороший фронт"?
Andrey
опять же бекенд разрый бывает
Nikita
Смотря что у тебя на бэке.
Например, ты бекендер Delivery Club на Go
Nikita
А в каких случаях будет да?
Andrey
я вот пишу сервис для игры, у меня бекенд такой что даже если я буду в нем разбираться все равно даже поправить ничего не могу, ибо не положено и доступа к репозиторию у меня нету
Alexander
А в каких случаях будет да?
Когда тебе надо будет быстро сваять для себя визуальную составляющую бэка
Andrey
а если ты делаешь сайт например, и тебе приходит задачка которая влияет на фронт, то тебе проще пару строчек самому поправить чем пол часа в задачке описывать франту что сделать что бы он зашел и эти 2 строчки поправил
Alexander
Ааа, и еще если ты webassembly решил заняться
Alexander
Какие матюги😃
Это да. Но запускать приложения в рантайме хромиума, почему бы и да)
Nikita
))
no_name
u kogo est zadaca po go?
Илья
u kogo est zadaca po go?
leetcode.com codewars.com
kostyaBro
Ребят, а когда по хорошему надо писать тесты? Например, я ответвился от dev на какую-то фичу. И, соответственно, при мердже своей ветки, у меня ведб уже должен быть код в юнит тестах забит, правильно? И по хорошему нужно писать код, например, когда ты закоммитил какой-то небольшой завершенный кусок, то следующим коммитом это юнит теств того куска?
Был опыт работы в проекте где все было идеально и работали так. Пишем интеграционный тест на новую фичу. Он падает. Идем туда где упало, пишем тест с моками. Он падает. Идём глубже, пишем тест. И так далее до юнит теста. Пото добавляем фичу и все проходит.
Null
⏺ Golang fyne Куда нажать? :-( Fyne - это open-source библиотека для очень простого и быстрого создания кросс-платформенных приложений на Golang Здесь можно вполне понять для чего нужен fyne, от себя могу сказать, что это очень простая библиотека для пользования, чтобы начать писать на ней программы с графическим интерфейсом не нужно никаких знаний Можно глянуть одним глазком там довольно медленно и только совсем про базу рассказано, поэтому использовать можно как справочник, когда быстро набрасываешь свой первый интерфейс ↪️ Статья 🖥 Github ⚙️ Видео @Golang_google
Илья
движок для рендера и отельный фреймворк для gui
Vernat
оказывается уже есть сравнения
Alexander
u kogo est zadaca po go?
А какая интересует. Что хочешь узнать или подтянуть?
Nikita
А какая интересует. Что хочешь узнать или подтянуть?
О, раз такая пляска А придумай что-нибудьс ws У меня, конечно, есть идеи, но может ты тоже что-то закинешь
Alexander
О, раз такая пляска А придумай что-нибудьс ws У меня, конечно, есть идеи, но может ты тоже что-то закинешь
Если требуются web socket и желательно не чат, то сделай потоковый проигрыватель
Alexander
Музыки в плане?😅
Музыки, видео
Nikita
О, круто Я как раз по сути видео и аудио не реализовывал еще😅
Nikita
Спасибо)
Alexander
Спасибо)
Да не за что. Советы давать не мешки ворочать)
Wasserschwein
Добрый день. Пишу сейчас парсер и столкнулся с проблемой, не совсем понимаю как лучше отдать в респонсе изображение. Как вы считаете, какой способ лучше и менее костыльный, отдавать изображение в base64, например: json { "image" : "data:image/jpeg;base64,...", "other" : "data" } или изображение лучше где-то сохранить и отдавать на нее ссылку с хранилища: json { "image" : "public-storage-url", "other" : "data" }
Wasserschwein
А какая цель?
Грубо говоря это парсер на go который все данные передает в другой сервис который и сохраняет все данные в бд. Вот только не понимаю как лучше, логику сохранения изображения перенести на go и отдавать ссылку на сохраненное изображение или оставить сохранение в другом сервисе и отдавать изображение в base64
Alexander
Грубо говоря это парсер на go который все данные передает в другой сервис который и сохраняет все данные в бд. Вот только не понимаю как лучше, логику сохранения изображения перенести на go и отдавать ссылку на сохраненное изображение или оставить сохранение в другом сервисе и отдавать изображение в base64
Смотри сам, как часто будет использоваться это изображение и для каких целей. В целом не вижу смысла хранить все изображение где-то в бд. Я бы оставил бы изображение на каком-нибудь медленном хранилище и просто оставил путь до него
Wasserschwein
Смотри сам, как часто будет использоваться это изображение и для каких целей. В целом не вижу смысла хранить все изображение где-то в бд. Я бы оставил бы изображение на каком-нибудь медленном хранилище и просто оставил путь до него
Вообще как происходит процесс сохранения : Отправляется запрос на парсинг в основное приложение Парсер на go берет все нужные данные и отправляет обратно Основной сервис на текущий момент данные сохраняет в бд, а изображение кидает в cloudinary и сохраняет ссылку на него И вот вопрос как все таки лучше - передавать изображение в base64 чтобы основное приложение декоднуло, отправило в cloudinary и сохранило ссылку в бд, или сам парсер сразу сохраняет изображение в cloudinary и отдает ссылку на него, а основное приложение сохраняет ее в бд. И изображение не так часто используется, это скорее пет проект и просто хочу узнать как лучше поступать в таких ситуациях)
Wasserschwein
Да, именно так
Alexander
Да, именно так
Тогда не стоит ничего менять, кмк. Пускай сервис все и разруливает, а парсер просто парсит
Si 🫧
А как можно вернуть выведенное в консоль значение? Пыталась поместить в переменную с типом []byte, но чет ***** какая-то получилась
Si 🫧
а что значит "вернуть"? раскрой что под этим имеешь ввиду
return Мне нужно вернуть хэшированное значение из функции
Si 🫧
fmt.Sprintf тебе нужен?
Да, спасибо большое )