Архив автора: alexk

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

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

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

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

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

Читать далее

Зачем выставлять стартовые параметры -Xmx и -Xms у JVM на одно значение

В стартовых параметрах Java есть два параметра -Xmx и -Xms, которые отвечают за то, какой объем heap вы хотите выделить вашему приложению при старте (-Xms), и какой максимальный объем памяти (-Xmx) вы хотите выделить для программы за все время ее работы.

Опыт показывает, что для улучшения производительности крупного «тяжелого» Java-приложения лучше всего этим двум параметрам давать одно и то же значение. Как выбрать конкретное значение, рассказывается в другой статье. В данной заметке я просто приведу несколько аргументов в пользу этой стратегии.

Читать далее

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

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

Читать далее

Экзотические технологии в финансах

Помимо обыденных баз данных Sybase, Oracle и языков программирования С++, Java, Clojure, Scala, Python в банках и других финансовых учреждениях можно встретить и весьма экзотические технологии. Многие из этих технологий созданы много лет назад для решения каких-то специфических задач в области финансов и биржевой торговли. Так как замена этих технологий на что-то новое обойдется дороже поддержки, эти технологии продолжают жить в своей нише. И лишь некоторые из них выходят за рамки своей узкой специализации.

Многие наверное слышали о страшных миллионах строк кода написанных в 70-ых на Cobol, которые сейчас никто не может понять, но которые работают по сей день. Я уже упоминал о «страшном» языке RPG, который до сих пор используется на мейнфреймах System i (бывш. AS/400) в back office. Но в данной статье пойдет о чем-то еще более экзотичном.

Читать далее

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

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

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

Читать далее