منطق ایجنت‌ها › M6 — ساختن سیستم بدون کد
۶.۱ پایدار تدریسی ~۲۵ دقیقه

سیستم، ساختار است نه کد

قبل از این فصل: فصل ۱.۴

در یک نگاه

۶.۱.۱

یک سیستم از چه ساخته می‌شود

تا اینجای دوره ابزار یاد گرفتی: چطور با ایجنت کار کنی (M3)، چطور خروجی‌اش را راستی‌آزمایی کنی (M4)، چطور از خودت محافظت کنی (M5). این ماژول یک قدم بالاتر است — ساختنِ چیزی که بماند، نه انجام‌دادنِ یک کار.

و اولین چیزی که باید از سرت بیرون کنی این است که سیستم یعنی برنامه. سیستم سه جزء دارد و هیچ‌کدامشان کد نیست:

هر سه‌شان را همین حالا می‌توانی بسازی. هیچ‌کدام مهارت تازه‌ای لازم ندارند.

۶.۱.۲

ساختار در برابر برنامه

این دو خانواده‌ی جدا هستند، نه دو سطح از یک چیز:

دو خانواده: ساختار و برنامه ساختار از پوشه و فایل و قانون ساخته می‌شود و با خواندن فهمیده می‌شود؛ برنامه از کد ساخته می‌شود و برای فهمیدنش باید زبان بلد باشی. ساختار پوشه · فایل · قانونِ فارسی با خواندن فهمیده می‌شود با ویرایش یک جمله عوض می‌شود خودت نگهش می‌داری ← اینجا شروع می‌کنیم برنامه کد · کتابخانه · اجرا برای فهمیدنش زبان لازم است تغییرش ریسک خرابی دارد نگهداری‌اش تخصص می‌خواهد لازم شد، بعداً هر دو سیستم‌اند. فقط جنسشان فرق می‌کند.
ساختار با خواندن فهمیده می‌شود؛ برنامه با دانستنِ زبان. همین یک تفاوت، بقیه‌ی تفاوت‌ها را می‌سازد.

و نکته‌ی اصلی در سطر آخر است: سیستمِ ساختاری را خودت می‌توانی نگه داری. برنامه‌ای که نمی‌فهمی، حتی اگر ایجنت برایت بنویسد، بار روی دوش تو می‌گذارد — چون روز اولی که خراب شود، دستت بسته است.

۶.۱.۳

چرا این نقطه‌ی شروع درست‌تری است

چهار دلیل، و هیچ‌کدام «چون ساده‌تر است» نیست:

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

۶.۱.۴

نمونه‌هایی از سیستم‌های بدون کد

این‌ها واقعی‌اند و هر کدام فقط پوشه و فایل و قانون‌اند:

در هیچ‌کدام «سیستم» یک برنامه نیست. سیستم آن نظمی است که تصمیم‌ها را از قبل گرفته، تا وقتی سرت شلوغ است دیگر لازم نباشد فکر کنی کجا بگذاری‌اش.

نکته‌ی طلایی نشانه‌ی اینکه چیزی به سیستم نیاز دارد این نیست که سخت است — این است که هر بار دوباره تصمیم می‌گیری. اگر هر بار فکر می‌کنی «این را کجا بگذارم؟» یا «قبلاً چطور انجامش دادم؟»، آن تصمیم را یک بار بگیر و در ساختار بگذار.
ضدالگو ساختن سیستم برای کاری که یک بار انجام می‌شود. سیستم هزینه دارد — طراحی، نگه‌داری، و یادآوری قواعدش به خودت. برای کار یک‌بارمصرف، این هزینه بی‌جواب می‌ماند. همان چهار معیار فصل ۲.۱.۱ اینجا هم برقرار است.

تمرین (فکری)

به بک‌لاگت (فصل ۰.۱۱) برگرد و یک کار پیدا کن که با ساختار حل می‌شود، نه با کد. بعد سه سؤال را جواب بده:

  1. الان هر بار چه تصمیمی را دوباره می‌گیری؟
  2. اگر آن تصمیم یک بار گرفته و نوشته می‌شد، کجا می‌نشست — در نام پوشه، در یک فایل، یا در یک قانون؟
  3. و صادقانه: این کار به‌قدر کافی تکرار می‌شود که ارزش سیستم داشته باشد؟
پاسخنامه — یک نمونه‌ی کامل، و چرا سؤال سوم مهم‌ترین است

نمونه: فاکتورهای ماهانه.

  • تصمیم تکرارشونده: هر بار که فاکتوری می‌رسد، فکر می‌کنم اسمش را چه بگذارم و کجا بگذارمش — و بعد موقع جست‌وجو پیدا نمی‌کنم.
  • کجا می‌نشیند: هر سه جا، و همین نکته است. جا: پوشه‌بندی سال/ماه. قانون: «نام فایل = تاریخ-طرف-مبلغ». حافظه: یک فایل که می‌گوید کدام فاکتورها پرداخت شده‌اند.

و سؤال سوم: فاکتور ماهانه است، پس سالی دوازده بار — ارزشش را دارد. ولی اگر جوابت «سالی دو بار» بود، جواب درست «نساز» است و این شکست نیست. تشخیصِ اینکه چیزی ارزش سیستم ندارد خودش یک مهارت است؛ کسی که این را نمی‌تواند، برای هر چیزی سیستم می‌سازد و بعد هیچ‌کدام را نگه نمی‌دارد.

ذخیره شد