Архив метки: books

Книга «Grokking Simplicity» — отличное введение в функциональное программирование

Закончил чтение книги Grokking Simplicity: Taming complex software with functional thinking. Очень советую ее прочитать всем. Это одна из тех книг, которые относятся к категории концептуальных книг.

Книга очень подробно излагает на примерах концепции и идеи функционального программирования. Мне понравилось то, что в книге концепции эти подаются очень взвешенно, постепенно и подробно объясняются с помощью иллюстраций, схем и кода.

Для примеров используется код, написанный на JavaScript. Автор выбрал именно этот язык потому что а) его практически все программисты знают, а те, кто не знает, легко его поймут б) в нем отсутствуют многие инструменты функционального программирования, которые присутствуют в других языках уже изначально. Поэтому из главы в главу постепенно вместе с автором мы создает инструменты-элементы функциональных программ, которые в других языках мы получаем «из коробки». Автор считает что, так мы лучше понимаем, как эти элементарные инструменты работают изнутри.

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

Читать далее

Что читать программисту?

Книги — источник знаний. Помимо книг сейчас есть множество других источников — блоги, статьи в журналах, конференции, презентации и видео-ролики на YouTube. Но давайте поговорим о книгах.

Читать далее

Книги о Linux и операционных системах вообще

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

В одной из предыдущей статей я описал некоторые элементы стандартной многозадачной операционной системы — на примере Linux, как работают те или иные ее компоненты, и как они могут сказаться на производительности вашего торгового приложения. Но все это изложено достаточно поверхностно. В короткой статье вряд ли можно описать все нюансы работы ОС и дать детальную информацию. Почерпнуть же подробности можно из книг. Ниже я приведу список книг, которые на мой взгляд дают ценную информацию об устройстве Linux ОС, а также книги, посвященные общему описанию устройства ОС, которые дают вам возможность сравнить, как и почему разные ОС выполняют одну и ту же операцию, но по-своему по-разному.

Читать далее

Книга Rogue Trader и интересные технические детали из нее

На днях прочитал книгу Ника Лисона о том, как он разорил банк Barings. По этой книге снят хороший фильм, который я всем очень советую посмотреть. Действие книги происходит в 1992-1995 годах, когда Ник Лисон поступил на работу в банк Barings и был направлен на работу в Сингапур, где Barings только что открыл свой офис для совершения сделок по деривативам на сингапурской бирже SIMEX.

В Сингапуре на тот момент существовало несколько бирж. Биржа торговли акциями и облигациями Stock Exchange of Singapore (SES) была создана в 1973 году. Биржа Singapore International Monetary Exchange (SIMEX) была создана в 1984 году в тесном сотрудничестве с Chicago Mercantile Exchange (CME).

Я опущу детали событий, описанных в книге. Меня заинтересовали технические подробности, которые могут быть интересны с точки зрения финансов, программирования и истории биржевого дела.

Читать далее

Почувствовать машину

Термин «Mechanical Sympathy» ввел в обиход программистов разработчик Мартин Томпсон. Взял он его из мемуаров знаменитого шотландского гонщика Джеки Стюарта (Jackie Stewart) 60-ых годов, неизменного победителя всех гонок Formula-1 1965-1973 годов. Когда его спросили, как ему удается побеждать, он ответил:

You don’t have to be an engineer to be a racing driver, but you do have to
have mechanical sympathy.

Вам не надо быть инженером, чтобы быть хорошим гонщиком, достаточно просто чувствовать машину.

Казалось бы в гонках главное — это скорость. Жми на педаль, не жалей машину и гони ее к финишу на полном форсаже.  Однако после такой гонки машину можно сдавать в утиль. Эффективным гонщиком считается водитель, способный выиграть гонку или хотя бы довести машину до финиша и при этом не убить дорогой аппарат. Понимание того,  как работает машина в целом и как работают ее узлы в частностях, помогают хорошему гонщику вести автомобиль на гоночной скорости, чувствовать, когда она работает на последнем пределе и не изнашивать ее механизмы без особой надобности.

Какое отношение это все имеет к программированию?

Нет нужды пересказывать всё, что было уже сказано в многочисленных презентациях Мартина Томпсона, который даже свой блог назвал Mechanical Sympathy. Последние записи в блоге, увы, датированы 2013 годом, но статьи, опубликованные в нем, по-прежнему актуальны и интересны.

Mechanical sympathy упоминается и в книге Optimizing Java, что естественно. Невозможно оптимизировать Java-приложение, не понимая механику JVM, сборщика мусора, операционной системы и так далее.

Данная статья является лишь моим скромным пересказом идеи mechanical sympathy.

Читать далее