
Daniel
29.09.2017
13:40:29
а еще оказалась говном система сборки-линковки.

Vladimir
29.09.2017
13:40:44
Можно аргументы ?)
в 2017 лучше писать на Embedded подмножестве плюсов, нежели на сях. Потому что плюсы проще оптимизировать и на плюсах получается меньше кода.
Даже на embedded

Egor
29.09.2017
13:40:48

Google

Egor
29.09.2017
13:40:55
Который держится десятилетия

Daniel
29.09.2017
13:41:08
тормозит нещадно

Egor
29.09.2017
13:41:25
Си тормозит ? Ты щас серьезно ?
Бенчмарки глянь

Pawel
29.09.2017
13:42:01
бля, ну в С++ система сборки на много круче, да. А поцаны и не знали
идиот тот, кто переходит на личности, не так ли?

Egor
29.09.2017
13:42:07

Vladimir
29.09.2017
13:42:15

分解物質
29.09.2017
13:42:27
//git на C написан

Pawel
29.09.2017
13:42:49

分解物質
29.09.2017
13:42:57

Egor
29.09.2017
13:42:57
В большом проекте не разобрать чё где откуда и где косяки. Есть реальные примеры переписывания больших проектов с плюсов на си

Vladimir
29.09.2017
13:43:32
то есть пока это довод уровня "люди не умеют писать код на плюсах, поэтому выбрали Си"

Google

AxiS
29.09.2017
13:43:46

Vladimir
29.09.2017
13:44:09
@podmokov еще есть чо? Кстати есть примеры и обратные - переписывания с Сей на плюсы

Egor
29.09.2017
13:44:13

Pawel
29.09.2017
13:44:39

Egor
29.09.2017
13:44:48
Техаские инструменты пишут на сях

Maxim
29.09.2017
13:44:50
Почему может получиться двойной указатель?
делаю
func(dao *ModelDAO) findByParam(rs app.RequestScope, param string) (*model.Type) {
var model model.Type
if model, err := func1(&model); err == nil {
if model, err = func2(&model); err == nil {
return nil
}
}
return &model
}
func1(dao *ModelDAO) (*ModelType) {}
func2(dao *ModelDAO) (*ModelType) {}

Egor
29.09.2017
13:45:01
Osal c-like

Maxim
29.09.2017
13:45:42
там где func2 получается ошибка, что метод принимает *ModelType, а я передаю **ModelType

Pawel
29.09.2017
13:46:14
то есть чтобы язык как-то использовать, надо урезать его возможности до си. классный язык, что

Maxim
29.09.2017
13:46:20
что с моим синтаксисом не так?

in favor
29.09.2017
13:46:32
тихо тут пацаны срутся

Anatoly
29.09.2017
13:46:35
Коллеги, а тут много кто пишет микросервисы. А куда вы с десятков/сотен микросервисов собираете логи / сообщения о всяких ошибках? Самопальный апи? ELK? Еще что-то хитрое?

Maxim
29.09.2017
13:46:55
@tehfvpr та вижу. хватит им уже)))

Vladimir
29.09.2017
13:47:10

Daniel
29.09.2017
13:47:33

Maxim
29.09.2017
13:47:41
@anatolijs graylog

Egor
29.09.2017
13:48:09
Я писал софт для BLE и мне было ок

Daniel
29.09.2017
13:48:31
Си тормозит ? Ты щас серьезно ?
тормозит - страшно - система сборки и линковки. потому, что для поиска символа надо просматривать все объектники, включенные в линковку.

Egor
29.09.2017
13:48:42
Я писал дрова на лин для embedded и мне было ок на сях

Google

Vladimir
29.09.2017
13:49:19
не для ембеддед слава богу (хотя кто знает?)

Pawel
29.09.2017
13:49:32

Egor
29.09.2017
13:49:33

Maxim
29.09.2017
13:49:40
я как web-developer чувствую себя в вашей группе не в своей тарелке)))

Vladimir
29.09.2017
13:49:45
@podmokov ты тоже троллишь же, да?

Egor
29.09.2017
13:49:48

Pawel
29.09.2017
13:50:32

Axm
29.09.2017
13:50:35

Maxim
29.09.2017
13:50:40
ладн. позже зайду, как успокоетесь

Vladimir
29.09.2017
13:50:48

Anatoly
29.09.2017
13:50:57

Pawel
29.09.2017
13:51:10

Egor
29.09.2017
13:51:13
Чё тут происходит вообще, я тоже в ридонли
Ладно на го люди пытались проект поднимать дрова переписку с сей, я ещё понял..

Vladimir
29.09.2017
13:51:52

Maxim
29.09.2017
13:52:20
Почему может получиться двойной указатель?
делаю
func(dao *ModelDAO) findByParam(rs app.RequestScope, param string) (*model.Type) {
var model model.Type
if model, err := func1(&model); err == nil {
if model, err = func2(&model); err == nil {
return nil
}
}
return &model
}
func1(dao *ModelDAO) (*model.Type) {}
func2(dao *ModelDAO) (*model.Type) {}
там где func2 получается ошибка, что метод принимает *model.Type, а я передаю **model.Type
Почему указатель двоит???

Axm
29.09.2017
13:52:37

in favor
29.09.2017
13:52:46

Google

Maxim
29.09.2017
13:53:06
@tehfvpr структура
я там переименовывал
Везде model.type
кажись везде поправил

Lanegan
29.09.2017
13:55:16
переопределил model же ты, не?

Илья
29.09.2017
13:55:23

Maxim
29.09.2017
13:57:10
@di3young я второй раз не беру указатель, а передаю его по ссылке в метод. А мне говорят, что уже два указателя

Илья
29.09.2017
13:57:25
берешь
if model, err := func1(&model); здесь ты создал новую переменную model в которой лижет *model

Maxim
29.09.2017
13:58:33
@di3young спасибо. Я думал указатель сбрасывается

Anatoly
29.09.2017
13:58:44

Axm
29.09.2017
13:59:21

Maxim
29.09.2017
14:06:04
что-то я не могу подружиться с go - OOP после php
Несколько другое поведение объектов, переданных в методы

Anatoly
29.09.2017
14:07:37

Daniel
29.09.2017
14:08:01

Axm
29.09.2017
14:09:25

AxiS
29.09.2017
14:11:01

Maxim
29.09.2017
14:11:03
@anatolijs Да. Меня указатели вообще с толку сбивают. И не совсем понимаю как работать с интерфейсами вне пакетов, где они были объявлены

Anatoly
29.09.2017
14:16:39


Maxim
29.09.2017
14:27:58
@anatolijs в Go есть пустые интерфейсы, которые не имеют объявленных методов
У меня в авторизации есть пакет apis с пустым интерфейсом.
// Identity represents an authenticated user. If a user is successfully authenticated by
// an auth handler (Basic, Bearer, or Query), an Identity object will be made available for injection.
type Identity interface{}
Когда я нахожу в db пользователя по запрашиваемому Bearer token - то в авторизации происходит следующее
func(c *routing.Context, token string) (apis.Identity, error) {
if len(token) > 0 {
userDAO := daos.NewUserDAO()
service := services.NewUserService(userDAO)
user, err := service.GetByAuthKey(c, token)
if err == nil {
return apis.Identity(user), nil
}
Не понимаю для чего здесь нужен пустой интерфейс и как это потом использовать

Google

Anatoly
29.09.2017
14:31:18

Алексей
29.09.2017
14:32:37
> interface{} тракруется как "все что угодно"
привет из php|javascript

Maxim
29.09.2017
14:32:53
@anatolijs Я недавно начал изучать go, поэтому еще не привык к работе с ним
Спасибо за помощь

Anatoly
29.09.2017
14:33:35

Никита
29.09.2017
14:33:47

Anatoly
29.09.2017
14:33:59
а то я здесь только пока холивары наблюдаю

Maxim
29.09.2017
14:36:59
@ngalayko т.е. я не имплементирую интерфейс, чтоб он "вынуждал" меня написать методы, а наоборот - пишу методы, чтоб структура подошла под нужный интерфейс?

Никита
29.09.2017
14:39:38
смотря для чего
ты просто явно не указываешь, что какая-то структура имплементирует какой-то интерфейс

Anatoly
29.09.2017
14:41:04
Интерфейс определяет контракт и используется для конкретизации того, что можно ожидать от объекта. А "утиная" типизация просто упрощает описание типа и не требует указывать какой интерфейс этот тип исповедует.
под interface {} подойдет все, поскольку этот интерфейс не накладывает никаких ограничений

Maxim
29.09.2017
14:47:58
спасибо за разъяснения
Буду разбираться

Мерлин
29.09.2017
14:51:29

Mush
29.09.2017
14:51:49
https://habrahabr.ru/post/318896/
что скажете?

Pawel
29.09.2017
14:52:12
Rust
да. ну он маргинальный в данный момент и мне не нравится.

in favor
29.09.2017
14:54:22

Mush
29.09.2017
14:55:08

in favor
29.09.2017
14:55:51

Maxim
29.09.2017
14:57:59
@antelman какая-то маленькая слабенькая статейка)

Mush
29.09.2017
14:59:36
@antelman какая-то маленькая слабенькая статейка)
я имел в виду не это, когда спрашивал мнения )
разверну:
работал ли кто-то с живой перезагрузкой, например вариант из статьи - какие наблюдения?
потому что теоретически тема очень сильная - перезапуск процесс ресурсоемкая задача, если найти как обновляться без перезапуска, то это хороший выйгрыш имхо

Vasily Romanov
29.09.2017
15:00:11
Есть у фейсбука в паблике модуль для грейсфула
с передачей listner-а
Это рабочий подход котоырй много где используется