@gogolang

Страница 1536 из 1630
Eugenii
11.10.2018
16:14:38
так как я его не на го перепишу, если он часть проекта на го?
извините, за некоторую бестактность, но если все так плохо с го и фиг вы что перепишите на то что надо то может имеет смысл в след за товарищем в Яндекс? ну или еще куда бо перепишите этот сервис, а там еще 149к

Eugenii
11.10.2018
16:15:46
я абсолютно серьезно, работы много, а нервов на все не хватит

Google
Roman
11.10.2018
16:17:10
ему про DRY он про абстракции

Grom
11.10.2018
16:17:51
надо читать апдейты с сервера, брать update_id и указывать его при следующем запросе (или update_id+1)
но если GetUpdates возвращает канал из которого я в бесконечном цикле вычитываю, то каким образом мне указать ему update_id?

Grom
11.10.2018
16:18:32
надо читать апдейты с сервера, брать update_id и указывать его при следующем запросе (или update_id+1)
updates, err := bot.GetUpdatesChan(u) for update := range updates { if update.Message == nil { continue } processUpdate(bot, update, record, db) } то есть что-то типа такого

Grom
11.10.2018
16:18:46
"gopkg.in/telegram-bot-api.v4"

Roman
11.10.2018
16:19:39
замена pook тут будет иметь такой же эффект тут, как замена fack в (плохом) языке с перегрузкой (читай С++).
заменить вообще можно ВСЁ! ? дело в том что если тебе нужно поменять, то менять лучше только в 1 месте, меньше вероятности ошибиться. Если у тебя 4 перегруженных функции, тогда меняет придётся в 4 местах и забыть одну из них или ошибиться в её реализации очень просто и Ken Thompson если я не ошибаюсь был против перегрузки, ты можешь поспорить с моей аргументацией, но с Ken'ом спорить не рекомендую, не смотря на то что его аргументация будет аналогичной))

Grom
11.10.2018
16:20:02
Marlik
11.10.2018
16:20:14
updates, err := bot.GetUpdatesChan(u) for update := range updates { if update.Message == nil { continue } processUpdate(bot, update, record, db) } то есть что-то типа такого
Ну это хрень конечно. Для начала напиши фун. которая обрабатывает старт. Ща скину.

Aleksandr
11.10.2018
16:20:44
"gopkg.in/telegram-bot-api.v4"
последние коммиты: Remove a broken check for GetUpdatesChan. Revert "Remove a broken check for GetUpdatesChan." видимо что-то сломали и починили обратно 3 дня назад.

Google
Marlik
11.10.2018
16:20:47
А, вижу.

Roman
11.10.2018
16:21:25
Aleksandr
11.10.2018
16:21:44
"gopkg.in/telegram-bot-api.v4"
https://github.com/go-telegram-bot-api/telegram-bot-api/commit/5f38203a155afa901c7deb70596a088a8424a9ee вот тут перестали +1 делать)

Grom
11.10.2018
16:22:20
видать использовал версию до этого коммита, а на днях обновил вендоры

Alexander
11.10.2018
16:23:13
тяжело наверное жить без грепа
непонятно где реализацию смотреть

Marlik
11.10.2018
16:24:18
блин, это все обьясняет :D
Не объясняет, над кодом нужно поработать, щас вам скину рабочий вариант на плэй.

Alexander
11.10.2018
16:24:36
перегрузка чего?
перегрузка конструкции .BlaBla(...)

Grom
11.10.2018
16:26:02
Не объясняет, над кодом нужно поработать, щас вам скину рабочий вариант на плэй.
ну как бы будет странно, если читать не из бесконечного цикла и постоянно передавать оффсет в GetUpdates, но буду признателен за пример

Artem
11.10.2018
16:26:06
перегрузка конструкции .BlaBla(...)
Почему это перегрузка? В гошке Это вроде просто сахар

Алексей
11.10.2018
16:26:39
Конструкция .BlaBla(...) является неоднозначной и "перегруженной" в случае, если сущность перед точкой является интрефейсом.

Daniel
11.10.2018
16:27:06
тяжело наверное жить без грепа
и тем не менее, кгда мы глядим на гошный код - мы в целом понимаем, что он делает. когда мы глядим на код на языке с перегрузкой операторов - мы тоже думаем, что понимаем. но на самом деле нам надо знать проект досконально, чтобы быть уверенным, что мы реально понимаем, что хочет сказать автор. или, другими словами, в го мы всегда знаем, что грепать, а в с++ - далеко не всегда

Marlik
11.10.2018
16:27:07
как не объясняет, если объясняет?
У него там не много не правильно. Щас скопипстю с рабочего пример.

Alexander
11.10.2018
16:27:15
Конструкция .BlaBla(...) является неоднозначной и "перегруженной" в случае, если сущность перед точкой является интрефейсом.
нет, она всегда является перегруженной по типу того, что слева от этой конструкции

Aleksandr
11.10.2018
16:27:40
У него там не много не правильно. Щас скопипстю с рабочего пример.
все у него правильно кроме первой инициализации. но он описывал другую проблему

Google
Alexander
11.10.2018
16:29:22
перегрузка операторв - везде говно
какие языки с перегрузкой операторов вы знаете?

Aleksandr
11.10.2018
16:29:26
а что с ней не так?)
ну если остановить приложение и запустить заново то он опять переберет все апдейты с 0. Там по-моему за последний час апдейты будут

Алексей
11.10.2018
16:29:32
нет, она всегда является перегруженной по типу того, что слева от этой конструкции
Да, как раз хотел написать, что забыл про структруы. Но в случае структур на этапе компиляции можно с уверенностью сказать, что будет делать BlaBla, а в случае интерфейсов такого уже сказать нельзя. И фактически вызов BlaBla даже в одной строчке кода может делать совершенно различные вещи.

Alexander
11.10.2018
16:30:16
Да, как раз хотел написать, что забыл про структруы. Но в случае структур на этапе компиляции можно с уверенностью сказать, что будет делать BlaBla, а в случае интерфейсов такого уже сказать нельзя. И фактически вызов BlaBla даже в одной строчке кода может делать совершенно различные вещи.
> Но в случае структур на этапе компиляции можно с уверенностью сказать, что будет делать BlaBla, а в случае интерфейсов такого уже сказать нельзя А это уже статическая/динамическая диспетчеризация, а не перегрузка.

Grom
11.10.2018
16:30:21
Алексей
11.10.2018
16:31:09
Daniel
11.10.2018
16:31:17
нет

Алексей
11.10.2018
16:31:42
нет
Сколько структур может реализовывать один и тот же интерфейс?

Artem
11.10.2018
16:32:34
Сколько структур может реализовывать один и тот же интерфейс?
Тут о том, что во время вызова у тебя есть одна конкретная

Grom
11.10.2018
16:32:41
@zelenin спасибо за помощь, апдейт действительно помог!

Алексей
11.10.2018
16:33:57
Тут о том, что во время вызова у тебя есть одна конкретная
Это я вообще про всё могу сказать. Во время вызова кода на любом языке действительно есть какой-то код и можно под отладчиком глняуть что там происходит.

Daniel
11.10.2018
16:34:31
Сколько структур может реализовывать один и тот же интерфейс?
некоторое количество. и не всегда я знаю, какая именно структура сейчас на месте интерфейса. но этих структур в проекте - ограниченное количество

Marlik
11.10.2018
16:35:20
@Gromnsk https://play.golang.com/p/EypBu4Q3TNp

Grom
11.10.2018
16:36:08
Aleksandr
11.10.2018
16:36:20
@Gromnsk https://play.golang.com/p/EypBu4Q3TNp
прости, ты в своем уме? ты переделал код на вебхуки, которых не было в изначальном коде.

Google
Алексей
11.10.2018
16:37:09
некоторое количество. и не всегда я знаю, какая именно структура сейчас на месте интерфейса. но этих структур в проекте - ограниченное количество
Миллион структур - это тоже ограниченное количество. Я всё хочу показать, что почти в любом языке есть такой код, который является неоднозначным и невозможно точно сказать на этапе компиляции, что именно будет происходить.

Marlik
11.10.2018
16:37:39
прости, ты в своем уме? ты переделал код на вебхуки, которых не было в изначальном коде.
Задротство на полинге делать ботов. Нужно юзать вебхуки, а в помощь ngrok, кстати у Василия на Курсере есть прекрасное видео.

Aleksandr
11.10.2018
16:38:20
Задротство на полинге делать ботов. Нужно юзать вебхуки, а в помощь ngrok, кстати у Василия на Курсере есть прекрасное видео.
вот с этого и надо начинать. а не переделать код не объяснив что зачем. он его даже не запустит

Алексей
11.10.2018
16:38:43
миллион структур вы не напишете даже с помощью кодогенерации. не надо ля-ля
Двадцать напишу, а даже двадцать - это уже очень много.

Никита
11.10.2018
16:38:44
классическая схема такая: user.Activize() repo.Save(user) но repo.Activize(userId) тоже имеет право
Я же правильно понимаю что save в данном случае обновляет все поля несмотря на то что изменилось только одно поле?

Никита
11.10.2018
16:40:51
зависит от реализации
Плохо ли будет если будет обновлять все поля?)

Daniel
11.10.2018
16:40:55
Двадцать напишу, а даже двадцать - это уже очень много.
двадцать структур, реализующих один интерфейс, и методы которых делают существенно разное? не надо ля-ля

но вы не понимаете мой поинт

Алексей
11.10.2018
16:42:41
двадцать структур, реализующих один интерфейс, и методы которых делают существенно разное? не надо ля-ля
Надо ля ля. Особенно когда человек десять работают над кодом. И даже не обязательно делать существенно разное, потому что всё равно периодически придётся проверять что они сосбственно не делают ничего плохого.

Daniel
11.10.2018
16:42:53
с перегрузкой операторов мы не знаем, ведет ли себя код, на который мы глядим, так, как мы ожидаем, или надо идти глянуть, что там и как. с интерфейсами в go нам очевидно, что тут возможна неоднозначность

Aleksandr
11.10.2018
16:43:52
Алексей
11.10.2018
16:47:58
с перегрузкой операторов мы не знаем, ведет ли себя код, на который мы глядим, так, как мы ожидаем, или надо идти глянуть, что там и как. с интерфейсами в go нам очевидно, что тут возможна неоднозначность
Ну так то да. Но на типы всё равно надо всегда глядеть. Даже без перегрузки операторов, тот же оператор + может делать довольно разные вещи для разных типов. Хотя без перегрузки конечно же возможностей куда меньше.

перегрузка операторв - везде говно
И вот это утверждение уж чересчур сильное. Учитывая наличие задач, решение которых без перегрузки операторов решаются крайне печально.

Marlik
11.10.2018
16:53:02
Вот у человека спроси @zelenin, он вроде писал что-то.

Google
Алексей
11.10.2018
16:53:03
Alexander
11.10.2018
16:53:09
с перегрузкой операторов мы не знаем, ведет ли себя код, на который мы глядим, так, как мы ожидаем, или надо идти глянуть, что там и как. с интерфейсами в go нам очевидно, что тут возможна неоднозначность
Да нихрена мы без конкретных типов в go не знаем. Да и не должны знать. Иначе нам нужен язык без вывода типов, без черезточечного вызова и полиморфизма в любом виде.

Roman
11.10.2018
16:53:23
Каких ещё вариациях? Перегруженные функции - это разные функции.
так в этом то и проблема))) (потенциально) разное поведение скрытое под одним словом

Aleksandr
11.10.2018
16:54:37
https://github.com/zelenin/go-tdlib

Roman
11.10.2018
16:55:32
Каких ещё вариациях? Перегруженные функции - это разные функции.
bank.TakeLoan("one million dollars") // behavior A bank.TakeLoan(1000000 * currency.Dollars) // behavior B var loan = const string("one million dollars") bank.TakeLoan(loan) // behavior C особенно опасен вариант с const-/не-const типами, они чаще всего всё портят

Alexander
11.10.2018
16:55:43
так в этом то и проблема))) (потенциально) разное поведение скрытое под одним словом
.BlaBla() скрывает потенциально разное проведение под одним словом, и что с этим делать?

Интернет Магазин
11.10.2018
16:56:20
Стыдно же гуглить не уметь. "Кросскомпиляция golang"
Да не то что трудно, я искал, а потом оказалось что есть приколы с Windows 10

Alexander
11.10.2018
16:56:56
.BlaBla() скрывает потенциально разное проведение под одним словом, и что с этим делать?
Я считаю, что надо подтянуть свои знания в PLT, вместо того, чтобы спорить о том, чего сам не понимаешь.

Roman
11.10.2018
16:57:03
.BlaBla() скрывает потенциально разное проведение под одним словом, и что с этим делать?
о боже... да как же вы "абстракцию" (которую мы НАМЕРЕНО встраиваем) с многозначностью встроенной по ошибке не отличаете то...

Интернет Магазин
11.10.2018
16:57:58
У меня к вам вопрос, да мне стыдно но только сейчас я познал github. Сделал так что при комите на git все идет на мой сервер (делаю билд и запускаю) Но вот тут вопрос, если при комите сервер попробует опять запустить новый билд, не будет ли комфликта ?

То есть будут две зборки работать ...

Хотел бы чуть разобратся и с этим вопросом

Алексей
11.10.2018
16:59:17
bank.TakeLoan("one million dollars") // behavior A bank.TakeLoan(1000000 * currency.Dollars) // behavior B var loan = const string("one million dollars") bank.TakeLoan(loan) // behavior C особенно опасен вариант с const-/не-const типами, они чаще всего всё портят
Вообще я был не совсем прав (точне совсем не прав). Обычно бывает, что перегруженные функции действительно делают в принципе одно и то же, но для разных типов. Но в этом случае они обычно должны выполнять всякие конвертации и вызывать одну общую функцию, которая содержит основную логику. То есть я фактически хочу сказать, что на самом деле именно от программиста зависит соблюдение или нарушения DRY.

И тут отсутствие перегрузки кстати не поможет вообще никак

Roman
11.10.2018
17:00:08
Почему это по ошибке? Потому что вы так решили и вам так удобно?
а вообще, я предложу вам пойти писать пропосал по добавлению перегрузки функций и операторов. Посмотрим как Pike, Thompson и Griesemer посмеются))

Страница 1536 из 1630