en
Feedback

Don't get caught by a cheater! Telemetrio finds and tags such channels 👉 If you want to see the tag, subscribe

myStack

myStack

Open in Telegram

Меня зовут Ростислав и я разработчик. Это мой личный блог. Я пишу на Go, читаю книги про технологии и пишу об этих и других вещах сюда. Книги: https://bit.ly/rostislav-books Личка: https://t.me/Rostislaved Сайт: Rostislav.me

Show more
877
Subscribers
-324 hours
-47 days
-730 days
Posts Archive
Где искать электронные книги http://flibusta.is в основном художка (fb2, epub) http://libgen.is все книги (pdf, иногда epub).
Где искать электронные книги http://flibusta.is в основном художка (fb2, epub) http://libgen.is все книги (pdf, иногда epub). 90% книг можно найти тут https://www.twirpx.com иногда тут бывает то, чего нет на либгене https://annas-archive.org/ тут также может быть то, чего нет на либгене Если предыдущие ссылки не помогли, то с вероятностью 0.99 книгу найти не получится, но еще источники можно поискать тут: https://www.reddit.com/r/Piracy/wiki/megathread/books/ ну и не забываем про гугл

Чистая архитектура. Как изучать. Чтобы полностью погрузиться надо писать код и читать книги. Код писать надо для того, чтобы
Чистая архитектура. Как изучать. Чтобы полностью погрузиться надо писать код и читать книги. Код писать надо для того, чтобы информация из книг не была пустым звуком и какие-то самые популярные паттерны были уже знакомы. То есть хотя бы что-то в голове представлять, когда говорят слова: репозиторий, контроллер, сервис, энтити. Не обязательно правильно их понимать, ибо там и путаницы много и не все сейчас используются в том виде, в котором изначально были придуманы, но что-то представлять надо. А книги вот такие. В порядке чтения. 1. Robert Martin - Clean Code 2. Robert Martin - Agile Software Development 3. Robert Martin - Clean Architecture Пояснения: 1. Чистый код Основа. Там не так много самой архитектуры, но базовые идеи есть, а также совсем немного про SOLID. Эта книга просто полезна сама по себе, а также может служить хорошим показателем будут ли следующие книги пониматься или нет. То есть, если чистый код понимаешь, то читай дальше. 2. Agile Software Development Про эту мало кто знает, но она чуть ли не самая важная из всех трех. Именно тут описан SOLID. 3. Чистая архитектура Тут сама идея чистой архитектуры. Многие начинают читать сразу ее и полагаю, что мало что понимают. Ну или понимают, но без предыдущей книги не так, как могли бы. Достаточно ли этих трех книг? Если смог их понять полностью, то, наверное, да. Но понять их полностью непросто, если нет опыта и понимания ООП. Также, кроме книг надо ознакомиться со статьей Мартина и его докладом. Если читать книги нет времени, то именно статья и доклад - это необходимый минимум. Другие материалы в интернете В интернете миллионы статей, видео и репозиториев на гитхабе, которые или содержат в названии словосочетание "чистая архитектура", или подразумевают, что именно о ней расказывают. Огромное количество этих материалов содержат ошибки и часто критические. Их сложно распознать, если сам изучал тему не по оригиналу, а по другим статьям, поэтому путь чтения книг скорее всего самый эффективный для достижения цели.

Что происходит, когда вводишь URL и нажимаешь Enter (высокий уровень) Без CDN: - Когда пользователь вводит URL в браузер, бра
Что происходит, когда вводишь URL и нажимаешь Enter (высокий уровень) Без CDN: - Когда пользователь вводит URL в браузер, браузер делает запрос к DNS-серверу, чтобы получить IP-адрес сервера, связанного с этим URL. - После того как браузер получил IP-адрес от DNS, он делает запрос к серверу. Этот сервер — nginx, который может либо отдать статический контент браузеру, либо перенаправить запрос на сервер бекенда для получения динамического контента. - Статический контент — неизменяемые файлы (html, css, javascript) — фронтенд. - Динамический контент — контент, генерируемый динамически на бекенде. - Браузер, после получения статического контента, взаимодействует с ним. Этот статический контент может с помощью JavaScript-кода отправить запрос для получения дополнительной информации. - Этот запрос также придет в nginx, а он перенаправит его на сервер бекенда. Сервер бекенда отдаст нужные данные nginx, а он отдаст их браузеру. С CDN: - Когда пользователь вводит URL в браузер, браузер делает запрос к DNS-серверу, чтобы получить IP-адрес сервера, связанного с этим URL. - Если веб-сервис настроен на использование CDN, записи DNS будут указывать на серверы CDN, а не на оригинальный сервер (nginx). - После того как браузер получил IP-адрес от DNS, он делает запрос к серверу CDN. - CDN проверяет, есть ли запрошенные файлы (статические) в кэше. Если файлы есть в кэше, CDN возвращает их в браузер. Если файлы отсутствуют или кэш устарел, CDN делает запрос к оригинальному серверу (nginx) за свежими копиями файлов. - Сервер (nginx) возвращает запрошенные файлы CDN, который в свою очередь кэширует их и отправляет браузеру. - После загрузки статического контента, уже сам JavaScript-код на клиенте может делать запросы к серверу. Эти запросы могут быть направлены на CDN (если CDN настроен на кэширование динамического контента или API-ответов) или напрямую на сервер (nginx), в зависимости от конфигурации.

photo content

Немного обновил табличку. Добавил соотношение DAU/MAU. DAU - число пользователей, которые заходят каждый день (среднее) MAU - число пользователей, которые заходят хотя бы раз в месяц
| Name        | DAU    | MAU   | DAU/MAU |
| ----------- | ------ | ----- | ------- |
| Spotify     |        | 574 m |         |
| Apple Music |        | 100 m |         |
| Deezer      |        | 16 m  |         |
| Youtube     | 368 m  | 2.7 b | 14%     |
| Vimeo       |        | 300 m |         |
| Netflix     | 100 m  | 250 m | 40%     |
| Twitch      | 30 m   | 140 m | 21%     |
| TikTok      | 780 m  | 1.7 b | 45%     |
| Twitter     | 240 m  | 550 m | 40%     |
| Tinder      |        | 75 m  |         |
| Whatsup     | 400 m  | 2.7 b | 15%     |
| Telegram    | 200 m  | 800 m | 25%     |
| Facebook    | 2 b    | 3 b   | 66%     |
| VK          | 60 m   | 100 m | 60%     |
| Instagram   | 1.25 b | 2.5 b | 50%     |
| Uber        |        | 131 m |         |

Вывод: DAU/MAU ~= 20% - 50%. То есть в среднем примерно DAU = MAU/3 P.S. в ютуб как-то слабо верится. Но т.к. числа не очень достоверные, то возможна ошибка. Ну а может действительно так и есть

Найден убийца pastebin'а. Сервис делает картинку - фотку монитора, где в IDE открыт ваш код. https://code.xxut.ru/ ref
Найден убийца pastebin'а. Сервис делает картинку - фотку монитора, где в IDE открыт ваш код. https://code.xxut.ru/ ref

Сделал пару запросов в интернеты и собрал в табличку MAU (Monthly Active Users) различных популярных сервисов
| Name        | MAU   |
| ----------- | ----- |
| Spotify     | 574 m |
| Apple Music | 100 m |
| Deezer      | 12 m  |
| Youtube     | 2.5 b |
| Vimeo       | 300 m |
| Netflix     | 250 m |
| TikTok      | 1.1 b |
| Twitter     | 320 m |
| Tinder      | 75 m  |
| Whatsapp    | 2 b   |
| Telegram    | 800 m |
| Facebook    | 3 b   |
| VK          | 100 m |
| Instagram   | 2.5 b |
| Uber        | 131 m |



и отсортированная:
| Name        | MAU   |
| ----------- | ----- |
| Facebook    | 3 b   |
| Instagram   | 2.5 b |
| Youtube     | 2.5 b |
| Whatsapp    | 2 b   |
| TikTok      | 1.1 b |
| Telegram    | 800 m |
| Spotify     | 574 m |
| Twitter     | 320 m |
| Vimeo       | 300 m |
| Netflix     | 250 m |
| Uber        | 131 m |
| Apple Music | 100 m |
| VK          | 100 m |
| Tinder      | 75 m  |
| Deezer      | 12 m  |

photo content

Внутренности типов в Go. Либа https://github.com/rostislaved/go-types-internals В Go типы данных имеют свое представление в р
Внутренности типов в Go. Либа https://github.com/rostislaved/go-types-internals В Go типы данных имеют свое представление в рантайме в виде структур. Например, слайс - это структура, мапа - структура. Чтобы иметь доступ к полям этих структур нужно использовать пакет unsafe. Я когда копался во внутренностях мапы написал код, который это упрощает. Не то чтобы это получилась полноценная либа, но я решил выложить, чтобы не потерялось. Удобно, если надо посмотреть, что внутри.

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

Передача файлов между разными компьютерами Нашел крутую штуку - croc https://github.com/schollz/croc Супер простая и удобная
Передача файлов между разными компьютерами Нашел крутую штуку - 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

Скорость - максимальная

Я зачем-то поднял демоны Prometheus + NodeExporter + Grafana на ноуте, чтобы смотреть за температурой ЦПУ несколько дней, пер
Я зачем-то поднял демоны Prometheus + NodeExporter + Grafana на ноуте, чтобы смотреть за температурой ЦПУ несколько дней, перед тем, как почищу его и заменю термопасту 🏥 (По центру - это я фильм в 4к запустил)

Decoupling is an essential tool to enable the management of change - Gregor Hohpe, Bobby Woolf - Enterprise Integration Patterns

Любители директории pkg оправдывайтесь: https://go.dev/doc/modules/layout

Чтобы написать в чат в WhatsApp не добавляя номер в контакты можно сделать так: wa.me/79167772424

Основная причина, почему директория pkg в Go проектах - зло https://xkcd.com/1172/
Основная причина, почему директория pkg в Go проектах - зло https://xkcd.com/1172/

Если кого интересует какую структуру проекта можно себе взять на вооружения для 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
│   └── pkg
│       ├── config
│       ├── logger
│       ├── prometheus
│       └── tech
├── main.go
└── README.md

HTTP Версии HTTP/1 - каждый запрос - это отдельное TCP соединение HTTP/1.1 - Добавили Keep Alive. Несколько запросов могут пр
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.

Давно искал, как сделать подобное - нарисовать граф yaml, toml или json файла. Если с последним легче всего, то с первыми дву
Давно искал, как сделать подобное - нарисовать граф yaml, toml или json файла. Если с последним легче всего, то с первыми двумя чуть посложнее найти решение. И оказывается прям в IDE от JetBrains есть плагин - DataGraph