go-golang girl🙃 (ex-flutter) – Telegram
go-golang girl🙃 (ex-flutter)
248 subscribers
192 photos
8 videos
3 files
74 links
Разработка, обучение и мотивация с @dellinidev
Download Telegram
ДЕНЬ 34 ИЗ 100

Сегодня про каналы.

Каналы (channels) позволяют горутинам обмениваться данными, но один канал может передавать только данные одного типа.

Про горутины я читала ещё до челленджа, так что пока картинка стройно в голове складывается.

Работа канала состоит из двух основных операций: отправка (send) и прием (receive), обе операции в совокупности называются коммуникацией.

Вот пример:

package main 

import "fmt"

func main() {

// Создаём канал с помощью var
var mychannel chan int
fmt.Println("Value of the channel: ", mychannel)
fmt.Printf("Type of the channel: %T ", mychannel)

// Создаём канал, используя make()
mychannel1 := make(chan int)
fmt.Println("\nValue of the channel1: ", mychannel1)
fmt.Printf("Type of the channel1: %T ", mychannel1)


Роадмап бэкенда: 5% — 5%
Роадмап Go: 34% — 36%
Оценка за день: 4/5
👍6🔥3❤‍🔥21
ДЕНЬ 35 ИЗ 100

Ну шо, с наступающим, пацаны и пацанессы...

Даже в праздник не прерываем челлендж. Сегодня чуть-чуть нудно про select.

Оператор select позволяет подпрограмме ожидать выполнения нескольких операций связи.

A select блокируется до тех пор, пока не сможет выполняться одно из его обращений, затем оно выполняет это обращение. Оно выбирает одно случайным образом, если готовы несколько. Оператор select аналогичен оператору switch, но в операторе select оператор case относится к связи, т.е. операции отправки или получения по каналу.

Пример:

package main
import (
"fmt"
"time"
)
func main() {

//выбор по двум каналам

c1 := make(chan string)
c2 := make(chan string)

Каждый канал получит значение через некоторое время для имитации, например, блокирования операций RPC выполнения в параллельных программах.


go func() {
time.Sleep(1 * time.Second)
c1 <- "one"
}()
go func() {
time.Sleep(2 * time.Second)
c2 <- "two"
}()

Мы будем использовать select для ожидания обоих этих значений одновременно, печатая каждое по мере его поступления.



for i := 0; i < 2; i++ {
select {
case msg1 := <-c1:
fmt.Println("received", msg1)
case msg2 := <-c2:
fmt.Println("received", msg2)
}
}
}


Вот такие дела.

Попозже ещё напишу мыслишки свои всякие в отрыве от челленджа...🤡

Роадмап бэкенда: 5% — 5%
Роадмап Go: 36% — 37%
Оценка за день: 4/5
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍2🔥1
Для всех страждущих — Карим с икрой!

Ну што. Желаю, чтобы в будущем году всем повысили зарплату!

Спасибо за то, что читаете меня. Очень ценю свою аудиторию❤️
🎉206😁4👍2
ДЕНЬ 36 ИЗ 100

С наступившим, чтоли😮

Сегодня неспешно читаю про buffer в обнимку с селёдкой под шубой.

Буфер используется в контексте каналов для обработки асинхронного обмена данными между горутинами.

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

Вот и примерчик:

package main

import "fmt"

func main() {
// Создание канала с буфером в 2 элемента
ch := make(chan int, 2)

// Помещение данных в буфер канала
ch <- 1
ch <- 2

// Извлечение данных из буфера канала
fmt.Println(<-ch)
fmt.Println(<-ch)
}


Роадмап бэкенда: 5% — 5%
Роадмап Go: 37% — 39%
Оценка за день: 4/5
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍1🔥1
ДЕНЬ 37 ИЗ 100

Прочитала одну статью про мьютекс.

Мьютексы (mutex) — это структуры данных из пакета sync. Они помогают установить блокировку для разных разделов данных, чтобы только одна подпрограмма могла получить к ним доступ одновременно.

А вот и ссылка на статью.

Роадмап бэкенда: 5% — 5%
Роадмап Go: 39% — 40%
Оценка за день: 3/5
👍7🔥31
ДЕНЬ 38 ИЗ 100

Сегодня читала про JSON, потому что так написано в роадмапе.

Раньше я с этим много работала, поэтому делаю это чисто для галочки. Вот полезная статья со спецификой json для go.

Завтра иду делать смешную тату. Покажу результат тут! Ждите😂

Роадмап бэкенда: 5% — 5%
Роадмап Go: 40% — 43%
Оценка за день: 1/5
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥21
Привет, как дела? 😂
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥92😁2❤‍🔥1👎1🌚1
ДЕНЬ 39 ИЗ 100

Читаю про интерфейсы командной строки. Это уже что-то более новое, а значит — интересное.

Без изысков — читаю на go.dev.

На флаттер я довольно редко пользовалась терминалом. Здесь для более точной работы с CLI используются инструменты Cobra и Viper.

Cobra — это одновременно библиотека для создания мощных современных CLI-приложений и программа для создания приложений с CLI в Go. Cobra поддерживает большинство популярных приложений Go, включая CoreOS, Delve, Docker, Dropbox, Git Lfs, Hugo, Kubernetes и многие другие.

Viper — это комплексное конфигурационное решение для приложений Go, разработанное для работы в приложении с учетом потребностей в настройке и форматов. Cobra и Viper созданы для совместной работы.

Роадмап бэкенда: 5% — 5%
Роадмап Go: 43% — 46%
Оценка за день: 4/5
👍7🔥31
ДЕНЬ 40 ИЗ 100

Продолжаю изучать Cobra и Viper. Немного тяжело даётся работа с командной строкой...

Может, поэтому я особо ей и не пользовалась, пока незачем было😮

Ещё отхожу от тату, у меня всегда после сеансов температура поднимается.

Кстати, у меня забиты две руки, три татуировки на ногах, одна на грудной клетке и вот теперь ещё на кистях появилась. Проценты сами посчитайте 😂

Роадмап бэкенда: 5% — 5%
Роадмап Go: 46% — 46%
Оценка за день: 2/5
Please open Telegram to view this post
VIEW IN TELEGRAM
👍71🔥1
ДЕНЬ 41 ИЗ 100

Читаю про urfave / cli — декларативный, простой, быстрый и увлекательный пакет для создания инструментов командной строки в Go, как говорит readme у репозитория.

В то время, как в Cobra мы работаем с cobra.Command объектами, в urfave / cli мы начинаем с cli.App и работаем только с cli.Command экземплярами.

Оставляю ссылку на классную статью с примерами и укатываюсь на субботний вечерний бранч в бар!

Роадмап бэкенда: 5% — 5%
Роадмап Go: 46% — 48%
Оценка за день: 4/5
👍81🔥1
ДЕНЬ 42 ИЗ 100

Вот это я вчера наклюкалась... благо, без похмелья обошлось😂

Тема дня: ORM.

Объектно-реляционное отображение (ORM, O/RM и O/R mapping tool) — метод программирования для преобразования данных между системами типов с использованием объектно-ориентированных языков программирования. Это создает, по сути, “базу данных виртуальных объектов”, следовательно, уровень абстракции, который может быть использован изнутри языка программирования.

В го для этого используют GORM — библиотеку ORM для работы с реляционными базами данных. Она разработана поверх пакета database/sql.

Роадмап бэкенда: 5% — 5%
Роадмап Go: 48% — 51%
Оценка за день: 4/5
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥1🤯1
ДЕНЬ 43 ИЗ 100

Сегодня вместе с @nogipx немного трогаем кубер. Ему нужно для своего проекта, а я просто сую к нему нос😂

Kubernetes — это платформа управления контейнерами с открытым исходным кодом и доминирующий продукт в этой области. Используя Kubernetes, команды могут развертывать образы на нескольких базовых хостах, определяя их желаемую доступность, логику развертывания и масштабирования в YAML.

Отдельные большие спасибы за уточнения по ORM❤️

Роадмап бэкенда: 5% — 6%
Роадмап Go: 51% — 51%
Оценка за день: 3/5
Please open Telegram to view this post
VIEW IN TELEGRAM
8❤‍🔥2👍2
Расскажите, пожалуйста, что ещё не пригодится мне на работе, чтобы я не тратила время на изучение 🗒

А в обмен я вам расскажу, что в Краснодаре наконец-то пошел СНЕГ

UPD:
https://roadmap.sh/backend https://roadmap.sh/golang

На всякий случай
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
ДЕНЬ 44 ИЗ 100

Трогаю кубер, день второй.

Поставили kubectl, minikube — локальный кластер кубера.

@nogipx говорит, что для изучения пойдёт пока и это, но потом нужно будет разбираться с kubeadm.

Роадмап бэкенда: 6% — 6%
Роадмап Go: 51% — 51%
Оценка за день: 2/5
👍5👎41🔥1💯1
ДЕНЬ 45 ИЗ 100

Так, ладно, движемся по роадмапу, дальше у меня веб-фреймворки.

Нашла репо на гитхабе, где сравнивают некоторые фреймворки для go. Как обычно, делюсь ссылкой💃

Завтра первое вождение в городе. У меня такое ощущение, что за новогодние праздники я успела забыть, как заводить машину и дёргать ручник😐

Роадмап бэкенда: 6% — 6%
Роадмап Go: 51% — 51%
Оценка за день: 3/5
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7😁52
ДЕНЬ 46 ИЗ 100

Только я решила, что брошу алкоголь на время приёма антидепрессантов, как прочитала про Gin.

Цитирую описание из документации: Gin — это веб-фреймворк HTTP, написанный на Go (Golang). Он имеет Martini-like API, но с производительностью в 40 раз выше, чем у Martini.

Что такое этот ваш мартини? Что здесь происходит вообще?😐

Интернет говорит, что Martini-like API относится к API-фреймворку, вдохновленному простотой и удобством использования веб-фреймворка Martini. Целью Martini-like API является обеспечение простого и эффективного способа создания RESTful API на языке программирования Go (Golang), фокусируясь на минимализме и удобстве использования. Такой подход часто включает в себя функции, такие как промежуточные слои, маршрутизация и обработка ответов, призванные упростить разработку API и улучшить процесс создания масштабируемых и поддерживаемых служб API.

Всё понятно, очень интересно. Ненавижу мартини, кстати, он горький😔

С вождением было волнительно. Ехали по главной улице города, где ограничение в 40 и постоянные пробки. Глохла тыщу раз, и всё на светофорах.

Роадмап бэкенда: 6% — 6%
Роадмап Go: 51% — 54%
Оценка за день: 4/5
Please open Telegram to view this post
VIEW IN TELEGRAM
👍64🔥1
Что я хочу сказать вам об отборе на яндексовый курс?

Это полнейшая жесть, товарищи!
👍5
ДЕНЬ 47 ИЗ 100

Решила 5 задач и завершила контест для отбора на полный яндексовый курс.

По баллам — 11,75 из 12. Я довольна. Да, там сразу подсчитывают баллы. Можно и до 12 добраться, но я сегодня устала. Может, позже переделаю задачу.

Спойлер для тех, кому предстоит его пройти: задачи пиздец какие сложные, крепитесь. Начните делать как можно раньше.

UPD: добралась до 12 баллов из 12.

Роадмап бэкенда: 6% — 6%
Роадмап Go: 54% — 54%
Оценка за день: 5/5
10👍4🔥4
ДЕНЬ 48 ИЗ 100

Сегодня читаю про Revel.

Revel организует эндпоинты в контроллеры. Они обеспечивают простую привязку данных и проверку формы. Revel упрощает масштабирование шаблонов Go.

Сильно на этом не останавливаюсь, хочу до конца челленджа пройти весь роадмап по Go.

А ещё ждать письма из яндекса просто невыносимо. Каждый раз, когда я вспоминаю об отборе, сразу понимаю, что я просто ненавижу ждать.

Роадмап бэкенда: 6% — 6%
Роадмап Go: 54% — 55%
Оценка за день: 3/5
👍42🔥1
ДЕНЬ 49 ИЗ 100

Всё, с веб-фреймворками пока скип. Не могу углубляться в одну тему, когда впереди ещё тыща тем.

Когда буду зубрить вопросы на собеседование, тогда и посмотрю, пригодится ли эта инфа.

А пока идём дальше, в тему логгирования. Нашла классную обзорную статью.

Ещё сегодня с подругой ходила в иммерсивный театр, представление было в дореволюционном доме. Сами интерьеры красивые, представление ни о чём. Оцениваю досуг в 3 из 10.

А вы как?

Роадмап бэкенда: 6% — 6%
Роадмап Go: 54% — 64%
Оценка за день: 4/5
🔥6👍32
А чё, когда ждать письмо от Яндекса?

Вроде контест завершился сегодня ночью...
😁5