
DreamingKitten
15.07.2018
14:38:26
или ладно, sizeof(uint64), потому что да, инт платформозависим и всё такое

Daniel
15.07.2018
14:40:36
Коллега, все можно. Но то, ради чего это может понадобиться - точно unsafe

DreamingKitten
15.07.2018
14:41:16
окей. поясните мне, пожалуйста, смысл слова unsafe в этом контексте

Daniel
15.07.2018
14:42:30
Компилятор не может проконтролировать корректность происходящего

Google

DreamingKitten
15.07.2018
14:45:22
т.е. не может проконтролировать, действительно ли sizeof(uint64) равен 8 ?

Daniel
15.07.2018
14:47:24
Не тупите, пожалуйста

DreamingKitten
15.07.2018
14:48:36
я пытаюсь. ладно, проехали. спишем на то что я только вхожу в язык и не ощущаю всей его внутренней гармонии

Daniel
15.07.2018
14:48:46
То вам приватные поля хочется загружать, а то вы по sizeof(int64) страдаете

DreamingKitten
15.07.2018
14:50:35

Daniel
15.07.2018
14:52:00
Ключевой вопрос - зачем.

DreamingKitten
15.07.2018
14:55:44
из-за наличия в коде конструкций вида blocklen/sizeof(var) например

Daniel
15.07.2018
14:57:36
Зачем и почему - разные вопросы

DreamingKitten
15.07.2018
15:02:34
проекция участка памяти произвольного размера как массива произвольного но фиксированного размера элементов
не знаю у кого как, у меня это типичный паттерн который регулярно выскакивает при обработке всякого рода бинарных данных
вот в паскале sizeof() вычисляется в compile-time, и это удобно

Yuriy
15.07.2018
15:06:01

Daniel
15.07.2018
15:08:02

Google

Sergey
15.07.2018
18:24:23
Коллеги, есть эстетический вопрос:
есть структура ext/LibName
мне нужно расширить её несколькими методами и я сделал у себя
type LibName ext.LibName не мудак ли я и не стоит ли мне мою структуру назвать иначе?

Никита
15.07.2018
18:30:35
Возможно, это может привести к путанице

Sergey
15.07.2018
18:32:33
каким образом?
если я обращаюсь исключительно к локальной структуре
в одном месте мне сказали, что я мудак и так не пишут.
я верю, но почему?

Vadim
15.07.2018
18:52:18
Просто за тысячи сожженных нервов в поисках бага сформировали априорное правило

Sergey
15.07.2018
18:52:53
т.е. просто правило хорошего тона?

Vadim
15.07.2018
18:53:13
Нет, больше страховка
Вдруг ктото твою структуру потом рефлектом будет звать или еще че
Незачем по лезвию бритвы ходить

Sergey
15.07.2018
18:54:36
благодарствую

Андрэ
15.07.2018
18:57:07
Да, насколько я успел заметить реплай
Solarized light

Crypt
15.07.2018
19:13:20

Roman
15.07.2018
21:16:33
Не фамильярничайте, мы с вами не пили на брудершафт

Sun
15.07.2018
21:19:49
А что непонятного? «Дитя моё» более-менее приемлемо только если вы обличены соответствующим церковным саном. В остальных случаях это какое-то неуместное панибратство.
Вот именно. Поэтому здесь подобным выражениям места нет.
Вообще, проявление снисхождения в подобной форме — моветон. Если уж очень хочется блеснуть скиллом, то можно дать ссылку lmgfy

[Anonymous]
15.07.2018
21:55:11
?

Александр
15.07.2018
22:46:22
хм
вот думаю где хранить handlers по правильному

Google

Александр
15.07.2018
22:46:48
оформил http в отдельный локальный пакет, дабы не мусорить
толи туда пихнуть, толи отдельно

Sun
15.07.2018
23:01:29
Отдельно

Александр
15.07.2018
23:01:39
ну такое
отдельный пакет handlers?
я пробывал и такой вариант
торчит не оч

Sun
15.07.2018
23:03:25
Я бы отдельно держал. Но настаивать не смею

Александр
15.07.2018
23:05:09
да причем тут "настраивать" ? меня же интересует аргументация
у меня логика такая
они неразрывно связаны с пакетом http
почему тогда мы должны хранить их отдельно?
врятли у нас будет два пакета реализующих http
а значит плодим сущности на ровном месте

Alex
15.07.2018
23:07:25
Создай отдельный файлик handlers.go в своем http пакете. И там пусть себе живут.

Александр
15.07.2018
23:07:41
ну логично я не валю все в один файл ?

Alex
15.07.2018
23:08:09
По крайней мере так советует Mat Ryer :)
Для простеньких сервисов

Александр
15.07.2018
23:08:40
в один файл валить тоже не ах выйдет
придется на каждый хедлер делать по файлу минимум

Google

Александр
15.07.2018
23:09:08
даже два полный CRUD это уже строк 500+
самых простых

Evgeny
15.07.2018
23:17:16
Разбей круды на service+repository, а в handlers просто дергаешь нужный сервис и десериализовываешь. Это удобно если в дальнейшем круды будешь юзать не только для http

Александр
15.07.2018
23:20:15
последний кейс очень странный
круд не для http?

Evgeny
15.07.2018
23:20:51
Круд это не только http

Александр
15.07.2018
23:20:58
я понимаю
но кейс довольно странный
расчитывать на него - получить лишние "сосули" в коде

Evgeny
15.07.2018
23:21:26
Я имею ввиду работу с базой и врапер над ним

Александр
15.07.2018
23:21:55
работа с базой у меня оформлена через dao
dao пакет с интерфейсами + dao_типбд для конкретной реализации

Evgeny
15.07.2018
23:23:15
Я понял, посмотри в iris
Там есть норм пример того что я имею ввиду

Александр
15.07.2018
23:23:56
я не люблю фреймворки

Evgeny
15.07.2018
23:24:03
Я тоже

Александр
15.07.2018
23:24:05
мне важна производительность
я тут подумал...
у меня там есть пакет application
бахну туда интерфейс, а реализацию сделаю через httpApplication

Google

Evgeny
15.07.2018
23:25:42
Тогда юзай fasthttp + easyjson

Александр
15.07.2018
23:27:29
не знаю насчет - fasthttp

Evgeny
15.07.2018
23:27:38
Но в iris посмотри, но круто написан) или в гокит. Юзать не обязательно, но там все достаточно круто продумано в плане soap подхода

Александр
15.07.2018
23:27:47
не понятно за счет чего он "дистигли" производительности выше стандартного пакета

Evgeny
15.07.2018
23:28:51
Вообще разница не ощущается на нагрузках < 10к rps

Александр
15.07.2018
23:29:29
стандартные пакеты писали отнють не идиоты
открыл IRIS - https://iris-go.com/v10/recipe#NetHTTP41
что-то не увидел там мегоструктуры в примерах
app := iris.New()
irisMiddleware := iris.FromStd(nativeTestMiddleware)
app.Use(irisMiddleware)
// Method GET: http://localhost:8080/
app.Get("/", func(ctx iris.Context) {
ctx.HTML("Home")
})
// Method GET: http://localhost:8080/ok
app.Get("/ok", func(ctx iris.Context) {
ctx.HTML("<b>Hello world!</b>")
})
// http://localhost:8080
// http://localhost:8080/ok
app.Run(iris.Addr(":8080"))

Evgeny
15.07.2018
23:31:03
Согласен, но http пакет он больше универсален как клиент и как сервер
Там много завязано на юзабильности пакета. Возможно fasthttp это просто урезанная версия http

Александр
15.07.2018
23:31:12
обычный мне кажется подход

Evgeny
15.07.2018
23:31:28

Crypt
15.07.2018
23:31:47
iris же бойкотируют, не?