Beancount v3: چه چیز جدیدی دارد؟
نسخه 3 Beancount که در اواسط سال 2024 منتشر شد، نشاندهنده یک تکامل معماری قابل توجه برای ابزار محبوب حسابداری متنساده است. در حالی که این نسخه سازگاری با نسخههای قبلی را برای فایلهای دفتر کل کاربران حفظ میکند، ساختار زیربنایی و ابزارهای همراه آن دستخوش تغییرات اساسی شدهاند. در ادامه به تفکیک آنچه در Beancount v3 جدید است، میپردازیم.
معماری ماژولارتر و بهینهتر
مهمترین تغییر در Beancount v3، حرکت به سمت یک اکوسیستم ماژولارتر است. چندین قابلیت کلیدی که قبلاً با هسته اصلی همراه بودند، به پروژههای مستقل و جداگانه تبدیل شدهاند. این امر باعث میشود هسته Beancount سبکتر شده و امکان توسعه متمرکزتر بر روی اجزای جداگانه فراهم شود.
اجزای کلیدی که اکنون بستههای جداگانه هستند، عبارتند از:
- beanquery: ابزار قدرتمند جستجوی SQL-مانند برای فایلهای دفتر کل شما، اکنون در بسته مستقل خود قرار دارد.
- beangulp: این خانه جدید چارچوب وارد کردن داده است که جایگزین ماژول قبلی
beancount.ingestشده است. - beanprice: ابزاری اختصاصی برای دریافت قیمت کالاها و سهام.
این جداسازی به این معنی است که کاربران برای حفظ تمام قابلیتهایی که در نسخه 2 به آنها عادت داشتند، باید این بستهها را علاوه بر beancount نصب کنند.
تغییرات در ابزارهای خط فرمان و جریانهای کاری
با توجه به معماری ماژولار جدید، تغییرات قابل توجهی در ابزارهای خط فرمان وجود دارد:
bean-reportحذف شده است: این ابزار حذف شده است. اکنون به کاربران توصیه میشود برای نیازهای گزارشگیری خود ازbean-query(از بستهbeanquery) استفاده کنند.- جریان کاری جدید واردکننده: دستورات
bean-extractوbean-identifyاز هسته حذف شدهاند. رویکرد جدید باbeangulpمبتنی بر اسکریپت است. اکنون کاربران باید اسکریپتهای پایتون خود را برای مدیریت وارد کردن دادهها از منابع خارجی مانند صورتحسابهای بانکی ایجاد کنند.
بهبودهای گرامر (سینتکس) و ویژگیها
در حالی که اصول اصلی حسابداری بدون تغییر باقی ماندهاند، Beancount v3 انعطافپذیری مطلوبی را در گرامر (سینتکس) خود معرفی میکند:
- کدهای ارز انعطافپذیرتر: محدودیتهای قبل ی در مورد طول و کاراکترهای نام ارزها کاهش یافته است. اکنون نمادهای ارز تککاراکتری پشتیبانی میشوند.
- پرچمهای تراکنش گسترشیافته: کاربران اکنون میتوانند از هر حرف بزرگ انگلیسی (A تا Z) به عنوان پرچم برای تراکنشها استفاده کنند که امکان دستهبندی دقیقتری را فراهم میکند.
مهمتر اینکه، این تغییرات سازگار با نسخههای قبلی هستند، بنابراین فایلهای دفتر کل Beancount v2 موجود شما بدون هیچ گونه تغییری کار خواهند کرد.
بازنویسی C++ و عملکرد
یکی از اهداف بلندمدت برای Beancount، بازنویسی اجزای حیاتی عملکرد آن در C++ بوده است. در حالی که این کار در حال انجام است، نسخه اولیه Beancount v3 هسته مبتنی بر C++ را شامل نمیشود. این بدان معناست که در حال حاضر، عملکرد v3 با v2 قابل مقایسه است. کد C++ برای ادغام در آینده، در یک شاخه توسعه جداگانه باقی میماند.