Slava
доброе утро
Slava
да можно любой крупный проект взять, типа kubernetes, его уже точно раз 6 переписали
Artem
Кое-кто тут не рекомендовал смотреть на код кубера
Co(n)stantine👨‍🔬
@onokonem
Artem
а у docker норм исходники?
Про рефакторинг вот есть статья https://talks.golang.org/2016/refactor.article
Artem
Мб можно на https://github.com/cockroachdb/cockroach посмотреть, правда я сам туда ещё не заглядывал
Vasily
Трансляция митапа Go в продакшене: https://www.youtube.com/watch?v=FCSAqFE1avk Расписание: — 10:30 - 11:00 – Регистрация — 11:00 - 11:10 – Приветственное слово — 11:10 - 11:40 – «Миллиард пушей на Go», Дмитрий Швеенков, Mail.Ru Group​ — 11:40 - 12:10 – «Опыт переезда частей сайта банка с Parser на Go​», Андрей Рацеров, Альфа-Банк​ — 12:10 - 12:40 – «Медиасервер трансляций на GoLang», Михаил Райченко, ВКонтакте — 12:40 - 13:30 – Пицца и нетворкинг — 13:30 - 14:00 – «Два очень разных опыта миграции на Golang. На примере компаний Lazada и Ozon.travel», Юрий Васияров, Ozon.travel — 14:00 - 14:30 – «Как мы начали использовать Go в Ответах@Mail.Ru», Марк Белоцкий, Mail.Ru Group — 14:30 - 15:00 –​ «Опыт перехода Авито.Доставки с Java на Go», Илья Лапин, Сергей Поляков​, Avito — 15:00 - 15:20 –​ Кофе-пауза — 15:20 - 15:50 –​ ​«Pipeline поиска по Почте@Mail.Ru на Go», Виктор Стародуб, Mail.Ru Group — 15:50 - 16:20 –​ ​«Синхронизация данных в Go с помощью mysql binlog​», Артем Желтак, Rambler​ — 16:20 - 16:50 –​ ​​«Переход web-api Почты@Mail.Ru на Go», Василий Романов, Mail.Ru Group Видео без обработки должно быть сразу, нарезанное где-то через месяц.
Vasily
@onokonem @twentydraft коллеги, можно запинить?
Eugenii
Трансляция митапа Go в продакшене: https://www.youtube.com/watch?v=FCSAqFE1avk Расписание: — 10:30 - 11:00 – Регистрация — 11:00 - 11:10 – Приветственное слово — 11:10 - 11:40 – «Миллиард пушей на Go», Дмитрий Швеенков, Mail.Ru Group​ — 11:40 - 12:10 – «Опыт переезда частей сайта банка с Parser на Go​», Андрей Рацеров, Альфа-Банк​ — 12:10 - 12:40 – «Медиасервер трансляций на GoLang», Михаил Райченко, ВКонтакте — 12:40 - 13:30 – Пицца и нетворкинг — 13:30 - 14:00 – «Два очень разных опыта миграции на Golang. На примере компаний Lazada и Ozon.travel», Юрий Васияров, Ozon.travel — 14:00 - 14:30 – «Как мы начали использовать Go в Ответах@Mail.Ru», Марк Белоцкий, Mail.Ru Group — 14:30 - 15:00 –​ «Опыт перехода Авито.Доставки с Java на Go», Илья Лапин, Сергей Поляков​, Avito — 15:00 - 15:20 –​ Кофе-пауза — 15:20 - 15:50 –​ ​«Pipeline поиска по Почте@Mail.Ru на Go», Виктор Стародуб, Mail.Ru Group — 15:50 - 16:20 –​ ​«Синхронизация данных в Go с помощью mysql binlog​», Артем Желтак, Rambler​ — 16:20 - 16:50 –​ ​​«Переход web-api Почты@Mail.Ru на Go», Василий Романов, Mail.Ru Group Видео без обработки должно быть сразу, нарезанное где-то через месяц.
после окончания, оставьте в доступе, пожалуйста воскресенье, надо ребенка выгуливать, ну или она меня
Vasily
Eugenii
данке шон
Alexander
народ, дайте 720p плизз
Co(n)stantine👨‍🔬
😂
Vasily
народ, дайте 720p плизз
Сделали, переключайтесь
Alexander
Ага, спасибо большое
i..
Господа, если я создаю пользовательский тип (type ...) что бы сделать функцию у которой входной аргумент - переменная с моим типом, мне надо метод делать? (ресивер перед названием функции). Как обычно, в скобочках записать не получится? Прост сделал так, а не компилируется, то ли я чёт не вижу, то ли это так и должно быть
i..
Код в песочницу
Спасибо, разобрался, как обычно напутал с указателями
Alexander
а пользовался кто-нибудь https://github.com/mailru/dbr ?
🅁
неа
Danylo
Добрый день, господа, подалуйста помогите, как я могу подсчитать количество файлов с префиксом "Data_", "CGI_" в "Contents" директории? package main import ( "fmt" "io/ioutil" "strings" ) func main() { counter, err := ioutil.ReadDir("C:\\Contents") if err != nil { defer fmt.Println(err) } for _, fcount := range counter { fmt.Println(fcount.Name()) var filesCount = strings.HasPrefix("Data_", fcount.Name()) fmt.Println(filesCount) } } Первая проблема в том что у меня strings.HasPrefix выдает везде false, а должно выдавать false, false, true, true, true, false, true, false, false ... то есть из 15 файлов 4 файла имеют префикс Data_ и 6 файлов имеют префикс CGI_ . Вторая проблема как правильно подсчитать количество файлов с префиксами Data_, CGI_ ? Через count++ или через добавление в массив ?
Aleksandr
полгода мастерил ботнет, а посчитать файлы не может. дОжили
Sebor▂▅▇█▓▒░
Alexander
Ребят, можно ли как-то узнать что приложение скоро крашнется по out of memory? Или нужно самому отслеживать память системы и принимать решения (например свапать данные на диск)?
Anonymous
@rvasily будут ли презентации (документы) доступны после митапа?
Anonymous
Ребят, можно ли как-то узнать что приложение скоро крашнется по out of memory? Или нужно самому отслеживать память системы и принимать решения (например свапать данные на диск)?
Мне всегда казалось, что "следить" за этим надо в другой форме. Определить сколько будет потреблять приложение (по кол-ву подключений, например) и определить сколько памяти на сервере. И оптимизировать либо то, либо другое. Но писать логику для мониторинга - это потеря времени.
Alexander
спасибо
Anonymous
вот тоже подумал, что лучше определить какие-то ограничения на сервере
В mysql, например нужно определить в конфиге верхние границы кол-ва подключений, размера буферов и т.д. и таким образом ограничить кол-во потребляемой памяти
Alexander
чёта докладчики из авито днищенские
Alexander
про sql injectins вообще пипец
Alexey
чёта докладчики из авито днищенские
Вот давайте без этого. Люди выступают, готовятся. За это им уже большой респект. Тем более они джависты
Alexander
Претензия не к докладу, чуваки молодцы. Днищеская часть про "проверяйте что вам приходит а то можете sql инъекцию словить"
Alexander
Вообще то надо все инсерты и апдейты делать через эсккйпы делать
Vasily
Все через плейсхолдеры
Aleksey
и мультиинсерты не быстрее подготовленных запросов, тем-более учитывая подготовку мультиинсерта
Alexander
А что днищевского? Сказали и сказали, че доебался то?
а ты походу херачишь sql запросы as is, плейсхолдеры для слабаков
Alexey
Вообще то надо все инсерты и апдейты делать через эсккйпы делать
в обычных INSERT/UPDATE не склеиваешь строки, а тут это делаешь, и просто между делом напомнили.
Vasiliy
Vasiliy
Там вроде проблемы утечки соединений есть
Aleksey
не замечал
Vasiliy
По крайней мере я с ними сталкивался
Vasiliy
Если один процесс только занимается записью в базу, тогда более-менее все норм, но когда процессов несколько, у базы начинаются весёлые танцы с бубном.
Aleksey
милионы строк инсертятся вложеными подготовленными, месяцами работает, память на уровне
Vasiliy
Мускуль?
Aleksey
ну процессов не так много, да...
Aleksey
у меня мс и мария
Vasiliy
Ладно, встречался с такой проблемой на постгресе.
Vasiliy
Правда с баунсером
Vasiliy
Не мониторил количество коннектов?
Aleksey
нет, надеюсь на ограничение в штатной библиотеке
Pavel
о, ну раз тут ДБшный треп - я правильно понимаю что заранее подготовленный db.Prepare внутрить транзакции запихнуть нельзя?
Mikhail
+1 тоже интересует этот вопрос
Aleksey
внутри транзакции можно создать
Aleksey
подготовленные запросы это на уровне протокола базы
Aleksey
база его в свой внутренний план компилит, а потом по нему принимает только данные и выполняет этот план
Pavel
ну это понятно. но поидее это дополнительные операции... у препереда жеж айдишник, и он вроде как дальше по ид к базе обращается. а тут приходиться заного строги слат, а он их потом парсить будет.... ну даже если из кеша возьмет, то все равно стринг слать в базу....
Aleksey
не просто стринг, а заново базе план выполнения компилить
Aleksey
это время достаточно длительное
Pavel
ну если бд это кеширует (а он кеширует), то просто достанет уже подготовленый план.. но вобщем это не важно. вопрос по препереду заранее...
Pavel
насколько я понимаю это чисто гошное ограничени? или не органичение?
Vasily
Из доки mysql A prepared statement is specific to the session in which it was created. If you terminate a session without deallocating a previously prepared statement, the server deallocates it automatically. Сессия - это коннект до базы. Так что если юзать из многих мест, то можно упереться, там протокол синхронный. С транзакциями наверное каша вообще будет
Pawel
Проблема в том, что не легаси работает так плохо, что аж терпеть невозможно.
если ты про жабопитоны и дотнэты, то люто плюсую и сочувствую юзерам, которые это дело юзают
Aleksey
О каком ограничении речь?
Что подготовленный запрос вне транзакции нельзя в транзакции использовать
Daniel
Это ограничение скрытого пула, скорее
Daniel
Нет гарантии, что транзакция и подготовленный запрос окажутся на одном соединении
Leonid
Митап был для сомневающихся. Для тех, кто уже сидит на го - было скучновато. Повеселила девочка hr, которая просто спрашивала не ищет ли человек работу и давала визитки. Такого я ни разу еще не видел:)
Sebor▂▅▇█▓▒░
Пфф, про hr - тема совсем старая
Leonid
Да не, я не против, она в своем офисе, мы сами пришли, просто раньше не сталкивался.