Лучшее из любимого: 13 отличных статей о Computer Science
2026-02-21 14:28 Diff

#статьи

  • 13 окт 2021
  • 0

Участник проекта Papers We Love делится подборкой статей-любимок.

Polina Vari для Skillbox Media

Фулстек-разработчик. Любимый стек: Java + Angular, но в хорошей компании готова писать хоть на языке Ада.

об авторе

Программист из Порту (Португалия). Любит читать научные статьи. Открыл филиал проекта Papers We Love в Порту.

Sometimes people ask me which computer science papers they should read and I can't really answer that question, but I can list the papers I've enjoyed reading over the past years.

— Pedro Tavareλ (@ordepdev) August 14, 2021

Перевод твита:

«Иногда меня спрашивают, какие статьи из области компьютерных наук стоит прочесть. Понятия не имею. Но могу назвать публикации, которые сам с удовольствием прочёл в последние годы».

Это отличные статьи. Мне нравилось их читать и перечитывать. Думаю, вам тоже стоит с ними познакомиться.

Примечание переводчика:

Педру — участник проекта Papers We Love, глава филиала в Порту. Подробнее об этом проекте мы рассказывали здесь. И сам проект, и эта подборка статей отлично отвечают на вопрос, зачем программисту английский язык :)

Скриншот: M. Rosenblum et al. / University of California Berkeley, 1991 / Pedro Tavareλ

💡 Из этой статьи вы узнаете о файловой системе с журнальной структурой. Все изменения в ней последовательно пишутся на диск, что ускоряет как запись файлов, так и восстановление системы после сбоев.

Скриншот: D. Comer / Purdue University, 1979 / Pedro Tavareλ

💡 Вы узнаете об индексной структуре для внешней памяти — B-дереве и его видах. В статье очень хорошо объясняется, почему эти деревья стали так популярны.

Скриншот: P. O’Neil et al. / Acta Informatica, 1996 / Pedro Tavareλ

💡 Продолжаем изучать эффективную и малозатратную индексацию. Теперь речь пойдёт о файле, в который долгое время активно вставляют новые записи. В статье также хорошо сравниваются затраты на ввод-вывод данных для LSM-деревьев и B-деревьев.

Скриншот: J. Kreps et al. / LinkedIn Corp., 2011 / Pedro Tavareλ

💡 Вы узнаете об обработке журналов, принципах проектирования, архитектуре и компонентах Kafka, включая производителей (producers), брокеров (brokers) и потребителей (consumers).

Скриншот: P. Hunt et al. / Association for Computing Machinery, 2011 / Pedro Tavareλ

💡 Вы узнаете о координирующем ядре ZooKeeper, работающем по принципу wait-free («без ожидания»). А ещё в этой статье хорошо поданы многие понятия и концепции, лежащие в основе распределённых систем.к

Скриншот: R. C. Merkle / BNR Inc., 1979 / Pedro Tavareλ

💡 Вы узнаете об односторонних функциях, одноразовой подписи Лэмпорта — Диффи (Lamport-Diffie) и новой «древообразной подписи» (tree-signature), которую ещё называют деревом Меркла (Merkle tree).

Скриншот: L. Lamport / Massachusetts Computer Associates, Inc., 1978 / Pedro Tavareλ

💡 Это самая цитируемая статья Лесли Лэмпорта (Leslie Lamport). Вы узнаете о логических часах и синхронизации в режиме реального времени. А также о таких концепциях, как «полное упорядочивание» (total ordering) и отношение happened-before aka happens-before («произошло раньше», «выполняется прежде»).

Скриншот: A. Fox et al. / Stanford University, 1999 / Pedro Tavareλ

💡 Эта статья рассказывает о стратегиях повышения доступности систем, допускающих постепенную деградацию (graceful degradation).

Скриншот: L. Lamport et al. / SRI International, 1982 / Pedro Tavareλ

💡 Вы узнаете о надёжности компьютерных систем в ситуациях, когда им приходится справляться с отказом одного или нескольких компонентов («предательством среди генералов». — Пер).

Скриншот: M. P. Herlihy et al. / Carnegie Mellon University, 1987 / Pedro Tavareλ

💡 Вы узнаете об условии, при котором параллельные объекты ведут себя правильно. Оно гарантирует, что операции чтения и записи в многопоточной среде будут строго упорядочены по времени.

Примечание переводчика:

Параллельный объект — автономный объект, имеющий собственный поток управления и способный работать в многопоточной среде. Также его называют активным объектом, процессом, задачей, потоком, параллельным процессом или параллельной задачей.

Источник

Скриншот: N. Preguiça et al. / Springer International Publishing, 2018 / Pedro Tavareλ

💡 Вы узнаете о структуре данных (CRDT), при которой не нужно синхронизировать реплики данных, находящиеся на разных компьютерах, а возможные несоответствия в согласованности распределённого объекта разрешаются математическими методами.

Скриншот: P. S. Almeida et al. / Journal of Parallel and Distributed Computing, 2018 / Pedro Tavareλ

💡 Вы узнаете о бесконфликтных реплицируемых типах данных на основе состояний (state-based CRDTs). И об их развитии — δ-CRDTs (CRDT c дельта-состояниями). Инкрементальные состояния (дельты) уменьшают объём данных, пересылаемых для поддержания согласованности распределённого объекта. То есть вместо всех (возможно, объёмных) данных состояния в δ-CRDTs при периодической синхронизации рассылаются только недавно внесённые изменения.

Скриншот: J. Armstrong / Printed by Universitetsservice, 2003 / Pedro Tavareλ

💡 Вы узнаете об Erlang, параллельном программировании, передаче сообщений, отказоустойчивости и концепции «let it crash» («сломалось и ладно». — Пер.).


Бесплатный курс по Python ➞
Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу