Pull to refresh
1
0
Артём Мурашко @art22m

User

Send message

Внутренности Go: оборачиваем переменные цикла в замыкании

Reading time9 min
Views21K


Сегодня я решил перевести для вас небольшую статью о внутренностях реализации так называемых замыканий или closures. В дополнение вы узнаете о том, как Go пытается автоматически определить, нужно ли использовать указатель/ссылку или значение в разных случаях. Понимание этих вещей позволит избежать ошибок. Да и просто все эти внутренности чертовски интересны, как мне кажется!


А еще я хотел бы пригласить вас на Golang Conf 2019, которая пройдет 7 октября в Москве. Я член программного комитета конференции, и мы с коллегами выбрали много не менее хардкорных и очень, очень интересных докладов. То, что я люблю!


Под катом передаю слово автору.

Читать дальше →
Total votes 73: ↑72 and ↓1+71
Comments8

Брокеры сообщений, или Как происходит взаимодействие в рамках распределённой инфраструктуры

Reading time7 min
Views83K

Привет, Хабр!

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

Что будет, если ввести этот элемент в вашу архитектуру? И почему это особенно актуально сейчас, когда так широко распространился микросервисный подход к проектированию систем? Обсудим это сегодня. Все подробности — под катом.

Читать далее
Total votes 7: ↑5 and ↓2+3
Comments0

CORS для чайников: история возникновения, как устроен и оптимальные методы работы

Reading time17 min
Views373K


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

Если вы давно хотели разобраться в CORS и вас достали постоянные ошибки, добро пожаловать под кат.

Ошибка в консоли вашего браузера


No ‘Access-Control-Allow-Origin’ header is present on the requested resource.

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://example.com/

Access to fetch at ‘https://example.com’ from origin ‘http://localhost:3000’ has been blocked by CORS policy.


Я уверен, вам уже доводилось видеть похожие сообщения об ошибках в консоли вашего браузера. Если нет, не волнуйтесь, скоро увидите. Все программисты достаточно часто натыкаются на CORS-ошибки. 

Эти всплывающие ошибки в процессе разработки просто раздражают. Но на самом деле, CORS — это невероятно полезный механизм в мире неправильно настроенных веб серверов, злоумышленников, орудующих в интернете и организаций, продвигающих веб-стандарты.

Но давайте-ка пойдем к истокам…
Читать дальше →
Total votes 59: ↑58 and ↓1+57
Comments14

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

Level of difficultyMedium
Reading time7 min
Views23K

Сегодня поговорим о банальных вещах: надо мыть руки перед едой, регулярно делать зарядку и получать доходы от инвестирования. Кто выполняет все три условия, может дальше не читать, с остальными будем обсуждать жидкое мыло с кремом и примеры “инвестирования” в 2023 г. 

Надо отметить, что под инвестированием будут рассматриваться и спекуляции, условное отличие этих понятий в сроках и способах применения денег.

Читать далее
Total votes 38: ↑21 and ↓17+4
Comments100

Пошатывание устоев или из FAANG в HFT-стартап

Level of difficultyEasy
Reading time7 min
Views5.8K

Я — разработчик серверных компонент со стажем в 10+ лет (C++, python). Не трейдер и не квант. Эта статья — результат моих годичных наблюденией, когда после 8 лет в больших IT‑корпорациях, я внезапно нырнул в HFT‑стартап с коллективом в сотню человек. Что в разнице подходов к разработке удивило меня сильнее всего?

Читать далее
Total votes 32: ↑28 and ↓4+24
Comments23

Amazon S3 — детективное расследование внутренней архитектуры

Reading time9 min
Views18K

Мне понравился опыт прошлого расследования по фейсбуку, и я решил организовать очередную серию, теперь про Amazon. Для нетерпеливых — в самом конце статьи описан итоговый вариант архитектуры Amazon S3 и проанализированы его свойства.



Не так давно Амазон объявил о переходе S3 с модели eventual consistency на strong consistency, то есть, предоставления гарантии read-after-write, чтения того, что было только что записано. Сообщество отреагировало, но как-то очень вяло: Amazon S3 Now Delivers Strong Read-After-Write Consistency


Первое, что лично мне подумалось в ответ на эти новости: а как же теорема CAP?

Читать дальше →
Total votes 43: ↑43 and ↓0+43
Comments16

Создаём репозиторий в Go через менеджер транзакций

Reading time12 min
Views13K

Всем привет, я Илья Сергунин, веб-разработчик из продуктовой команды Авито. Мы пишем на Go сервис для трейд-ин мобильных телефонов. На его примере покажу, как устроен наш менеджер транзакций.

Читать далее
Total votes 7: ↑7 and ↓0+7
Comments7

Разбираем HTTP/2 по байтам

Level of difficultyMedium
Reading time24 min
Views27K

image


Откройте любую статью с обзором HTTP/1.1. Скорее всего, там найдётся хотя бы один пример запроса и ответа, допустим, такие:


GET / HTTP/1.1
Host: localhost

HTTP/1.1 200 OK
Date: Sat, 09 Oct 2010 14:28:02 GMT
Server: Apache
Content-Length: 38
Content-Type: text/html; charset=utf-8

<!DOCTYPE html>
<h1>Привет!</h1>

Теперь откройте статью с обзором HTTP/2 или HTTP/3. Вы узнаете о мультиплексировании запросов, о сжатии заголовков, о поддержке push-технологий, но вряд ли увидите хоть одно конкретное сообщение. Ясно, почему так: HTTP/1.1 — текстовый протокол, тогда как сиквелы к нему бинарные. Это очевидное изменение открывает дорогу ко множеству оптимизаций, но упраздняет возможность просто и доступно записать сообщения.


Поэтому в этой статье предлагаю покопаться в кишках у HTTP/2: разобрать алгоритмы установки соединения, формат кадров, примеры взаимодействия клиента с сервером.

Читать дальше →
Total votes 115: ↑115 and ↓0+115
Comments45

Information

Rating
Does not participate
Location
Россия
Works in
Registered
Activity