|
rss_habr
Программирование — это про общениеВторник, 23 Августа 2022 г. 21:35 (ссылка)
Когда выгорание по внутренним (и внешним) причинам достигает максимума, когда тошнит от одного воспоминания о том как выглядит IDE, когда мнится что в седло большой разработки больше не вернутся никогда, но, при всём при этом, вносить свой вклад в развитие индустрии хочется - остаётся одно. Сменить угол обзора. Эта статья - первая попытка взглянуть на программирование не с позиции технического специалиста, а с позиции человека. Со своими страстями и желаниями. С чисто людскими ошибками и заблуждениями... Одной ошибок было считать окружающих болванами только потому что они не считают всякую многократно изложенную мною в коде мудрость - истинной. Давайте поговорим об этомhttps://habr.com/ru/post/684282/?utm_source=habrahabr&utm_medium=rss&utm_campaign=684282
rss_habr
Нормальные алгоритмы Маркова как основание языка программированияВторник, 23 Августа 2022 г. 11:49 (ссылка)
В этой статье хотелось бы поделиться мыслями о применении Нормальных Алгоритмов Маркова (далее по тексту: НАМ) в качестве основания для языка программирования. Заранее скажу, что представленный концепт ЯП не претендует на решение каких-либо «мировых» проблем программирования, не представляет собой замену существующим инструментам, это результат моих скромных исследований в области проектирования ЯП. Читать далееhttps://habr.com/ru/post/682972/?utm_source=habrahabr&utm_medium=rss&utm_campaign=682972
rss_habr
Нормальные алгоритмы Маркова как основание языка программированияВторник, 23 Августа 2022 г. 11:49 (ссылка)
В этой статье хотелось бы поделиться мыслями о применении Нормальных Алгоритмов Маркова (далее по тексту: НАМ) в качестве основания для языка программирования. Заранее скажу, что представленный концепт ЯП не претендует на решение каких-либо «мировых» проблем программирования, не представляет собой замену существующим инструментам, это результат моих скромных исследований в области проектирования ЯП. Читать далееhttps://habr.com/ru/post/682972/?utm_source=habrahabr&utm_medium=rss&utm_campaign=682972
rss_habr
Discriminated Unions в C#Вторник, 23 Августа 2022 г. 10:48 (ссылка)
Всем привет. Среди многих интересных концепций, имеющихся в F#, меня привлекли Discriminated Unions. Я задался вопросом, как их реализовать в C#, ведь в нем отсутствует поддержка (синтаксическая) типов объединений, и я решил найти способ их имитации. Discriminated Unions - тип данных, представляющий собой размеченные объединения, каждый из которых может состоять из собственных типов данных (также именованных). Идея в том, что мы имеем ограниченное количество вариантов выбора, и каждый вариант может состоять из своего набора данных, никак не связанных с другими, но все варинанты объединены общим подтипом. Для создания своих Discriminated Unions будем использовать эту мысль Читать далееhttps://habr.com/ru/post/684104/?utm_source=habrahabr&utm_medium=rss&utm_campaign=684104
rss_habr
Discriminated Unions в C#Вторник, 23 Августа 2022 г. 10:48 (ссылка)
Всем привет. Среди многих интересных концепций, имеющихся в F#, меня привлекли Discriminated Unions. Я задался вопросом, как их реализовать в C#, ведь в нем отсутствует поддержка (синтаксическая) типов объединений, и я решил найти способ их имитации. Discriminated Unions - тип данных, представляющий собой размеченные объединения, каждый из которых может состоять из собственных типов данных (также именованных). Идея в том, что мы имеем ограниченное количество вариантов выбора, и каждый вариант может состоять из своего набора данных, никак не связанных с другими, но все варинанты объединены общим подтипом. Для создания своих Discriminated Unions будем использовать эту мысль Читать далееhttps://habr.com/ru/post/684104/?utm_source=habrahabr&utm_medium=rss&utm_campaign=684104
rss_habr
[Перевод] Грокаем монадыСуббота, 13 Августа 2022 г. 15:29 (ссылка)
Прим. переводчика: Это перевод первой статьи из целого цикла постов "Грокаем функциональное программирование" Мэта Тронтона. Да, это очередная статья про монады. Но она отличается от всего, что я читал по этой теме ранее. Поэтому мне захотелось перевести ее, чтобы самому внимательно вчитаться, чтобы поделиться с теми, кому трудно воспринимать такой материал на английском или кому она не попалась на глаза, чтобы, в конце концов, просто сохранить, так как сеть штука ненадежная. Самый распространенный способ объяснить монаду - зайти через теорию категорий. Знать, что монада - это моноид в категории эндофункторов и увлекательно и полезно для общего развития, но слабо помогает в практическом смысле. Второй, равный по популярности прием - прибегнуть к помощи образов, и вот мы уже складываем значения в коробочки и достаем их оттуда (или, вообще кошмар, катимся по железной дороге). Не спорю, образы - хороший способ посмотреть на явление, но тут мы равно удалились и от теории категорий и от практики. Комментарии под такого рода статьями не перестают полниться вопросами: а что нам это дает, жили же без монады как-то? Автор, подобно лектору по математике, у которого вылетело из головы доказательство теоремы и он доказал ее прямо у доски, ориентируясь на интуитивное представление, как бы хотелось решить задачу, постепенно пробирается от корявого куска кода к лаконичному. Если бы даже монады не существовало, мы должны бы были ее изобрести, потому что она позволяет писать код чище.
https://habr.com/ru/post/682340/?utm_source=habrahabr&utm_medium=rss&utm_campaign=682340
rss_habr
Проектируем DataGrid на React так, чтобы сэкономить BoilerplateЧетверг, 15 Июля 2022 г. 03:28 (ссылка)
rss_habr
Обработка исключений в Java в функциональном стилеСреда, 14 Июля 2022 г. 00:49 (ссылка)
В данной статье автор предоставит информацию о собственной библиотеке для обработки исключений (Exception) в функциональном стиле. Предпосылки В Java начиная с версии 8 появились новые возможности в виде функциональных интерфейсов и потоков (Stream API). Эти возможности позволяют писать код в новом функциональном стиле без явных циклов, временных переменных, условий ветвления и проч. Я уверен что этот стиль программирования станет со временем основным для большинства Java программистов. Читать далееhttps://habr.com/ru/post/676852/?utm_source=habrahabr&utm_medium=rss&utm_campaign=676852
rss_habr
Потоковая обработка на go1.18Пятница, 01 Июля 2022 г. 15:58 (ссылка)
В версии 1.18 языка Go появились генерики, дающие возможность писать обобщенный код, то есть код, не зависящий от конкретного типа данных. Например можно написать код, обрабатывающий потоки данных - применить к ним одну и ту же функцию, отфильтровать, просуммировать и т.д., не завязываясь на конкретные типы данных. Так как я вижу потенциал в парадигме поточной обработки с помощью итераторов/стримов и теперь есть возможность реализовать ее в Go, я решил сделать это. Читать далееhttps://habr.com/ru/post/674596/?utm_source=habrahabr&utm_medium=rss&utm_campaign=674596
rss_habr
Применение обобщённой свёртки для обработки синтаксических деревьевСуббота, 28 Мая 2022 г. 20:06 (ссылка)
Привет, Хабр! В статье я покажу, как представить синтаксические деревья с помощью фиксированной точки для функторов. Такое представление позволяет снабжать каждый лист дерева дополнительной информацией о самом листе (например позицией выражение в файле с программой), при этом непосредственно перед обработкой листа мы можем убрать из него эту информацию. Таким образом во время обработки в конструкторах синтаксического дерева будут находиться только необходимые данные, что позволяет писать более чистый код для его обработки. К концу статьи мы напишем интерпретатор для простого императивного языка программирования, на примере которого будет показано всё вышеперечисленное Читать далееhttps://habr.com/ru/post/667058/?utm_source=habrahabr&utm_medium=rss&utm_campaign=667058
rss_habr
Потоковая обработка данных в goВоскресенье, 23 Мая 2022 г. 00:05 (ссылка)
При использовании языка Go чувствуется нехватка хорошей библиотеки для работы с потоками данных. Имеющиеся библиотеки в основном написаны во времена до дженериков и имеют не очень удобный интерфейс. С выходом Go 1.18 появилась возможность реализовать библиотеку потоковой обработки данных goio, вдохновлённую превосходными Scala-библиотеками cats-effect и fs2. Читать далееhttps://habr.com/ru/post/667164/?utm_source=habrahabr&utm_medium=rss&utm_campaign=667164
rss_habr
[Перевод] Что такое мемоизация? Как и когда использовать мемоизацию в JavaScript и ReactСреда, 18 Мая 2022 г. 22:58 (ссылка)
В данном переводе рассказывается о том, что такое мемоизация, зачем её использовать. Также представлены основные примеры на JavaScript и React, демонстрирующие работу мемоизации. Развернутьhttps://habr.com/ru/post/666522/?utm_source=habrahabr&utm_medium=rss&utm_campaign=666522
rss_habr
С++ без классов?Четверг, 21 Апреля 2022 г. 23:44 (ссылка)
(на картинке изображён С++ среди других функциональных языков) Классы - это скорее всего первое, что добавил Страуструп в далёких 1980х, ознаменовав рождение С++. Если представить, что мы археологи древних плюсов, то косвенным подтверждением этого факта для нас будет this, который по прежнему в С++ является указателем, а значит, скорее всего, он был добавлен до "изобретения" ссылок! Но речь не про это, пора окинуть взглядом пройденный с тех пор путь, изменение и языка и парадигм, естественный отбор лучших практик, внезапные "великие открытия" и понять к чему это всё привело язык, который когда то вполне официально назывался С с классами (ныне мем). В конце(СПОЙЛЕР) мы попытаемся превратить С++ в функциональный язык за несколько простых действий. Для начала рассмотрим базовое применение классов: Начать погружениеhttps://habr.com/ru/post/662351/?utm_source=habrahabr&utm_medium=rss&utm_campaign=662351
rss_habr
С++ без классов?Четверг, 21 Апреля 2022 г. 23:44 (ссылка)
(на картинке изображён С++ среди других функциональных языков) Классы - это скорее всего первое, что добавил Страуструп в далёких 1980х, ознаменовав рождение С++. Если представить, что мы археологи древних плюсов, то косвенным подтверждением этого факта для нас будет this, который по прежнему в С++ является указателем, а значит, скорее всего, он был добавлен до "изобретения" ссылок! Но речь не про это, пора окинуть взглядом пройденный с тех пор путь, изменение и языка и парадигм, естественный отбор лучших практик, внезапные "великие открытия" и понять к чему это всё привело язык, который когда то вполне официально назывался С с классами (ныне мем). В конце(СПОЙЛЕР) мы попытаемся превратить С++ в функциональный язык за несколько простых действий. Для начала рассмотрим базовое применение классов: Начать погружениеhttps://habr.com/ru/post/662351/?utm_source=habrahabr&utm_medium=rss&utm_campaign=662351
rss_habr
АгрегатыСреда, 13 Апреля 2022 г. 04:40 (ссылка)
Я считаю, что именно агрегаты из Domain-Driven Design лежат в основе поддерживаемых информационных систем. Однако эта концепция малоизвестна за пределами DDD-сообщества и довольно сложна для понимания, поэтому я решил написать очередной пост посвящённый агрегатам. В основном для чтобы структурировать собственное понимание агрегатов и создать "методичку" для своих команд, но и широкой общественности, я надеюсь, этот пост тоже может быть полезен. Что такое агрегат?https://habr.com/ru/post/660599/?utm_source=habrahabr&utm_medium=rss&utm_campaign=660599
|
LiveInternet.Ru |
Ссылки: на главную|почта|знакомства|одноклассники|фото|открытки|тесты|чат О проекте: помощь|контакты|разместить рекламу|версия для pda |