حقیقتا کمتر دیدم کسی در لایه عمل به معماری پروژه زیاد اهمیت بده یا شایدم من جاهایی کار کردم که علم معماری فقط برعهده system designer یا به قول جناب سم نیومن عزیز در کتاب building microservices معمار سیستم بوده.
من به عنوان کسی که تا الان معماری تمام پروژه هایی که انجام دادم رو شخص خودم طراحی کردم و همانطور که دور از انتظار نیست خیلی مشکلات ایجاد کردم و حل کردم و حتی مشکلاتی هم بوده که نتونستم حل کنم و نفهمیدم چه خاکی به سرم بریزم اما در نهایت همه تجربیات بدی که در طراحی معماری داشتم منجر به این تصمیم شد که برم کتاب بخونم . . .سرچ چیزیو دوا نمیکنه.
کتاب بخونم و کتاب بخونم
از جمله کتابهای مورد علاقم کتاب building microservice نوشته جناب سم نیومن که بنظرم خیلیییییییییییییییییی دید جامع و جالبی به آدم میده.
تصمیم گرفتم یه بخش هایی ازش رو اینجا بزارم خلاصه و نکات قابل توجهش رو.
ابزارها و تکنیکهای در دسترس ما تغییر میکنند. چیزهایی که ما ایجاد میکنیم نقاط ثابتی در زمان نیستند. پس از راهاندازی در مرحله تولید، نرمافزار ما با تغییر نحوه استفاده از آن، به تکامل خود ادامه خواهد داد. برای اکثر چیزهایی که ایجاد میکنیم، باید بپذیریم که وقتی نرمافزار به دست مشتریانمان میرسد، باید واکنش نشان دهیم و خود را با آن وفق دهیم، نه اینکه یک مصنوع بیتغییر باشد. بنابراین، معماران ما باید تفکر خود را از ایجاد محصول نهایی بینقص دور کنند و در عوض بر کمک به ایجاد چارچوبی تمرکز کنند که در آن سیستمهای مناسب بتوانند ظهور کنند و با یادگیری بیشتر، به رشد خود ادامه دهند.
. اریک دورننبرگ ابتدا این ایده را در میان گذاشت که ما باید نقش خود را بیشتر به عنوان برنامهریزان شهر در نظر بگیریم تا معماران محیط ساخته شده. نقش برنامهریز شهر باید برای هر یک از شما که قبلاً SimCity بازی کردهاید، آشنا باشد. نقش یک برنامهریز شهر این است که به منابع اطلاعاتی متعدد نگاه کند و سپس تلاش کند تا طرح یک شهر را به گونهای بهینه کند که به بهترین وجه با نیازهای شهروندان امروز، با در نظر گرفتن استفادههای آینده، مطابقت داشته باشد. با این حال، نحوه تأثیر او بر نحوه تکامل شهر جالب است. او نمیگوید: «این ساختمان خاص را در آنجا بسازید»؛ در عوض، او یک شهر را منطقهبندی میکند. بنابراین، مانند SimCity، میتوانید بخشی از شهر خود را به عنوان یک منطقه صنعتی و بخش دیگری را به عنوان یک منطقه مسکونی تعیین کنید. سپس به عهده دیگران است که تصمیم بگیرند دقیقاً چه ساختمانهایی ساخته شوند، اما محدودیتهایی وجود دارد: اگر میخواهید یک کارخانه بسازید، باید در یک منطقه صنعتی باشد. برنامهریز شهری به جای نگرانی بیش از حد در مورد آنچه در یک منطقه اتفاق میافتد، زمان بسیار بیشتری را صرف بررسی چگونگی جابجایی مردم و خدمات از یک منطقه به منطقه دیگر میکند.
تشبیه معمار سیستم به برنامه ریز شهر خیلی پوینت جذابیه. ماها به عنوان معماران سیستم بیشتر تمرکز خود را باید صرف ارتباط بین بخش های یک شهر و ارتباط بخش ها و وظیفه های هر بخش کنیم تا اتفاقات خاصی که در اون شهر میوفته.
ینی عین برنامه ریزی شهری ما باید مشخص کنیم که حد و مرز (service boundary)هر منطقه در شهر کجاست.
این مناطق شهری (services) با گذشت زمان تغییر میکنند. نیاز به بزرگتر شدن دارن و با افزایش تعداد ساکنان هر بخش نیاز به بهبود عملکرد دارن.