@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Golang
@devopsitsec
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Представляем вам крутую шпаргалку по шести основным архитектурным шаблонам, каждый из которых подходит для разных сценариев.
Это самый простой и традиционный подход, при котором все компоненты связаны между собой в единой кодовой базе. Монолитная архитектура проста и идеально подходит для небольших приложений, не требующих обширной масштабируемости. Однако по мере роста систем ее масштабирование, тестирование и поддержка могут стать сложными. Идеально подходит для стартапов или небольших команд, ищущих быструю разработку.
Любимый вариант для больших сложных приложений, которым требуется масштабируемость и гибкость. Здесь приложение разделено на независимо развертываемые сервисы, каждый из которых обрабатывает определенные бизнес-функции. Микросервисы позволяют командам использовать различные технологические стеки и масштабировать сервисы независимо. Этот шаблон популярен в приложениях с высоким трафиком и организациях, которым нужна свобода для независимого развертывания функций.
Этот шаблон разделяет задачи на контроллеры и рабочие. Контроллер управляет взаимодействиями с пользователем, в то время как рабочие выполняют фоновые задачи, такие как обработка данных, создавая систему, которая является высокомасштабируемой и эффективной. Идеально подходит для приложений, которым необходимо выполнять интенсивные фоновые задания, такие как обработка заказов, аналитика в реальном времени или уведомления.
Классический шаблон, обычно используемый в веб-приложениях, MVC разделяет логику приложения (модель), пользовательский интерфейс (представление) и взаимодействие (контроллер). Такое разделение задач упрощает поддержку и обновление определенных частей, не затрагивая всю систему. MVC является популярным выбором для приложений, которым требуются пользовательские интерфейсы, особенно в сферах электронной коммерции и управления контентом.
Идеально подходит для систем, которым необходимо реагировать на определенные действия или события, такие как щелчки пользователя, обновления базы данных или показания датчиков. В этом шаблоне компоненты реагируют на события асинхронно, что делает его масштабируемым и слабосвязанным. Архитектура, управляемая событиями, отлично подходит для приложений со сложными рабочими процессами или асинхронными потребностями в обработке, такими как IoT, аналитика в реальном времени и системы уведомлений клиентов.
Организует приложение по слоям (Презентация, Бизнес, Доступ к данным и Инфраструктура) для создания четкого разделения интересов. Каждый слой отвечает за определенный аспект, делая систему более обслуживаемой и тестируемой. Многоуровневый подход часто используется в корпоративных приложениях и идеально подходит для создания четкой стандартизированной структуры во всей системе.
#doc #web #cheatsheet
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
В этой задаче Вам необходимо найти самую длинную подстроку строки \(s\), такую что каждая буква в ней встречается не менее \(k\) раз.
Если такой подстроки нет, вернуть 0.
Пример:
Вход: s = "aaabb", k = 3
Выход: 3
Объяснение: Самая длинная подходящая подстрока – "aaa", так как буква 'a' повторяется три раза.
### Описание алгоритма:
1. Генерация подстрок: Генерируем все возможные подстроки строки \(s\). Для каждой подстроки будем отслеживать частоту появления символов при помощи массива countMap.
2. Проверка валидности: Метод isValid проверяет, что каждый символ в текущей подстроке появляется хотя бы \(k\) раз. Это делается через проверку значений в массиве countMap. Если все символы удовлетворяют условию, то подстрока считается допустимой.
3. Обновление результата: Отслеживаем максимальную длину допустимых подстрок. Когда находим новую подходящую подстроку большей длины, обновляем результат. В итоге возвращаем длину самой длинной найденной подстроки.
Ответ:
package main
import (
"fmt"
)
func longestSubstring(s string, k int) int {
if len(s) == 0 || k > len(s) {
return 0
}
n := len(s)
result := 0
for start := 0; start < n; start++ {
countMap := make([]int, 26)
for end := start; end < n; end++ {
countMap[s[end]-'a']++
if isValid(countMap, k) {
if end-start+1 > result {
result = end - start + 1
}
}
}
}
return result
}
func isValid(countMap []int, k int) bool {
countLetters, countAtLeastK := 0, 0
for _, count := range countMap {
if count > 0 {
countLetters++
}
if count >= k {
countAtLeastK++
}
}
return countLetters == countAtLeastK
}
func main() {
fmt.Println(longestSubstring("aaabb", 3)) // Output: 3
fmt.Println(longestSubstring("ababbc", 2)) // Output: 5
}
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡️Легкий способ получать свежие обновления и следить за трендами в разработке на вашем языке. Находите свой стек и подписывайтесь:
МАШИННОЕ ОБУЧЕНИЕ: t.me/ai_machinelearning_big_data
C++ t.me/cpluspluc
Python: t.me/pythonl
Linux: t.me/linuxacademiya
Хакинг: t.me/linuxkalii
Devops: t.me/DevOPSitsec
АНАЛИЗ Данных: t.me/data_analysis_ml
Javascript: t.me/javascriptv
C#: t.me/csharp_ci
Java: t.me/javatg
Базы данных: t.me/sqlhub
Python собеседования: t.me/python_job_interview
Мобильная разработка: t.me/mobdevelop
Docker: t.me/DevopsDocker
Golang: t.me/golang_interview
React: t.me/react_tg
Rust: t.me/rust_code
ИИ: t.me/vistehno
PHP: t.me/phpshka
Android: t.me/android_its
Frontend: t.me/front
Big Data: t.me/bigdatai
Собеседования МЛ: t.me/machinelearning_interview
МАТЕМАТИКА: t.me/data_math
Kubernets: t.me/kubernetc
Разработка игр: https://yangx.top/gamedev
💼 Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: https://yangx.top/addlist/2Ls-snqEeytkMDgy
Папка FRONTEND: https://yangx.top/addlist/mzMMG3RPZhY2M2Iy
😆ИТ-Мемы: t.me/memes_prog
🇬🇧Английский: t.me/english_forprogrammers
🧠ИИ: t.me/vistehno
🎓954ГБ ОПЕНСОРС КУРСОВ: @courses
📕Ит-книги бесплатно: https://yangx.top/addlist/BkskQciUW_FhNjEy
МАШИННОЕ ОБУЧЕНИЕ: t.me/ai_machinelearning_big_data
C++ t.me/cpluspluc
Python: t.me/pythonl
Linux: t.me/linuxacademiya
Хакинг: t.me/linuxkalii
Devops: t.me/DevOPSitsec
АНАЛИЗ Данных: t.me/data_analysis_ml
Javascript: t.me/javascriptv
C#: t.me/csharp_ci
Java: t.me/javatg
Базы данных: t.me/sqlhub
Python собеседования: t.me/python_job_interview
Мобильная разработка: t.me/mobdevelop
Docker: t.me/DevopsDocker
Golang: t.me/golang_interview
React: t.me/react_tg
Rust: t.me/rust_code
ИИ: t.me/vistehno
PHP: t.me/phpshka
Android: t.me/android_its
Frontend: t.me/front
Big Data: t.me/bigdatai
Собеседования МЛ: t.me/machinelearning_interview
МАТЕМАТИКА: t.me/data_math
Kubernets: t.me/kubernetc
Разработка игр: https://yangx.top/gamedev
💼 Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: https://yangx.top/addlist/2Ls-snqEeytkMDgy
Папка FRONTEND: https://yangx.top/addlist/mzMMG3RPZhY2M2Iy
😆ИТ-Мемы: t.me/memes_prog
🇬🇧Английский: t.me/english_forprogrammers
🧠ИИ: t.me/vistehno
🎓954ГБ ОПЕНСОРС КУРСОВ: @courses
📕Ит-книги бесплатно: https://yangx.top/addlist/BkskQciUW_FhNjEy
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Senior Go Developer в VK AdBlogger
VK AdBlogger — платформа, которая соединяет рекламодателей и блогеров ВКонтакте, помогая брендам размещать рекламу напрямую в аккаунтах авторов.
В команду ищут опытного Go-разработчика, который будет:
• создавать и развивать доменное направление для платформы influence- и performance-маркетинга;
• участвовать в системном дизайне;
• следить за выполнением задач доменной команды.
Стек: Go, React, Postgres, Kafka, Kuber.
Ожидается: вы в бэкенде от четырёх лет, в Go-разработке — от трёх, уже имели дело с PostgreSQL и in-memory хранилищами.
Подробнее о вакансии тут
VK AdBlogger — платформа, которая соединяет рекламодателей и блогеров ВКонтакте, помогая брендам размещать рекламу напрямую в аккаунтах авторов.
В команду ищут опытного Go-разработчика, который будет:
• создавать и развивать доменное направление для платформы influence- и performance-маркетинга;
• участвовать в системном дизайне;
• следить за выполнением задач доменной команды.
Стек: Go, React, Postgres, Kafka, Kuber.
Ожидается: вы в бэкенде от четырёх лет, в Go-разработке — от трёх, уже имели дело с PostgreSQL и in-memory хранилищами.
Подробнее о вакансии тут
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Golang
🗣 Анонс: https://groups.google.com/g/golang-announce/c/3DyiMkYx4Fo
⬇️ Скачать: https://go.dev/dl/#go1.23.4
#golang
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
В нашем новом канале, вы найдете множество уроков, книг и гайдов для погружения в этот мощный язык с нуля.
Отличная возможность не только выучить новый язык, но и возможность прокачать свои навыки программирования.
t.me/haskell_tg - стоит подписаться!
Please open Telegram to view this post
VIEW IN TELEGRAM
Цель проекта — продемонстрировать основы создания поисковой системы.
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM