@gogolang

Страница 1485 из 1630
Roman
01.10.2018
01:28:09
simple & consistent IMHO

хотя, наверное надо таки эти 4 пункта в introduction более emphasize’нуть

Max
01.10.2018
01:39:42
как правильно называть тест на func (obj *MyStruct) DoSomething() {} ? что бы go test -cover распознал его как покрытый тестом?

TestDoSomething не работает

Google
Max
01.10.2018
01:40:05
TestMyStruct_DoSomething тоже не работает

Roman
01.10.2018
01:46:45
как правильно называть тест на func (obj *MyStruct) DoSomething() {} ? что бы go test -cover распознал его как покрытый тестом?
ээм, как связаны название теста и coverage кода?? coverage высчитывается по тому какие строчки кода были вызваны в процессе выполнения теста

Max
01.10.2018
01:47:02
понял(

Roman
01.10.2018
01:48:35
TestDoSomething не работает
даже если тест называется TestDoSomething но сама DoSomething нигде при выполнении теста не вызывается - онa, естественно, не будет покрыта, в этом и весь смысл test coverage’а, показать вам что вы тестируете, а что нет.

Max
01.10.2018
01:49:14
понял. думал оно просто сотрит на то какие ф-ции покрыты

Roman
01.10.2018
03:35:15
Опа! Походу я нашёл серьёзную проблему в proposal’е, implicit конвертация mutable в immutable оказывается обязательно нужна: func append(slice []Type, elems ...Type) []Type при данном пропосале должна быть переписана в: func append(slicе [] const Type, elems ...const Type) []Type append не должна изменять ничего кроме переданного слайса, на всё остальное она должна гарантировать иммутабельность однако, сломает весь существующий Go 1.x код, поскольку любой вызов append будет требовать explicit конвертацию в иммутабельные типы: v := []int {1, 2, 3} v = append(v, 4, 5) // Compile-time error // Must be: v = append(const(v), const(4), const(5)) // Compile-time error

поэтому без implicit cast - обратная совместимость с Go 1.x не может быть гарантирована

?
01.10.2018
03:42:43
это печально, надо гарантировать обратную совместимость, а иначе язык превратится в python2

?

@Romshark

Roman
01.10.2018
03:45:21
это печально, надо гарантировать обратную совместимость, а иначе язык превратится в python2
данный proposal не ломает совместимость. То что он фактически ломает её explicit cast’ом - это ошибка, которую надо исправить

Alexey
01.10.2018
05:59:05
потому-что Go не systems programming язык (IMHO), зачем писать интерпретатор на Go ?
Потому что проще всего встроить в Go интерпретатор, способный родным способов вызывать код на Go, если он написан на Go

моё имхо обосновано) но я не понимаю смысл проекта) он серьёзный? или это просто ради фана?
Он серьёзный. Там даже два проекта — сам язык и построение сообщества. Контекст был в докладе на GoWay, в ближайшие дни постараюсь написать текстом

Google
Alexey
01.10.2018
06:01:32
„Gosh is an interpreted language for Go ecosystem written in Go.“ он нацелен решить какие-то конкретные проблемы в экосистеме?
Отсутствие интерпретируемых встраиваемых языков для Go с живым сообществом

Alexey
01.10.2018
06:01:52
Про готовое тоже напишу. Если краткого — нет живого

Vladimir
01.10.2018
06:01:55
Не?

12 дней назад коммит

Вполне живое

Alexey
01.10.2018
06:02:31
Их много разных. Но живых, больше чем с одним активным контрибьютором, особо нет

Alexey
01.10.2018
06:02:54
Ну skylark не про то почти полностью

Vladimir
01.10.2018
06:02:59
Он живой, более 1 контрибьютера

Alexey
01.10.2018
06:03:12
Это не язык программирования :)

Vladimir
01.10.2018
06:03:15
Ну skylark не про то почти полностью
Язык? Язык. Интерпретатор? Интерпретатор. На го? На го

Skylark is a dialect of Python intended for use as a configuration language. Like Python, it is an untyped dynamic language with high-level data types, first-class functions with lexical scope, and garbage collection

Alexey
01.10.2018
06:04:13
Я не хочу делать язык для описания конфигураций

Vladimir
01.10.2018
06:04:46
Я не хочу делать язык для описания конфигураций
Ну это ограниченный сабсет питона

Он не только под конфигурации катит

Alexey
01.10.2018
06:05:11
Первое предложение в твоей собственной цитате

Они не хотят его развивать в язык более общего назначения

Vladimir
01.10.2018
06:06:44
Первое предложение в твоей собственной цитате
Ну при всем при этом там ограничений достаточно мало чтобы он подходил для весомого куска задач общего назначения

Google
Alexey
01.10.2018
06:06:49
Ну и более одного контрибьютора — это очень условно: https://github.com/google/skylark/graphs/contributors

Хорошо, я не буду больше спорить :)

Добавлю только, что я его видел, трогал и общался с Аланом

Vladimir
01.10.2018
06:08:08
Ок)

Alexey
01.10.2018
06:10:22
Сразу тогда напишу, что то же относится к Anko, Neugram, Goby, Agora и к разным вариантам Lisp, Lua и JS

V
01.10.2018
06:52:20
Ого сколько gosh'ей на гитхабе

Oleg
01.10.2018
07:17:16
Всем привет! Расскажите, зачем вообще го нужна?

Alexander
01.10.2018
07:17:54
? Олег в разнос пошел

Denys
01.10.2018
07:18:50
Олег, где макет?

Ivan
01.10.2018
07:23:01
Всем привет! Расскажите, зачем вообще го нужна?
Чтобы проверять, что err не равно nil.

Никита
01.10.2018
07:27:29
@madgopher так в чем плоха модель памяти в Го? Расскажи пожалуйста

Denys
01.10.2018
08:37:13
как назвать функцию

которая результат записывает в мап

ну обычно getSomeShit

если возвращает

а как обозвать assignSomeStat ?

или как

Artem
01.10.2018
08:38:13
add, write, create, update, Append, post

Google
Denys
01.10.2018
08:39:00
writeStatsFromQuery ?

там sql

writeStatsByQuery?

вообще по солид функция которая возвращает записи и которая записывает должны быть разными

но пересоздавать мапу это как то рассточительно

Admin
ERROR: S client not available

Denys
01.10.2018
08:40:33
особенно для статы

Daniel
01.10.2018
08:41:32
Denys
01.10.2018
08:41:55
но хороший нейминг и слабая связность лучше, чем плохой нейминг и слабая связность

put
? как не пришло такое в глову

runQueryAndPutStats хорошо говорит что функция делает

но and свидетельствует о слабой связности

Denys
01.10.2018
08:43:24
ты как будто говоришь о том что херого код пишешь)

set мне кажется меньше подоходит, там словарь, а сет скорей для сколярных переменных

Marperia
01.10.2018
09:14:44
Ещё раз здравствуйте! Не подскажете, как можно реализовать это самое переиспользование *sql.DB? Конкретно сейчас юзкейс довольно простой: 1. Подключаюсь к БД в main() 2. В том же main() стоят http.Handler() на контроллеры, например Registration(w http.ResponseWriter, r *http.Request) 3. В нём проверяются введённые данные и вызывается func (u User) Create() Собственно, как передать *sql.DB в эту функцию? Или где почитать о контекстах?

Мне уже предложили реализовать такой middleware: func RegistrationHandler(db *sql.DB) http.HandlerFunc { return Registration(w http.ResponseWriter, r *http.Request) { //use db db.Query(...) } } Но мне это не особо нравится, хочется либо контекста, либо элегантности.

Илья
01.10.2018
09:16:51
а чем это неэлегантно?

Andrei
01.10.2018
09:17:22
самый простой и элегантный путь

Google
Marperia
01.10.2018
09:18:11
Илья
01.10.2018
09:23:16
То есть, реализовать упрощённую версию ОРМ?
насколько я понял, Андрей про https://golang.org/pkg/net/http/?#Handler, можно реализовать интерфейс Handler, и в самой структуре хранить коннект к бд и прочее

Marperia
01.10.2018
09:23:23
реализуй все хендлеры как методы структуры и храни коннект к базе в этой структуре
Ха, дошло: это скорее предложение реализовать свой фреймворк, чем ОРМ? То есть, свой кастомный вариант контекста, где ядром выступает моя структура и её методы?

Илья
01.10.2018
09:24:45
причем тут ОРМ, и фреймворк я не понял, но вроде бы вы начали думать в правильном направлении

Marperia
01.10.2018
09:25:31
причем тут ОРМ, и фреймворк я не понял, но вроде бы вы начали думать в правильном направлении
Что один, что другой используют структуру как ядро, в котором хранятся все данные и на который навешиваются методы.

Marlik
01.10.2018
09:26:40
@marperia вот так попробуйте https://habr.com/post/329582/ мне понравилось, осталось только привести к божескому виду.

Marperia
01.10.2018
09:27:02
А кто-нибудь знает, как (можно ли) реализовать нечто вроде глобального контекста, чтобы не лезть во все методы и не переписывать нахрен бизнес-логику?

Спойлер: в текущей Б-Л используется db.Close() в каждой сраной функции.

Andrei
01.10.2018
09:27:54
Что один, что другой используют структуру как ядро, в котором хранятся все данные и на который навешиваются методы.
вы можете сделать отдельно структуру App у которой будут реализованны хендлеры, отдельно структуру BD у которой будут реализованны методы работы с базой и первая будет зависть от второй через интерфейс

Maksim
01.10.2018
09:28:10
казалось бы, где связь между бизнесс логикой и db.close)

Andrei
01.10.2018
09:28:35
на самом деле, только таким образом на го и можно построить поддерживаемую кодовую базу

Andrei
01.10.2018
09:29:37
Ну да, но это не то, чтобы решает мою проблему. То есть решает, конечно, но это всё равно переписывание всех методов.
тогда либо фабрики, через которые вы будете прокидывать зависимости в хендлеры, либо глобальные переменные

Marperia
01.10.2018
09:29:54
на самом деле, только таким образом на го и можно построить поддерживаемую кодовую базу
А можно я буду называть себя сеньором, раз постиг этот постулат Дао голанга?

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