#%D1%82%D0%B8%D0%BF%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85

2025-11-03

[Перевод] Ранняя история алгебраических типов данных

Это началось со статьи "Алгебраические типы данных на самом деле не такие страшные". Мы знаем о типах-суммах и типах-произведениях. Но задумывались ли вы когда-нибудь о том, откуда они получили такие имена, и как вообще были открыты они и их свойства? Я провел последнюю неделю в кроличьей норе истории, и я просто обязан поделиться тем, что я нашёл.

habr.com/ru/articles/962522/

#алгебраические_типы_данных #история_it #история #типизация #типсумма #типы_данных

2025-07-04

[Перевод] Как хранить деньги в базах данных и почему это не так просто, как кажется

Хранение денежных сумм в базах данных и API: анализ подходов платежных систем Хранение денег — вещь только на первый взгляд простая, а на деле содержит множество подводных камней. Выбрав не тот тип данных, можно получить неточности в расчётах, возможна путаница при переводе суммы из одной валюты в другую. А если ещё и подключать внешние API, у каждого из которых своя точность для одних и тех же валют, уследить за совместимостью еще труднее. Разбираем, как решают эти проблемы Stripe, PayPal, Google Wallet и другие платежные системы. Сравниваем три основных подхода: Integer minor units, Decimal base units и String base units.

habr.com/ru/articles/924838/

#валюты #валюты_мира #финансовые_системы #decimal #bigint #типы_данных #float #double #хранение_данных #платежные_системы

2025-07-04

[Перевод] Как хранить деньги в базах данных и почему это не так просто, как кажется

Хранение денежных сумм в базах данных и API: анализ подходов платежных систем Хранение денег — вещь только на первый взгляд простая, а на деле содержит множество подводных камней. Выбрав не тот тип данных, можно получить неточности в расчётах, возможна путаница при переводе суммы из одной валюты в другую. А если ещё и подключать внешние API, у каждого из которых своя точность для одних и тех же валют, уследить за совместимостью еще труднее. Разбираем, как решают эти проблемы Stripe, PayPal, Google Wallet и другие платежные системы. Сравниваем три основных подхода: Integer minor units, Decimal base units и String base units.

habr.com/ru/articles/924838/

#валюты #валюты_мира #финансовые_системы #decimal #bigint #типы_данных #float #double #хранение_данных #платежные_системы

2025-07-02

Типы данных для хранения вещественных чисел в PostgreSQL

В статье рассматриваются особенности типов данных для хранения вещественных чисел в PostgreSQL. Типы данных PostgreSQL для работы с вещественными числами: 1) float4, синоним real, синоним float(1..24) 2) float8, синоним float, синоним double precision, синоним float(25..53) 3) numeric синоним decimal. Диапазон для этого типа значительный: 131072 цифр до точки и 16383 цифр после точки. Но если при определении типа указать numeric(точность, масштаб), то максимальные значения точности и масштаба 1000. numeric можно объявить с отрицательным масштабом: значения могут округляться десятков, сотен, тысяч. Кроме чисел и null поддерживаются значения Infinity, -Infinity, NaN. Поля типов данных фиксированной длины не могут вытесняться в TOSAT-таблицу, переменной длины (numeric) могут. float4 обеспечивает точность 6 разрядов (значащих чисел в десятичной системе счисления), float8 обеспечивает точность 15 разрядов. Последний разряд округляется:

habr.com/ru/articles/924378/

#типы_данных #postgresql #float8 #postgres #numeric

2025-07-01

[Перевод] Руководство по эффективной локализации в Unreal Engine

Локализация — один из ключевых, но часто недооценённых аспектов разработки игр. По мере роста глобальной аудитории игроки ожидают видеть игры на своём родном языке, и локализация становится не роскошью, а необходимостью. Однако локализация — это не просто перевод текста. Она включает в себя решение технических задач, учёт культурных особенностей и оптимизацию рабочего процесса, чтобы обеспечить плавный и комфортный игровой опыт на нескольких языках. В этой статье я расскажу о сложностях локализации в Unreal Engine, опираясь на свой опыт работы над Wizard of Legend 2 . Мы разберём сбор и управление текстом, а также проблемы с форматированием, гендерно‑зависимым языком и обработкой шрифтов. Также я расскажу о ключевых аспектах, которые могут вызвать задержки, и о том, как их минимизировать.

habr.com/ru/companies/otus/art

#геймдев #unreal_engine #Гендерная_локализация #шрифты #типы_данных #FText #unicode #Пайплайн_локализации

2025-06-17

Как устроены переменные в Python: глубокое погружение в память и типы данных

В мире Python существует много мифов о том, как работают переменные. Одни говорят, что "всё передаётся по ссылке", другие утверждают обратное. Правда, как обычно, лежит где-то посередине и гораздо интереснее простых объяснений. В этой статье мы детально разберём механизмы работы с памятью в Python 3.13, изучим различия между mutable и immutable объектами, и поймём, когда Python создаёт новые объекты, а когда переиспользует существующие. Дабы статье пожить подольше - рассмотрю только версию 3.13. Жми, если не Гей

habr.com/ru/articles/919318/

#python #переменные #типы_данных

2025-04-10

Нужно ли «развитие» языкам программирования

TL;DR: Нет. Хорошо спроектированный язык в развитии не нуждается. Попробую объяснить, что меня, человека с тридцатилетним стажем в разработке, свободно пишущем на более дюжины языков, привело к такому абсурдному — на первый взгляд — выводу. Более того, ниже я постараюсь уложиться в нескольких абзацев, чтобы рассказать, какие требования лично я предъявляю языку программирования в 2025 году, и почему этому «идеалу» просто некуда «развиваться». Опять школота против ООП и ФП

habr.com/ru/articles/899544/

#классы #типы #типы_данных #строгая_типизация #паттерны

2025-02-23

[Перевод] Парсер JSON в 500 строках Rust

За время прошлого семестра в универе я прошёл курс «Инструменты и компиляторы на основе синтаксиса». В рамках курса мы создавали сканер, парсер, компилятор и прочие инструменты для языка Plo. Писали мы их на Python, но тогда меня серьёзно заинтересовал Rust. В итоге я решил заняться очередным хобби-проектом, и на сей раз создать парсер JSON на Rust. Мне хотелось проверить полученные на курсе навыки и, наконец-то, реализовать проект на этом языке, что я откладывал уже не один год.

habr.com/ru/companies/ruvds/ar

#ruvds_перевод #парсинг_json #rust #программирование #plo #типы_данных

2025-02-13

Шпаргалка по типам Julia для инженеров и не только

Статья-шпаргалка о типах данных в Julia: от примитивных, до параметрических абстрактных. Рассказывается, почему range умеет работать как массив, почему Vector{Int64} не является подтипом Vector{Real}, но является подтипом Vector{<:Real}, чем отличается неизменяемая структура от изменяемой структуры с неизменяемыми полями

habr.com/ru/companies/etmc_exp

#julia #julia_language #типы_данных #интерфейсы #engee #шпаргалка

2025-01-28

Типы данных в Python для самых маленьких

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

habr.com/ru/articles/877410/

#Python #Типы_данных #Иерархия_данных #Обучение #книга_на_русском

2024-12-29

«Непонятки» в изучении программирования

Однажды, в ходе очередной попытки освоить программирование, мне попалась переводная книга, где автор на первых страницах обещал научить программировать даже тех, кто никогда этого не делал. И в качестве примера приводил собственного сына 8 лет, которого он как бы научил тоже. Воодушевлённый таким началом я бодро взялся за чтение. И вот, где-то на первых страницах, при обсуждении типов данных, автор ничтоже сумняшеся сообщает, что целое число, которое Int, может быть Int16, Int32 и т.д., со всеми вытекающими подробностями. И в эту минуту я чувствую как начинают шевелиться волосы на моей голове. От шока, что не понимаю, что это такое. Потом подумал, что он, наверное, это где-то объяснил, а я пропустил. Проверил предыдущие страницы, не нашёл. Может он потом объяснит, бывают же такие преподы, сначала что-то скажет, а потом разберёт. Посмотрел вперёд, не нашёл тоже. В общем, сильно загрустил. Мечта стать программистом разбилась о стену как хрустальный шар. И далее, по цепочке, знакомые всем мысли о собственной непригодности. С тех пор, если встречается в книге, что автор научит всех, даже тех, кто “никогда не программировал”, то невольно вздрагиваю, как от легкого удара электрическим током. И самое смешное, что недавно, на современном курсе по изучению программирования, услышал то же самое. Преподаватель, как только зацепился за тип Int, тут же начал рассуждать все о тех же Int16, Int32, Int64 и т.д. Как будто он попадает в разъезженную колею и уже не может из нее выбраться. К чему я все это говорю? - К тому, что нередко преподаватели программирования не замечают и не осознают, что новички, которые раньше действительно не программировали, реально не понимают ряд вещей, которые людям с опытом кажутся сами собой разумеющимися.

habr.com/ru/articles/870576/

#обучение_программированию #непонятки #типы_данных #рекурсия #делегат #переменная #возвращаемое_значение #массивы_с_дырками

2024-12-10

Я не запоминаю имена или логика и данные

Знакомьтесь, загадка памяти: почему мы помним всё, кроме имени? В статье исследуется феномен, знакомый многим: как можно детально запомнить беседу и характеристики нового знакомого, но совершенно забыть его имя спустя считанные минуты? Мы погружаемся в работу мозга, чтобы понять, почему имена оказываются такими непослушными для нашей памяти. От анализа логики работы мозга до рассмотрения других видов личной информации, таких как фамилия, отчество и возраст.

habr.com/ru/articles/865286/

#данные #логика #математика #типы_данных #околонаучные_течения #мозг

2024-03-15

[Перевод] Охота на недостающий тип данных

Направленный граф — это набор узлов, связанных стрелками (рёбрами). Как узлы, так и рёбра могут содержать данные. Вот несколько примеров: Все графы созданы с помощью graphviz ( источник ) В сфере разработки ПО графы используются повсеместно: Зависимости пакетов, как и импорт модулей, формируют направленные графы. Интернет — это граф, состоящий из ссылок между веб-страницами. При проверке моделей анализ выполняется путём изучения «пространства состояний» всех возможных конфигураций. Узлы — это состояния, а рёбра — это допустимые переходы между ними. Реляционные базы данных — это графы, в которых узлы являются записями, а рёбра — внешними ключами. Графы — это обобщение связанных списков, двоичных деревьев и хэш-таблиц. 1 Кроме того, графы также широко используются в бизнес-логике. Научные работы со ссылками формируют графы цитат. Транспортные сети представляют графы маршрутов. Социальные сети — это графы связей. Если вы работаете в сфере разработки, то рано или поздно встретитесь с графами. Я вижу графы повсюду и использую их для анализа всевозможных систем. В то же время я побаиваюсь использовать их в коде. Какой из популярных языков программирования ни возьми, поддержка графов в них практически отсутствует. Ни в одном её нет в виде встроенного типа, очень мало где они прописаны в стандартной библиотеке, и у многих языков нет для этой функциональности надёжного стороннего пакета. Чаще всего мне приходится создавать графы с нуля. Существует большой разрыв между тем, как часто инженерам ПО могут понадобиться графы и тем, в какой степени экосистема их поддерживает. Где все графовые типы?

habr.com/ru/companies/ruvds/ar

#ruvds_перевод #графы #алгоритмы #sql #sparql #nosey_parker #типы_данных #python

2023-11-17

Глубокий JS. В память о типах и данных
Всех нас учили, что в JavaScript есть примитивные и ссылочные типы данных. Исчерпывающая информация есть в официальной документации, а на просторах интернета полно статей на этот счет. Теория теорией, однако, JS-код исполняется не в теории, а на практике. Точнее, его компилирует и исполняет движок JS. Таких движков существует несколько, разрабатывались они разными людьми и для разных целей. Было бы наивно предполагать, что все они полностью идентичны друг другу. А значит, время разобраться, как же на самом деле хранятся вполне конкретные данные на вполне конкретном движке JS V8.
#javascript #v8 #типы_данных
habr.com/ru/articles/774548/

Client Info

Server: https://mastodon.social
Version: 2025.07
Repository: https://github.com/cyevgeniy/lmst