Один из самых удобных способов записать данные это использование готовых форматов, такие как JSON или YAML.
Из плюсов такого подхода стоит отметить вот что:
🔸 готовый, повсеместно используемый и поддерживаемый формат
🔸 простой и понятный файл, удобочитаемый для человека
🔸 можно легко редактировать в любом текстовом редакторе без специальных программ и библиотек
Но есть и минусы
🔹 затраты времени при записи файла (кодирование данных в нужный формат строки)
🔹 затраты времени при чтении файла (декодирование данных в Python объекты)
🔹 размер файла увеличивается из-за разметки данных (скобки, запятые, переносы, отступы...)
🔹 перед записью все данные должны быть помещены в память в полном объёме (не всегда)
🔹 при чтении необходимо считать весь файл в память и только потом декодировать данные
Если нужно писать немного данных в несколько файлов, то затраты по времени не ощутимы. Обычно это файлы конфига или какие-либо метаданные. Это отличный вариант под такие задачи.
Есть и другой поход к записи файлов - это бинарные файлы. Используется, когда данных достаточно много и никто их не собирается читать глазками😳.
🔸 очень быстрая запись
🔸 чтение значительно быстрей чем JSON, YAML итд
🔸 размер файла значительно меньше, так как нет разметки
🔸 можно записывать данные по мере поступления не загружая всё в память
🔸 можно извлечь любую часть данных независимо
Из минусов
🔹 нужно определить свой формат записи данных (если не используете готовую спецификацию определённого формата)
🔹 не получится открыть файл и визуально понять что там записано, а для чтения файла потребуется знать его спецификацию.
🔹 не так-то просто создать такой файл без специальной библиотеки
В таком виде удобно записывать большой массив любых однородных данных. Например, мониторинг валютной биржи или кэшированная анимация 3D геометрии.
(Это не означает что нельзя записать данные разного типа, просто это будет не так удобно)
Представьте себе JPG-картинку. По сути это немного мета-информации и большой массив пикселей. Тоже самое со звуком или видео файлом. Поэтому, если вы попробуете открыть картинку в текстовом редакторе вы увидите что-то вроде такого
f15d cd29 a564 4578 ...
09e2 9bc4 a696 1253 ...
84e9 4de1 3b23 c24a ...
2534 5161 28e0 709d ...
...
Это и есть записанные байтики. И для их чтения требуется определённый софт который знает что с ними делать. Под каждый тип файла.
К чему это я? Читайте в следующем посте...
#tricks#basic
#zig
TigerBeetle is a powerful, highly reliable database built specifically for financial transactions, designed to handle huge volumes with safety and speed. It ensures that once a transaction is confirmed, it cannot be lost, even if hardware fails or data gets corrupted. It uses advanced techniques like replication, checksums, and fault-tolerant consensus to keep data safe and available. TigerBeetle is much faster and more efficient than traditional databases, making it ideal for mission-critical financial systems that need to process thousands of transactions per second without errors or downtime. This means you get a secure, fast, and stable platform for managing money transfers and accounts reliably.
https://github.com/tigerbeetle/tigerbeetle
#zig
Ghostty is a fast, feature-rich terminal emulator that combines speed, native platform integration, and modern features without compromise. It supports multi-window, tabs, and split panes, with GPU-accelerated rendering using Metal on macOS and OpenGL on Linux for smooth performance. Ghostty is highly compatible with existing shells and software, making it a drop-in replacement. It offers rich theming, ligature support, and advanced developer features that enable more interactive command-line applications. Its native UI and cross-platform design provide a polished, efficient terminal experience that enhances productivity and usability for both users and developers.
https://github.com/ghostty-org/ghostty
🔥GEM ANNOUNCEMENT🔥
#ZIG/USDT:
Spot Signal (Exchange: Bybit, Bitget, MEXC, Gate.Io)
Technical Analysis:
#ZIG is pumping exactly from the support zone and now breaking a resistance trendline. We can see bullish momentum in it right now because technically this coin looks very strong. You people can buy and hold it now because bull run is going on and we can get good profits in it
📢BURN INCOMING📢
It's time to buyback & burn #ZIG🔥🔥!
8th Monthly #ZIG buyback & burn will take place on 6th January and It will be the biggest monthly burn to date!
#Zignaly#ZIG#Burn
#zig#3d_game#cubyz#game#procedural_generation#sandbox#sandbox_game#voxel#voxel_game#zig
Cubyz is a 3D voxel sandbox game like Minecraft, letting you explore unlimited height and depth with far view distances. It has a unique crafting system where you can try making any tool, and the game figures out what it is. It runs on Windows and Linux, written in the Zig programming language for better performance. You can easily download and run it or compile it yourself if you want the latest version. The game is open-source, so you can contribute by adding code, gameplay features, or textures following simple guidelines. This means you get a flexible, creative game with ongoing improvements and community support.
https://github.com/PixelGuys/Cubyz