Maxim
Хороший лендинг для привлечения. У нас не получается, нам нужны люди )
Emil
~оффтоп наверное извините~ Подскажите, как лучше/безопаснее/правильнее проводить оплату чего-либо? С фронта посылается информация банку/стороннему сервису по оплате, который коллбеком тригерит страницу фронта, на которой тригерятся апи бекенда? Или с фронта посылается информация на бек, который взаимодействует с банками/сторонними серверами и в зависимости от успеха даёт ответ фронту?
Maks
Я посмотрел. Я так понял это диффгенератор для постгреса?
Maks
У меня нейтив мигратор тулз с возможностью юзать любой драйвер который сделан по го sql стандарту)
Null
Golang: поведение при ошибках https://dev-gang.ru/article/golang-povedenie-pri-oshibkah-zbihix9v2c/ @Golang_google
Maks
Ошибки это головная боль разработчика)
Maks
Единственное что меня в голанг бесит)
Maks
Делаешь дб.бегин() проверь ошибку. Делаешь дб.ексек() проверь ошибку, в случае чего сделай ролбэк и проверь что ролбэк без ошибки)
Maks
Чет я не нашел у них в доке как миграция выглядит
Katataolu
всем привет ! возникла проблема что когда читаешь из csv файла то reader встречая " --" две таких черты (минуса) переходит читать на сл строку пользуюсь ридером из encoding/csv не знаете как решить это так чтоб такого не было ?
V
Модульность в моём понимании: модуль в программировании, это что-то законченное и независимое с минимальным набором связей с внешним миром. Главный признак модуля, это возможность его просто выкинуть и на его место водрузить другой. И ничего не поломается (в идеале) 😁
И много ты таких ситуаций встречал, когда модуль вынимается и заменяется на другой? Это в электронике или механике есть экземпляры модулей - узлы и агрегаты, меняемые целиком, но они там идентичные, просто без износа. А в программировании зачем менять модуль на другой?
V
Вот честно, сколько лет воюю с автоматизацией, никто не придерживается модульности. Народ прям не понимает зачем это, ведь дерьмокодом проще и быстрее
А ты можешь объяснить зачем это надо? Вот ты написал "можно вынуть и воткнуть другой", а зачем его вынимать, если он отлажен и работает? Если ты так объясняешь - то не удивительно что никто не соглашается.
Katataolu
есть фот такой csv когда ридер доходит до кавычки то он переключается читать на сл строку
Katataolu
дело оказалось не в —
Katataolu
вот так выводит
Alexander
Comment посмотри
Alexander
аааа
Alexander
LazyQuotes
Alexander
но вообще мне не нравится такой csv))
Katataolu
LazyQuotes
спасибо !!!
Сергей
И много ты таких ситуаций встречал, когда модуль вынимается и заменяется на другой? Это в электронике или механике есть экземпляры модулей - узлы и агрегаты, меняемые целиком, но они там идентичные, просто без износа. А в программировании зачем менять модуль на другой?
Например, если считаешь модуль кривым. Делаешь нормальным и заменяешь. Ну или, например, рабочие алгоритмы на мс скл-е, а тестовые на постгре отлаживаю. А вдруг следующий заказчик на постгре попросит? И самое главное в модульности, это работа с крупными проектами. Человек же за раз может анализировать 5-8 объектов максимум. Без модульности не добиться такой тосности
Сергей
А ты можешь объяснить зачем это надо? Вот ты написал "можно вынуть и воткнуть другой", а зачем его вынимать, если он отлажен и работает? Если ты так объясняешь - то не удивительно что никто не соглашается.
А если он плохой? Знаешь почему в сап-е и в когносе есть куски кода из 80-х? Эти дегенераты не заложили модульность. Просто ошиблись немного
Сергей
Как-то не убедительно
Почему? Ребята не могут убрать гомнокод и это обыденность? Ну ладно, тогда я и дальше буду зарабатывать на этом 🤣🤣🤣
V
Почему? Ребята не могут убрать гомнокод и это обыденность? Ну ладно, тогда я и дальше буду зарабатывать на этом 🤣🤣🤣
Я не увидел аргументов. "А вдруг" - это не аргумент. Кроме того "плохой" - субъективщина. Код работал? Задачи решал? Ну а почему тогда ты называешь его плохим? Обоснуй почему модульность сделает код хорошим и в выгода именно для твоих коллег.
Maks
Вопрос
Maks
Вот у меня есть пакет в проекте, в нем есть структуры разные с общим интерфейсом
Maks
Можно ли как то через рефлексию вызвать код из этих пакетов по имени? Строкой
Maks
что то вроде: var obj SomeInterface obj = reflect.//тут что то что бы по имени структуры создать ее инстанс('название_структуры') obj.методИнтерфейса
Maks
разобрался
Maks
Это для мигратора)
Maks
Я отказался от реализации которая позволяет это сделать
Maks
Пришлось бы через init добавлять в хранилище имя и объект
Maks
считаю это лишним пока что
Maks
хотя определенно если бы миграция была в го файле выглядело бы это более презентабельно)))) типо структура, в ней up, а внутри список команд так же через startTransaction().then("sql").then("sql").commit()
Maks
было бы прикольно
Maks
может быть во второй иттерации замучу
Тимофей
А кто-нибудь может сделать мне код ревью?
Egorka
Я могу, ток я Го не знаю)
whois
Друзья, подскажите пожалуйста. Кошерный способ сравнения слайсов? Отмечу, элементы одни и те же, но порядок разный.
V
Например, если считаешь модуль кривым. Делаешь нормальным и заменяешь. Ну или, например, рабочие алгоритмы на мс скл-е, а тестовые на постгре отлаживаю. А вдруг следующий заказчик на постгре попросит? И самое главное в модульности, это работа с крупными проектами. Человек же за раз может анализировать 5-8 объектов максимум. Без модульности не добиться такой тосности
> если считаешь модуль кривым. Делаешь нормальным и заменяешь в чём разница с "допиливаешь существующий"? > И самое главное в модульности, это работа с крупными проектами Напомню, я спросил подробностей про "модуль - это то что можно из проекта выкинуть и заменить на другой". "Модульность позволяет работать с крупными проектами" этому утверждению ортогонально. Может да, может нет, не важно. Хочу подробностей про "выкинуть".
🅞leksiy
Друзья, подскажите пожалуйста. Кошерный способ сравнения слайсов? Отмечу, элементы одни и те же, но порядок разный.
Повторяющиеся элементы могут быть? "Элементы одни и те же" - что это значит? Одинаковая длинна?
whois
Повторяющиеся элементы могут быть? "Элементы одни и те же" - что это значит? Одинаковая длинна?
Это значит, что элементы в слайсах одни и те же. Не знаю, как иначе объяснить. Например: {q, w, e, r}; слайс 2:{w, q, e, r}. Повторы, конечно могут быть
🅞leksiy
Это значит, что элементы в слайсах одни и те же. Не знаю, как иначе объяснить. Например: {q, w, e, r}; слайс 2:{w, q, e, r}. Повторы, конечно могут быть
Тогда что сравнивать нужно, порядок? В таком случае по индексу идти и по очереди сравнивать элементы, до первого отличающегося, что тут еще придумаешь...
Anonymous
Off topic - is there any tg group (not channel) for Russian movies/series discussions?
Denis
А когда там в го дженерики уже завезут?
𝕌ℕ𝔼𝕏ℙ𝔼ℂ𝕋𝔼𝔻
𝕌ℕ𝔼𝕏ℙ𝔼ℂ𝕋𝔼𝔻
вроде в конце этого года в бетке обещали.
Rinat
👋, как лучше встроить ежемесячную подписку в своё web-приложение?
Rinat
спасибо
Almas
~оффтоп наверное извините~ Подскажите, как лучше/безопаснее/правильнее проводить оплату чего-либо? С фронта посылается информация банку/стороннему сервису по оплате, который коллбеком тригерит страницу фронта, на которой тригерятся апи бекенда? Или с фронта посылается информация на бек, который взаимодействует с банками/сторонними серверами и в зависимости от успеха даёт ответ фронту?
у меня был такой опыт: - запрос от клиента идет на бэк - бэк формирует запрос и отправляет в банк - банк формирует ссылку и отправляет бэку - бэк отображает ссылку на фронте - пользователь переходит по ссылке и оплачивает на странице банка - когда оплата успешно проходит, банк уведомляет бэк по определенной ссылке(callback) что оплата прошла
Siva
Any know ""Golang""" """sailpoint"""pls let me know frds
Ti
Golang: поведение при ошибках https://dev-gang.ru/article/golang-povedenie-pri-oshibkah-zbihix9v2c/ @Golang_google
Ошибки оборачивать можно и для каждой сервисной ошибки не писать свой интерфейс
mbb
😂😂😂
Ой не могу😂😂😂
George
поэтому делаешь небольшой хелпер вида crashOnError(err), вставляешь его везде где надо - и никакой боли. Даже не совсем шутка, в приложухах "второго эшелона" (тестеры всякие там, автоматические траблшутеры и анализаторы) вполне себе допустимая практика, на мой взгляд.
George
Про обработку ошибок можно книгу написать. Кто-то наверняка даже и написал. Но если коротко - от случая и области применения зависит. Тупо свалиться с паникой - самый примитивный вариант, но это и есть его сильная сторона, ибо иногда больше и не нужно (например в вспомогательных утилитах, которые не влияют на бизнес логику продукта). Окей, еще примитивнее - тупо проигнорировать, но это редко когда не несет в себе негатива в отличии от предыдущего варианта
Timur Smirnov
https://youtu.be/1B71SL6Y0kA
TEH3OP
https://youtu.be/1B71SL6Y0kA
А, кстати интересный вопрос: и что вы об этом думаете? Ну вот у достопочтенного собрания какие мысли на это решение: фингня или стоит использовать?
Anonymous
А, кстати интересный вопрос: и что вы об этом думаете? Ну вот у достопочтенного собрания какие мысли на это решение: фингня или стоит использовать?
это просто переход от ифов к абстракциям. главное, что я понял из этого видоса, что становится легче читать бизнес логику
TEH3OP
это просто переход от ифов к абстракциям. главное, что я понял из этого видоса, что становится легче читать бизнес логику
Да понятно что там рассказывают. Но с другой стороны, они прячут обработчики ошибок. Т.е. много важных деталей скрывается. Тут с одной стороны удобство, а с другой сложность понимания логики.
Anonymous
вроде бы пайк сам предложил такой стиль обработки ошибок
Anonymous
на вкус и цвет, но мне кажется кидать ошибку в ф-цию и обрабатывать ее гораздо проще и лучше
NN
Делаешь дб.бегин() проверь ошибку. Делаешь дб.ексек() проверь ошибку, в случае чего сделай ролбэк и проверь что ролбэк без ошибки)
Такая проверка ошибок - это единственный верный путь, чтобы го работал быстро. Го с его сборщиком мусора выбирать не приходится, хочешь чтобы было быстро - делай просто. А языки где реализован удобный трай-кетч, за это платят тем, что тащат за собой весь контекст. Это огромные накладные расходы по памяти и производительности. Единственно кто может себе это позволить - си++.
Anonymous
так это выглядит смешно
Anonymous
каждую строчку checkError(err)
Anonymous
да и надоедает если честно :/
NN
Надо писать свои либы
NN
Удобные обёртки
NN
Ну... Или проходить на си++ 😂
Сергей
каждую строчку checkError(err)
Да это же прикольно. Операцию сделал и ветвление по ошибке. Всё ровненько, стройненько и красиво. Ассемблер и 1с оставили у меня неизгладимый отпечаток 🤣🤣🤣