میدونی چیه؟ معمولاً وقتی بحث طراحی سیستمهای کامپیوتری میشه، هر بخشی برا خودش کلی اسم و روش و اصطلاح داره؛ مثلاً پایگاه دادهها، سیستمعاملها یا معماری کامپیوتر. هرکدومم براشون یه سبک و روشی هست! اما این خاص بودن گاهی باعث میشه اصول کلیای که همهجا کاربرد دارن، گم شن و درست دیده نشن.
اینجا یه ایده جدید و خفن مطرح شده: اگه مثل جدول تناوبی عناصر توی شیمی، یه جدول تناوبی مخصوص اصول طراحی سیستم درست کنیم چی؟ یعنی بیایم اصول پایهای طراحی سیستمها رو، بدون توجه به حوزهشون (چه پایگاه داده باشه، چه سیستمعامل یا معماری سختافزاری)، توی یه جدول مرتب کنیم تا بتونیم واضح و راحتتر همهجا ازشون استفاده کنیم.
اصلاً جدول تناوبی توی شیمی رو یادت هست؟ همون جدولی که عناصر توش مرتب شدن و کلی به شیمیدانا کمک کرد که بفهمن هر عنصر چه خصوصیتایی داره و کجا به درد میخوره. حالا قراره برای اصول پایه طراحی سیستم هم همچین کاری انجام بشه! اینطوری همه، از دانشجو و محقق گرفته تا کسی که داره واقعا سیستم میسازه، یه زبان مشترک و کوتاه دارن تا درباره ساختار، تبادل نظرها، و مقایسه بین طرحها راحتتر بحث کنن.
یکی از مشکلاتی که توی آموزش طراحی سیستم هست اینه که بیشتر جاها آموزشا خیلی اختصاصی و مخصوص اون حوزه داده میشه و دانشجوها یا حتی حرفهایها نمیتونن خیلی راحت بفهمن این اصول چه شباهتی با هم دارن یا چطور میشه ازشون توی حوزههای دیگه هم استفاده کرد. این جدول تناوبی دقیقاً میخواد همین نقطه ضعف رو بگیره و یه پل بزنه بین حوزههای مختلف.
ایدهش اینجوریه که کلیه اصول اساسیای که توی رشتههای مختلف کامپیوتر تکرار میشن (مثلاً اصل جدایی لایهها، تقسیمبندی وظایف، مدیریت منابع و اینجور چیزا)، بیان کنار هم لیست بشن. حتی یه واژگان مشترک و جمعوجور برای توصیف این اصول ساخته بشه که همه راحتتر بتونن دربارهشون حرف بزنن یا طرحها رو با هم مقایسه کنن.
مثلاً فرض کن داری یه سیستم جدید طراحی میکنی. با این جدول خیلی سریع میتونی بفهمی کدوم اصلها رو باید لحاظ کنی و حتی خیلی بهتر انتخاب کنی که چه تبادلهایی (مثلاً trade-off یعنی انتخاب بین دو یا چند گزینه که هرکدوم مزایا و معایب خودشون رو دارن) توی طراحی پیش بیاد و مهمتر اینکه انتخاب خودتو به بقیه توضیح بدی.
اگه دوست داشتی بیشتر درباره این جدول تناوبی اصول طراحی سیستم بدونی یا آخرین تغییراتش رو ببینی، خودشون یه مخزن (repository یعنی محل نگهداری فایلها و اطلاعات پروژه) توی گیتهاب گذاشتن که آدرسش اینه: https://github.com/jarulraj/periodic-table
در کل، هدف این ایده اینه که کل جامعه سیستمهای کامپیوتری، یه ابزار جدید و بامزه و کارآمد برای بحث و آموزش و مقایسه طرحها داشته باشن و خلاصه هرکی دست به طراحی سیستم داره از این به بعد راحتتر و علمیتر تصمیم بگیره.
منبع: +