Илья
почему разработка спеки не включает в себя разработку тестов?
это, кстати, неплохая идея, попробую предложить команде
Kirill
ну вот. и я просто стараюсь не писать ничего без тестов
у нас довольно большой проект, он покрыт тестами на >90% как на бэке, так и на фронте
Илья
а так внешние (к сервису) интерфейсы обычно фиксирует qa, я не библиотеку разрабатываю, в этом случае было бы разумнее сразу готовить black box
Andrey
у нас довольно большой проект, он покрыт тестами на >90% как на бэке, так и на фронте
а где бы почитать/научится про то как делать спецификации и тесты, покрывающие все случаи?
Andrey
Хотелось бы внедрить, но непонятно с какого конца начать, чтобы в итоге прийти к тестам, а не имитациям тестов.
Daniel
вы считаете это нормой?
нормой в смысле "так и надо"? нет, не всегда. нормой в смысле "заказчик не оплатил тесты"? да, в этом смысле это норма
Илья
это грустно
Kirill
Хотелось бы внедрить, но непонятно с какого конца начать, чтобы в итоге прийти к тестам, а не имитациям тестов.
начать нужно сначала. почитать о фаззинге. но цель не только определить зависания и/или падения, а и ошибки в спеке
Daniel
а у тебя не уходит больше времени на разработку, когда тестов нет?
старт быстрее без тестов. обычно заказчик хочет MVP вчера. ну - возможно, я просто влипаю в такие проекты постоянно. есть у меня коллега, который просто говорит в таких случаях "нет". зарабатывает, вроде, не меньше...
Kirill
Спасибо.
не за что. идею, думаю, будет легко понять, как только фаззинг начнешь применять не только в целях тестирования безопасности, а и в целях поиска и предотвращения своих же ошибок
Илья
начать нужно сначала. почитать о фаззинге. но цель не только определить зависания и/или падения, а и ошибки в спеке
может зафигачишь доклад на эту тему? или порекомендуешь посмотреть/почитать что то конкретное? Это было бы очень полезно для сообщества 🙂
Kirill
работаю в компании, где уже есть mvp, и нужно довести всё до ума
Илья
я работал в perl-c монолите без спеки и доки, с test coverage 5%, 🙂 поэтому тема меня эта цепляет, если вы клепаете такие продукты без тестов, кто-то потом их будет саппортить и, чем больше тестов, тем лучше 🙂
Kirill
у нас до code review таска не доходит, пока тестов нет. всё просто)
Илья
это - хорошая морска практика 🙂
Daniel
вопрос же не в том, писать тесты, или нет, а в том, как сделать их полезными
Kirill
а бесполезные тесты кто-то считает вообще существующими тестами?
Kirill
если тест бесполезен - его нет
Daniel
я видел тесты, которые писались только для того, чтобы ci не жаловался на уменьшение coverage
Daniel
вместо того, чтобы код удалить - его покрывали формально тестом
Kirill
ну - я не сомневался, что ты повидал больше, чем я %)
Daniel
(от этого тоже, кстати, помогает тест в отдельном пакете. мертвый код себя проявляет очевиднее)
Michael
Kirill
привет) загляни в лс
привет) ответил, спасибо
Pawel
подкину годноты в эфир
Pawel
Vasily
130 метров? что же там такое ?
Anonymous
130 метров? что же там такое ?
"Программист-прагматик"
Kirill
Anonymous
он с квартирой там?
Нет, просто сканы страниц )
Daniel
Нет, просто сканы страниц )
для таких вещей http://www.djvu.org/ хорошо подходит
Anonymous
для таких вещей http://www.djvu.org/ хорошо подходит
Да, согласен. Но мопед не мой (с)
Pawel
по чём купил по том продал
Andrey
@rvasily , а насколько сейчас модно следовать Clean Architecture в проектах на Go? Пишу тестовый проект для собеса, хочу выпендриться
🏁Александр
в смысле без фрейворков?
🏁Александр
или я не в теме
Aleksandr
не в теме
Andrey
спс
Anonymous
Всем привет .Кто видел гит проект с микросервиса с мин 2 сервисами на голанг?
Vasily
@rvasily , а насколько сейчас модно следовать Clean Architecture в проектах на Go? Пишу тестовый проект для собеса, хочу выпендриться
пишите так, словно ваш код будет ревьювить склонный к насилию психопат, который знает где вы живёте
Никита
а мне заходит CA..
Alexey
Не, я про изначальную формулировку этой фразы. Это вроде Макконнелл
Sergey
Всем привет, интересует такой овпрос, в 2 словах, как лучше организовать роли пользователя в api, например есть база данных и в ней каждый пользователь после аутонтефикации может получать доступ только к своим данным, как это рализуется вообще интересует(какие то отдельные поля в таблице, отдельная таблица или еще что). Мне нужен именн толчек в правельном направлении, там разберусь
🎉
Интересный вопрос, я такой видел несколько лет назад. На Perl в частности Mojolicious предлагалось ограничивать пользователей через роуты. С удовольствием послушаю гоферский вариант.
Daniel
погодите
Daniel
в чем вопрос-тио?
Daniel
authentication - тема большая и сложная
Илья
про фреймворки вопрос, помоему 🙂
Daniel
про фреймворки нзна ничего
Илья
ну приходят люди из джанг/что там у пыхеров, и хотят чтобы было уже что-то
Илья
решений много готовых, разной степени готовности
Илья
искать по golang auth middleware
🎉
authentication - тема большая и сложная
Там не просто аутентификация, тама ещё и раздельный доступ. Что бы не писать везде: if userID == vasya { // позволяем } else { // это не vasya }
Kirill
Я бы взял разве что готовый rbac и орму, но с отдельными подключениями для принципиально разных ролей, чтобы ограничить и в плане прав доступа в базу, если база позволяет, конечно
Kirill
Но - спасибо за идею, надо будет прикрутить в грэйм версию для особо ленивых
🎉
Да, роли. Авторы, модераторы, админ к примеру.
Илья
Но - спасибо за идею, надо будет прикрутить в грэйм версию для особо ленивых
Админку же ты не будешь прикручивать, если будет время могу слепить мидлварь для того же рбака
Roman
Есть ли смысл в структурах указывать не тип, а указатели? по сути это должно сэкономить память когда мы заполняем структуру ?
Roman
Например вместо этого type User struct{ Id int Name string } Писать так type User struct{ Id *int Name *string }
🏁Александр
это еще вариант как при сериализации в json получить null на пустых значениях
🏁Александр
память на 1 экземпляре не экономите
Roman
Точно, спасибо
G72K
Там не просто аутентификация, тама ещё и раздельный доступ. Что бы не писать везде: if userID == vasya { // позволяем } else { // это не vasya }
Можно еще open policy agent глянуть: на каждый чих спрашиваем сервис "этому вот это можно?" по ответу решаем прекращать запрос или дальше обслуживать
Roman
На GC нагрузки больше
указатели обычно же на хипе аллоцируются ?
G72K
Вот именно, а значит их GC собирать придется.
Roman
google golang escape analysis
Да, спасибо, читал про это )