جنگولرن
✅ مطلبی از لینکدین Saeed Shahrivari Joghan لینک پست در کامنت سری مهندسی نرمافزار: پست1 اولین پست سری مهندسی نرمافزار رو با تعریف خود نرمافزار شروع میکنم. شاید در نگاه اول تعریف نرمافزار برای اغلب افراد کامپیوتری خیلی بدیهی باشه اما بد نیست همین الان…
سری مهندسی نرمافزار: پست 2
از لینکدین Saeed Shahrivari Joghan
لینک پست در کامنت
سری مهندسی نرمافزار: پست 2
در پست قبلی راجع به نرمافزار صحبت کردم و به این رسیدیم که نرمافزار شامل کد،داده، و مستندات میشه:
https://lnkd.in/d5Dwkxbt
حالا میخوام یه مقداری راجع به مهندسی نرمافزار صحبت کنم. اجازه بدید چند تعریف معروف رو ببینیم:
- «یک نظام مهندسی که شامل هرچیزی درباره تولید نرمافزار میشه» از سامرویل
- «پایه گذاری و استفاده از اصول مهندسی برای تولید نرمافزار اقتصادی و کارآمد» از بایر
- «استفاده از یک رویکرد سیستماتیک،منظم، و قابل سنجش برای توسعه، عملیات، و نگهداشت نرمافزار» از IEEE
من اگه بخام نکات مهم در تعاریف بالا رو خلاصه کنم میتونم بگم که:
۱- مهندسی نرمافزار یک رویکرد منظم و مهندسی شده باید باشه که شامل فرآیندی کارآمد و قابل سنجش میشه
۲- خروجی مهندسی نرمافزار باید یک محصول نرمافزاری خوب و باکیفیت و مقرون به صرفه و ... باشه (که فعلا از این ویژگیها میگذریم)
۳- به صورت طبیعی باید در این فرآیند مهندسی از ابزارهای مناسبی هم برای توسعه، عملیات، و نگهداشت استفاده بشه
حالا با تبیین مفهوم نرمافزار و مهندسی نرمافزار فقط یه مفهوم دیگه میمونه که مفاهیم پایه ما تکمیل بشه و اونم چیزی نیست جز: «مهندس نرمافزار»
«مهندس نرمافزار کسیه که با استفاده از اصول مهندسی نرمافزار و ابزارهای مربوطه محصول نرمافزاری میسازه»
الان دیگه محورهای اساسی مباحث رو شناختیم یعنی: «نرمافزار»، «مهندسی نرمافزار»، و «مهندس نرمافزار»
از این به بعد تقریبا اغلب مباحثی رو که در ادامه میبینیم به یک یا چند تا از موارد فوق مربوط میشه. برای مثال اگه راجع به آرایش تیمی افراد صحبت کنیم بیشتر به مهندسین مربوطه یا اگه راجع به فرآیند چابک و واکنش به تغییرات صحبت کنیم بیشتر به مهندسی نرمافزار مربوط میشه و اگه راجع به کیفیت کد صحبت کنیم بیشتر به خود نرمافزار مربوطه. در ادامه من سعی میکنم به مرور تو هر سه محور به موازات پست داشته باشیم ولی فعلا فکر کنم برای رعایت اختصار این پست رو تموم کنیم بهتره.
hashtag#software
hashtag#softwareengineering
از لینکدین Saeed Shahrivari Joghan
لینک پست در کامنت
سری مهندسی نرمافزار: پست 2
در پست قبلی راجع به نرمافزار صحبت کردم و به این رسیدیم که نرمافزار شامل کد،داده، و مستندات میشه:
https://lnkd.in/d5Dwkxbt
حالا میخوام یه مقداری راجع به مهندسی نرمافزار صحبت کنم. اجازه بدید چند تعریف معروف رو ببینیم:
- «یک نظام مهندسی که شامل هرچیزی درباره تولید نرمافزار میشه» از سامرویل
- «پایه گذاری و استفاده از اصول مهندسی برای تولید نرمافزار اقتصادی و کارآمد» از بایر
- «استفاده از یک رویکرد سیستماتیک،منظم، و قابل سنجش برای توسعه، عملیات، و نگهداشت نرمافزار» از IEEE
من اگه بخام نکات مهم در تعاریف بالا رو خلاصه کنم میتونم بگم که:
۱- مهندسی نرمافزار یک رویکرد منظم و مهندسی شده باید باشه که شامل فرآیندی کارآمد و قابل سنجش میشه
۲- خروجی مهندسی نرمافزار باید یک محصول نرمافزاری خوب و باکیفیت و مقرون به صرفه و ... باشه (که فعلا از این ویژگیها میگذریم)
۳- به صورت طبیعی باید در این فرآیند مهندسی از ابزارهای مناسبی هم برای توسعه، عملیات، و نگهداشت استفاده بشه
حالا با تبیین مفهوم نرمافزار و مهندسی نرمافزار فقط یه مفهوم دیگه میمونه که مفاهیم پایه ما تکمیل بشه و اونم چیزی نیست جز: «مهندس نرمافزار»
«مهندس نرمافزار کسیه که با استفاده از اصول مهندسی نرمافزار و ابزارهای مربوطه محصول نرمافزاری میسازه»
الان دیگه محورهای اساسی مباحث رو شناختیم یعنی: «نرمافزار»، «مهندسی نرمافزار»، و «مهندس نرمافزار»
از این به بعد تقریبا اغلب مباحثی رو که در ادامه میبینیم به یک یا چند تا از موارد فوق مربوط میشه. برای مثال اگه راجع به آرایش تیمی افراد صحبت کنیم بیشتر به مهندسین مربوطه یا اگه راجع به فرآیند چابک و واکنش به تغییرات صحبت کنیم بیشتر به مهندسی نرمافزار مربوط میشه و اگه راجع به کیفیت کد صحبت کنیم بیشتر به خود نرمافزار مربوطه. در ادامه من سعی میکنم به مرور تو هر سه محور به موازات پست داشته باشیم ولی فعلا فکر کنم برای رعایت اختصار این پست رو تموم کنیم بهتره.
hashtag#software
hashtag#softwareengineering
Linkedin
Saeed Shahrivari Joghan on LinkedIn: #software #softwareengineering | 15 comments
سری مهندسی نرمافزار: پست ۱
اولین پست سری مهندسی نرمافزار رو با تعریف خود نرمافزار شروع میکنم. شاید در نگاه اول تعریف نرمافزار برای اغلب افراد کامپیوتری… | 15 comments on LinkedIn
اولین پست سری مهندسی نرمافزار رو با تعریف خود نرمافزار شروع میکنم. شاید در نگاه اول تعریف نرمافزار برای اغلب افراد کامپیوتری… | 15 comments on LinkedIn
❤1👍1
✅ پست سوالی از لینکدین Hesam Attari در مورد مایکروسرویس (یا میکروسرویس)
کامنت های پستش رو بخونید. نکات خوبی داره. (لینک)
از مایکروسرویس چه میخواهید؟ چه مشکلی در پروژه یافته اید و یا چه مشکلی را در پروژه میخواهید حل کنید که به سراغ مایکروسرویس کردن می روید؟
برخی فکر می کنند چون پروژه بزرگ میشود باید سراغ مایکروسرویس کردن پروژه رفت. اصلن میدانید مثلا هنگام پابلیش کردن چه مسائلی ممکن است به وجود بیاید؟
حالا فرض کنیم مشکل را پیدا کردید چاره ای هم ندارید و میخواهید سراغ مایکروسرویس کردن بروید. چرا از همان اول api gateway میگذارید؟ با تمام مزایایش میدانید چه پیچیدگی هایی به وجود می آید؟
قریب به اتفاق پروژه ها فرآیندهای مهندسی نرم افزار ندارند یا کامل رعایت نمیکنند. همین مهندسی را در پروژه ها رعایت کنید بسیاری از مشکلات شما حل می شود. کافیست که r&d کنید. همین را در دانشگاه میتوانید تمرین کنید و یا نکردید هم می توانید موضوعات را جستجو کنید.
#softwareengineering
کامنت های پستش رو بخونید. نکات خوبی داره. (لینک)
از مایکروسرویس چه میخواهید؟ چه مشکلی در پروژه یافته اید و یا چه مشکلی را در پروژه میخواهید حل کنید که به سراغ مایکروسرویس کردن می روید؟
برخی فکر می کنند چون پروژه بزرگ میشود باید سراغ مایکروسرویس کردن پروژه رفت. اصلن میدانید مثلا هنگام پابلیش کردن چه مسائلی ممکن است به وجود بیاید؟
حالا فرض کنیم مشکل را پیدا کردید چاره ای هم ندارید و میخواهید سراغ مایکروسرویس کردن بروید. چرا از همان اول api gateway میگذارید؟ با تمام مزایایش میدانید چه پیچیدگی هایی به وجود می آید؟
قریب به اتفاق پروژه ها فرآیندهای مهندسی نرم افزار ندارند یا کامل رعایت نمیکنند. همین مهندسی را در پروژه ها رعایت کنید بسیاری از مشکلات شما حل می شود. کافیست که r&d کنید. همین را در دانشگاه میتوانید تمرین کنید و یا نکردید هم می توانید موضوعات را جستجو کنید.
#softwareengineering
👍3