
Vladislav
16.09.2016
13:32:30
а тут наоборот? о_0

Zver
16.09.2016
13:36:57
а тут наоборот? о_0
Получется, что когда много записей/чтений в структуру. То выгодней ссылка на структуру, когда много выделений, то тогда очень слегка выгодней просто структура.
В данном случае на длинном тексте, выигрывают ссылки, а на коротком наоборот.
Команда: go test -bench=. -benchmem

Nik
16.09.2016
13:39:22

Google

Maxim
16.09.2016
19:55:53
Есть задача выбирать случайную строку из набора. Ваши варианты как лучше это сделать?

Павел
16.09.2016
19:59:16
нанять программиста

Subbotin
16.09.2016
20:00:56
пусть сидит с закрытыми глазами тычет пальцем в строку?

Maxim
16.09.2016
20:01:04

Vladislav
16.09.2016
20:05:27

Maxim
16.09.2016
20:05:54

Subbotin
16.09.2016
20:08:12
берёшь длину архива, потом рандомный инт в диапазоне от нуля до этой длины и потом берёшь запись с этим номером
какие ещё могут быть варианты?
если там есть какие-то тонкости и особенности твоего случая, то стоит их описать. но в общем виде решение очевидно

Maxim
16.09.2016
20:16:49

Subbotin
16.09.2016
20:23:25
l := []string{"Hello","World"}
s := l[rand.Intn(len(l))]

Maxim
17.09.2016
11:47:01
А есть какие-нибудь документы или статьи типа "правила хорошего тона в Go"? Где описывается как лучше оперировать языком, называть функции, аргументы и так далее?

Google

Maxim
17.09.2016
11:48:41
Просто хочу убедиться что я не усложняю своим кодом чью-то жизнь и исправиться, если-таки нарушаю какие-то постулаты. ?

Andrew
17.09.2016
11:51:32
https://golang.org/doc/effective_go.html
я только такое видел

Maxim
17.09.2016
11:52:51

Vladislav
17.09.2016
12:14:00
И пройти tour
Там очень многое объясняется

[Anonymous]
17.09.2016
12:59:51

Maxim
17.09.2016
13:24:20

[Anonymous]
17.09.2016
13:38:50

Valentin
17.09.2016
13:38:58

Paul
17.09.2016
19:50:17

Igor
17.09.2016
20:21:42

Maxim
17.09.2016
20:21:51

Igor
17.09.2016
20:26:02
Ну. Можешь глянуть книгу Макконнелл "Совершенный код". Там просто описываются довольно стандартные методы, например, принцип локальности переменных итд. Можно что-то новее, гугли "Библиотека программиста" вк, в меню будет список книг. Какой-нибудь "Чистый код", например.
Насчёт go ничего кроме effective go не могу сказать. Скорее надо гуглить какие-то статьи, на reddit'е. Но это всё на английском будет, за редким исключением. Обычно проблемы возникают не с самим языком, а со структурами данных, базами данных, сетью, итд -- другие места надо оптимизировать.
По структурам можешь смотреть книгу Кормена / или смотреть курс "Дискретная математика" у итмошников: neerc.ifmo.ru/wiki/index.php?title=Заглавная_страница
ещё в википедии тоже достаточно информации по алгоритмам.


Maxim
17.09.2016
21:08:23
Ну. Можешь глянуть книгу Макконнелл "Совершенный код". Там просто описываются довольно стандартные методы, например, принцип локальности переменных итд. Можно что-то новее, гугли "Библиотека программиста" вк, в меню будет список книг. Какой-нибудь "Чистый код", например.
Насчёт go ничего кроме effective go не могу сказать. Скорее надо гуглить какие-то статьи, на reddit'е. Но это всё на английском будет, за редким исключением. Обычно проблемы возникают не с самим языком, а со структурами данных, базами данных, сетью, итд -- другие места надо оптимизировать.
Самый большой затык у меня с интерфейсами. До сих пор не вдупляю что, как и зачем.

Igor
17.09.2016
22:02:05
С какими интерфейсами?

Maxim
17.09.2016
22:11:14


Igor
18.09.2016
00:25:52
Интерфейс — это гарантия того, что объекты некоего типа умеют в определенные операции.
Чтобы печатать в консоль, можно написать функцию Print, и указать, что она принимает один параметр типа T. Но объекты типа T должны уметь преобразовываться в строку.
Аналогично и с типом K, для него тоже нужно написать свой метод Print(in K). И для K тоже должен быть свой метод ToString.
В итоге, для каждого типа нужно писать свой отдельный Print — это много.
Поэтому ты говоришь так:
Я хочу написать один метод Print(in Showable), который будет принимать любой тип (и T, и K), главное чтобы для этого типа была написана реализация метода ToString() — иначе говоря, чтобы тип реализовывал интерфейс Showable.
Showable — интерфейс с функцией ToString.
Можно написать интерфейс для сравнений: например, сравнить два числа (тип Int), или сравнить две строки (String, лексикографически), или два более сложных объекта.
И если ты для своего типа T опишешь эту функцию сравнения, то можно будет отсортировать массив элементов типа T, например. Или массив целых, или массив строк.
Сортировка основывается на сравнении двух элементов, если что.

Google

Igor
18.09.2016
00:42:37
Суть такая.

Maxim
19.09.2016
09:29:48
github.com/kataras/iris
Это можно использовать для постройки своей небольшой социалки?

Subbotin
19.09.2016
09:31:48
для постройки небольшой социалки можно использовать хоть ассемблер
сформулируй точнее

Maxim
19.09.2016
09:32:16
Я к тому, насколько вообще плохая идея строить соц.сеть на Go

Мерлин
19.09.2016
09:32:40

Subbotin
19.09.2016
09:32:47
строить соц.сеть - плохая идея. не зависимо от языка програмирования

Мерлин
19.09.2016
09:32:53
но вообще, почему бы и нет?

Maxim
19.09.2016
09:33:07

Subbotin
19.09.2016
09:33:21
ну тогда качайся

Мерлин
19.09.2016
09:33:24

Maxim
19.09.2016
09:33:33

Мерлин
19.09.2016
09:33:44
Сам фреймворк я не смотрел, так что за качество не скажу

Subbotin
19.09.2016
09:33:48
я вот на досуге пишу игрушку многпользовательскую. не чтоб играть а чисто чтоб освоить новые технологии

Мерлин
19.09.2016
09:33:56

Maxim
19.09.2016
09:34:05

Мерлин
19.09.2016
09:34:07

Subbotin
19.09.2016
09:34:16
пошаговая стратегия

Maxim
19.09.2016
09:34:26

Subbotin
19.09.2016
09:35:10
ну или скорее пошаговая тактика

Google

Subbotin
19.09.2016
09:35:32
ты о чем?

Maxim
19.09.2016
09:37:41
ты о чем?
Я про свой случай "социалки на Go". Можно ли Go использовать как ядро и веб-шкурку, к которому можно просто присабачить БД и не париться?
Или это не совсем секюрно, потому что сама схема предусматривает наличие дыр?

Admin
ERROR: S client not available

Subbotin
19.09.2016
09:45:52
возьми джангу. там из коробки все достаточно секурно

Maxim
19.09.2016
09:46:08
Эй, я впервые принимаюсь за что-то подобное и ещё много чего не знаю. Но я хочу перестраховаться.

Subbotin
19.09.2016
09:46:32
по дефолту за тебя подумали про большинство самых распространёных атак

Мерлин
19.09.2016
09:49:48
https://stackoverflow.com/questions/17776584/webserver-for-go-golang-webservices-using-nginx-or-not
https://groups.google.com/forum/#!topic/golang-nuts/moCDscfIc9E

Subbotin
19.09.2016
09:50:21
я не знаю есть ли на go фреймворк где уже подумали о безопасном хранении логинов-паролей, csrf, xss и прочем

Maxim
19.09.2016
09:50:40

Subbotin
19.09.2016
09:52:29
ну кстати в вопросе ставить ли nginx перед вебсервером на go я за nginx. в абстрактном случае в вакуме

Maxim
19.09.2016
10:19:46

Daniel
19.09.2016
11:19:01
а у меня есть даже аргументы
но ситуация не слишком однозначная

Zver
19.09.2016
11:50:58
Аргументы в студию. ?

Vladislav
19.09.2016
11:53:01
балансер?

Daniel
19.09.2016
11:57:42
чуть позже, а?
ну или я доклад сделаю где-нибудь на митапе
тут как раз близится lug

Anton
19.09.2016
12:23:35

Google

Paul
19.09.2016
12:23:51
linux

Anton
19.09.2016
12:24:34
ааа, спс

Daniel
19.09.2016
12:24:54
spb lug, если быть точным

Kirill
19.09.2016
13:00:32
а будет запись?

Daniel
19.09.2016
13:04:24
а хрен его знает
я могу озаботиться, чтобы была

Ivan
19.09.2016
13:05:57
Всем привет
https://gist.github.com/t0pep0/98039312345c2b30e92304b5a047211a - в порядке извращений )

Maxim
19.09.2016
13:10:21
G-itHub, G-enerics, G-o...
Совпадение?

Ivan
19.09.2016
13:10:56
G-ist

Maxim
19.09.2016
13:11:31
G-ist
G управляет технологиями
И женщинами. Наверное.
Ну, я бы знал, если бы что-нибудь смыслил в отношениях с ними.

Zver
19.09.2016
13:13:38