Конкурентность в Go: общая память

Данная статья является переводом статьи Фредерико Биттенкарта (Frederico Bittencourt). Я поэкспериментировал с несколькими примерами для лучшего понимания как модель памяти в Go ведет себя в конкурентных программах. Я попробую объяснить, что я изучил по поводу порядка операций на мульти-ядерных CPU.

В защиту связных списков

Пару дней назад, в твиттере я говорил об очень плохой реализации связных списков, написанной на Rust. Из тонны определенных реплаев я понял думают о связном списке как о шутке. Тривиальная структура данных, которая только и хороша, что для coding interview, в других случаях бесполезна.

Как сделать распределенную блокировку

Как часть исследования для моей книги, я встретил алгоритм Redlock на сайте Redis. Алгоритм утверждает, что он реализует отказоустойчивые распределенные блокировки (точнее сказать, аренды) основываясь на Redis. Этот алгоритм вызывает тревожный звоночек в моем разуме

20 вещей, которые я понял за 20 лет, будучи программным инженером

Перевод. Мои советы от того, кто... 1. почти всегда работал в небольших командах. 2. ценит больше работающую программу, чем какой-то инструмент. 3 .постоянно начинает новые проекты, при этом поддерживает несколько существующих. 4. ценит производительность инженеров выше, чем другие соображения.

9 общих правил в переговорах, чтобы получить от них максимальную отдачу

Перевод. Опытный финансист Рей Далио побывал на всех типах деловых встреч: хороших, плохих и ужасных (отсылка к вестерну). Эти советы о том, как он сохраняет концентрацию и продуктивность своих митингов.

Технологии разрушают самую важную ценность вашей жизни

Перевод. «Деньги — это не самая важная часть в вашей жизни. Время является таковым». Родители, учителя, менторы, весь окружающий мир говорит нам эти слова в той или иной форме всю нашу жизнь.