@gogolang

Страница 544 из 1630
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
分解物質
29.09.2017
13:42:27
//git на C написан

Pawel
29.09.2017
13:42:49
//git на C написан
да почти весь полезный софт на си написан

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

Vladimir
29.09.2017
13:43:32
В большом проекте не разобрать чё где откуда и где косяки. Есть реальные примеры переписывания больших проектов с плюсов на си
Вопрос гайдлайнов, на сях также можно написать неподдерживаемый код где фиг поймешь что откуда куда и зачем

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

Google
AxiS
29.09.2017
13:43:46
да почти весь полезный софт на си написан
У C++ читаемость кода ущербная

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

Egor
29.09.2017
13:44:13
то есть пока это довод уровня "люди не умеют писать код на плюсах, поэтому выбрали Си"
Ну хорошо, где ты видел крутые проекты на плюсах в эмбедд?

Pawel
29.09.2017
13:44:39
У C++ читаемость кода ущербная
в С++ - почти всё что сверх си ущербное

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
Ну хорошо, где ты видел крутые проекты на плюсах в эмбедд?
Честно я и на Сях не видел крутых с точки зрения кодов проектов. Не в Embedded впрочем все немного лучше с плюсами, а с Сями одно говно, как и в embedded

Daniel
29.09.2017
13:47:33
бля, ну в С++ система сборки на много круче, да. А поцаны и не знали идиот тот, кто переходит на личности, не так ли?
я ни слова не сказал про с++, ктоме того, что не люблю его. не надо со мной про него спрорить

Maxim
29.09.2017
13:47:41
@anatolijs graylog

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

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

Google
Vladimir
29.09.2017
13:49:19
Я писал дрова на лин для embedded и мне было ок на сях
люди, упаси госпади, на перле пишут и им ок

не для ембеддед слава богу (хотя кто знает?)

Egor
29.09.2017
13:49:33
тормозит - страшно - система сборки и линковки. потому, что для поиска символа надо просматривать все объектники, включенные в линковку.
Дак компиляется и линкуется 1 раз? В си нет поддержки динамической выгрузки кода как в эрланг, смысл тогда мериться чем-то ?

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

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

Egor
29.09.2017
13:49:48
а есть смысл C с другими языками сравнивать?
Я не вижу. Он уникален и занимает свою нишу

люди, упаси госпади, на перле пишут и им ок
Дрова к ядру на перле. Серьезно ?

Pawel
29.09.2017
13:50:32
Я не вижу. Он уникален и занимает свою нишу
вот и я о том же. обя языка C и c++ в одной нише. других там нет

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

Vladimir
29.09.2017
13:50:48
Anatoly
29.09.2017
13:50:57
спасибо! а с конкретным типом нельзя, получается?
почему? можно package main import ( "fmt" ) type t struct { id int cnt int } func foo(v* t ) { *v = t{10, 20} } func main() { v := t{} foo(&v) fmt.Printf("%v", v) }

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 Почему указатель двоит???

Google
Maxim
29.09.2017
13:53:06
@tehfvpr структура

я там переименовывал Везде model.type

кажись везде поправил

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

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
https://play.golang.org/p/KidfpgV99J вот так не работает
в этом случае, надо будет через var интерфейс явно, как я показал выше

Axm
29.09.2017
13:59:21
в этом случае, надо будет через var интерфейс явно, как я показал выше
фигово, чтобы дальше использовать v, придется кастовать обратно в структуру

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

Daniel
29.09.2017
14:08:01
фигово, чтобы дальше использовать v, придется кастовать обратно в структуру
эта проблемва говорит о неудачном дизайне. надо придумать, как не кастовать

Axm
29.09.2017
14:09:25
эта проблемва говорит о неудачном дизайне. надо придумать, как не кастовать
я готов выслушать советы, как удачно сделать дизайн взаимодействия вот с таким апи: http://download.automation.odin.com/oa/7.0/oapremium/portal/en/billing_api_reference/75178.htm

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

Anatoly
29.09.2017
14:16:39
@anatolijs Да. Меня указатели вообще с толку сбивают. И не совсем понимаю как работать с интерфейсами вне пакетов, где они были объявлены
К указателям относись так: если необходимо косвенно изменить объект, используй указатель. В противном случае, используй значение. Ну и если поймешь, что львиная доля потери производительности уходит на копирование по значению, переходи на указатели. Только в этом случае, случайное изменение состояние внутри метода будет оттранслировано в сам объект, который вызвал метод. Про интерфейсы не понял вопроса.

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

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

Никита
29.09.2017
14:33:47
@anatolijs Я недавно начал изучать go, поэтому еще не привык к работе с ним Спасибо за помощь
в го утиная типизация, то есть, если у объекта есть все методы интерфейса - он удовлетворяет этому интерфейсу у любого объекта есть 0 методов - так что пустой интерфейс это все, что угодно

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
спасибо за разъяснения Буду разбираться

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
https://habrahabr.ru/post/318896/ что скажете?
о, прикольно. а есть кстати живая перезагрузка конфига в viper ещё вроде

Mush
29.09.2017
14:55:08
о, прикольно. а есть кстати живая перезагрузка конфига в viper ещё вроде
там вроде даже вотчер можно поставить на изменения в файле, но это ж просто текстовый файл. перезагрузка кода совсем другого порядка задача )

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-а

Это рабочий подход котоырй много где используется

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