Maks
может я не прав))))))))))))))))))))))))
Herman
Maks
Хотя у тебя же получается пакет - json, в нем сетапятся пропы. Значит так и есть
Alexandr🇷🇺
Paul
Ну смотри. В голанг
‘’’
interface Eater {
func Eat()
}
type Human struct {
}
func (h Human) Eat()
‘’’
Java не буду расписывать
‘’’
class Human implement Eater{}
‘’’
Вопрос структуризации папок не относится к вопросу срп. Пакеты в голанг удобные, но это не значит что в джаве принцип срп будет нарушен. По сути ты же в голанг тоже будешь класс менять. Точнее структуру. Добавляя ей какой то метод. Реализацию интерфейса. А то что ты говоришь про неизменность - это другой принцип. Принцип открытости закрытости. Он довольно спорный и часто его применение излишне, но совершенно ясно зачем он нужен.
Я не писал, что в яве срп нарушен. Я писал, что использование интерфейсов для этих целей его нарушает, для того, чтобы соблюсти срп надо делать дополнительные классы. Я писал про готовый тип, так что подразумевается, что в новом интерфейсе будут только уже существующие методы. о/к с другого бока. СРП в плане интерфейсов в яве это то, что класс, помимо своего фунционала, несёт функционал описания, где этот класс можно использовать.
Maks
Я не писал, что в яве срп нарушен. Я писал, что использование интерфейсов для этих целей его нарушает, для того, чтобы соблюсти срп надо делать дополнительные классы. Я писал про готовый тип, так что подразумевается, что в новом интерфейсе будут только уже существующие методы. о/к с другого бока. СРП в плане интерфейсов в яве это то, что класс, помимо своего фунционала, несёт функционал описания, где этот класс можно использовать.
так ты в джаве можешь екстеншин методы писать. А тут все на таких екстеншинах.
Про то что ты хочешь использовать методы уже существующего класса в виде интерфейса - понял. Но так обычно не делают. Если ты используешь какой то пакет и хочешь его использовать как интерфейс - тебе всё равно нужно будет написать например адаптер, или еще что то. Потому что тот класс может измениться в какой то момент (так как это внешняя зависимость) и она не реализует интерфейс никакой. И получается ты не можешь гарантировать что этот класс будет всегда соответствовать твоему интерфейсу. Палка о двух концах.
Maks
если я правильно понял
Alexander
есть онлайн
Herman
Да, можно вставить JSON через тупа вставку и предложит структуру создать. Прикольная фича
Paul
так ты в джаве можешь екстеншин методы писать. А тут все на таких екстеншинах.
Про то что ты хочешь использовать методы уже существующего класса в виде интерфейса - понял. Но так обычно не делают. Если ты используешь какой то пакет и хочешь его использовать как интерфейс - тебе всё равно нужно будет написать например адаптер, или еще что то. Потому что тот класс может измениться в какой то момент (так как это внешняя зависимость) и она не реализует интерфейс никакой. И получается ты не можешь гарантировать что этот класс будет всегда соответствовать твоему интерфейсу. Палка о двух концах.
Да я знаю, как делают:) Я же пишу про то, что проще и элегантнее и больше подходит под принципы, а мне все отвечают, как это делают... Как по мне, один интерфейс проще, чем зоопарк классов в виде адаптеров, экшнов и фабрик для их порождения.
>И получается ты не можешь гарантировать что этот класс будет всегда соответствовать твоему интерфейсу.
могу. Если изменится сигнатура методов, то проект просто не соберётся, когда я попытаюсь интерфейсу присвоить объект.
аnon
кто-то в vim пишет go?
аnon
GoLand
JetBrains Product Pack for Students
September 15, 2022
Username: khaled.art_9956
Password: Medo$01206008628
Alexander
whois
Ребят, кто-нибудь может объяснить что делает такого фазинг в go1.18, чего нельзя сделать тестами?
Andrey
автогенерация тестовых данных, основываясь на передаваемых настройках
аnon
хорошо ладно
аnon
в смысле?
Сергей
Если честно, не понимаю: используем гошку, как свободный продукт, но ИДЕ только платная. Не проще тогда сразу выбрать полноценную платную среду для разработки? Я наоборот отказался от пурика в пользу бесплатности и стабильности, ибо кто его знает, чего там завтра придумает продавец.
(это были мысли вслух, а не митинг)
аnon
аnon
аnon
аnon
Сергей
что платное?
Что-то такое, где платят много. Например, шарп от майкрософта. В США очень хорошо востребовано же.
Просто смотрю как тут некоторые бодаются с жадными жетбраиновцами, так страшно становится.
Хотя да, согласен, сами среды разработки часто бесплатные, а платные уже какие-то бизнесовые монстры
аnon
аnon
Alexander
Тебе на код ревью скажут)
Alexander
Мне не нравится. Если там всего два вариант для удаления, то может лучше if и две функции?
Herman
Нет
Herman
Похоже на правду
Alexander
Https
Alexander
https://pkg.go.dev/net/http
Alexander
Ну либо curl с игнорированием проверки сертификата
Alexander
Либо ручками сертификат добавь и скажи системе ему доверять
Alexander
И просто подергать curl через https
Alexander
У тебя там будут прикольные рукопожатия и сервер тебе даст нужные ключи
стас
можно ли переменную превратить в interface{}? а еще лучше массив превратить в []interface{}?
Anonymous
аnon
аnon
аnon
sudo apt-get install wine
аnon
да кто такой этот ваш убунтой?
Anonymous
в чем суть задания?
аnon
оке
аnon
кто такой кабан?
Anonymous
изи же
аnon
Anonymous
ты же себя как джун позиционируешь
аnon
хороший бук?
аnon
Tikhon
Добрый вечер. Подскажите пожалуйста, как в go реализовать самую простую аутентификацию пользователей ? Вообще, самую простую. Я новичок, поэтому запутался в этих сессиях, куках и т.д. Использую fiber, нашёл это https://docs.gofiber.io/api/middleware/session , но оно зачем-то базы данных использует. Разве сессии не хранятся в браузере ? Зачем тут бд ?
Tikhon
Хотелось бы просто сделать так, чтобы при переходе по адресу сервер умел проверять наличие активной сессии у пользователя. В случае отсутствия - предлагал бы залогиниться, и дальше по сценарию
Anonymous
Anonymous
попроще?
Anonymous
хорошо
Anonymous
создаешь таблицу юзеров, сверяешь данные, которые ввел юзер (с теми что в базе)
Anonymous
подойдет?
Vladimir
По идее можно просто токен сессии использовать https://www.sohamkamani.com/golang/session-cookie-authentication/
Tikhon
Ну так ему их изначально нужно ввести, поэтому этот вариант не подходит, так как нужно до ввода проверять, логинился ли он до этого
Tikhon
Tikhon
Вопрос, просто на всякий случай, для уточнения. Правильно ли я понимаю, что cookie отправляются каждый раз при любом запросе от браузера к серверу ? И соответственно чтобы реализовать простейшую аутентификацию - мне достаточно в cookie записать какой-нибудь api_token, и уже дальше с этим работать ?
аnon
Maks
Это условно у тебя есть ендпоинт для удаления который должен быть общий но там можно ввести почту или идентификатор?
Maks
и если да - метод delete?
Maks
если да - то можно было бы вообще сделать 2 метода с роутингом через регексп
Maks
Ну и че ты молчишь)
аnon
Maks
Ну а метод с фронта какой приходит? Рестовый
Maks
Методы хттп какие знаешь?)
Anonymous
а почему ты это в ф-ции не вынесешь
Anonymous
у тебя емейлы уникальные?
Anonymous
ну это оверинжениренг как мне кажется
Maks
Вот если юзать делит то у тебя урл будет например такой: mysite.com/api/user/{identifier}
Где {identifier} это емейл или идентификатор.
Далее ты в хендлерах прописываешь 2 хендлера. Один слушает по регулярке где есть @ и чота еще, другой по регулярке например \d+
И 2 разных метода выполняют обработку запроса и гарантированно будет корректно введено
Anonymous
да он не про то
Anonymous
что значит в форме?
Maks
Думаю там форм сабмит
Anonymous
почему тебе просто с фронта не указать, что приходит DELETE метод
Maks
А форм сабмит это пост
Anonymous
ну так юзер же данные вводит