Недавно я присоединился к новой команде и был поражен созданной у них инфраструктурой тестирования для успешной работы приложений. Для меня это было большой переменой: я не привык к такой манере «тестирования».
С тестированием уровня данных связаны миграции БД. С базами данных я работаю на протяжении всей своей карьеры инженера-разработчика и все же задался вопросом: «Что это за миграции БД?»
Рассмотрим применение миграций БД в службах, написанных на Golang.
Что такое «миграции БД»?
Вот определение из prisma.io:
📌Читать
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱8👍6🔥2❤1
https://www.youtube.com/watch?v=Lkg_fXoeKTI
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤3🔥3
💡Задача: Максимальное скользящее
Условие: дан целочисленный массив, а также размер k подмассива, начинающегося от левой границы, и заканчивающегося в процессе выполнения алгоритма у правой границы. На каждом шаге можно просматривать k последовательных элементов скользящего массива. На каждом шаге надо определить максимальное значение скользящего.
Пример:
Ввод: nums = [1,3,-1,-3,5,3,6,7], k = 3
Вывод: [3,3,5,5,6,7]
Объяснение:
Скользящее на каждой итерации Max
-------------------------- -----
[1 3 -1] -3 5 3 6 7 3
1 [3 -1 -3] 5 3 6 7 3
1 3 [-1 -3 5] 3 6 7 5
1 3 -1 [-3 5 3] 6 7 5
1 3 -1 -3 [5 3 6] 7 6
1 3 -1 -3 5 [3 6 7] 7
Ввод: nums = [1], k = 1
Вывод: [1]
Решение
Пишите свое решение в комментариях👇
@golang_interview
Условие: дан целочисленный массив, а также размер k подмассива, начинающегося от левой границы, и заканчивающегося в процессе выполнения алгоритма у правой границы. На каждом шаге можно просматривать k последовательных элементов скользящего массива. На каждом шаге надо определить максимальное значение скользящего.
Пример:
Ввод: nums = [1,3,-1,-3,5,3,6,7], k = 3
Вывод: [3,3,5,5,6,7]
Объяснение:
Скользящее на каждой итерации Max
-------------------------- -----
[1 3 -1] -3 5 3 6 7 3
1 [3 -1 -3] 5 3 6 7 3
1 3 [-1 -3 5] 3 6 7 5
1 3 -1 [-3 5 3] 6 7 5
1 3 -1 -3 [5 3 6] 7 6
1 3 -1 -3 5 [3 6 7] 7
Ввод: nums = [1], k = 1
Вывод: [1]
Решение
Пишите свое решение в комментариях👇
@golang_interview
❤5👍2🔥1
💡Задача: Сжатие строки
Условие: дается массив символов chars, сожмите его, используя следующий алгоритм:
Начинайте с пустой строки s. Для каждой группы последовательных повторяющихся символов в chars:
Если длина группы равна 1, добавьте символ для просмотра.
В противном случае добавьте символ, за которым следует длина группы.
Сжатые строки не должны возвращаться отдельно, а вместо этого должны храниться во входном символьном массиве chars. Обратите внимание, что длина группы, равная 10 или более, будет разделена на несколько символов в chars.
После того, как вы закончите изменять входной массив, верните новую длину массива.
Вы должны написать алгоритм, который использует только постоянное дополнительное пространство.
Пример:
Ввод: chars = ["a","a","b","b","c","c","c"]
Вывод: Return 6, and the first 6 characters of the input array should be: ["a","2","b","2","c","3"]
Решение
Пишите свое решение в комментариях👇
@golang_interview
Условие: дается массив символов chars, сожмите его, используя следующий алгоритм:
Начинайте с пустой строки s. Для каждой группы последовательных повторяющихся символов в chars:
Если длина группы равна 1, добавьте символ для просмотра.
В противном случае добавьте символ, за которым следует длина группы.
Сжатые строки не должны возвращаться отдельно, а вместо этого должны храниться во входном символьном массиве chars. Обратите внимание, что длина группы, равная 10 или более, будет разделена на несколько символов в chars.
После того, как вы закончите изменять входной массив, верните новую длину массива.
Вы должны написать алгоритм, который использует только постоянное дополнительное пространство.
Пример:
Ввод: chars = ["a","a","b","b","c","c","c"]
Вывод: Return 6, and the first 6 characters of the input array should be: ["a","2","b","2","c","3"]
Решение
Пишите свое решение в комментариях👇
@golang_interview
👍6🔥2❤1
💡Задача: Сортировка массива
Условие: дается массив целых чисел nums, отсортируйте массив в порядке возрастания и верните его.
Вы должны решить проблему без использования каких-либо встроенных функций в O(nlog(n)) временной сложности и с наименьшей возможной пространственной сложностью.
Пример:
Ввод: nums = [5,2,3,1]
Вывод: [1,2,3,5]
Ввод: nums = [5,1,1,2,0,0]
Вывод: [0,0,1,1,2,5]
Решение
Пишите свое решение в комментариях👇
@golang_interview
Условие: дается массив целых чисел nums, отсортируйте массив в порядке возрастания и верните его.
Вы должны решить проблему без использования каких-либо встроенных функций в O(nlog(n)) временной сложности и с наименьшей возможной пространственной сложностью.
Пример:
Ввод: nums = [5,2,3,1]
Вывод: [1,2,3,5]
Ввод: nums = [5,1,1,2,0,0]
Вывод: [0,0,1,1,2,5]
Решение
Пишите свое решение в комментариях👇
@golang_interview
👍4❤2👎2🤯2🥰1
Салют, эксперты Go!
❓ Вопрос: какой из этих 2 вариантов предпочтительнее?
Стоит ли делать переменную
Или пусть это всё так и будет в
Что думаете по этому поводу?
@golang_interview
Стоит ли делать переменную
port
глобальной и вместе с этим вынести проверку порта в init()
? Или пусть это всё так и будет в
main()
?Что думаете по этому поводу?
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🤡18👍4❤1👎1🔥1
🔗 eecs376.github.io/notes/algorithms.html
Прокачивайся — и тогда ИИ тебя не заменит)
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13❤3👍2
Вместе с Templ мы можем написать следующий код:
/ index.templ
package mainhttps://github.com/a-h/templ/raw/main/ide-demo.gif
templ hello(name string) {
if name == "Виктор" {
<div>Привет, Виктор! Как твои дела сегодня?</div>
} else {
<div>Hello, { name }</div>
}
}
templ greeting(person Person) {
<div class="greeting">
@hello(person.Name)
</div>
}
// ...
Далее вам просто нужно запустить процесс генерации всех
*.templфайлов
...:go run github.com/a-h/templ/cmd/templ@latest generate
...и после этого
index.templ
будет преобразована в обычную функцию Go и готоа к запуску. Выглядеть она может как-то так: // main.go
package main
// ...
// Simple user struct.
type Person struct {
Name string
}
func main() {
// Create a new user with name.
user := Person{Name: "John"}
// Create Templ handler.
handler := templ.Handler(greeting(user))
// Serve Templ handler with HTTP server.
http.Handle("/", handler)
// Start simple HTTP server.
http.ListenAndServe(":3000", nil)
}
Теперь откройте браузер
http://localhost:3000
и посмотрите результат.Да, это так просто!
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🥴10🔥4❤3🤡1
Креативный способ прокачать скиллы и получить +1 проект в портфолио
Про весь процесс создания, с подробным описанием и примерами читать тут
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥3❤1🤔1🤩1
Напиши функцию на Go, которая будет принимать слайс целых чисел и возвращать новый слайс, содержащий только уникальные элементы исходного слайса. При решении задачи используй только встроенные пакеты языка Go.
Написал?
Можешь смотреть один из вариантов решения
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥4❤3❤🔥1
И ещё некоторые важные требования к техническим системам в плане отказоустойчивости и т.д. на другом изображении
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤3🥱3🔥2
Напиши программу, которая будет читать файл и выводить топ 10 самых часто встречающихся слов.
Написал? Тогда можешь смотреть решение; оно специально не самое оптимальное, так что предлагай свой вариант кода в комментах
Данное решение использует передачу файла как аргумента командной строки, поэтому
go run <файл.go> <файл.txt>
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤2🔥1😁1
💡 Топ 150 задач c собеседований.
Это большой списиок самых популярных задач, которые спрашивают на собесах.
Задачи, которые покрывают 90% задач, структур данных, алгоритмов которые спрашивают на собеседованиях.
📂 Список
@golang_interview
Это большой списиок самых популярных задач, которые спрашивают на собесах.
Задачи, которые покрывают 90% задач, структур данных, алгоритмов которые спрашивают на собеседованиях.
📂 Список
@golang_interview
👍14❤2🔥2