Илья
В go нет наследования
Alexander
и DeletedAt тоже делает, если прописывать его так же, как в gorm.Model
Alexander
https://github.com/jinzhu/gorm/blob/master/callback_create.go#L32
MXLTN
еще как устанавливает
Не знаю у меня CreatedAt 000000 пытается записаться когда определен руками
Alexander
там все достаточно примитивно делается
MXLTN
if createdAtField.IsBlank { createdAtField.Set(now) }
MXLTN
что такое IsBlank для time.Time ?
MXLTN
{"error":"Error saving the winner: Error 1292: Incorrect datetime value: '0000-00-00' for column 'created_at' at row 1"}
Alexander
IsBlank = time.Time{}.IsZero()
MXLTN
вот что у меня получается после того как я не трогаю CreatedAt и пытаюсь сохранить его через Save
Alexander
а как CreatedAt описан?
MXLTN
скопирован с Model
MXLTN
CreatedAt time.Time jsonapi:""
MXLTN
CreatedAt time.Time \`jsonapi:""\`
Alexander
че-то магия)
MXLTN
че-то магия)
у меня сериализируется модель в которой CreatedAt из json, но в нем вообще нет createAt аттрибута, те по умолчанию он должен иметь значения Zero после сериализации, и IsEmpty gorm'а должен сработать
MXLTN
IsBlank*
Anonymous
Я пишу на шарпах и го, а они на паскале
Chebyrash
Я пишу на шарпах и го, а они на паскале
ЯП - всего лишь инструмент. База знаний одинаковая.
Chebyrash
Учи Computer Science / Информатику
Alexander
у меня сериализируется модель в которой CreatedAt из json, но в нем вообще нет createAt аттрибута, те по умолчанию он должен иметь значения Zero после сериализации, и IsEmpty gorm'а должен сработать
я предлагаю сначала попробовать записать в базу данных без json. Просто проверить. Просто у меня около 30 сервисов, где подобным образом описаны модели для горма, и все работает как часы
Anonymous
Учи Computer Science / Информатику
Ну ладно, инфа у меня не слабая) А вот матан да
Anonymous
Мне лень (
Artem
Ну ладно, инфа у меня не слабая) А вот матан да
вот кстати даже я не уверен нафига матан программисту в чистом виде, в моем понимание простому прогеру достаточно вот этой математики. И ее можно быстро (относительно) подтянуть https://stepik.org/course/83/syllabus Матан это скорее в ресерче нужно
Anonymous
А там тригонометрия и прочая дичь
MXLTN
кстати кто пользуется каким jsonapi пакетом? я сейчас юзаю "github.com/google/jsonapi" но у него проблема с сериализацией вложеной структуры как attr
Artem
Смотря какой программист.
теория множеств -это по сути понимание оценки сложности. Графы и Деревья, как и вероятсностные методы, хть и не всем нужны, но задачи встречаются всем (пусть редко). без этих знаний решить невозможно. Хотя бы обзорно, чтобы узнать задачу они нужны. Но ок, на самом деле тут все правы, спорить смысла нет, у всех свой опыт и всех все устраивает, пусть будет не всем. По сути всем даже ходить на двух ногах не нужно и видеть достаточно одним глазом.
Chebyrash
А там тригонометрия и прочая дичь
Можешь выучить тригонометрию на практике - разработка игры.
MXLTN
приходится все в relation кидать, а это немного долго обрабатывать на фронте
Artem
Спасибо, но как раз у меня с математикой проблем нет, у нее со мной - иногда, но это уже её проблемы )
Alexander
обязательно проходить первую для второй?
Первая часть - больше основ и особенностей языка. Вторая - практическое применение с конкретными приемами и библиотеками
Vasily
обязательно проходить первую для второй?
не обязательно, но в 1-м же ДЗ вам понадобятся знания из 1-й по кодогенерации. хотя я там приложил и пример тоже
🏁Александр
цените, это достаточно гениально? https://play.golang.org/p/dIc1Tdyjr3T 🙂
🏁Александр
мне просто интересно услышать отзывы о такой система организации запросов
Karey
Почему нет, только лучше вынести создание http клиента куда-нибудь в NewService() например
Aleksey
Маршалить и анмаршалить большие данные структуры можно сразу в райтеры и из ридеров, без выделения излишне памяти https://golang.org/pkg/encoding/json/#NewDecoder и https://golang.org/pkg/encoding/json/#NewEncoder
Denis
func swap(s *[]int) { n := (*s)[len((*s))-1] copy((*s)[1:], (*s)[0:len((*s))-1]) (*s)[0] = n }
это же просто циклический сдвиг массива, зачем тут такая магия. необходимо развернуть часть масива до последнего элемента, а потом весь массив разом. 1 2 3 4 5 -> 4 3 2 1 5 -> 5 1 2 3 4 никаких аллокаций
🏁Александр
Остальное я не понял что это... )
да просто обращение к сервису в ваакуме, просто идею показать 🙂
🏁Александр
я все еще не совсем в гоустиле пишу
🏁Александр
вот и заносит иногда не туда, решил поделиться ради обсуждения
Aleksey
это же просто циклический сдвиг массива, зачем тут такая магия. необходимо развернуть часть масива до последнего элемента, а потом весь массив разом. 1 2 3 4 5 -> 4 3 2 1 5 -> 5 1 2 3 4 никаких аллокаций
Тоже можно в бенчмарк добавить :) мне кажется по процессору в 2 раза тяжелее выйдет, два раза по слайсу бегать, если там тысячи элементов, то заметно будет
Anonymous
Зачем вообще бегать, когда можно это сделать lazy
Aleksey
это же просто циклический сдвиг массива, зачем тут такая магия. необходимо развернуть часть масива до последнего элемента, а потом весь массив разом. 1 2 3 4 5 -> 4 3 2 1 5 -> 5 1 2 3 4 никаких аллокаций
А что тут магического? Запомнить последний элемент, скопировать все элементы на позицию выше, а в нулевой вернуть последний, который запомнили. Как по мне развороты более магичны
🏁Александр
Может поможет погуглить "golang httptest"
покрутил штуку, вроде весело но не понимаю как накрутить ее на свои абстракции 🙂
Aleksey
если надо будет 2 элемента перенести в начало? а если n?
Если больше одного то развороты выгоднее могут быть, но в данной задаче ротация массива
Aleksey
ну это не очень круто читается. разороты это канонический способ циклического сдвига)
Конечно круче мегабайты переставлять то в одну, то в другую сторону )
Sergey
Привет, гогеры !
Aleksandr
Гогеры
Sergey
Народ, дали тестовый таск в компании. За меня кодить не прошу Если кто-то с подобным сталкивался буду рад любому совету/либе/посту и т.п. могу прикрепить файл с данными, если кто-то откликнется, но это уже в личке ! Дано расписание переездов поездов между несколькими станциями в формате “номер поезда;станция отправления;станция прибытия;стоимость;время отправления;время прибытия” (гарантированно, что нет переездов дольше суток). Необходимо получить “лучшие” варианты (несколько, если это возможно) проезда с пересадками между всеми станциями. Какие варианты “лучшие” — нужно выбрать некий критерий. Спасибо !
Daniel
Полный перебор как он есть
Oleh
может можно какую то графовую бд испозовать https://ru.wikipedia.org/wiki/%D0%93%D1%80%D0%B0%D1%84%D0%BE%D0%B2%D0%B0%D1%8F_%D0%B1%D0%B0%D0%B7%D0%B0_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85
Заур
Не знаю как заработает. Строишь ориентированный граф с весами по нашему критерию (стоимость проезда или время), причем вершинами графа будут не просто станции, а станции в конкретное время, когда прибывает хоть один поезд и когда убывает хоть один поезд. И между ними тоже должно быть ориентированное ребро (стоимость ожидания на станции). И находишь через Дейкстри минимальные пути между вершинами. У тебя получится, что ты найдешь группу минимальных путей между двумя станциями. Выбираешь среди них минимальное
Заур
А потом можно искать существование равных минимальных путей таким образом. Пусть у тебя А ,B, C,D вершины, минимальная стоимость между А и D 10, мы хотим найти пути с этой стоимостью. Мы идём из A в B, но там пусть уже стоимость 11, поэтому мы забиваем и не продолжаем поиски. Смотрим из A в С, там стоимость 3, а из C в D, стоимость 7. О мы нашли один путь
Заур
Но это не факт что правильно всё 😂
heavycharged
а в Goland можно как-то тесты сгенерировать для функций?
heavycharged
вроде кто-то писал vscode так умеет, думаю и Goland должен
Slava
А кто-нибудь пользовался MyRocks ?