برگه تقلب با فرمت TOON

تون
ابزارهای توسعه دهنده

اگر تا به حال احساس کرده اید که JSON خیلی پرحرف است (همه آن براکت ها!) اما YAML کمی بیش از حد "جادویی" و غیرقابل پیش بینی است، ممکن است عاشق TOON شوید. این فرمت تعادل منحصر به فردی را بین خوانایی انسان و سرعت تجزیه ماشین ایجاد می کند. این به گونه ای طراحی شده است که متراکم، صریح و فوق العاده سریع تجزیه شود.

چه در حال انتقال داده ها باشید و چه فقط سعی می کنید یک فایل پیکربندی را اشکال زدایی کنید، این برگه تقلب، نحو ضروری را که باید بدانید را پوشش می دهد.

فلسفه: نویز کمتر، داده بیشتر

اولین چیزی که متوجه خواهید شد این است که TOON بسیار شبیه YAML است، اما کاملاً شبیه JSON عمل می کند. این مهاربندهای باز و بسته را به نفع تورفتگی و خطوط جدید جدا می کند و باعث می شود اطلاعات شما بلافاصله تمیزتر به نظر برسند.

اشیاء و تودرتو

در JSON، شما عادت دارید همه چیز را در بریس های فرفری بپیچید. در TOON، ساختار با تورفتگی مشخص می شود.

JSON:

`` md { "پروژه": { "متادیتا": { "نام": "آلفا قنطورس"، "وضعیت": "فعال" }، "نقاط عطف": [ { "فاز": "طراحی"، "اولویت": 1 }، { "فاز": "تست"، "اولویت": 2 } ] } }

تون:

`` md پروژه: فراداده: نام: آلفا قنطورس وضعیت: فعال نقاط عطف[2]{فاز، اولویت}: طراحی، 1 آزمایش، 2

توجه داشته باشید که کلیدها به نقل قول نیاز ندارند مگر اینکه حاوی کاراکترهای خاص باشند و سلسله مراتب از نظر بصری واضح است.

قدرت آرایه ها

اینجاست که TOON واقعاً از فرمت‌های دیگر متفاوت است. TOON از شما می خواهد که طول آرایه را در خود کلید اعلام کنید. این ممکن است در ابتدا عجیب به نظر برسد، اما به تجزیه کننده اجازه می دهد تا حافظه را از قبل تخصیص دهد و آن را فوق العاده سریع می کند.

آرایه های اولیه

برای لیست های ساده رشته ها یا اعداد، TOON از یک نحو فشرده و جدا شده با کاما استفاده می کند.

** نحو:**

`` md کلید[طول]: آیتم 1، آیتم 2، آیتم 3

اگر یک آرایه ریشه دارید (کل فایل فقط یک لیست است)، به نظر می رسد:

آرایه های جدولی (ویژگی قاتل)

این ویژگی است که معمولا توسعه دهندگان را برنده می کند. اگر آرایه‌ای از اشیاء دارید که همگی کلیدهای یکسانی دارند (مانند ردیف‌ها در پایگاه داده)، TOON به شما امکان می‌دهد طرح once را در هدر تعریف کنید و سپس فقط مقادیر را فهرست کنید. این مقدار زیادی از افزونگی موجود در JSON را حذف می کند.

** نحو:**

`` md کلید[ردیف]{col1,col2}:

JSON:

`` md { "موجودی": [ { "sku": "KB-99"، "تعداد": 50، "راهرو": 4، «تغییر ترتیب»: نادرست }، { "sku": "MS-12"، "تعداد": 12، "راهرو": 7، «تغییر ترتیب»: درست است }، { "sku": "MN-44"، "تعداد": 8، "راهرو": 2، «تغییر ترتیب»: درست است } ] }

تون:

`` md موجودی[3]{sku,qty,aisle, reorder}: KB-99،50،4، نادرست MS-12،12،7، درست است MN-44،8،2، درست است

این رویکرد "CSV-inside-YAML" مجموعه داده های بزرگ را به طرز باورنکردنی قابل خواندن و فشرده می کند.

آرایه های مختلط و تودرتو

گاهی اوقات داده ها یکسان نیستند. اگر آرایه شما حاوی انواع مختلفی از داده ها (اعداد مخلوط با اشیاء) باشد، یا اگر حاوی اشیاء تودرتو پیچیده باشد، TOON با استفاده از خط تیره به یک نحو به سبک نقطه گلوله بازمی گردد.

حتی می توانید آرایه هایی در داخل آرایه ها داشته باشید. توجه داشته باشید که چگونه آرایه داخلی طول خود را نیز اعلام می کند:

نقل قول: چه زمانی از آن استفاده کنید

یکی از بهترین چیزها در مورد TOON این است که شما به ندرت به نقل قول نیاز دارید. می‌توانید «Hello 世界 👋» را بدون اینکه آن را در «»» بپیچید بنویسید. با این حال، از آنجایی که TOON سعی در استنتاج انواع (اعداد، بولی) دارد، قوانین خاصی برای زمانی که باید از نقل قول استفاده کنید وجود دارد.

فهرست "باید نقل قول".

در صورتی که:

  1. به نظر یک عدد یا بولی است: اگر رشته «123» یا «true»» را می‌خواهید، آن را نقل قول کنید. در غیر این صورت، آنها به عدد '123' و بولی 'true' تبدیل می شوند.
  1. حاوی جداکننده‌ها: اگر رشته شما دارای کاما «،» است (یا هر چیزی که جداکننده فعال شما باشد)، آن را نقل قول کنید.
  1. ** دارای لبه های فضای خالی است: ** فضاهای پیشرو یا انتهایی نیاز به نقل قول دارند.
  1. حاوی کاراکترهای ویژه: کاراکترهایی مانند :، "، \, [, ], {, }.
  1. خالی است: یک رشته خالی به صورت """ نمایش داده می شود.

مثال:

دنباله های فرار

آن را ساده نگه دارید. TOON فقط پنج دنباله فرار را در داخل رشته ها تشخیص می دهد. هر چیز دیگری بی اعتبار است.

  • \\ (بکشش)
  • \" (دو نقل قول)
  • \n (خط جدید)
  • \r (بازگشت باربری)
  • \t (برگه)

سرصفحه و جداکننده پیشرفته

اگر اطلاعات شما پر از کاما باشد چه؟ شما نمی خواهید تک تک فیلدها را نقل قول کنید. TOON به شما این امکان را می دهد که جداکننده را در هدر آرایه تغییر دهید.

با قرار دادن آن در داخل براکت ها یا بریس ها می توانید از Tab یا Pipe (|) استفاده کنید.

نمونه جداکننده لوله:

با افزودن | در هدر، تجزیه کننده می داند که به جای کاما به دنبال لوله ها باشد و نحو شما را تمیز نگه دارد.

کلید تاشو

اگر تودرتو عمیق دارید اما فقط یک مسیر داده دارید، نیازی نیست پنج بار تورفتگی داشته باشید. برای صاف کردن ساختار خود می توانید از نشانه گذاری نقطه (Key Folding) استفاده کنید.

تودرتوی استاندارد:

`` md کاربر: پروفایل: تنظیمات: اطلاعیه ها: ایمیل: درسته اس ام اس: نادرست

تا شده (تمیز کننده):

`` md user.profile.settings.notifications: ایمیل: درسته اس ام اس: نادرست

مرجع تایپ سریع

TOON مستقیماً به انواع JSON نگاشت می‌شود، اما برای اطمینان از خروجی معتبر، موارد لبه مخصوص جاوا اسکریپت را به خوبی مدیریت می‌کند.

  • ** اعداد: ** به عنوان اعشار متعارف ذخیره می شود. «1.0» به «1» تبدیل می‌شود.
  • Infinity / NaN: اینها "تهی" می شوند (زیرا JSON آنها را پشتیبانی نمی کند).
  • تاریخ: به رشته های ISO نقل قول تبدیل شد.
  • ** تعریف نشده / توابع: ** تبدیل به "تهی".
  • ** اشیاء خالی: ** به عنوان هیچ (خروجی خالی) نشان داده می شود.
  • آرایه های خالی: به عنوان "کلید[0]:" نشان داده شده است.

TOON قالبی است که به دقت پاداش می دهد. ممکن است کمی طول بکشد تا به شمارش آیتم های آرایه خود عادت کنید، اما نتیجه خوانایی و اندازه فایل ارزش تلاش را دارد. کد نویسی مبارک!