معماری تمیز چیست؟

همیشه برنامه نویس هایی را می‌بینم که از تغییرات کارفرمایان شکایت می‌کنند. آنها میخواهند یکبار کد را بنویسند و دیگر هیچوقت درخواست تغییر نداشته باشند.

آیا این دیدگاه اصلا درست است؟ مشخصا خیر!

ما برنامه نویسان به چیزهایی که درست میکنیم میگوییم نرم افزار. چرا این کلمه را انتخاب کرده اند؟ چون آنها نرم اند! یعنی باید بتوان همیشه تغییرشان داد. اگر قرار باشد برنامه ها تغییر نکنند باید از همان اسم سخت افزار استفاده کنیم!

نیازمندی های یک پروژه نرم افزاری هیچوقت قرار نیست ثابت باشند.

راه حل چیست؟ چگونه کدی بنویسیم که انعطاف پذیر باشد؟ راه حل در دو بخش خلاصه میشود: اولی: معماری تمیز، دومی: کد تمیز

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

البته اگر ما یک ساختار عالی داشته باشیم اما کدمان تمیز نباشد باز هم یک نرم افزار زشت و غیر قابل توسعه خواهیم داشت. مانند خانه ای که نقشه زیبایی دارد ولی آجرها درست چیده نشده اند! اینجاست که Clean Code یا کد تمیز به میان می‌‎آید. باید به هر قیمتی کدهای ما تمیز باشد.

کتاب معماری تمیز از رابرت مارتین (عمو باب) یک منبع فوق العاده عالی در مورد این است که با چه معیاری میتوانیم یک معماری تمیز را از کثیف تشخیص دهیم.

https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html

برنامه نویسان باید متوجه باشند که کاری که انجام میدهند یک کار مهندسی تمام عیار است. و کارهای مهندسی را نمیتوان بدون معیار و حساب و کتاب انجام داد.

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

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *