✅ مطلبی از لینکدین Ali Mahmoodi
بیشتر بئست پرکتیسهایی که امروزه در نرمافزار مشاهده میکنیم چه در سطح معماری چه در سطح کد برگرفته از دو یا سه مقالهای هست که در سالهای ۱۹۶۰ تا ۱۹۸۰ میلادی نوشته شده.
بیشتر مهندسین نرمافزار آموزش رو با اصول سالید آغاز میکنند در حالی قبل سال دو هزار هنوز اقای روبرت مارتین این اصول رو تدوین نکرده بود و قبل از ایشون دنیای نرمافزار از دو اصل انسجام و وابستگی استفاده میکردند به غیر از این دو، ذات نرمافزار رو قابل تغییر و پیچیده تعریف و اثبات کرده بودند.
اگر از نوشته بالا یه استنباط کنیم میتوانیم بگویم اصل تک وظیفهگی و باز و بسته در سالید در اصل جزیی از انسجام میباشد و اصل معکوس کردن وابستگی در صدد حل مشکل وابستگی هست که قبل سال دو هزار آن را میدانستیم…
از این رو بحث قابل تغییر بودن نرمافزار باعث شد شیگرا از طریق کپسوله سازی اون رو حل بکنه و فانکشنال پروگرمینگ با متغیرهای غیر قابل تغییر، حذف استئتها، فانکشنهای شهروند درجه یک… هر دو روش بجای قبول کردن مشکل در حال حذف مشکل هستند و حین حذف کلی پیچیدگی و سختی به کار اضافه میکند!! سوالی که پیش میاد چرا بعد از گذشت چهار دهه راحل مناسبی برای این مشکلات ارایه نشده و برعکس کلی سرپوش یا چسب زخم برای این مشکلات درست میکنند ولی هنوز خون ریزی ادامه داره!!! مثلا بحث دامین دریون دیزاین میگه هر دامین اطلاعات مربوط به خودش رو بدونه که باز بحث انسجام هست و بحث بعدی کنترل بر روی تغییر! دنبال این هست که تغییر به صورت کنترل شده در یک نقطه متمرکز بشه تا باگهای ناخواسته پیش نیاد این هم باز پیچیدگی دیگری به سیستم اضافه میکند…
مشکلات و پیچیدگی که این روشها در صدد حلش هستند باعث شده چندین دیزاین پترن و چندین پترن معماری اضافه بشه در حالی که پارادایمهای مهندس نرمافزار وعده داده بودنند حلش بکنند ولی هر چه گذشت بجای حل موضوع چسب زخمها ارایه دادن تا خون ریزی متوقف بشه!!
چرا مهندسین نرمافزار یا پدران نرمافزار مشکل رو از زیر بنا حل نمیکنند!!
خلاصهای از دست نوشته چسب زخمهای مهندسی نرمافزار،
انشالله تا هفته اینده منتشر خواهیم کرد، در این مقاله پیشنهادهایی برای حل مشکل خواهیم داد.
لینک:
https://www.linkedin.com/posts/ali-mahmoodi-tabriz_%DA%86%D8%B3%D8%A8-%D8%B2%D8%AE%D9%85-%D9%87%D8%A7%DB%8C-%D8%AF%D9%86%DB%8C%D8%A7%DB%8C-%D9%86%D8%B1%D9%85%D8%A7%D9%81%D8%B2%D8%A7%D8%B1-%D8%A8%DB%8C%D8%B4%D8%AA%D8%B1-%D8%A8%D8%A6%D8%B3%D8%AA-%D9%BE%D8%B1%DA%A9%D8%AA%DB%8C%D8%B3%D9%87%D8%A7%DB%8C%DB%8C-activity-7130635841713950720-7cPu?utm_source=share&utm_medium=member_desktop