Skip to main content

One post tagged with "міграція програмного забезпечення"

View all tags

Beancount v3: Що нового?

· 3 min read
Mike Thrift
Mike Thrift
Marketing Manager

Beancount версії 3, випущений в середині 2024 року, знаменує собою значну архітектурну еволюцію для популярного інструменту обліку у текстовому форматі. Хоча він зберігає зворотну сумісність для файлів облікових книг користувачів, базова структура та супутні інструменти зазнали суттєвих змін. Ось огляд того, що нового в Beancount v3.

Більш модульна та оптимізована архітектура

2025-06-06-що-нового-в-beancount-v3

Найбільш значною зміною в Beancount v3 є перехід до більш модульної екосистеми. Кілька ключових функціональних можливостей, які раніше були об'єднані з ядром, були виділені в окремі, незалежні проєкти. Це робить ядро Beancount більш компактним і дозволяє зосередитися на розробці окремих компонентів.

Ключові компоненти, які тепер є окремими пакетами, включають:

  • beanquery: Потужний інструмент запитів, схожий на SQL, для ваших файлів облікових книг тепер знаходиться в окремому пакеті.
  • beangulp: Це нове місце для фреймворку імпорту даних, що замінює колишній модуль beancount.ingest.
  • beanprice: Спеціалізований інструмент для отримання цін на товари та акції.

Ця сепарація означає, що користувачам потрібно буде встановлювати ці пакети на додаток до самого beancount, щоб зберегти повну функціональність, до якої вони звикли у версії 2.

Зміни в інструментах командного рядка та робочих процесах

Відображаючи нову модульну архітектуру, є деякі помітні зміни в інструментах командного рядка:

  • bean-report видалено: Цей інструмент було видалено. Користувачам тепер рекомендується використовувати bean-query (з пакета beanquery) для своїх потреб у звітності.
  • Новий робочий процес імпортера: Команди bean-extract та bean-identify були видалені з ядра. Новий підхід з beangulp базується на скриптах. Користувачі тепер створюватимуть власні скрипти Python для обробки імпорту даних із зовнішніх джерел, таких як банківські виписки.

Покращення синтаксису та функцій

Хоча основні принципи обліку залишаються незмінними, Beancount v3 вносить деяку бажану гнучкість у свій синтаксис:

  • Більш гнучкі коди валют: Попередні обмеження на довжину та символи для назв валют були послаблені. Тепер підтримуються односимвольні позначення валют.
  • Розширені прапорці транзакцій: Користувачі тепер можуть використовувати будь-яку велику літеру від A до Z як прапорець для транзакцій, що дозволяє більш детально категоризувати їх.

Важливо, що ці зміни є зворотно сумісними, тому ваші існуючі файли облікових книг Beancount v2 працюватимуть без будь-яких модифікацій.

Переписування на C++ та продуктивність

Однією з довгострокових цілей для Beancount було переписування його критично важливих для продуктивності компонентів на C++. Хоча ця робота триває, початковий випуск Beancount v3 не включає ядро на базі C++. Це означає, що наразі продуктивність v3 порівнянна з v2. Код C++ залишається в окремій гілці розробки для майбутньої інтеграції.

Міграція з v2 на v3

Для більшості користувачів міграція з Beancount v2 на v3 є відносно простою:

  1. Файли облікових книг: Жодних змін для ваших файлів .beancount не потрібно.
  2. Встановлення: Вам потрібно буде встановити нові, окремі пакети, такі як beanquery та beangulp, використовуючи pip.
  3. Скрипти імпортера: Якщо у вас є власні імпортери, вам потрібно буде оновити їх для використання нового API beangulp. Це в основному передбачає зміну базового класу, від якого успадковуються ваші імпортери, та коригування деяких сигнатур методів.
  4. Fava: Популярний веб-інтерфейс для Beancount, Fava, був оновлений для сумісності з v3. Переконайтеся, що у вас встановлена остання версія Fava для безперебійної роботи.

По суті, Beancount v3 є фундаментальним випуском, який оптимізує архітектуру проєкту, роблячи її більш модульною та легшою для підтримки та розширення в довгостроковій перспективі. Хоча він вимагає деяких коригувань у робочих процесах користувачів, особливо щодо імпорту даних, він закладає основу для майбутнього розвитку цього потужного інструменту обліку.