برای گروهها و چند برند
چند شرکت، یک نصب، بدون مشتریان مشترک
گروهها معمولاً این مسئله را دو بار و هر بار بد حل میکنند: یا پنج نصب جداگانه و پنج تا از همهچیز، یا یک نصب و یک قول رسمی که برنامه همیشه درست فیلتر میکند. اولی گران است. دومی یک قول است، و قولها مدل امنیتی نیستند.
اگر بیش از یک شرکت را اداره میکنید — یک هلدینگ با زیرمجموعهها، یک فرنچایز، دو برند با بازارهای متفاوت، یک آژانس و چیزی که آژانس از آن جدا کرده — شکل مسئله را از قبل میشناسید. برندها آدمها، ابزارها و واحد مالی مشترک دارند. مشتری مشترک ندارند و نباید چنین به نظر برسد.
iKonekt همهٔ آنها را از یک نصب اجرا میکند و جدایی میانشان را پایگاه داده حفظ میکند، نه کد. این تمایز تا روزی که موضوعیت پیدا نکند آکادمیک به نظر میرسد.
چرا این لایه اهمیت دارد
یک فیلتر در سطح برنامه یک جمله در یک کوئری است. تا وقتی کار میکند که هر کوئریای که روزی نوشته خواهد شد آن را داشته باشد — از جمله کوئریای که عجلهای نوشته شده، کوئریای که توسعهدهندهٔ تازهکار نوشته، و کوئریای که برای گزارشی نوشته شده که قرار بود فقط یک بار استفاده شود.
مرز را به پایگاه داده ببرید و حساب و کتاب وارونه میشود. سیاست روی هر خواندن و هر نوشتن، زیر همهچیز، اجرا میشود. کوئریای که شرکت را فراموش کند ردیفهای اشتباه برنمیگرداند؛ هیچی برنمیگرداند. حالت خرابی به یک صفحهٔ خالی و یک توسعهدهندهٔ گیج تبدیل میشود، که همان حالت خرابی درست است.
صفحهٔ خالی یک قابلیت است. ما ترجیح میدهیم صفحهٔ خالی را برای یکی از مهندسان خودمان توضیح دهیم تا فهرست مشتریان را برای دو مشتریای که انتظار دیدار همدیگر را نداشتند.
- 1مشتریان و گفتگوهامحدودشده. فروشندهٔ برند A بهساخته، نه بهپیکربندی، به برند B دسترسی ندارد.
- 2ادعای مالکیت روی مشتری«ما این حساب را از قبل داریم» یک قفل است که بهازای هر شرکت نگه داشته میشود — پس دو برند میتوانند هر دو در یک بازار کار کنند بدون برخورد.
- 3پرامپتها و تنظیماتهر شرکت مال خودش را ویرایش میکند. تنها جایی که اینها روزی مشترک بودند یک باگ بود، و این همان باگی است که این سیستم به کشفش افتخار میکند.
- 4برنامههای همکاریک ماژول بهازای هر شرکت، نه یک ماژول سراسری که همه به ارث ببرند.
مرزِ اعمالشده در زیر برنامه
گروه در واقع چه چیزهایی را به اشتراک میگذارد
جدایی، انزوا بهخاطر خودش نیست. چیزهایی که ارزش اشتراک در سطح گروه را دارند آگاهانه به اشتراک گذاشته میشوند و بیشترشان همانهای خستهکنندهاند — که دقیقاً درست است، چون هزینهٔ تکراری در همانهاست:
- یک نصب برای اجرا و بهروزرسانی. یک استقرار، یک مجموعه اعتبارنامه برای نگهداری، یک چیز برای وصلهکردن.
- یک تیم از آدمها، با کلاههای متفاوت. یک نفر میتواند در بیش از یک شرکت کار کند؛ آنچه نمیتواند انجام دهد این است که از طریق کوئریای که فراموش کرده بپرسد، هر دو را همزمان ببیند.
- یک مجموعه عادت. نحوهٔ تخصیص سرنخ، نحوهٔ نوشتن یادداشت، نحوهٔ رسیدن یک کار به فاکتور — یک بار یاد گرفته، همهجا بهکار رفته، که آموزش اولیه را به حدود یک صبح کوتاه میکند.
- یک رابطه با بقیهٔ خانواده. castomAPI در زیر، همان حساب، همان کانکتورها — پیکربندیشده بهازای هر شرکت جایی که اهمیت دارد.
سؤالی که گروه همیشه دوم میپرسد
«آیا میتوانیم روی همهٔ آنها گزارش بگیریم؟» بله — از دیدگاه خودِ گروه، آگاهانه و صریح، نه بهعنوان اثر جانبی مرزی نشتیدار. همین تمایز کل طراحی است: عبور از خط باید کاری باشد که کسی عمداً و با اختیار انجام داده باشد. هرگز نباید چیزی باشد که یک شناسهٔ سرگردان بتواند تصادفی انجامش دهد.
و سؤالی که سوم میپرسند: «اگر یکی از برندها را بفروشیم چه میشود؟» مرزی که پایگاه داده نگه میدارد، مرزی است هم که میتوانید یک نسخهٔ تمیز از بیرونش بکشید. این تصادفی نیست — جدایی و قابلیت انتقال یک ویژگیاند که از دو جلسهٔ متفاوت دیده شدهاند.
زیر کف
دقیقاً چه چیزی خط را نگه میدارد
نه یک ادعا، یک فهرست. اگر تأمینکنندهای نتواند این فهرست را دربارهٔ محصول خودش ارائه دهد، همین ارزش توجه دارد.
26
جدولهایی که شرکت خودشان را با خود حمل میکنند، با الزام اجباری بررسی، نه صرفاً در دسترس بودن آن.
72
سیاستها، که یکییکی نوشته شدهاند تا هرکدام توسط یک انسان خوانده شده باشد، نه اینکه در یک حلقه تولید شوند.
942
تستها، که هر بار هر چیزی تغییر میکند روی پایگاه دادهای از صفر بازسازیشده اجرا میشوند.
0
شرکتهای پیشفرض. درخواستی بدون محدوده پیش از رسیدن به دادهها متوقف میشود — هیچ حالت جایگزینی وجود ندارد که فراموش کنید غیرفعالش کنید.

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