@gogolang

Страница 1475 из 1630
Roman
28.09.2018
13:47:49
Да, я называю го читабельным, по крайней мере в сравнении с другими яп
и не поддерживаете предложение сделать его ещё более читабельным?

если что-то возращает указатель, можно мутировать ?
да здравствуют баги, о существовании которых мы узнаём тогда, когда уже слишком поздно!

snip
28.09.2018
13:49:44
и не поддерживаете предложение сделать его ещё более читабельным?
Поддерживаю, и поддерживаю иммутабельность, но не поддерживаю const в том виде как он реализован в с++

Google
Алексей
28.09.2018
13:50:14
Ну судя по черновику Go2, в гугле походу насобирали шишки, потанцевали на граблях и заставили менять язык, вводя фичи про которые раньше говорили, что "не нужны". Так что можно и иммутабельность запилить.

snip
28.09.2018
13:52:17
Откуда вот это "не нужны"? 13-й год, один иг го разработчиков предлагает пропозал про иммутабельности слайсы, это как пример позиции коретим Где вы находите утверждения "не нужны"?

Roman
28.09.2018
13:52:22
Изменится в плане учебник от go 1.10 не даст понимания что это за херь и надо переучивать программиста
дайте мне по крайней мере возможность писать правильные библиотеки и правильно писать на Go проекты, без кодогенерации, boilerplate'а и лишних тормозов производительности)) меня учебники и тот факт что других надо переучивать мало волнует потому-что это необязательно, Go 1.x от этого не ломается, пиши как хочешь, но приятнее открывать для себя скорее новые возможности написания более качественного кода, нежели открывать для себя лимитации языка... вы со мной не согласны?)

Откуда вот это "не нужны"? 13-й год, один иг го разработчиков предлагает пропозал про иммутабельности слайсы, это как пример позиции коретим Где вы находите утверждения "не нужны"?
иммутабельные слайсы это исключение из правил, а исключения это совсем не гут. Нужен более consistent дизайн, который я и описал

snip
28.09.2018
14:00:28
Тут кто то предлагала для начала линтер и мне кажется с позиции практической полезности сейчас был бы хороший ход зпилить линтер и возможности метить передаваемые в ыункцию/метод аргументы как имутабельные, хотя бы даже каким нибудь кривым комментом типа //go:immut

иммутабельные слайсы это исключение из правил, а исключения это совсем не гут. Нужен более consistent дизайн, который я и описал
Я не о качестве идеи, а об утверждении что коретим считает иммутабельность ненужной

Roman
28.09.2018
14:01:25
сравнения с другими пропосалами я описал насколько это было возможно по времени (помочь с review и описанием сравнений с другими пропосолами никто пока так и помог, хотя это бы очень приветствовалось)

Илья
28.09.2018
14:01:54
Yo
28.09.2018
14:12:48
сравнения с другими пропосалами я описал насколько это было возможно по времени (помочь с review и описанием сравнений с другими пропосолами никто пока так и помог, хотя это бы очень приветствовалось)
набросай, если не сложно, сюда или в личку список предложений, которые нужно/можно просмотреть для сравнения по возможности попробую

Google
Artem
28.09.2018
14:15:22
good one))
так что иммутабельность пока что дело десятое

Artem
28.09.2018
14:17:35
Неправильно понимаете
а какого качества тогда этот код?

Roman
28.09.2018
14:18:43
набросай, если не сложно, сюда или в личку список предложений, которые нужно/можно просмотреть для сравнения по возможности попробую
https://github.com/golang/go/issues/20443 проработан (но требует проверки) https://github.com/romshark/Go-2-Proposal---Immutability#51-proposal-spec-add-read-only-slices-and-maps-as-function-arguments-20443 —- https://github.com/golang/go/issues/22876 проработан (но требует проверки) https://github.com/romshark/Go-2-Proposal---Immutability#52-proposal-go-2-read-only-types-22876 —- https://github.com/golang/go/issues/23157 ещё не проработан (однако я уже сним ознакомился) —- https://groups.google.com/forum/#!topic/golang-nuts/BnjG3N77Ico это не оффициальный пропосал, но думаю его стоит рассмотреть и линкануть

snip
28.09.2018
14:18:57
Этот код нечитабелен, и про использование unsafe сказано достаточно

Artem
28.09.2018
14:19:49
зачем его тебе читать, это инлайн однострочник

Илья
28.09.2018
14:20:18
на сколько я понимаю, вот это считается сейчас качаственным кодом в го func efaceToInt(eface interface{}) int { return (*(*int)((*[2]unsafe.Pointer)(unsafe.Pointer(&eface))[1])) }
просто Кирилл любит, когда через штанину рукой :) и у него получается быстро, по крайней мере иногда :)

snip
28.09.2018
14:21:09
зачем его тебе читать, это инлайн однострочник
Поэтому утверждение "в го считается качественным" неверно А так то писать можешь как угодно

Artem
28.09.2018
14:22:17
где связь то?

snip
28.09.2018
14:23:20
где связь то?
Качественный в го - говей и работает корректно

Данный код работает корректно но не говэй и нет гарантий что он не поломается при новой версии го

Вот и вся связь

Artem
28.09.2018
14:25:38
ну первое, что такое go way? я знаю только про effective go, в котором только в 1 месте упоминается readable

snip
28.09.2018
14:27:04
Простота и читабельность

Есть ещё всякие факторы, но их немного

Artem
28.09.2018
14:28:01
а можешь цитату скинуть или доклад какой-нибудь, мне интересно откуда все эти мысли пошли

snip
28.09.2018
14:28:18
Есть выступление пайка почему го взлетел, вот там он примерно описывает как они это видят

А вообще про говей и различные моменты почему в го так а не иначе много достаточно выступлений пайка

Есть другие умные мужи пытающинся донести идеи го, но я не вспомню сейчас по памяти ссылок на доклады

Google
Artem
28.09.2018
14:30:58
почему так или иначе это одно, а почему такой код (которого полно в стдлиб) не go way, это другой вопрос

snip
28.09.2018
14:32:29
почему так или иначе это одно, а почему такой код (которого полно в стдлиб) не go way, это другой вопрос
В го есть ансейф и его можно использовать если очень надо, но мы же говорим о "в го считается качественным кодом"

А на счёт стдлиб там есть нехороший код, сейчас меньше, было больше и был прям откровенный говнокод, но что это меняет?

Artem
28.09.2018
14:34:37
это какая-то двуличность, топим за одно, а делаем другое

Илья
28.09.2018
14:35:18
почему так или иначе это одно, а почему такой код (которого полно в стдлиб) не go way, это другой вопрос
такие трюки в стдлиб существуют для того, чтобы не просаживаться в перфомансе, там есть несколько трюков для "обамана" экскейп анализа, пока не сделали его умнее

snip
28.09.2018
14:36:28
это какая-то двуличность, топим за одно, а делаем другое
Нет. Я не видел идеально реализованных проектов, всегда в той или иной степени - компромиссы, но при этом стремиться к хорошему это правильно

Илья
28.09.2018
14:40:05
Этот "обман" та еще хрень, bytes.Buffer уже наобманывался
в стд "обман" чаще всего работал, и его выпиливали, когда завозили оптимизации (string<->[]byte)

а то получается вот так

https://github.com/mailru/easyjson/blob/3fdea8d05856a0c8df22ed4bc71b3219245e4485/jlexer/bytestostr.go

David
28.09.2018
14:59:27
Подскажите, пожалуйста, как работать с import’ами, если использую приватный репозиторий и разрабатываю в докере?

Andrei
28.09.2018
15:01:41
Подскажите, пожалуйста, как работать с import’ами, если использую приватный репозиторий и разрабатываю в докере?
зависимость из приватного репозитория настраивается по разному, в зависимости от используемого пакетного менеджера

David
28.09.2018
15:01:55
dep

Andrei
28.09.2018
15:02:33
dep
https://github.com/golang/dep/blob/master/docs/FAQ.md#how-do-i-get-dep-to-consume-private-git-repos-using-a-github-token

David
28.09.2018
15:03:38
Andrei
28.09.2018
15:04:21
с любым гит репозиторием

Илья
28.09.2018
15:19:08
dep
я просто руками указывал [[override]] name = "my_private_repo" source = "ssh://git@my_private_repo.git" branch = "master"

в Gopkg.lock

или constraint

тогда можно без токенов жить

Google
David
28.09.2018
15:22:35
Окей. Что если у меня есть приватный репозиторий с проектом, я хочу разрабатывать локально в докере и потом пушить в гит. Как подключать просто напросто соседние папки? Нужно подключаться все равно к приватному репозиторию?

Alexey
28.09.2018
15:24:23
Ну, полетели: https://github.com/gosh-lang/gosh

David
28.09.2018
15:25:39
пулите репу, монтируете папку в докер, изменения пушите снаружи
То есть при каждом новом package мне нужно пушить в гит?

Alexander
28.09.2018
15:25:40
Го же сам по себе медленный, зачем на нем ещё интерпретатор другого языка писать?

Admin
ERROR: S client not available

Daniel
28.09.2018
15:25:58
в каком смысле go медленный?

Alexey
28.09.2018
15:26:07
Потому что скорость – не всё

Daniel
28.09.2018
15:26:28
Илья
28.09.2018
15:26:47
То есть при каждом новом package мне нужно пушить в гит?
https://medium.com/statuscode/golang-docker-for-development-and-production-ce3ad4e69673

David
28.09.2018
15:27:16
Daniel
28.09.2018
15:27:36
вы чего хотите, собственно?

Илья
28.09.2018
15:27:45
Я видел, не особо статья
тогда вам стоит просто почитать, что такое докер

вопросов по го я не вижу

David
28.09.2018
15:29:00
Я сделал реп для разработки, но проблема была, что пакеты было не понятно как подключать. Оказывается всегда нужно будет комитить в репозиторий, чтобы мог нормально писать код

Неужели нельзя настроить absolute path на root проекта и подключать от туда пакеты?

Artem
28.09.2018
15:32:23
просто не нужно кодить в докере

блин. а мб тот слитый код аэрофлота на самом деле чья-то иде, парень просто кодил в докере?

Илья
28.09.2018
15:37:38
Google
Roman
28.09.2018
15:48:35
Я переписал пункт 1.1.1. для лучшего понимания проблемы: https://github.com/romshark/Go-2-Proposal---Immutability#111-ambiguous-code-and-dangerous-bugs

F01134H
28.09.2018
16:00:26
Ребяты, есть return type у функции:*typeName, как мне конструкцию execParams := getSpecParams() return &execParams упростить?

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

Andrei
28.09.2018
16:06:11
вроде можно сделать return &(getSpecParams())

Илья
28.09.2018
16:06:33
нельзя

можно сделать функцию обертку, которая вернт typeName

Andrei
28.09.2018
16:06:52
ну значит нельзя, это go way, страдай

anatolii
28.09.2018
16:24:40
Неужели нельзя настроить absolute path на root проекта и подключать от туда пакеты?
в одном проекте у тебя много пакетов, не надо их разделять по разным репам, разве что такая задача изначально стоит

Никита
28.09.2018
19:35:22






Подскажите, в чем проблема? Структура имплементирует интерфейс, но при передачи ее в функцию которая принимает параметром этот интерефейс, выдает что нельзя так

Если передать не просто db, а указатель &db, то все ок

Почему так?

Aleksandr
28.09.2018
19:38:11
Все верно, надо указатель передавать, если в сигнатуре интерфейс

Roman
28.09.2018
19:40:43
Если передать не просто db, а указатель &db, то все ок
потому-что скорее всего не T у вас имплементирует интерфейс а *T, а это такие разные типы

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