
Demiurg
23.06.2017
10:10:27

Aleksandr
23.06.2017
10:11:05

Demiurg
23.06.2017
10:11:31
пропустил

Aleksey
23.06.2017
12:03:35
Подскажите, как правильно реализовать?
Хочу внести измерение в этот пакет https://github.com/tbruyelle/hipchat-go
Суть – возможность задать dafaultBaseUrl (hipchat.go:28) внутри main.

Google

Aleksey
23.06.2017
12:03:53
Ох, люблю превью с гитхаба :)
Логичным решением было бы переписать NewClient, но я не нашёл как сделать не обязательный параметр функции в го, а ломать совместимость не хочу

Aleksandr
23.06.2017
12:08:25

Aleksey
23.06.2017
12:10:27
пиши свой NewClient
Я уже накостылял решение для себя. Хочу оформить нормально и кинуть пулреквест автору. Фича востребована, не люблю такое оставлять"в столе"

Aleksandr
23.06.2017
12:11:05
чтобы не ломать совместимость создай NewClientWithOptions

anton
23.06.2017
12:11:07

Denis
23.06.2017
12:11:21

LexsZero
23.06.2017
12:13:04
NewThing().Foo(5).Bar("optional")

Denis
23.06.2017
12:13:46
java стайл

Aleksandr
23.06.2017
12:14:28

Denis
23.06.2017
12:14:35
в го прижилось NewObj(SetName(), SetAge(), SetSex())

Michael
23.06.2017
12:18:10

Denis
23.06.2017
12:23:47
type Person struct {
Name string
Age int
Sex bool
}
type Option func(*Person)
func NewPerson(opts ...Option) Person {
p := Person{}
for _, o := range opts {
o(&p)
}
return p
}
func Name(name string) Option {
return func(p *Person) {
p.Name = name
}
}
func Age(age int) Option {
return func(p *Person) {
p.Age = age
}
}
func Sex(sex bool) Option {
return func(p *Person) {
p.Sex = sex
}
}

Google

Denis
23.06.2017
12:24:00
в итоге получаем

Nikolay
23.06.2017
12:24:46
имена функций с большой буквы

Denis
23.06.2017
12:24:57
NewPerson(
Name("Pike"),
Age(?),
Sex(true),
)
все остальное остается по дефолту (в реальных кейсах)
Name(First("Rob"), Last("Pike")) more lipsy :)

Michael
23.06.2017
12:31:52
+1 за билдер

Денис
23.06.2017
15:27:55
Товарищи, а в го можно конкатенировать строки через +?
cmd = exec.Command("/path/to/python/script/my_" + script_name + ".py")
Вот так как сверху будет работать?

Sergey
23.06.2017
15:29:06
будет
но не надо

Lev
23.06.2017
15:29:13
а что мешает попробовать?
или ты сразу в продакшн?

Денис
23.06.2017
15:29:53

Sergey
23.06.2017
15:30:14
так ты пробуй скомпилить
а не сразу запускать

Michael
23.06.2017
15:32:09
а потом снова в новостях, что хакеры кого-то там атаковали ?

Sergey
24.06.2017
02:32:39
Ищем Senior Go Developer для этого проекта - https://github.com/cilium/cilium
Full time. Пишите в личку


nn008783
24.06.2017
04:42:25
type Person struct {
Name string
Age int
Sex bool
}
type Option func(*Person)
func NewPerson(opts ...Option) Person {
p := Person{}
for _, o := range opts {
o(&p)
}
return p
}
func Name(name string) Option {
return func(p *Person) {
p.Name = name
}
}
func Age(age int) Option {
return func(p *Person) {
p.Age = age
}
}
func Sex(sex bool) Option {
return func(p *Person) {
p.Sex = sex
}
}
я придирусь чутка, если никто не возражает: я так понял, что sex в данном случае это пол, а не что-то иное. насколько помню (поправьте, если ошибаюсь) тип boolean занимает ровно столько же места, сколько и тип char -- 1 байт. с точки зрения читабельности., мне кажется, что проще все таки использовать char и проверять, является ли он m или f. если нет, то вызывать панику. ну или что-то подобное. как бы придирки, но оно правда было бы читабельней. а то правда какой-то сексизм)))


Daniil
24.06.2017
04:57:54
я придирусь чутка, если никто не возражает: я так понял, что sex в данном случае это пол, а не что-то иное. насколько помню (поправьте, если ошибаюсь) тип boolean занимает ровно столько же места, сколько и тип char -- 1 байт. с точки зрения читабельности., мне кажется, что проще все таки использовать char и проверять, является ли он m или f. если нет, то вызывать панику. ну или что-то подобное. как бы придирки, но оно правда было бы читабельней. а то правда какой-то сексизм)))
Действительно. Тггда остается место для трансов, и прочих гендерных модификаций. Порождение толерантности.

Google

Andrey
24.06.2017
05:34:38
я придирусь чутка, если никто не возражает: я так понял, что sex в данном случае это пол, а не что-то иное. насколько помню (поправьте, если ошибаюсь) тип boolean занимает ровно столько же места, сколько и тип char -- 1 байт. с точки зрения читабельности., мне кажется, что проще все таки использовать char и проверять, является ли он m или f. если нет, то вызывать панику. ну или что-то подобное. как бы придирки, но оно правда было бы читабельней. а то правда какой-то сексизм)))
Ну, вообще есть енамы для таких целей.

nn008783
24.06.2017
06:25:31

Alexey
24.06.2017
06:40:06
я придирусь чутка, если никто не возражает: я так понял, что sex в данном случае это пол, а не что-то иное. насколько помню (поправьте, если ошибаюсь) тип boolean занимает ровно столько же места, сколько и тип char -- 1 байт. с точки зрения читабельности., мне кажется, что проще все таки использовать char и проверять, является ли он m или f. если нет, то вызывать панику. ну или что-то подобное. как бы придирки, но оно правда было бы читабельней. а то правда какой-то сексизм)))
Булеан - разве не 1 бит?

Michael
24.06.2017
06:47:37
в одном байте

Andrey
24.06.2017
06:51:06

anton
24.06.2017
07:05:30
за boolean под sex можно получить по шапке потом.. типа ущемление прав меньшинств

shadowjack
24.06.2017
08:38:34
Посоветуйте книгу/доку чтоб быстро вкатиться (знаю C/++/Java/JS/Python/Ruby/Haskell/Elixir)

Nikolay
24.06.2017
08:43:07
C таким набором вкатиться за день можно

shadowjack
24.06.2017
08:50:42

Admin
ERROR: S client not available

Nikolay
24.06.2017
08:52:24
Спасибо
Еще, кстати, godoc сразу лучше поднять у себя локальный, чтоб всегда под рукой удобные маны были от всех стандартных и установеленных пакетов.

shadowjack
24.06.2017
08:56:10
Ясно, спасибо.

Denis
24.06.2017
13:11:21
я придирусь чутка, если никто не возражает: я так понял, что sex в данном случае это пол, а не что-то иное. насколько помню (поправьте, если ошибаюсь) тип boolean занимает ровно столько же места, сколько и тип char -- 1 байт. с точки зрения читабельности., мне кажется, что проще все таки использовать char и проверять, является ли он m или f. если нет, то вызывать панику. ну или что-то подобное. как бы придирки, но оно правда было бы читабельней. а то правда какой-то сексизм)))
ожидал реакцию на bool чуть пораньше :)
есть подобие
type MyEnumValue int
const (
Enum1 MyEnumValue = iota
Enum2
Enum3
)
но это так, только чтобы получить ошибку во время компиляции на неверный тип
а свое значение все равно можно вставить
откуда вброс?

Google


Georgy
24.06.2017
13:23:38
Подборка чатов Telegram по языкам программирования
https://t.me/proasm — Чат про Assembler
https://t.me/ProCxx — Чат про Си++
https://t.me/CSharpChat — Чат про C#
https://t.me/extremecode — Чат C# разработчиков (есть свой бот компилирующий C# код)
https://t.me/proCrystal — Чат про Crystal. Ruby-подобный статически типизированный объектно-ориентированный язык общего назначения.
https://t.me/proelixir — Чат про Elixir
https://t.me/elm_ru — Чат про язык программирования Elm
https://t.me/Fsharp_chat — Чат про F#.
https://t.me/proGO — Чат про Golang
https://t.me/gogolang — Чат про Golang
https://t.me/haskellru — Чат про Haskell
https://t.me/JSlang — Чат про JavaScript
https://t.me/joinchat/Be4rsT3Uyr1TjmSlrRc77g — Чат про JavaScript (для новичков)
https://t.me/jvmchat — Чат про JVM
https://t.me/javastart — Изучаем java вместе. Чат для начинающих и не только!
https://t.me/scala_ru — Чат про Scala
https://t.me/kotlin_lang — Чат про Kotlin
https://t.me/modernperl — Чат про Perl. Современный::Perl
https://t.me/usePerlOrDie — Группа о языке Perl и обо всём что с ним связано.
https://t.me/ru_python — Чат про Python. (~2250 человек)
https://t.me/propython — Чат про Python. (~320 человек)
https://t.me/javascript_ru — Чат про JavaScript.
https://t.me/css_ru — Чат про CSS и немного HTML
https://t.me/ru_python_beginners — Чат про Python для новичков
https://t.me/rudepython — Грубый чат про Python (для мужиков
https://t.me/phpgeeks — Чат про PHP. (~1400)
https://t.me/phpclubru — Чат про PHP (~450)
https://t.me/prophp7 — Чат про современный PHP (~430 человек)
https://t.me/joinchat/AAtJOjx9l5F9IhkHIIVP9Q — Чат про PHP. Флуд (~200)
https://t.me/proRuby — Чат про Ruby
https://t.me/rubylang — Чат про Ruby и Ruby on Rails
https://t.me/rubyschool — Чат-болталка для учеников руби-школы
https://t.me/rubyata — Бишкекское сообщество Ruby и Ruby on Rails
https://t.me/moscowrb — Московское сообщество Ruby
https://t.me/proRust — Чат про Rust
https://t.me/rustlang_ru — Амбициозный чат по Rust
https://t.me/typescript_ru — Чат про TypeScript и Flow
https://t.me/frp_ru — Функциональное Реактивное Программирование
https://t.me/fp_ru — Чат любителей функциональных языков программирования
https://t.me/eth_ru — Ethereum Developers, Smart Contracts, Эфириум


Andrey
24.06.2017
13:24:43

Denis
24.06.2017
13:28:55
в ТЗ не написано значит не надо

Andrey
24.06.2017
13:29:30

Denis
24.06.2017
13:41:46
В ТЗ много чего обычно не написано. Просто надо отучиться говно писать)
тебе не понравился type Person { Sex bool } ?
Я понимаю, когда человека спрашивают где он работает и он отвечает в маке. Ему говорят "понятно". Тогда человек дополняет, что он там менеджер. Ему важно чтобы люди знали что он именно менеджер
А какой интерес у тебя чтобы поле Sex было типа byte?

Andrey
24.06.2017
13:42:37

Denis
24.06.2017
13:43:17
откуда этой строчке взяться в примере functional options

Roman
24.06.2017
13:43:51
Unisex?

Andrey
24.06.2017
13:44:53
Поэтому почему бы не задействовать возможности компилятора и не запретить это?

Denis
24.06.2017
13:45:24
а как связан пример использования патерна и боевой код?
ты что все паттерны под копирку тянешь
вместе с папкой Examples

Andrey
24.06.2017
13:47:29
Чего? Нет, блин. Я пишу код и кучу проверок к нему, не используя возможности компилятора.
Пусть программисты будут ответственнее и сами проверки пишут.