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

Сегодня тоже решила две задачи.

Одна была простая, а другую решала час. Снова та закавыка с последовательностью рун и русским языком😐

Хорошо, что я сохраняю себе почти все предыдущие решения. Плохо, что я вспоминаю об этом под конец.

Как снитч из Гарри Поттера, блин. Аж мозги закипели.

Роадмап бэкенда: 5% — 5%
Роадмап Go: 30% — 30%
Оценка за день: 3/5
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5👎3👏1🥴1🌭1
Всё, что нужно знать о нейросетях.
😁7🥴3🤯2🍌1
ДЕНЬ 31 ИЗ 100

Я прошла игру.

А ещё chatgpt отказался со мной работать. Запишу это в ачивку...

Роадмап бэкенда: 5% — 5%
Роадмап Go: 30% — 30%
Оценка за день: 5/5
👍92🔥2❤‍🔥11🥴1🌚1
ДЕНЬ 32 ИЗ 100

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

Изучаю модули. Модуль — набор пакетов, которые выпускаются, версионируются и распространяются вместе. Модули можно загружать непосредственно из репозиториев системы контроля версий или с прокси-серверов модуля.

Модули Go решают многие проблемы с GOPATH, исходной системой, и позволяют пользователям размещать код своего проекта в выбранном ими каталоге и указывать версии зависимостей для каждого модуля.


Аж захотелось перевести с английского какую-нибудь статью полезную, вспомнить старое...

Обменялись сегодня с частью друзей частью подарков. Всё-таки обожаю праздники, обожаю, когда мне дарят штуки, заказать которые себе мне не хватало поводов❤️❤️❤️

А вам уже дарят подарки? А вы дарите? Делитесь🌟

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

Сегодня прочитала про context.

Context — это пакет, который позволяет передавать данные в программу в каком-то «контексте». Контекст так же, как и таймаут, дедлайн или канал, сигнализирует прекращение работы и вызывает return.

Вот классная статья с примерами😮

Роадмап бэкенда: 5% — 5%
Роадмап Go: 33% — 34%
Оценка за день: 3/5
Please open Telegram to view this post
VIEW IN TELEGRAM
👍52👎2🐳2🤨1
ДЕНЬ 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