• Как организовать тесты в пакетах вида адаптер?

    Aco
    @Aco Автор вопроса
    Евгений Мамонов, пытаюсь распутать зависимости, там черт ногу сломит. но в целом только такой подход поможет. еще для повтора тестов изучаю возможность перезапуска тестов вручную через TestMain

    var repo Repository
    
    func TestMain(m *testing.M) {
    	repo = NewRedisRepo(/* ... */)
    	code = m.Run()
            if code > 0 {
                os.Exit(code)
            }
    	repo = NewMongoDBRepo(/* ... */) 
    	code := m.Run()
    	os.Exit(code)
    }
  • Как организовать тесты в пакетах вида адаптер?

    Aco
    @Aco Автор вопроса
    А как у вас не случается циклической зависимости? repo/mongodb импортурует repo, а repo/repo_test.go будет обратно тащить repo/mongodb. это приводит к ошибке. Или у вас адаптеры repo/mongodb не зависят от repo?
  • Как обойти ошибку?

    Видимо x_start - глобальная переменная (сам не спец питона)
  • Gitlab CI и Unit тесты?

    CenterJoin, есть такая проблема с шареными раннерами, там надо самому композер ставить https://docs.gitlab.com/ee/ci/examples/php.html#us...
  • Как подключиться к базе данных mongodb?

    mongodb+srv подразумевает что информация о кластере/реплике хранится в TXT записях домена. И судя по ошибке есть какая-то проблема с чтением записей домена. Тут либо временная проблема у монговских днс, либо домен еще не создался. Лучше копнуть через dig домен.
  • Как изменить имя файла при загрузке?

    Товарищ выше имеет ввиду дать другое имя фала в move_uploaded_file()
  • Как работать с сессиями в php?

    Ясно, аргументации у Вас нет. Оно и понятно — Вы об этом ничего не знаете. Этих данных в интернете не найдёте, так как это из личного опыта, отчего и предупреждаю. Рекомендую Вам всё-таки идти в энтерпрайзы или в продуктовые компании, на галерах/фрилансах многому не научитесь.
  • Как работать с сессиями в php?

    Пф, session_cache_limiter() отключит Cache-Control и варнинги. Ищется в лёгкую. Думал что хотя бы до этого сами додумаетесь. Кажется, переоценил вас.

    Может всё-таки расскажете в чем плохого самим управлять сессиоными куками? Да и сессией в целом? А заодно опровергните проблемы сессий, которые я перечислил, на которые вы так активно возбудились? О неси знания всем, "дедуля"!
  • Как работать с сессиями в php?

    Полагаю это не весь код? Проверь все include() выше, возможно затисался пробел перед <? или после ?>. А так же проверьте, если у вас кодировка UTF8, что она без BOM.
  • Как работать с сессиями в php?

    FanatPHP, не умеете вы анализировать ответы? Включите голову. Автоотправку заголовков (кук) можно выключить, но самим ставить куку сессии когда это удобнее для вас. То что вы не знаете минусов нативных сессий - это ваш недостаток как разработчика. Я не стал рассказывать про проблемы так как это офтоп - так как тема про другое. Спросили бы - рассказал. Но так как у Вас уже пригорело, то отвечу более развернуто, специально для Вас.

    Суть совета: отключить отправку заголовков при session_start() и самим ставить куку c ID сессии там где это удобно.

    Проблемы сессий:
    1) Что будет с сессией если одновременно N вкладок браузера начнут загрузку страницы с одной сессией (допустим браузер перезагрузили)? Какая "вкладка" будет работать с сессией? А какие "вкладки" будут ждать пока другая "вкладка" перестанет работать с сессией? Что произойдёт с fpm/apache когда из-за ожидающих "вкладок" кончатся воркеры? Кто будет отвечать за залипший сервер?
    2) Нативные сессии не масштабируются (так как хранятся локально), если сразу не учесть масштабирование то потом Ваш "чудо" проект проще будет отправить в помойку. Сессии можно писать в редис, например. В редисе, используя хеш-структуры можно менять значения по ключам, а не всей сессии, как сейчас. Собственно из-за чего лочится сессия при при работе с ней.
    3) Сессия вмешивается в заголовки кеширования, вставляя свои значения в Cache-Control и Expires

    Ну как-то так. Я тут похоливарить прихожу, что уж ¯\_(ツ)_/¯. А вообще у товарища, походу, проблема скорее всего в другом. Отпишусь отдельно
  • Какой подробный туториал по backend вы можете посоветовать?

    Макс, если хотите в будущем стать true-бекендером то нужно изучить список всей той дичи что встречается в бекенде
  • Есть ли нормальные книги по backend на java?

    Бекенд очень большой пласт, взглянув сюда уже ясно что знание java/go/c/другого языка важное, но не главное в бекенде
  • Стоит ли использовать fasthttp для создания библиотеки по работе с json API?

    Mikkkch, а Вы используете HTTP2? Почему спрашивают, скоро уже будет HTTP3 (типо HTTP2 по UDP) который даст хорошую производительность таким приложениям как, например, онлайн игры. В net/http уже идёт работа по HTTP3. Сейчас, да, fasthttp то что вам надо, но если смотреть дальше, то тут не всё так однозначно.

    Если коротко: в вашем случае (если не используете HTTP2) то сразу брал бы fasthttp, но код писал так что бы было можно легко метнуться к net/http в случае чего.
  • Как исправить дубликацию данных в mongodb?

    что значит "исправить"? перезаписать дубль? обновить дубль? удалить дубль? не допустить дублей? Так-то, как сказали ниже, upsert поможет
  • Это нормально что макбук про 16 i7 нагревается к такой температуры?

    lamer350, про то что ноут новый действительно не заметил, подумал что макбук про 16 это про год выпуска, мой косяк.
    искретка включается только тогда когда мощностей встройки не хватает, растр, вектор или видеофайл - значения вообще не имеет!

    ну приехали, дискретка вообще в коде по флагу включается. как по вашему нейронки гоняют на маках, не на CPU же. И большинство, включая фотошоп, софта с графикой/видео/аудио включают GPU просто потому что могут (для отслеживания можно смотреть в "Мониторе", нажав там ⌘4 либо поставить, уже устаревший, gfxCardStatus). Даже почта иногда накой-то ляд включает GPU (как-то следил какого черта у меня GPU в ожидании прыгает)

    Корпус 110 градусов - это ожог 2ой степени. И пластик снизу уже не помогает ибо метал всё-равно есть - прощайте ноги.

    Так же GPU врубает просто подключенный второй экран, причем прогружается GPU не слабо, что даёт не плохую температуру.
  • Какой connection pool использовать?

    Aco
    @Aco Автор вопроса
    Как это может помочь? Коннектов-то "на руках" нету
  • Какой connection pool использовать?

    Aco
    @Aco Автор вопроса
    Евгений Самсонов, только на idle которые как раз и должны быть положены в pool так как не используются. Рассмотрим штатный keep-alive на http/1.1+: запрос завершился, коннект жив и убивать его не надо еще 1 минуту (idle timeout). Коннект кладётся в пул как не нужный, но сам коннект еще живой. При приходе очередного http запроса по коннекту он изымается из пула.
    И вот когда надо прикончить сервер, бежишь по пулу idle (не нужных) и "отстреливаешь" коннекты, всё просто.

    Это с пулом. А без пула появляются они - баги и попаболь. Так как idle коннекта на руках нету и дотянутся до него нет возможности то при shutdown закрыть его нет возможности - коннекты живы, здравствуют и, что паршиво, принимают запросы. НО клиенты/браузеры не в курсе что у тебя shutdown - они шлют запрос в keep-alive idle коннект.
    И тут выходит что у нас вроде как shutdown, но по коннектам прилетают запросы.

    Тут 2 пути и оба стрёмные: обрабатывать и оттягивать время shutdown сервера еще сильнее, либо забить на них и ответит в стиле 500 или тупо порвать соединение (при событии на коннекте срабатывает коллбек у net/http или fasthttp в котором можно их "прибить").