Архив января 2025 - 266

Как типы делают сложные задачи простыми - 1


Последнюю пару лет мой мозг программиста всё больше увлекался типами, принципами функционального программирования и Typescript. По большей мере на это повлияло огромное количество времени, потраченное мной на кодовую базу Heartbeat — фулстек-приложения из трёхсот тысяч строк на Typescript, включающего в себя веб-приложение React, мобильное приложение React Native и сервер Node.js. Мой опыт работы с этой кодовой базой показал мне, что чем больше я полагаюсь на систему типов, тем больше пользы из этого извлекаю.

Написание кода в кодовой базе, полностью сделавшей упор на типы, похоже на жульничество. Часто я могу реализовать 80% новой фичи, ни разу не запустив код. Я начинаю работать над крупным рефакторингом, требующим нарушить допущение, принятое во всём коде, но вскоре выясняю, что благодаря системе типов изменения оказываются тривиальными. Простые фичи практически кодируют себя сами, потому что опечатки мгновенно отлавливаются, а половина моего кода пишется автодополнением. На вопросы от команды техподдержки о тонкостях работы какой-то фичи можно ответить при помощи Ctrl+F в коде, даже если письменной документации почти нет. Целые категории багов, с которыми мне приходилось бороться, попросту исчезли.

Я начал называть стиль кодинга, позволяющий реализовать подобное, Type Driven Development. В статье я приведу разрозненные мысли и ссылки на ресурсы, сильно повлиявшие на то, как я понимаю type driven development.
Читать полностью »

Решил по мере сил делиться примерами использования ассемблера в своих проектах. Я не буду рассуждать о том, надо это или не надо конкретно в вашем проекте. Просто показываю, а выводы делаете вы сами.

Вводные данные

В данный момент заканчиваю разработку цифрового синтезатора Kaleidoscope собственного авторства. Синтезатор работает на базе микроконтроллера stm32f446, процессор которого имеет ряд очень интересных и полезных инструкций, описанных в Programming Manual.

Читать полностью »

1 января 1970 года. День создания индустрии программного обеспечения - 1

Эра Unix — это дата, которая жёстко закодирована в компьютерах повсеместно. Возможно, это самая известная дата в вычислительной технике, и она будет существовать до тех пор, пока у нас есть системы, основанные на Unix.

Читать полностью »

image

Привет! На связи команда Selectel. Разработчики Ruby молодцы: прошло всего два месяца — и уже готов новый выпуск языка, на этот раз 3.4.0. Напомню, что это динамически объектно-ориентированный язык программирования. Его хвалят за возможность быстро разработывать приложения.

Ruby вобрал в себя лучшие черты таких языков, как Perl, Java, Python, Smalltalk, Eiffel, Ada и Lisp, чтобы предложить разработчикам простой и гибкий инструмент для решения задач. Код Ruby распространяется под лицензиями BSD («2-clause BSDL») и «Ruby», которая совместима с GPLv3 и ссылается на последнюю версию лицензии GPL. Но хватит о языке, давайте, наконец, поговорим о его новом выпуске.
Читать полностью »

Всем привет. Меня зовут Александр, и я айтишник. Нет, я не торчок, но уже несколько лет я живу с постоянной болью, как morphiumsüchtig на ломке (хотя и не так страшно). В течение этого времени у меня сложилось понимание ( а оно всегда субъективно ), как работает регуляция боли, последствия ее нарушения, и почему это может коснуться каждого. Даже тебя, Анон. А скорее всего уже коснулось. Особенно, если ты, Анон, знаком с фразами "у вас остеохондроз", "сорвал спину", "что-то защемило", то статья про тебя и для тебя. Надеюсь, она будет полезна.

Дисклеймер.

Читать полностью »

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

Читать полностью »
Новогоднее чудо — кастомная электрогитара мечты - 1

Привет! Я люблю делать подарки не только другим, но и себе, причём своими руками. В этом году такой самоделкой стал кастомный синглкат с тремя звукоснимателями. Он может звучать и как Лес Пол, и как Стратокастер или Телекастер.Читать полностью »

Суть клинописи – в засечках, которые наносятся на глиняные таблички с помощью тростникового стилуса. Новый способ хранения данных использует наномасштабные углубления, сделанные на высокотехнологичном полимере с помощью тонкого зонда, и благодаря атомно-силовому микроскопу.

Клинопись 21 века. Способ хранения данных с большей плотностью - 1

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js