علیرضا صفافرد
علیرضا صفافرد
خواندن ۴ دقیقه·۱ سال پیش

Evolutionary Architecture From Start Up to Scale Up QCon 2020

ویدئویی که در اینجا می‌خواهم از آن صحبت کنم توسط دیوید سانتورو، مدیر ارشد فناوری carwow آمده است:
سخنران در مورد اینکه چگونه معماری وب سایت شرکتش که از یک استارتاپ به یک مقیاس بزرگ تبدیل کرده سخنرانی کرده است. او قوانین زیر را برای ما به اشتراک می‌گذارد که خود در راه انتقال از حالت startup به حالت enterprise رعایت کرده است.

  • روی محصول تمرکز کنید. درگیر جزئیات معماری نشوید. در عوض، روی ساختن محصولی تمرکز کنید که مردم بخواهند از آن استفاده کنند.
  • چرخ را دوباره اختراع نکنید ابزارها و چارچوب های زیادی وجود دارد که می توانید از آنها برای صرفه جویی در زمان و تلاش استفاده کنید.
  • طراحی برای آزمایش پذیری آزمایش کد خود را آسان کنید تا بتوانید با تغییر نیازهای خود، آن را به راحتی تغییر دهید.
  • نظارت بر تولید داشته باشید. از ابزارهایی برای نظارت بر محیط تولید خود استفاده کنید تا بتوانید به سرعت مشکلات را شناسایی و رفع کنید.
  • طراحی برای حذف: باین قانون به این معنی است که شما باید کد خود را طوری طراحی کنید که در مواقعی که دیگر به آن نیازی نیست حذف آن آسان باشد. این باعث می شود که پایگاه کد شما در دراز مدت نگهداری و تکامل یابد.چند دلیل وجود دارد که چرا باید برای حذف طراحی کنید. ابتدا، با رشد شرکت شما و تغییر نیازهای شما، ناگزیر باید برخی از کدهای قدیمی خود را حذف کنید. اگر کد شما برای حذف طراحی نشده است، این می تواند یک فرآیند بسیار دشوار و زمان بر باشد. دوم، طراحی برای حذف می تواند به شما در جلوگیری از بدهی فنی کمک کند. بدهی فنی انباشته شدن تصمیمات بدی است که در طول توسعه نرم افزار گرفته می شود. این تصمیمات می تواند حفظ و تکامل کد شما را دشوارتر کند و همچنین می تواند منجر به مشکلات عملکرد و آسیب پذیری های امنیتی شود. سوم، طراحی برای حذف می تواند به شما کمک کند تا پایه کد خود را ناب و کارآمد نگه دارید. اگر دائماً کدهای قدیمی را حذف می کنید، کد کمتری برای نگهداری خواهید داشت و درک و اشکال زدایی کد شما آسان تر خواهد بود. با رعایت موارد زیر خیلی عملیات حذف راحت می‌شود
از کوپلینگ شل و وارونگی وابستگی استفاده کنید. این کار جایگزینی یک کد با کد دیگر را آسان تر می کند. از کلاس ها و رابط های انتزاعی استفاده کنید. این کار استفاده مجدد از کد را آسان‌تر می‌کند و از اتصال تنگاتنگ جلوگیری می‌کند. از اشیاء دسترسی به داده (DAO) برای کپسوله کردن کد دسترسی به پایگاه داده استفاده کنید. این کار تغییر طرح پایگاه داده خود را بدون تأثیر بر روی کد برنامه آسان تر می کند. از صف های پیام برای جدا کردن اجزا استفاده کنید. این کار جایگزینی یک جزء با دیگری را بدون تأثیر بر سایر اجزا آسان تر می کند. از جمع آوری زباله برای حذف خودکار اشیاء استفاده نشده استفاده کنید. این به کاهش مصرف حافظه شما کمک می کند.

با پیروی از این نکات، می توانید کد خود را طوری طراحی کنید که در زمانی که دیگر مورد نیاز نیست، حذف آن آسان تر باشد. این باعث می شود که پایگاه کد شما در دراز مدت نگهداری و تکامل یابد.



  • محدودیت های عملکرد را زودتر تنظیم کنید. این به شما کمک می کند تا از مشکلات عملکردی در آینده جلوگیری کنید.

قوانین سانتورو نقطه شروع عالی برای هر کسی است که سعی در تکامل معماری خود دارد. با این حال، مهم است که به یاد داشته باشید که هیچ رویکرد یکسانی برای معماری وجود ندارد. بهترین راه برای تکامل معماری شما بسته به موقعیت خاص شما متفاوت خواهد بود.

سانتورو همچنین توصیه هایی را در مورد چگونگی جلوگیری از اشتباهات رایج هنگام تکامل معماری به اشتراک گذاشت. به عنوان مثال، او از همان ابتدا نسبت به تلاش برای ساخت یک معماری بی نقص هشدار داد. در عوض، با یک معماری ساده شروع کنید و با تغییر نیازهایتان آن را توسعه دهید. او همچنین نسبت به مهندسی بیش از حد کد شما هشدار داد. فقط مطمئن شوید که کد شما قابل درک و نگهداری آسانی دارد.

اهمیت فرهنگ تیمی

در نهایت سانتورو بر اهمیت داشتن فرهنگ تیمی قوی تاکید کرد. تیمی که مشتاق محصول است و به کیفیت متعهد است، احتمال موفقیت بیشتری در توسعه معماری آن خواهد داشت.

در اینجا چند نکته کلیدی اضافی از سخنرانی آورده شده است:

  • معماری ایستا نیست. با رشد شرکت شما و تغییر نیازهای شما، باید تکامل یابد.
  • اشکالی ندارد. نکته مهم این است که از اشتباهات خود درس بگیرید و به حرکت رو به جلو ادامه دهید.
  • از آزمایش نترسید. هیچ راه درستی برای تکامل معماری شما وجود ندارد. بهترین رویکرد بسته به موقعیت خاص شما متفاوت خواهد بود.

نتیجه:

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

معماری نرم افزاراستارتاپنرم افزار
شاید از این پست‌ها خوشتان بیاید