Тех собес на Golang Developer в ****

Доступно с премиум-подпиской

Оформите премиум-подписку, чтобы получить доступ к:

  • Фильтрации по компаниям
  • Названиям компаний в интервью
  • Видеозаписям собеседований
(2025-01-20)

Задачи

1.

отсортировать (руками)

package main

import "fmt"

func main() {
	slice := []string{"a", "b", "d", "c", "f", "e"}

	usort(slice)
	
	fmt.Printf("%+vn", slice)
}

2.

//Есть поток данных, в виде идентификаторов отелей, для каждого отеля нужно сделать поисковый запрос (запрос выполняется
//минимум 500ms) и отправить результаты в другой поток.

type SearchResult struct {
  HotelID int
}

func main() {
  dataCh := make(chan int)
  
  go func() {
    for i := 0; i <= 10; i++ {
      dataCh <- i
    }
    defer close(dataCh)
  }()

func search(hotelID int) SearchResult {
  time.Sleep(time.Millisecond * 500)
  return SearchResult{
    HotelID: hotelID,
  }
}

В конце предложили попробовать сисдиз реализовать.

Есть сервисы Card/SBP/Coupon у которых есть своих хранилища и они могут отдавать информацию по платежам (как по конкретному, так и список с пагинацией и т д). Есть личный кабинет пользователя, в котором он видит список всех своих платежей (по всем видам платежей), где в карточке платежа ограниченная информация по нему и ссылка на страницу с более подробной информацией. Необходимо разработать архитектуру взаимодействия сервисов между собой для оптимального решения этой задачи. Упрощение — один платеж = один тип платежа (смешанные не рассматриваем, например купон + карта, такое опускаем)