Обновить
1
Андрей Ю. Цветков@yellow79

Технический специалист

Отправить сообщение
Боюсь, вы плохо себе представляете какие проблемы решает context.Context

На мой взгляд, вы забыли про базовые принципы, про простоту, про то, что явное лучше не явного. Все вот эти вот ваши паттерны проектирования оставьте там, откуда вы пришли в Go, они тут не нужны, не нужно пытаться «натягивать сову на глобус», ничего хорошего из этого не выйдет

А какую проблему решает ваш шаблон проектирования?

Один хороший человек(кажется его звали Дэйв) как-то сказал, что любой пакет, если его имя не cmd или internal, должен содержать код, в вашем пакете interfaces я не вижу кода. Так же, этот хороший человек писал, что имя пакета должно отображать назначение, а не содержимое. За отсутствие возможности конфигурировать порт для апишки и данные для соединения с базой хочется выдать отдельный жирный минус. Ну и конечно же, GORM — величайшее зло.
Если функция, принимающая слайс, должна модифицировать этот слайс, то лучше сделать это более явно, то есть данная функция должна возвращать этот самый слайс(ну или новый), как это сделано в функции append. А с такой неявной реализацией изменений вы лишь плодите работу для GC
Спасибо за статью, познавательно. Занимаюсь маркировкой обуви, как-то не задумывался раньше о криптохвостах, но прочитав статью решили провести эксперимент. Взяли реальный код, заменили ему хвост, сгенерили датаматрикс и скормили приложению ЧЗ, которое ответило, что код подлинный. Чудеса да и только. Если с обувью будут такие же «чудеса» как с сигаретами, то чувствую меня ждёт много приятных и запоминающихся моментов в работе.
Глава 6
В нашей программе это создает настоящие проблемы, потому что количество
значений данных в файле неизвестно заранее. На помощь приходят сегменты Go.
Сегменты — разновидность коллекций, которые могут расширяться для хранения
дополнительных элементов; а это как раз то, что нужно!


Сегменты? Серьёзно? Не слайсы?

20 минут назад пришло данное сообщение. Я даже не успел понять, что это было, но было немного тревожно

да, все две тысячи постепенно перевезти на другую сторону, согласно условия задачи
с количеством золота, превышающим его собственное

он не сбежит, так как количество чужого золота не превышает его собственное
с какого перепуга? согласно условий он сбегает если сумма чужих денег выше чем у него, а в данном случае получится сумма равна
Задача 1

Путешественник А перевозит все деньги на другой берег. Далее перевозит путешественника Б, но на обратном пути забирает свою тысячу. Забирает путешественника C, оставив свою тысячу на изначальном берегу, после возвращается за ними.
API IntersectionObserver доступно во всех свежих браузерах за исключением Safari

Работает только в Chrome 51+, Edge 15+, FireFox 51-53
Опера, Сафари и ИЕ не поддерживают это чудо. Но конечно же, это не мешает использовать его во всех остальных.
А почему нельзя создать «демона» который будет обновлять данные в кеше каждые 5, 10, 30 секунд (в зависимости от времени суток или величина нагрузки или по какой-то иной логике), а пользвательские запросы всегда будут брать данные из кеша?
Мне кажется куда проще сделать вот так:
function addScript(arr, target){
	for(var i in arr) {
		var s = document.createElement("script");
		s.type = "text/javascript";
		s.src = arr[i];
		target.appendChild(s);
	}
}
addScript(["JS/example-1.js","JS/example-2.js","JS/example-3.js"], document.body);

Толи регистрация закончилась, толи что-то поломалось
А как же GO и ReactJS?
Или автор не в курсе их существования?
Вынести парсинг шаблона на GO за пределы обработчика запросов

func main() {
t, _ := template.ParseFiles(«index.html»)
http.HandleFunc("/", func (w http.ResponseWriter, r *http.Request) {
p := Page{Var:«hello habr»}
t.Execute(w, p)
});
http.ListenAndServe(":8100", nil);
}

Информация

В рейтинге
Не участвует
Откуда
Люберцы, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Бэкенд разработчик
Ведущий
Golang
Docker
Linux