• Ненаучно о монадах

      Всем привет.

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

      Примеры кода будут написаны на языке Kotlin, т.к. он достаточно популярен, и в то же время достаточно функционален (в обоих смыслах этого слова).
      Читать дальше →
    • Функциональное программирование в Scala — нужно ли оно вообще?

        В этой статье я хотел бы на примере простого чисто функционального кода показать, как он видоизменяется при добавлении требований к тестируемости и расширяемости, и что же получается в итоге. Надеюсь, это будет интересно всем, кто интересуется дизайном ПО и функциональным дизайном в частности. Также желательно немного понимать язык Scala, ну или уметь быстро разбираться.
        Читать дальше →
      • GraphQL как универсальный RPC

          Это не совсем образовательный пост о «Что такое GraphQL» или почему он так крут, или даже об опыте использования GraphQL в продакшне. Я просто хочу вкратце изложить свое мнение о том, что это за технология, и возможный практичный подход к ее применению.
          Читать дальше →
        • No way back: Почему я перешел с Java на Scala и не собираюсь возвращаться

            Споры насчет преимуществ и недостатков Scala перед Java напоминают мне споры о C против С++. Плюсы, конечно же, на порядок более сложный язык с огромным количеством способов выстрелить себе в ногу, уронить приложение или написать совершенно нечитабельный код. Но, с другой стороны, C++ проще. Он позволяет делать простым то, что на голом C было бы сложно. В этой статье я попытаюсь рассказать о той стороне Scala, которая сделала этот язык промышленным — о том, что делает программирование проще, а исходный код понятнее.
            Читать дальше →
          • IoC: Еще один вариант реализации для Scala

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

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

              Читать дальше →
            • Highload на Java: о чем нужно помнить

              Highload — это тема одновременно модная и достаточно заезженная, тем более, что нет четкого определения, что же такое «Highload». Для ясности, давайте назовем «Highload» сетевое приложение, которое должно обрабатывать 1000 запросов в секунду. А приложение, обрабатывающее 1 запрос в секунду, соответственно, «не Highload». Мой опыт показывает, что между первым и вторым есть существенная разница в архитектуре, подходах к разработке и проблемах. В этой статье я попытаюсь изложить эти отличия, как я их понимаю.

              image

              Итак…
              Читать дальше →
              • +3
              • 18.5k
              • 6