ساده کردن چیزها: چرا هر بار ساده برنده می شود

سلام من مانشوار هستم در حال حاضر ، من در حال ساخت LiveApi هستم ، اولین ابزار نوع خود برای کمک به شما در فهرست بندی نقاط پایانی API در تمام مخازن شما. LiveApi به شما در کشف ، درک و استفاده از API ها در زیرساخت های فناوری بزرگ با سهولت کمک می کند.
“سادگی یک پیش نیاز برای قابلیت اطمینان است.” – Edsger W. Dijkstra
تا به حال چیزی ساخته اید و بعداً متوجه شده اید که آن را پیچیده تر از آنچه لازم بود؟
بله ، همان
به عنوان افراد فناوری ، مهندسین ، معماران ، ما اغلب هوشمندی ، پیچیدگی و عامل “WOW” راه حل های خود را جشن می گیریم.
اما این مورد است: بهترین راه حل ها به ندرت پیچیده ترین هستند.
آنها کسانی هستند که هستند ساده ، جامد و پایداربشر
قدرت سادگی
در عجله برای حل مشکلات سخت ، سادگی اغلب صندلی های پشتی را می گیرد.
اما اگر یک اصل وجود داشته باشد که همیشه حفظ شود ، این است:
هرچه سیستم ساده تر باشد ، ساخت ، توضیح ، تکامل و اعتماد آسان تر است.
معماری های ساده:
- مستند سازی و به اشتراک گذاری آسان تر است
- قطعات متحرک کمتری داشته باشید (بخوانید: اشکالات کمتری)
- برای نگهداری ارزان تر هستند
- مقیاس بهتر
- برای اعضای تیم جدید نرم و صاف کنید
- در واقع کار در تولید
و با این حال … سادگی سخت است.
چرا ما همه چیز را پیچیده می کنیم؟
قبل از اینکه به نحوه ساده سازی بپردازیم ، بیایید ببینیم که چرا پیچیدگی وارد می شود.
1. پیچیدگی به فروش می رسد
خواه آن را بپذیریم یا نه ، مردم پیچیده را با قدرتمند برابر می کنند.
نمودارهای پیچیده؟ باید نبوغ باشد.
یک میلیون سرویس دهنده؟ وای ، برش!
اما در واقعیت ، پیچیدگی غالباً دود و آینه هایی است که برای توجیه بودجه ، نشان دادن یا فقط عدم شفافیت استفاده می شود.
2. پیچیدگی سرگرم کننده است
بیایید صادق باشیم حل مشکلات gnarly به روش های هوشمندانه می تواند احساس شگفت انگیز کند.
در ساختن چیزی پیچیده شادی وجود دارد.
اما سرگرم کننده همیشه برابر نیست.
پیروزی واقعی ساخت چیزی است که فقط کار می کند، و خوب کار می کند.
3. ما می خواهیم ادامه دهیم
ابزارها ، کتابخانه ها و چارچوب های جدید براق هفتگی نشان می دهند.
فشار برای ماندن “مدرن” وجود دارد.
اما اضافه کردن یک ابزار جدید بدون درک تجارت آن ، اغلب منجر به سوپ فنی می شود.
مطمئناً از چیزهای جدید استفاده کنید ، اما این کار را به دلایل مناسب انجام دهید.
4. ساده سخت است
ایجاد چیزی ساده تلاش می کند.
این امر وضوح ، محدودیت و درک عمیق از مشکل را می طلبد.
هر کسی می تواند اضافه کند ؛ برای تفریق یک طرفدار واقعی طول می کشد.
5. قانون کانوی در عمل
سیستم شما اغلب به آینه ساخت ساختار org شما ختم می شود.
اگر ارتباطات کثیف است ، انتظار داشته باشید که معماری شما یکسان باشد.
بنابراین چگونه می توانیم ساده کنیم؟
خوشحالم که پرسیدید در اینجا یک جعبه ابزار برای کمک به شما در ساخت راه حل های ساده تر ، بدون اینکه گنگ ها کم شود.
1. جعبه را تکان دهید
از چندین زاویه به راه حل خود نگاه کنید. سوال همه چیز:
- آیا من واقعاً به این سرویس احتیاج دارم؟
- ساده ترین چیزی که می تواند کار کند چیست؟
- آیا این می تواند به جای میکروسرویس یک تابع باشد؟
تیغ Occam را اعمال کنید: ساده ترین راه حل که نیازهای خود را برآورده می کند اغلب بهترین استبشر
2. آن را بشکنید (و دوباره آن را بسازید)
از ol خوب استفاده کنید تقسیم و تسخیربشر
یک مشکل بزرگ را به قطعات کوچکتر بشکنید.
هر قسمت را حل و تأیید کنید.
سپس کل را ادغام و آزمایش کنید.
فکر کنید لگو ، نه سیمان.
3. مانند یک حرفه ای yagni را اعمال کنید
شما به آن احتیاج نخواهید داشت.
آن ویژگی آینده ای که برای آن طراحی می کنید؟ ممکن است هرگز اتفاق بیفتدبشر آن را بسازید تا کنونبشر روی اکنون تمرکز کنیدبشر
اما به اندازه کافی اتاق بگذارید تا در صورت لزوم آن را به راحتی اضافه کنید.
4. از انتزاع زودرس خودداری کنید
از روز اول انتزاعی نکنید.
با پیاده سازی های بتونی شروع کنید.
بگذارید الگوهای به طور طبیعی ظهور کنند.
رابط های استخراج شده هنگامی که حداقل 2-3 مورد استفاده واقعی را مشاهده کرده اید.
“بهترین انتزاع برداشت می شود ، اختراع نشده است.” – Thoughtworks
5. تمرین پارسیمونی
مثل یک مینیمالیستی فکر کنید.
فناوری ، ابزار یا خدمات را پرتاب نکنید مگر اینکه آنها واقعاً مقدار اضافه کنید
هر قطعه اضافی چیز دیگری برای مدیریت ، شکستن و توضیح است.
6. یک قدم عقب بردارید
پس از حل مسئله شدید ، بزرگنمایی کنید.
بگذارید ایده ها حل و فصل شوند.
برو پیاده روی
تصویر بزرگ را مرور کنید.
ساده سازی و بازپرداخت.
طراحی عالی اغلب می آید پس از راه حل اولیه
7. refactor بی رحمانه
وقتی کارها کار کرد ، آنها را تمیز کنید.
بهبود نام ها ، برداشتن کروفت ، لایه های صاف ، فروپاشی انتزاع غیر ضروری.
اصلاح مجدد جایی است که سادگی اغلب در آن پخته می شود.
اما: Refactor با خیال راحتبشر شما به تست های جامد و خرید ذینفعان نیاز دارید تا این کار را با اطمینان از بین ببرید.
سادگی در معماری
سادگی فقط مربوط به کد نیست. این در مورد معماری نیز هست.
بنابراین ، “معماری ساده” چیست؟
این فقط در مورد استفاده از خدمات کمتری یا ترسیم نمودارهای پاک کننده نیست. این در مورد طراحی سیستم هایی است که:
- نیازهای تجاری را بدون مهندسی بیش از حد برآورده کنید
- توضیح و استدلال در مورد آن آسان است
- اجازه دهید تیم ها بدون اینکه از یکدیگر دور شوند سریع حرکت کنند
- با لطف تکامل می یابد
معماری های ساده همیشه آشکار نیستند. آنها از طریق تکرار ، یادگیری و – سالها – به وجود می آیند.
رویه هایی که کمک می کنند
در اینجا برخی از عادات و اصولی وجود دارد که به شما کمک می کند در سمت ساده بمانید:
- طراحی فقط به اندازه کافی جلو: همه جزئیات را برنامه ریزی نکنید ، اما جهت مشخصی را تنظیم کنید. برنامه ریزی مربوط به قفل کردن چیزها نیست – این مربوط به تراز کردن تیم ها است.
- طراحی به طور مداوم: همانطور که می سازید پالایش کنید. چابک بمان در طول مسیر ساده شوید.
- از مدل C4 یا مشابه استفاده کنید: تصاویر به شما کمک می کنند ، اما مدل های خود را بیش از حد ترکیب نکنید. آنها را به همان راحتی که سیستم اجازه می دهد نگه دارید.
- اصول چابک را در آغوش بگیرید: سادگی یکی از مقادیر اصلی XP است. ساده ترین کاری را که کار می کند بسازید. سپس آن را بهبود بخشید.
- در صورت امکان تصمیم گیری کنید: انتخاب های مورد علاقه شما می توانید به راحتی از آن استفاده کنید. هزینه تغییر را کم نگه می دارد و فشار را برای “کامل شدن” از جلو کاهش می دهد.
افکار نهایی
ساده به همان اندازه آسان نیست. اما ساده بهتر است.
برای رسیدن به راه حل های ساده ، تلاش ، بلوغ و وضوح لازم است.
این به معنای گفتن “نه” به ابزار جدید جالب است.
این به معنای پرسیدن “چرا” بیش از “چگونه” است.
اما وقتی به آنجا رسیدید – وقتی تیم شما می تواند به سیستمی که ساخته اید ، درک ، تکامل و اعتماد کنید – این زمانی است که می دانید که آن را میخ زده اید.
“همه چیز باید تا حد امکان ساده تر شود ، اما ساده تر نیست.” – اغلب به انیشتین نسبت داده می شود
آیا می خواهید معماری خود را ساده کنید؟
با ساده کردن ذهنیت خود شروع کنید.
بقیه دنبال خواهند شد.
LiveApi به شما کمک می کند تا در چند دقیقه تمام API های پس زمینه خود را ثبت کنید
با LiveApi ، می توانید به سرعت مستندات API تعاملی ایجاد کنید که به کاربران امکان می دهد API ها را مستقیماً از مرورگر جستجو و اجرا کنند.
اگر از ایجاد دستی برای API های خود خسته شده اید ، این ابزار ممکن است زندگی شما را آسانتر کند.