Roman
поэтому без implicit cast - обратная совместимость с Go 1.x не может быть гарантирована
Co(n)stantine👨‍🔬
это печально, надо гарантировать обратную совместимость, а иначе язык превратится в python2
Co(n)stantine👨‍🔬
😞
Co(n)stantine👨‍🔬
@Romshark
Roman
это печально, надо гарантировать обратную совместимость, а иначе язык превратится в python2
данный proposal не ломает совместимость. То что он фактически ломает её explicit cast’ом - это ошибка, которую надо исправить
Alexey
потому-что Go не systems programming язык (IMHO), зачем писать интерпретатор на Go 🤔
Потому что проще всего встроить в Go интерпретатор, способный родным способов вызывать код на Go, если он написан на Go
Alexey
моё имхо обосновано) но я не понимаю смысл проекта) он серьёзный? или это просто ради фана?
Он серьёзный. Там даже два проекта — сам язык и построение сообщества. Контекст был в докладе на GoWay, в ближайшие дни постараюсь написать текстом
Alexey
„Gosh is an interpreted language for Go ecosystem written in Go.“ он нацелен решить какие-то конкретные проблемы в экосистеме?
Отсутствие интерпретируемых встраиваемых языков для Go с живым сообществом
Alexey
Про готовое тоже напишу. Если краткого — нет живого
Vladimir
Не?
Vladimir
12 дней назад коммит
Vladimir
Вполне живое
Alexey
Их много разных. Но живых, больше чем с одним активным контрибьютором, особо нет
Alexey
Ну skylark не про то почти полностью
Vladimir
Он живой, более 1 контрибьютера
Alexey
Это не язык программирования :)
Vladimir
Ну skylark не про то почти полностью
Язык? Язык. Интерпретатор? Интерпретатор. На го? На го
Vladimir
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
Я не хочу делать язык для описания конфигураций
Vladimir
Я не хочу делать язык для описания конфигураций
Ну это ограниченный сабсет питона
Vladimir
Он не только под конфигурации катит
Alexey
Первое предложение в твоей собственной цитате
Alexey
Они не хотят его развивать в язык более общего назначения
Vladimir
Первое предложение в твоей собственной цитате
Ну при всем при этом там ограничений достаточно мало чтобы он подходил для весомого куска задач общего назначения
Alexey
Ну и более одного контрибьютора — это очень условно: https://github.com/google/skylark/graphs/contributors
Alexey
Хорошо, я не буду больше спорить :)
Alexey
Добавлю только, что я его видел, трогал и общался с Аланом
Vladimir
Ок)
Alexey
Сразу тогда напишу, что то же относится к Anko, Neugram, Goby, Agora и к разным вариантам Lisp, Lua и JS
V
Ого сколько gosh'ей на гитхабе
Oleg
Всем привет! Расскажите, зачем вообще го нужна?
Alexander
😁 Олег в разнос пошел
freezlite
Олег, где макет?
Ivan
Всем привет! Расскажите, зачем вообще го нужна?
Чтобы проверять, что err не равно nil.
.
@madgopher так в чем плоха модель памяти в Го? Расскажи пожалуйста
freezlite
как назвать функцию
freezlite
которая результат записывает в мап
freezlite
ну обычно getSomeShit
freezlite
если возвращает
freezlite
а как обозвать assignSomeStat ?
freezlite
или как
Artem
add, write, create, update, Append, post
freezlite
writeStatsFromQuery ?
freezlite
там sql
freezlite
writeStatsByQuery?
freezlite
вообще по солид функция которая возвращает записи и которая записывает должны быть разными
freezlite
но пересоздавать мапу это как то рассточительно
freezlite
особенно для статы
freezlite
но хороший нейминг и слабая связность лучше, чем плохой нейминг и слабая связность
freezlite
put
👍 как не пришло такое в глову
freezlite
runQueryAndPutStats хорошо говорит что функция делает
freezlite
но and свидетельствует о слабой связности
freezlite
ты как будто говоришь о том что херого код пишешь)
freezlite
set мне кажется меньше подоходит, там словарь, а сет скорей для сколярных переменных
Marperia
Ещё раз здравствуйте! Не подскажете, как можно реализовать это самое переиспользование *sql.DB? Конкретно сейчас юзкейс довольно простой: 1. Подключаюсь к БД в main() 2. В том же main() стоят http.Handler() на контроллеры, например Registration(w http.ResponseWriter, r *http.Request) 3. В нём проверяются введённые данные и вызывается func (u User) Create() Собственно, как передать *sql.DB в эту функцию? Или где почитать о контекстах?
Marperia
Мне уже предложили реализовать такой middleware: func RegistrationHandler(db *sql.DB) http.HandlerFunc { return Registration(w http.ResponseWriter, r *http.Request) { //use db db.Query(...) } } Но мне это не особо нравится, хочется либо контекста, либо элегантности.
Илья
а чем это неэлегантно?
Andrei 🦉
самый простой и элегантный путь
Илья
То есть, реализовать упрощённую версию ОРМ?
насколько я понял, Андрей про https://golang.org/pkg/net/http/?#Handler, можно реализовать интерфейс Handler, и в самой структуре хранить коннект к бд и прочее
Marperia
реализуй все хендлеры как методы структуры и храни коннект к базе в этой структуре
Ха, дошло: это скорее предложение реализовать свой фреймворк, чем ОРМ? То есть, свой кастомный вариант контекста, где ядром выступает моя структура и её методы?
Илья
причем тут ОРМ, и фреймворк я не понял, но вроде бы вы начали думать в правильном направлении
Marperia
причем тут ОРМ, и фреймворк я не понял, но вроде бы вы начали думать в правильном направлении
Что один, что другой используют структуру как ядро, в котором хранятся все данные и на который навешиваются методы.
🎉
@marperia вот так попробуйте https://habr.com/post/329582/ мне понравилось, осталось только привести к божескому виду.
Marperia
А кто-нибудь знает, как (можно ли) реализовать нечто вроде глобального контекста, чтобы не лезть во все методы и не переписывать нахрен бизнес-логику?
Marperia
Спойлер: в текущей Б-Л используется db.Close() в каждой сраной функции.
Andrei 🦉
Что один, что другой используют структуру как ядро, в котором хранятся все данные и на который навешиваются методы.
вы можете сделать отдельно структуру App у которой будут реализованны хендлеры, отдельно структуру BD у которой будут реализованны методы работы с базой и первая будет зависть от второй через интерфейс
Maksim
казалось бы, где связь между бизнесс логикой и db.close)
Andrei 🦉
на самом деле, только таким образом на го и можно построить поддерживаемую кодовую базу