Vsevolod
Anatoly
В итоге в больших старых проектах все превращается в монстров, а потом начинаются фасады и прочие паттерны вносящие ещё уровней абстракции.
Dmitry
Немного не понял про другое зону ответсвенности.
Ну вот есть какой-то second-call method, он скрыт внутри метода какого-то объекта. Если воспринимать верхнеуровневый метод объекта как черный ящик то нам не нужно знать о его реализации, соответственно переопределять second-call method не нужно, потому что его наличие в верхнеуровневом методе это деталь реализации.
Dmitry
Anatoly
А в го вот читаешь даже базовую библиотеку и плачешь от радости и умиления и благодать сходит глядя на то как изящно интерфейс врайтер наложен на нее и пишет все от консоли до хттп.
Vsevolod
Vsevolod
+ не надо забывать когда ты ты должен изменить функциональность метода, определенный в интерфейсе.
Vsevolod
В простых тулзах это не сильно нужно, однако с определением бОльшой бизнес логики, с этим могут быть проблемы, если хочется следовать DRY
Dmitry
Предпочитаю так не делать, даже если очень нужно. В любом случае, я (почти)всегда могу реструктурировать/обернуть код так чтобы вынести то что было деталью реализации в публичное api
Dmitry
Вобщем, меньше магии - проще жизнь и меньше головняка для разработчика
Daniel
вот да
Daniel
а наследование мгновенно превращается в магию
Anton
а наследование от дженерик типа с последующим оверрайдом пары методов это уже не магия, а какие то сатанинские обряды
Anonymous
Всем привет. Поможете новичку? Ломаю голову по поводу подключения к бд
Anton
подробнее
Anonymous
Выкладывай!
Anton
и первый вопрос - гуглил проблему то?
Daniel
Daniel
не будет :)
Daniel
но и гуглить вопросы, где концептуального понимания не хватает - невозможно, так что все равно придется спрашивать
Anonymous
Гуглил, но не вдуплил. Да нет, не будет)
Вопрос по поводу удержания соединения с бд. Создаю подключение к бд, вешаю его глобально, чтобы был доступ извне пакета. В бд стоит лимит 30 секунд на ожидание сброса соединения, в подключение так же ставлю 30 секунд. Вроде, по логике, всё должно быть ок, но нет. Начинаю ловить too many open files. Вроде так. После всех запросов закрываю методом close
Anonymous
В чем может быть беда
Anton
вероятно ты на каждый чих открываешь коннект все же?
Anonymous
Что за база? Что за либа, которой цепляешься?
Anton
ну и код в студию.
Anonymous
Anonymous
Пока не могу скинуть код. Бд мускул, либа дефолт
Anonymous
Инстанс один при запуске приложения
Daniel
ну так не бывает
Anonymous
Драйвер https://github.com/go-sql-driver/mysql
Anonymous
SetMaxOpenConns и SetMaxIdleConns пробовал покрутить в сторону уменьшения?
ill-ya
Я пишу в пассив из 200млн элементов знаения - программа занимает 4 гб. мне надо чтобы она быстро работала с этими значениями из памяти. Но потом высвобождается и программа занимает 150мб. Все уходит на диск?? Сборщик мусора? Как запретить собирать переменную определенную? Пытался отключать сборщик.
Anonymous
Нет, но думаю, что стоит всё уменьшить
Anonymous
Буду крутить. Там же по идее тикер ставиться на рефреш подключения?
Anonymous
Anton
Daniel
Daniel
а какого типа значения?
ill-ya
как бы сделать что она железно оставалась
ill-ya
uint64[200000000]
Daniel
ну
Anton
ill-ya
точно щас не помню число
ill-ya
но больше 80млн
Daniel
ill-ya
попробую
ill-ya
чуть позже подниму все
Anonymous
Daniel
дело не в глобальности переменной, конечно
Daniel
просто ты где-то продалбываешь ссылку на массив свой
ill-ya
это делал год-1.5 назад ) сейчас восстановился интерес к исследованию
ill-ya
может что обновилось )
ill-ya
я не понимаю почему оно так работает
ill-ya
данные остаются
Daniel
как написано - твак и работает
ill-ya
я хочу чтобы они оставались в оперативке - они же кудато деваются?
Daniel
(у него фантазии нету)
Daniel
Anonymous
ill-ya
ахахах )
ill-ya
эх понять бы
ill-ya
тогда и решение нашлось
ill-ya
буду пробовать и вас мучать дальше вопросами
Anton
а я думал вечер будет томным. но чувствую что даже бутылку портвейна можно открыть, если продолжится в том же ключе
Anonymous
я извиняюсь за банальщину, но pprof с отладкой памяти пробовался?
Anonymous
там же видно, какой вызов приводит к нарастанию
ill-ya
вы говорите с js разработчиком с 18 стажем и go любителем ) но я стараюсь
ill-ya
go поразил - буду продолжать
ill-ya
скорость и простота на невероятной высоте
Anonymous
https://blog.golang.org/profiling-go-programs
ill-ya
кстати сегодня поставил gogland в нем работает дебаггер? сходу не заработал( не останавливается ) в инете пишут что не пашет. должен же. изучать дальше или реально не пашет?
ill-ya
в отличие от других каналов вы тут реально френдли! )
Anonymous
Anonymous
к сожалению отладчики для го весьма кастомные
ill-ya
Anonymous
https://github.com/derekparker/delve