8. Конкурентность – приложение должно быть масштабируемым и поддерживать параллельное выполнение с использованием процессов.
9. Обработка ошибок – ошибки должны быть обрабатываться через логи, а не через сложные механизмы восстановления состояния.
10. Репликация процессов – приложение должно поддерживать репликацию процессов, чтобы обеспечивать отказоустойчивость.
11. Документация – необходимо поддерживать документацию для быстрого развертывания приложения.
12. Тестирование и производство – код должен быть готов к тестированию и запуску на производстве с минимальными усилиями.
Please open Telegram to view this post
VIEW IN TELEGRAM
Для улучшения производительности в случае частых склеиваний рекомендуется использовать strings.Builder, который оптимизирует процесс и минимизирует лишние аллокации.
Пример с strings.Builder:
var builder strings.Builder
for i := 0; i < 1000; i++ {
builder.WriteString("x")
}
result := builder.String()
Это значительно эффективнее, чем использование оператора «+» в цикле.
Please open Telegram to view this post
VIEW IN TELEGRAM
В Go для работы со строками используются следующие подходы:
1. Конкатенация: Строки можно склеивать с помощью оператора +, но это неэффективно при многократных операциях.
s := "Hello, " + "world!"
import "strings"
lower := strings.ToLower("HELLO") // "hello"
var builder strings.Builder
builder.WriteString("Hello")
result := builder.String() // "Hello"
b := []byte("Hello")
b[0] = 'h'
newStr := string(b) // "hello"
Please open Telegram to view this post
VIEW IN TELEGRAM
1. Преобразование строки в целое число:
Для того, чтобы преобразовать строку в целое число, используется функция strconv.Atoi или strconv.ParseInt.
import "strconv"
str := "123"
num, err := strconv.Atoi(str) // преобразует строку в int
if err != nil {
// обработка ошибки
}
2. Преобразование целого числа в строку:
Для преобразования числа в строку используется функция strconv.Itoa.
import "strconv"
num := 123
str := strconv.Itoa(num) // преобразует int в строку
Кратко:
Нельзя напрямую использовать int(string) или string(int) в Go.
Для преобразования строки в число используем strconv.Atoi или strconv.ParseInt.
Для преобразования числа в строку используем strconv.Itoa.
Please open Telegram to view this post
VIEW IN TELEGRAM
Следить за временем жизни горутины
Основной инструмент для управления
Также можно использовать каналы управления вручную, передавая в горутину канал stop или done, и завершать её при получении сигнала. Такой способ полезен, если не требуется гибкость context, но нужно просто и понятно управлять остановкой.
Please open Telegram to view this post
VIEW IN TELEGRAM
Если нужно
Если же объект простой
Please open Telegram to view this post
VIEW IN TELEGRAM
replace
, exclude
и require
в go.mod?require —
replace —
exclude —
Please open Telegram to view this post
VIEW IN TELEGRAM
Статическая компиляция в Go — это процесс
Иными словами:
Please open Telegram to view this post
VIEW IN TELEGRAM
Этот паттерн называется
Please open Telegram to view this post
VIEW IN TELEGRAM
Библиотека Go для собеса | вопросы с собеседований
Признаёмся, взяли вопрос без корректировок с одного из интервью 👀
В хорошем собеседовании интервьюер не просто задаёт вопросы, но и даёт фидбек по ответу и даже может объяснить концепцию которую он спросил.
Человеческий фактор не исключение, поэтому советуем уточнять что имеет в виду человек по ту сторону интервью.
Пример для вопроса про адаптер
🐸 Библиотека Go для собеса
В хорошем собеседовании интервьюер не просто задаёт вопросы, но и даёт фидбек по ответу и даже может объяснить концепцию которую он спросил.
Человеческий фактор не исключение, поэтому советуем уточнять что имеет в виду человек по ту сторону интервью.
Пример для вопроса про адаптер
// Target - интерфейс, который ожидает клиент
type Target interface {
Request() string
}
// Adaptee - устаревший класс, который не соответствует интерфейсу Target
type Adaptee struct{}
func (a *Adaptee) SpecificRequest() string {
return "Специфический запрос из Adaptee"
}
// Adapter - адаптирует интерфейс Adaptee к интерфейсу Target
type Adapter struct {
adaptee *Adaptee
}
func (a *Adapter) Request() string {
// Адаптируем специфический запрос Adaptee к формату, который ожидает Target
return a.adaptee.SpecificRequest()
}
Please open Telegram to view this post
VIEW IN TELEGRAM
YAGNI
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 IT Breaking Memes — 30 000 ₽ за самую смешную IT-новость
Библиотека программиста запускает конкурс, который взорвет вашу ленту: создайте самую смешную альтернативную версию реальной IT-новости!
👾 Правила просты:
1. Берете настоящую новость из мира технологий.
2. Переписываете ее так, чтобы смеялись все.
3. Получаете деньги и славу.
🏆 Призы:
- 1 место: 30 000 ₽ + статус ведущего нового юмористического IT-канала
- 2 и 3 место: по 5 000 ₽ + вечный почет в IT-сообществе
Пример:
Реальная новость: «Гугл создала модель для общения с дельфинами».
Смешная альтернатива: «Нейросеть от Гугл обрабатывает видеопоток с камеры в свинарнике. ИИ следит, сколько свинья находится возле кормушки, не отталкивают ли ее собратья. Недокормленных докармливают, а переевшие пропускают следующую кормешку».
📅 Сроки: с 29 апреля по 11 мая включительно
Для участия отправьте свою смешную новость в гугл-форму: https://forms.gle/6YShjgfiycfJ53LX8
Ждем ваших новостей!
Библиотека программиста запускает конкурс, который взорвет вашу ленту: создайте самую смешную альтернативную версию реальной IT-новости!
👾 Правила просты:
1. Берете настоящую новость из мира технологий.
2. Переписываете ее так, чтобы смеялись все.
3. Получаете деньги и славу.
🏆 Призы:
- 1 место: 30 000 ₽ + статус ведущего нового юмористического IT-канала
- 2 и 3 место: по 5 000 ₽ + вечный почет в IT-сообществе
Пример:
Реальная новость: «Гугл создала модель для общения с дельфинами».
Смешная альтернатива: «Нейросеть от Гугл обрабатывает видеопоток с камеры в свинарнике. ИИ следит, сколько свинья находится возле кормушки, не отталкивают ли ее собратья. Недокормленных докармливают, а переевшие пропускают следующую кормешку».
📅 Сроки: с 29 апреля по 11 мая включительно
Для участия отправьте свою смешную новость в гугл-форму: https://forms.gle/6YShjgfiycfJ53LX8
Ждем ваших новостей!
Основная причина заключается в том,
Please open Telegram to view this post
VIEW IN TELEGRAM
Если один и тот же
Please open Telegram to view this post
VIEW IN TELEGRAM
может перемещаться в памяти, Go может реорганизовывать хеш-таблицу.
Пример
m := map[string]int{"a": 1}
p := &m["a"]
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
📅 Итоги недели — нужна ваша реакция
Были интересные вопросы? Может сложновато или наоборот слишком скучно?
Можно просто:
🔥 — нравится
🌚 — так себе
😢 — скучно
Комментарии тоже приветствуются.
🐸 Библиотека Go для собеса
Были интересные вопросы? Может сложновато или наоборот слишком скучно?
Можно просто:
🔥 — нравится
🌚 — так себе
😢 — скучно
Комментарии тоже приветствуются.
Please open Telegram to view this post
VIEW IN TELEGRAM
1.
for i := 0; i < 10; i++ {
fmt.Println(i)
}
2.
i := 0
for i < 10 {
fmt.Println(i)
i++
}
3.
for {
fmt.Println("infinite loop")
break // не забудь выйти
}
4. for
for index, value := range []string{"a", "b", "c"} {
fmt.Println(index, value)
}
Please open Telegram to view this post
VIEW IN TELEGRAM
Библиотека cookiejar предоставляет механизм
cookiejar позволяет
cookiejar инкапсулирует логику
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 Конкурс: 30 000 ₽ за самую смешную IT-новость
Напоминаем о конкурсе «Библиотеки программиста»: напишите самую смешную версию реальной новости про технологии.
👾 Правила просты:
1. Берете настоящую новость из мира технологий.
2. Переписываете ее так, чтобы смеялись все.
3. Получаете деньги и славу.
🎁 Призы:
- 1 место: 30 000 ₽ + статус ведущего нового юмористического IT-канала
- 2 и 3 место: по 5 000 ₽ + вечный почет в IT-сообществе
🏆 Как будем оценивать:
Мы выложим новости всех участников в одном из наших телеграм-каналов. Те новости, которые наберут больше всего охвата, войдут в шорт-лист. Из шорт-листа подписчики и жюри выберут победителя.
📅 Сроки: прием новостей до 11 мая включительно
Для участия отправьте свою смешную новость в гугл-форму: https://forms.gle/6YShjgfiycfJ53LX8
Осталась неделя — ждем ваших новостей!
Напоминаем о конкурсе «Библиотеки программиста»: напишите самую смешную версию реальной новости про технологии.
👾 Правила просты:
1. Берете настоящую новость из мира технологий.
2. Переписываете ее так, чтобы смеялись все.
3. Получаете деньги и славу.
🎁 Призы:
- 1 место: 30 000 ₽ + статус ведущего нового юмористического IT-канала
- 2 и 3 место: по 5 000 ₽ + вечный почет в IT-сообществе
🏆 Как будем оценивать:
Мы выложим новости всех участников в одном из наших телеграм-каналов. Те новости, которые наберут больше всего охвата, войдут в шорт-лист. Из шорт-листа подписчики и жюри выберут победителя.
📅 Сроки: прием новостей до 11 мая включительно
Для участия отправьте свою смешную новость в гугл-форму: https://forms.gle/6YShjgfiycfJ53LX8
Осталась неделя — ждем ваших новостей!
Google Docs
Конкурс на самую смешную IT-новость
Библиотека программиста запускает конкурс, который взорвет вашу ленту: создайте самую смешную альтернативную версию реальной IT-новости!
Правила просты:
1. Берете настоящую новость из мира технологий.
2. Переворачиваете её с ног на голову, чтобы смеялись…
Правила просты:
1. Берете настоящую новость из мира технологий.
2. Переворачиваете её с ног на голову, чтобы смеялись…