Dmitry
Но лучше кодогенерацией, где можно. А рефлексию в крайнем случае
Konstantin
Тк не нужно ничего городить, просто определяешь одну "базовую" функцию и несколько более конкретных, которые вызывают базовую с частью параметров, которые предопределены. Это гораздо лучше, потому что это явно и не добавляет идиом в сам язык
Несколько более конкретных и делают нечто более конкретное. А если функции выполняют пратически одно, за мелкими исключениями, то ради этого городить функцию с другим именем - не самое хорошее и красивое решение)
Konstantin
Не соглашусь, потому что это явно. Экономить буквы в этом случае не стоит
Это не экономия букв, а обычная логика. Функция делает одно и тоже, но получая несколько разные аргументы - зачем делать разные имена? Чуть ли не больше путает)
Konstantin
Но дело вкуса)
Konstantin
Просто печально, что такой элементарной вещи в языке нет)
Daniel
Это не экономия букв, а обычная логика. Функция делает одно и тоже, но получая несколько разные аргументы - зачем делать разные имена? Чуть ли не больше путает)
угу, и если имена одинаковые - ты должен помнить все варианты вызова, чтобы все же понимать, что происходит. а если оно еще тайпкаст автоматический при вызове сделает (а оно сделает), то вообще ребус, а не чтение программы
Konstantin
угу, и если имена одинаковые - ты должен помнить все варианты вызова, чтобы все же понимать, что происходит. а если оно еще тайпкаст автоматический при вызове сделает (а оно сделает), то вообще ребус, а не чтение программы
Что за наркоманом надо быть, чтобы запоминать это все? Нормальные инструменты подкажут всегда тебе где какой аргумент нужен. Это уже не говоря о том, что без разницы - будет две функции a со слегка отличающимися аргументами или функция a и b с тем же самым - запутаться и там и сям сможешь, если структура херовая;)
Daniel
инструменты подскажут, но понимать не помогут.
Konstantin
инструменты подскажут, но понимать не помогут.
Понимать уже голова должна. Если для человека понимание двух функций с почти одим поведением и одним именем проблема - ему от программирования подальше держаться бы)
Мерль
Господь дал им структуры, патттерн builder и параметрические функции, а онни выдумают что-то ещё, нехристи
Alexander
Я б от программирования держал подальше людей которые хотят нагородить абстракций и сложности там где они не нужны
Yehor
чисто русский менталитет - нужно запретить
Alexander
Не забывайте, что если код написан с уровнем сложности X, то чтение его спустя полгода/год – N*X, где N=2 и растёт, при дебаге N=5. Цифры взяты от балды, но они хорошо иллюстрируют проблему
Alexander
Ну и то что написание кода это меньше 10% его лайфтайма – неопытные программисты не знают, опытные почему то иногда не хотят замечать
Konstantin
Вместо простого слова «усложняется» нагородили математических абстракций. Держитесь от программирования подальше :))
Alexander
Чего и вам желаю
Anonymous
Вроде было что-то такое: Пиши код так, как будто после тебя с ним будет работать психопат, который знает, где ты живёшь.
Alexander
ага, я себя таким иногда чувствую когда читаю другой код
Alexander
поэтому глаза немного наливаются кровью, когда слышу рассуждения что перегрузка и слои абстракции – это ок и неочевидный флоу программы – это нормально, потому что тулинг
Anton
ну в го же эти все абстракции намеренно повыкидывали
Anton
тут как бы жаловаться не на что
Alexander
При достаточном желании и сноровке человек способен на многое!
Alexander
Как в питоне, конечно, не развернёшься
Denis
Парни, здесь есть какой-либо порядок публикации вакансий? не хочется флудить..
Konstantin
Roman
Везде есть абстракции. Го не исключение. Просто иногда создают слишком сложную иерархию (классов), тогда уже все печально (
Roman
Кеп
Мерль
Выпуск 096. И их осталось двое · http://golangshow.com/episode/2017/04-14-096/
Alex
Добрый день! Купил сертификат "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. Может кто сталкивался с этим?
Alex
Делал "cat domain_ru.crt comodorsadomainvalidationsecureserverca.crt addtrustexternalcaroot.crt comodorsaaddtrustca.crt > bundle.crt" не заработал после подстановки нового файла
Mikalai
comodorsadomainvalidationsecureserverca что-то мне это название что-то напоминает
Mikalai
invalidation
Alex
cat my_domain.crt COMODORSADomainValidationSecureServerCA.crt AddTrustExternalCARoot.crt COMODORSAAddTrustCA.crt > bundle.crt
Mikalai
ой, что это я )) кароче, смотри через openssl
Denis
Ребят, примерные требования тут: https://spb.hh.ru/vacancy/20110639, если своими словами, проекту один год - легаси нет, web-CRM, web приложения - миркосервисная архитектура, команда не большая 6 человек. проект начинали с PHP 7 сейчас переходим полностью на Golang Redis/RabbitMQ/Consul - если чего-то нет, все равно пишите в личку:) ЗП 100 000 - 150 000
engelbart
без remote как я понял
Konstantin
Получил я страницу с помощью http, у нее в resp.Body вся структура в html, в ней есть форма из которой мне надо получить данные, чтобы послать следующий запрос, как проще всего реализовать?
Anton
Goquery?
Konstantin
Да вот я пока его и смотрю, но интересно может без сторонних либ можно
Konstantin
пусть и более запарно
Konstantin
А в чём смысл?
Не хочется тащить стороннюю либу, в этом и смысл) Но если без этого никак, то придется.
Konstantin
Я так понимаю goquery это как удобная обертка вокруг golang.org/x/net/html. Тогда, пожалуй, на ней и остановлюсь
Максим
@SolidlSnake, кстати, бенчмарки гоняешь?
engelbart
стесняется
Максим
В каком смысле?)
Всмысле, чтобы твой код не только чтоб работал, а чтобы быстро работал
Konstantin
Всмысле, чтобы твой код не только чтоб работал, а чтобы быстро работал
Тогда нет) пока весь мой код работает с чужими серверами)
Максим
ну так можешь сохранить html'ку или что-то там, и гонять
Konstantin
ну так можешь сохранить html'ку или что-то там, и гонять
Запишу в список дел, но пока не принципиально тут, спасибо)
Максим
Запишу в список дел, но пока не принципиально тут, спасибо)
Питонисты тоже говорят, что не принципиально.
Konstantin
Все логично, питониста во мне больше, чем гошника 😀
Konstantin
Хотя питон сам по себе более прожорлив так то
Alex
Так и не разобрался с https. Кто-нибудь подставлял купленные сертификаты?
Alex
Сайты checker ssl пишут " A valid Root CA Certificate could not be located, the certificate will likely display browser warnings."
Alex
вам нужно добавить в цепочку intermediate сертификат
У меня в bundle.crt содержится 4 сертификата: my_domain.crt, COMODORSADomainValidationSecureServerCA.crt, AddTrustExternalCARoot.crt, COMODORSAAddTrustCA.crt . Или еще где-то надо прописывать?
Mr
нет, только bundle подключить
Alex
все норм. получилось
Alex
спасибо
Alex
Еще один вопрос возник) Если у меня на сервере крутятся несколько разных доменов, которые используют 80 порт. Каждый сайт будет отдельным приложением. Через Apache раньше все работало для такой инфраструктуры. А как мне в go сделать чтобы они правильно работали?
🏳️ Phil
Чтобы "крутились"? ))))))))))))
Constantine️
портами разруливай
Slava
нужен прокси, который умеет http разруливать, к примеру nginx
Slava
а все программы уже на своих портах/сокетах
Slava
есть реверс прокси и на го хороший https://github.com/containous/traefik
Slava
это если нужно что посложнее =)
Alex
нужен прокси, который умеет http разруливать, к примеру nginx
Спасибо. Nginx тоже первое, что в голову пришло. Думал, что без посредников можно сделать.
Slava
можно, если держать по интерфейсу на программу, а днс резолвить в интерфейс
Slava
но это.. странно
Dmitry
У меня задача сделать проксирование входящих запросов на определённые url'ы по некоторой логике. К примеру, на входящий запрос /service/data делаю запрос на нужный url+"/data" и ответ от него передаю в ответ. Как элегантно сделать что-то наподобие ResponseWriter.Write(resp)?
Dmitriy
io.Copy ?
Dmitry
Кроме тела ещё заголовки, статус.