@gogolang

Страница 233 из 1630
Konstantine
19.04.2017
11:33:36
x := a(params{name: "Adolf", age: 13}) Какие проблемы?
Я говорю, чтобы это было в функциях самих, а не находить обходной путь)

Andrew
19.04.2017
11:33:55
x := a(params{name: "Adolf", age: 13}) Какие проблемы?
Как убедиться, что остальные параметры дефолтные, а не заданы пользователем?

Google
Kirill
19.04.2017
11:35:24
Konstantine
19.04.2017
11:35:58
params struct { a *int } // ... if p.a == nil { // use defaults, Luke }
тобишь если аргументов снова таки море, то должно быть море if'ов, шикарно)

Andrew
19.04.2017
11:36:24
А какая разница?
Например, в функции age равен нулю. Это пользователь передал 0 или он ничего не передал?

Kirill
19.04.2017
11:36:47
нет. хочешь — не делай if'ы. делай как хочешь, понимаешь? хоть рефлектом из мапы дефолты вгружай, хоть что

всем по-фи-гу.

Konstantine
19.04.2017
11:37:40
Например, в функции age равен нулю. Это пользователь передал 0 или он ничего не передал?
Плюс еще, дефолтное значение может быть не обязательно дефолтным в системе. То есть, может мне нужен дефолтный age = 10)

нет. хочешь — не делай if'ы. делай как хочешь, понимаешь? хоть рефлектом из мапы дефолты вгружай, хоть что
зачем вообще влезать в разговор о том как передавать аргументы, если всем пофигу? :)

Kirill
19.04.2017
11:39:51
зачем вообще влезать в разговор о том как передавать аргументы, если всем пофигу? :)
затем, чтобы натолкнуть на мысль, что выбор всё равно останется за тем, как захотелось, а не за тем, как кто-то посоветовал)

Konstantine
19.04.2017
11:40:37
Kirill
19.04.2017
11:41:02
Andrew
19.04.2017
11:41:17
Наставить на истинный путь пофигизма всех, кому не пофиг!

Konstantine
19.04.2017
11:43:45
Используй паттерн Builder
Я думал об этом, но по мне тогда простота, к которой стремлюсь в данном пакете пропадет.

Google
Мерлин
19.04.2017
11:44:19
Konstantine
19.04.2017
11:44:40
Либо сложно, либо уродливо, впрочем ничего нового
как уже сказал - уродливо только пока нет оберток для функции)

Еще, к слову, очень не хватает перегрузки функций)

Konstantine
19.04.2017
15:02:17
Для чего?
для, кто бы подумал, перезагрузки функций. по мне это очень удобно бывает.

corpix
19.04.2017
15:06:34
для, кто бы подумал, перезагрузки функций. по мне это очень удобно бывает.
Перегрузки - сомнительное счастье. Уж лучше это всё неймингом разрулить, как по мне, тк перегрузки это вообще не нужная фича, которая только язык усложняет

Konstantine
19.04.2017
15:08:41
Перегрузки - сомнительное счастье. Уж лучше это всё неймингом разрулить, как по мне, тк перегрузки это вообще не нужная фича, которая только язык усложняет
По мне отличная альтернатива значениям по умолчанию и возможность использовал одно действие по разному. Уж точно лучше чем городить по сути одни функции, но с разными именами. А про усложняет язык разве что в реализации, уж читать и понимать исходники от этого сложнее точно не становится.

*Если делать с умом, разумеется. Но с умом надо все делать, иначе и if можно сделать такой, что язык усложняется, это же не повод отказываться от него

Andrew
19.04.2017
15:12:56
Так можно и до дженериков дойти. ))

Eduard
19.04.2017
15:13:14
кстати как справлятся без них?:

Andrew
19.04.2017
15:13:45
кстати как справлятся без них?:
писать функции под все варианты данных

corpix
19.04.2017
15:13:50
По мне отличная альтернатива значениям по умолчанию и возможность использовал одно действие по разному. Уж точно лучше чем городить по сути одни функции, но с разными именами. А про усложняет язык разве что в реализации, уж читать и понимать исходники от этого сложнее точно не становится.
Тк не нужно ничего городить, просто определяешь одну "базовую" функцию и несколько более конкретных, которые вызывают базовую с частью параметров, которые предопределены. Это гораздо лучше, потому что это явно и не добавляет идиом в сам язык

кстати как справлятся без них?:
Без дженериков? Кодогенерацией, ну или рефлексией

Но лучше кодогенерацией, где можно. А рефлексию в крайнем случае

Konstantine
19.04.2017
15:15:40
Тк не нужно ничего городить, просто определяешь одну "базовую" функцию и несколько более конкретных, которые вызывают базовую с частью параметров, которые предопределены. Это гораздо лучше, потому что это явно и не добавляет идиом в сам язык
Несколько более конкретных и делают нечто более конкретное. А если функции выполняют пратически одно, за мелкими исключениями, то ради этого городить функцию с другим именем - не самое хорошее и красивое решение)

Konstantine
19.04.2017
15:18:13
Не соглашусь, потому что это явно. Экономить буквы в этом случае не стоит
Это не экономия букв, а обычная логика. Функция делает одно и тоже, но получая несколько разные аргументы - зачем делать разные имена? Чуть ли не больше путает)

Но дело вкуса)

Просто печально, что такой элементарной вещи в языке нет)

Google
Daniel
19.04.2017
15:46:41
Это не экономия букв, а обычная логика. Функция делает одно и тоже, но получая несколько разные аргументы - зачем делать разные имена? Чуть ли не больше путает)
угу, и если имена одинаковые - ты должен помнить все варианты вызова, чтобы все же понимать, что происходит. а если оно еще тайпкаст автоматический при вызове сделает (а оно сделает), то вообще ребус, а не чтение программы

Konstantine
19.04.2017
15:50:16
угу, и если имена одинаковые - ты должен помнить все варианты вызова, чтобы все же понимать, что происходит. а если оно еще тайпкаст автоматический при вызове сделает (а оно сделает), то вообще ребус, а не чтение программы
Что за наркоманом надо быть, чтобы запоминать это все? Нормальные инструменты подкажут всегда тебе где какой аргумент нужен. Это уже не говоря о том, что без разницы - будет две функции a со слегка отличающимися аргументами или функция a и b с тем же самым - запутаться и там и сям сможешь, если структура херовая;)

Daniel
19.04.2017
15:51:57
инструменты подскажут, но понимать не помогут.

Konstantine
19.04.2017
15:53:15
инструменты подскажут, но понимать не помогут.
Понимать уже голова должна. Если для человека понимание двух функций с почти одим поведением и одним именем проблема - ему от программирования подальше держаться бы)

Мерлин
19.04.2017
16:02:50
Господь дал им структуры, патттерн builder и параметрические функции, а онни выдумают что-то ещё, нехристи

Alexander
20.04.2017
09:52:12
Я б от программирования держал подальше людей которые хотят нагородить абстракций и сложности там где они не нужны

Egor
20.04.2017
09:53:40
чисто русский менталитет - нужно запретить

Alexander
20.04.2017
09:55:59
Не забывайте, что если код написан с уровнем сложности X, то чтение его спустя полгода/год – N*X, где N=2 и растёт, при дебаге N=5. Цифры взяты от балды, но они хорошо иллюстрируют проблему

Ну и то что написание кода это меньше 10% его лайфтайма – неопытные программисты не знают, опытные почему то иногда не хотят замечать

Konstantine
20.04.2017
10:59:36
Вместо простого слова «усложняется» нагородили математических абстракций. Держитесь от программирования подальше :))

Alexander
20.04.2017
11:32:22
Чего и вам желаю

Andrew
20.04.2017
11:33:11
Вроде было что-то такое: Пиши код так, как будто после тебя с ним будет работать психопат, который знает, где ты живёшь.

Alexander
20.04.2017
11:46:33
ага, я себя таким иногда чувствую когда читаю другой код

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

Anton
20.04.2017
11:50:00
ну в го же эти все абстракции намеренно повыкидывали

тут как бы жаловаться не на что

Alexander
20.04.2017
11:59:37
При достаточном желании и сноровке человек способен на многое!

Как в питоне, конечно, не развернёшься

Den
20.04.2017
12:04:12
Парни, здесь есть какой-либо порядок публикации вакансий? не хочется флудить..

Google
Мерлин
20.04.2017
12:09:59
Konstantine
20.04.2017
12:16:22
Roman
20.04.2017
13:01:49
Везде есть абстракции. Го не исключение. Просто иногда создают слишком сложную иерархию (классов), тогда уже все печально (

Кеп

Мерлин
20.04.2017
13:43:12
Выпуск 096. И их осталось двое · http://golangshow.com/episode/2017/04-14-096/

Aleksander
20.04.2017
14:46:47
Добрый день! Купил сертификат "Comodo PositiveSSL". Поднял сервис: http.ListenAndServeTLS(":8443", "domain_ru.crt", "domain_ru.pkey", m) В браузере все работает. Но сервисы telegram и facebook не работают. В консоли вижу ошибку "http: TLS handshake error from 66.220.152.141:45584: remote error: tls: unknown certificate authority" Возможно, требуется прописать корневые сертификаты Comodo. Может кто сталкивался с этим?

Aleksander
20.04.2017
14:49:28
Делал "cat domain_ru.crt comodorsadomainvalidationsecureserverca.crt addtrustexternalcaroot.crt comodorsaaddtrustca.crt > bundle.crt" не заработал после подстановки нового файла

Mikalai
20.04.2017
14:50:21
comodorsadomainvalidationsecureserverca что-то мне это название что-то напоминает

invalidation

Aleksander
20.04.2017
14:50:55
cat my_domain.crt COMODORSADomainValidationSecureServerCA.crt AddTrustExternalCARoot.crt COMODORSAAddTrustCA.crt > bundle.crt

Mikalai
20.04.2017
14:51:57
ой, что это я )) кароче, смотри через openssl

Den
20.04.2017
15:00:13
Ребят, примерные требования тут: https://spb.hh.ru/vacancy/20110639, если своими словами, проекту один год - легаси нет, web-CRM, web приложения - миркосервисная архитектура, команда не большая 6 человек. проект начинали с PHP 7 сейчас переходим полностью на Golang Redis/RabbitMQ/Consul - если чего-то нет, все равно пишите в личку:) ЗП 100 000 - 150 000

Ivan
20.04.2017
16:09:12
без remote как я понял

Konstantine
20.04.2017
16:15:47
Получил я страницу с помощью http, у нее в resp.Body вся структура в html, в ней есть форма из которой мне надо получить данные, чтобы послать следующий запрос, как проще всего реализовать?

Anton
20.04.2017
16:17:18
Goquery?

Konstantine
20.04.2017
16:17:42
Да вот я пока его и смотрю, но интересно может без сторонних либ можно

пусть и более запарно

Google
Konstantine
20.04.2017
16:19:30
А в чём смысл?
Не хочется тащить стороннюю либу, в этом и смысл) Но если без этого никак, то придется.

Я так понимаю goquery это как удобная обертка вокруг golang.org/x/net/html. Тогда, пожалуй, на ней и остановлюсь

/dev/m
20.04.2017
17:38:13
@SolidlSnake, кстати, бенчмарки гоняешь?

Konstantine
20.04.2017
17:40:11
Ivan
20.04.2017
17:40:59
стесняется

/dev/m
20.04.2017
17:41:02
В каком смысле?)
Всмысле, чтобы твой код не только чтоб работал, а чтобы быстро работал

Konstantine
20.04.2017
17:42:23
Всмысле, чтобы твой код не только чтоб работал, а чтобы быстро работал
Тогда нет) пока весь мой код работает с чужими серверами)

/dev/m
20.04.2017
17:43:12
ну так можешь сохранить html'ку или что-то там, и гонять

Konstantine
20.04.2017
17:46:49
ну так можешь сохранить html'ку или что-то там, и гонять
Запишу в список дел, но пока не принципиально тут, спасибо)

Konstantine
20.04.2017
17:52:12
Все логично, питониста во мне больше, чем гошника ?

Хотя питон сам по себе более прожорлив так то

Aleksander
20.04.2017
18:16:40
Так и не разобрался с https. Кто-нибудь подставлял купленные сертификаты?

Сайты checker ssl пишут " A valid Root CA Certificate could not be located, the certificate will likely display browser warnings."

Mr
20.04.2017
18:30:57
Так и не разобрался с https. Кто-нибудь подставлял купленные сертификаты?
вам нужно добавить в цепочку intermediate сертификат

Aleksander
20.04.2017
18:40:00
вам нужно добавить в цепочку intermediate сертификат
У меня в bundle.crt содержится 4 сертификата: my_domain.crt, COMODORSADomainValidationSecureServerCA.crt, AddTrustExternalCARoot.crt, COMODORSAAddTrustCA.crt . Или еще где-то надо прописывать?

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