myStack
890 subscribers
761 photos
15 videos
27 files
310 links
Меня зовут Ростислав и я разработчик.

Это мой личный блог.

Я пишу на Go, читаю книги про технологии и пишу об этих и других вещах сюда.


Книги:
https://bit.ly/rostislav-books

Личка:
https://t.me/Rostislaved

Сайт:
Rostislav.me
Download Telegram
Кстати, надо учитывать, что топовые IT компании своим топовым сотрудникам еще дают акции. Я знаю человека из "биг тек" у которого акции дают существенный бонус к окладу, но это только для важных сотрудников, чтобы их мотивировать работать и держать.

Не бедствуют топовые прогеры в США, короче.
👍2
What happens when you type in a URL in an address bar in a browser?
👍3🔥2
Вот бы это был не тестовый аккаунт)
😁2
Настраиваю маме принтер через удаленный рабочий стол.

Наконец-то получается, на скане какой-то документ. Думаю: о, отлично, осталось формат нужный сделать, расширение и по мелочи. Нажимаю сканировать - белый экран. Пробую предыдущую команду - опять белый экран. Ничего не понимаю. Еще минут 10 пробую разное, пока не начинаю подозревать. Звоню. -Ты документ из сканера доставала? -Да.
...
😁6
Читаю миллионы статей, где встречаю вот такое.
Такая же ситуация на ютубе, где "старшие разработчики" делают точно также.
Другое но тоже неясное. Зачем хранить интерфейс репозитория в домене. Чтобы все равно импортировать в юзкейсы?
😁1
Сделал сервер на амазоне, чтобы пинги были до другого сервера в амазоне маленькие (У меня примерно 100 мс с сингапурским впном). Запускаю пинг, результат - 278мс, 293мс итд. Думаю, что за ерунда.
А потом смотрю, это 0.278мс 0.293мс😱😱😱

(у меня с компа до роутера больше))
😁5👍2🔥2
Вот это работает!

export TEST
TEST="foo"
echo $TEST
Давно искал, как сделать подобное - нарисовать граф yaml, toml или json файла. Если с последним легче всего, то с первыми двумя чуть посложнее найти решение. И оказывается прям в IDE от JetBrains есть плагин - DataGraph
👍2😱2
HTTP Версии

HTTP/1 - каждый запрос - это отдельное TCP соединение
HTTP/1.1 - Добавили Keep Alive. Несколько запросов могут проходить в одном TCP соединении.
HTTP/2
1. Бинарный протокол
2. Сжатие заголовков
3. Добавили HTTP Streams - позволяют внутри одного TCP соединения делать параллельные запросы, порядок неважен.
4. Добавили возможность Push'ей для сервера.
HTTP/3
1. Использует не TCP, а QUIC. QUIC основан на UDP.
🔥6🐳2🍌2🌭1
Если кого интересует какую структуру проекта можно себе взять на вооружение для Go приложений, то вот она.

Не называю ее завершенной или идеальной, но как минимум лучше 90% того, что вижу в интернетах
.
├── CHANGELOG.md
├── config.toml
├── deploy
├── go.mod
├── go.sum
├── internal
│   ├── app
│   │   ├── adapters
│   │   │   ├── primary
│   │   │   │   ├── grpc-adapter
│   │   │   │   ├── http-adapter
│   │   │   │   ├── kafka-adapter-subscriber
│   │   │   │   ├── nats-adapter-subscriber
│   │   │   └── secondary
│   │   │   ├── grpc-adapter
│   │   │   ├── kafka-adapter-publisher
│   │   │   ├── nats-adapter-publisher
│   │   │   ├── gateways
│   │   │   └── repositories
│   │   ├── application
│   │   │   └── service
│   │   ├── domain
│   │   │ └── order
│   │   │ └── order.go
│   │ └── config
│   └── pkg
│   ├── logger
│   ├── prometheus
│   └── tech
├── main.go
└── README.md
👍63👎1🌭1
Основная причина, почему директория pkg в Go проектах - зло

https://xkcd.com/1172/
Чтобы написать в чат в WhatsApp не добавляя номер в контакты можно сделать так:
wa.me/79167772424
👍1👏1
Любители директории pkg оправдывайтесь:
https://go.dev/doc/modules/layout
🤔2😁1
Decoupling is an essential tool to enable the management of change
- Gregor Hohpe, Bobby Woolf - Enterprise Integration Patterns
2🤩1
Я зачем-то поднял демоны Prometheus + NodeExporter + Grafana на ноуте, чтобы смотреть за температурой ЦПУ несколько дней, перед тем, как почищу его и заменю термопасту 🏥

(По центру - это я фильм в 4к запустил)
Please open Telegram to view this post
VIEW IN TELEGRAM
👏6🔥1
Передача файлов между разными компьютерами

Нашел крутую штуку - croc
https://github.com/schollz/croc

Супер простая и удобная в использовании. Там откуда передаем файл делаем:
 > croc video.mp4

Did you mean to send 'video.mp4'? (Y/n)
Sending 'video.mp4' (1.4 GB)
Code is: 8448-xray-valid-slow
On the other computer run

croc 8448-xray-valid-slow


И там где принимаем:
croc 8448-xray-valid-slow


Скорость - максимальная
👍4
Платное ПО

Если читать старые (2003 год - старая, даже 2011 - старая) книги по разработке ПО, то можно видеть, как поменялась индустрия по отношению к софту. Раньше было нормой покупать приложения или его части, а сейчас везде опен-сорс
👏4🤡1
Внутренности типов в Go. Либа

https://github.com/rostislaved/go-types-internals

В Go типы данных имеют свое представление в рантайме в виде структур. Например, слайс - это структура, мапа - структура. Чтобы иметь доступ к полям этих структур нужно использовать пакет unsafe. Я когда копался во внутренностях мапы написал код, который это упрощает. Не то чтобы это получилась полноценная либа, но я решил выложить, чтобы не потерялось. Удобно, если надо посмотреть, что внутри.
👍4🤔1
😁13👾2👍1