@gogolang

Страница 390 из 1630
Konstantine
18.07.2017
18:13:32
Смешно)

corpix
18.07.2017
18:16:23
Я когда на го только смотреть начинал тоже смеялся. Потом распробовал и больше не хочу наследования. Могу ещё добавить смешилок: методы встроенного объекта не могут влиять лишь на свой объект, т.е. если Mutex встроен в SafeCounter то он никаким образом не может поменять/прочитать данные из SafeCounter. И это прекрасно

Konstantine
18.07.2017
18:17:23
Родитель в наследовании тоже никак не может поменять у наследника)

Но да, все го-любители вечно орут, что то не нужно, то не нужно, а в го все идеально, это разговор не о чем)

Google
corpix
18.07.2017
18:19:22
Это я то го-любитель?)) Я вот ору что дженериков нет, система типов говно, стандартная либа местами написана плохо... ну и ещё по мелочам

Konstantine
18.07.2017
18:19:56
это не мешает теме "нужно ли наследование" быть ни о чем)

corpix
18.07.2017
18:20:02
Но наследование и правда не нужно. Встраивание, агрегация, оборачивание - вот гораздо более очевидные и прозрачные подходы

Konstantine
18.07.2017
18:20:21
это как веганы которые везде обязаны рассказать, что без мяса отлично живется)

corpix
18.07.2017
18:22:06
С веганами тут мало общего. С какого языка на го перекатываетесь?)

Konstantine
18.07.2017
18:22:44
Да я не перекатываюсь) Просто потыкал его в паре домашних проектов, а так мне и на котлине и питоне хорошо)

Го теперь для меня просто легкий язык на котором скриптик будет очень легким, что иногда нужно)

corpix
18.07.2017
18:25:23
Ну значит с колокольни этих языков на го смотрите. Это пройдёт, со временем :) И только ощущение что дженериков нехватает останется :D

Konstantine
18.07.2017
18:25:53
Мне и с наследованием хорошо, пасибки)

Анатолий
18.07.2017
18:26:57
А мне было плохо с наследованием в С#

Аьстрактный класс, интерфейс, свой отнаследованый класс, фабрика, диай контейнер, и вот вроде бы пора писать код, а пальцы уже устали и кода, который еще ничего не делает размером уже с го программу.

А в го меня прям радуют эти имплисит интерфейсы, такая ня ^_^

И они отчасти решают проблему дженериков

Google
Vsevolod
18.07.2017
18:32:53
corpix
18.07.2017
18:34:29
Отсутствие наследования приносит проблему переопределения Second-Call методов.
Да, приносит. Но зачем из переопределять, это же деталь реализации из другой зоны ответственности?

Анатолий
18.07.2017
18:35:30
А еще больше в наследовании меня прям бесит, что оно поощряет раздувание базового класса. Есть у тебя две похожие сущности, чуть-чуть различаются и кисс вроде говорит: - сделай два класса, они же разные, а драй - ты что там упоролся столько копипастить, давай чуть увеличим базовый класс отнаследуемся и все рады.

Анатолий
18.07.2017
18:36:52
В итоге в больших старых проектах все превращается в монстров, а потом начинаются фасады и прочие паттерны вносящие ещё уровней абстракции.

corpix
18.07.2017
18:37:41
Немного не понял про другое зону ответсвенности.
Ну вот есть какой-то second-call method, он скрыт внутри метода какого-то объекта. Если воспринимать верхнеуровневый метод объекта как черный ящик то нам не нужно знать о его реализации, соответственно переопределять second-call method не нужно, потому что его наличие в верхнеуровневом методе это деталь реализации.

Анатолий
18.07.2017
18:39:02
А в го вот читаешь даже базовую библиотеку и плачешь от радости и умиления и благодать сходит глядя на то как изящно интерфейс врайтер наложен на нее и пишет все от консоли до хттп.

Vsevolod
18.07.2017
18:40:55
+ не надо забывать когда ты ты должен изменить функциональность метода, определенный в интерфейсе.

В простых тулзах это не сильно нужно, однако с определением бОльшой бизнес логики, с этим могут быть проблемы, если хочется следовать DRY

corpix
18.07.2017
18:43:51
Предпочитаю так не делать, даже если очень нужно. В любом случае, я (почти)всегда могу реструктурировать/обернуть код так чтобы вынести то что было деталью реализации в публичное api

Вобщем, меньше магии - проще жизнь и меньше головняка для разработчика

Daniel
18.07.2017
18:46:37
вот да

а наследование мгновенно превращается в магию

anton
18.07.2017
18:51:09
а наследование от дженерик типа с последующим оверрайдом пары методов это уже не магия, а какие то сатанинские обряды

Momano
18.07.2017
18:51:32
Всем привет. Поможете новичку? Ломаю голову по поводу подключения к бд

anton
18.07.2017
18:51:48
подробнее

Andrew
18.07.2017
18:51:56
Выкладывай!

anton
18.07.2017
18:52:09
и первый вопрос - гуглил проблему то?

Google
Andrew
18.07.2017
18:52:58
и первый вопрос - гуглил проблему то?
Не торопи коней, может действительно интересный вопрос будет!

Daniel
18.07.2017
18:53:07
не будет :)

но и гуглить вопросы, где концептуального понимания не хватает - невозможно, так что все равно придется спрашивать

Momano
18.07.2017
18:57:05
Гуглил, но не вдуплил. Да нет, не будет) Вопрос по поводу удержания соединения с бд. Создаю подключение к бд, вешаю его глобально, чтобы был доступ извне пакета. В бд стоит лимит 30 секунд на ожидание сброса соединения, в подключение так же ставлю 30 секунд. Вроде, по логике, всё должно быть ок, но нет. Начинаю ловить too many open files. Вроде так. После всех запросов закрываю методом close

В чем может быть беда

anton
18.07.2017
18:57:41
вероятно ты на каждый чих открываешь коннект все же?

Andrew
18.07.2017
18:57:57
Что за база? Что за либа, которой цепляешься?

anton
18.07.2017
18:58:24
ну и код в студию.

Momano
18.07.2017
19:01:09
Пока не могу скинуть код. Бд мускул, либа дефолт

Инстанс один при запуске приложения

Daniel
18.07.2017
19:02:01
ну так не бывает

Momano
18.07.2017
19:02:26
Драйвер https://github.com/go-sql-driver/mysql

Andrew
18.07.2017
19:06:03
SetMaxOpenConns и SetMaxIdleConns пробовал покрутить в сторону уменьшения?

Ilya
18.07.2017
19:06:19
Я пишу в пассив из 200млн элементов знаения - программа занимает 4 гб. мне надо чтобы она быстро работала с этими значениями из памяти. Но потом высвобождается и программа занимает 150мб. Все уходит на диск?? Сборщик мусора? Как запретить собирать переменную определенную? Пытался отключать сборщик.

Momano
18.07.2017
19:06:25
Нет, но думаю, что стоит всё уменьшить

Буду крутить. Там же по идее тикер ставиться на рефреш подключения?

anton
18.07.2017
19:08:41
Google
Ilya
18.07.2017
19:09:16
как бы сделать что она железно оставалась

uint64[200000000]

Daniel
18.07.2017
19:09:44
ну

anton
18.07.2017
19:09:45
Буду крутить. Там же по идее тикер ставиться на рефреш подключения?
все же глянуть бы код. как ты пишешь и как коннект интишь

Ilya
18.07.2017
19:09:56
точно щас не помню число

Admin
ERROR: S client not available

Ilya
18.07.2017
19:10:06
но больше 80млн

Daniel
18.07.2017
19:10:12
как бы сделать что она железно оставалась
сделай глобальную переменную

Ilya
18.07.2017
19:10:29
попробую

чуть позже подниму все

Andrew
18.07.2017
19:10:48
сделай глобальную переменную
Сомнительный совет ))

Daniel
18.07.2017
19:10:50
дело не в глобальности переменной, конечно

просто ты где-то продалбываешь ссылку на массив свой

Mush
18.07.2017
19:11:13
Нет, но думаю, что стоит всё уменьшить
у меня есть скрипт, который выжирает 32гб оперативки. проблема не в увеличении, а в том, что остаются незакрытые ресурсы.

Ilya
18.07.2017
19:11:28
это делал год-1.5 назад ) сейчас восстановился интерес к исследованию

может что обновилось )

Daniel
18.07.2017
19:11:42
Сомнительный совет ))
совет как совет. мужик же явно не понимает, что делает...

Ilya
18.07.2017
19:11:58
я не понимаю почему оно так работает

Google
Ilya
18.07.2017
19:12:02
данные остаются

Daniel
18.07.2017
19:12:08
как написано - твак и работает

Ilya
18.07.2017
19:12:14
я хочу чтобы они оставались в оперативке - они же кудато деваются?

Daniel
18.07.2017
19:12:14
(у него фантазии нету)

Ilya
18.07.2017
19:13:04
ты их освободил, бро
у меня такой же чехол на маке аахха

ахахах )

эх понять бы

тогда и решение нашлось

буду пробовать и вас мучать дальше вопросами

anton
18.07.2017
19:13:47
а я думал вечер будет томным. но чувствую что даже бутылку портвейна можно открыть, если продолжится в том же ключе

Mush
18.07.2017
19:13:57
я извиняюсь за банальщину, но pprof с отладкой памяти пробовался?

там же видно, какой вызов приводит к нарастанию

Ilya
18.07.2017
19:14:40
вы говорите с js разработчиком с 18 стажем и go любителем ) но я стараюсь

go поразил - буду продолжать

скорость и простота на невероятной высоте

Mush
18.07.2017
19:15:38
https://blog.golang.org/profiling-go-programs

Ilya
18.07.2017
19:18:18
кстати сегодня поставил gogland в нем работает дебаггер? сходу не заработал( не останавливается ) в инете пишут что не пашет. должен же. изучать дальше или реально не пашет?

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