DJANGOLEARN_IR Telegram 637
جنگولرن
سری مهندسی نرم‌افزار: پست 5 از لینکدین Saeed Shahrivari Joghan لینک تو پست‌ قبلی راجع به مفهوم «نرم‌افزار خوب و با کیفیت» صحبت کردم و اشاره کردم که هر نرم‌افزار معمولاً حداقل ۶ محور کیفی داره که در این پست می‌خوام به «قابلیت نگهداشت» یا همون Maintainability…
سری مهندسی نرم‌افزار: پست 6
از لینکدین Saeed Shahrivari Joghan
زوج طلایی طراحی: سادگی + تفکیک دغدغه‌ها

اگه پست ۵ رو خونده باشید به اینجا رسیدیم که برای طراحی و تولید یه نرم‌افزار (باز هم تاکید می‌کنم دامنه نرم‌افزار شامل کد، داده و مستنداته🙂) که قابلیت تغییر، نگهداری و حتی تعمیر ساده‌تری داشته باشه رعایت دو اصل تا حد زیادی کافیه: «سادگی» و «تفکیک دغدغه‌ها». بیاید دقیق‌تر به این دو موضوع بپردازیم:

1️⃣سادگی: سادگی در طراحی نرم‌فزار یعنی درست کردن سیستمی که فهم، استفاده، نگهداری و تغییر اون ساده باشه. به نظرم سادگی چیزیه که برای همه تا حد زیادی ملموسه!
2️⃣تفکیک دغدغه‌ها (SoC): یعنی نرم‌افزار رو به بخش‌های متمایزی تفکیک کنیم به نحوی که هر بخش درگیر یک عملکرد (functionality) یا به عبارتی دغدغه (concern) خاص باشه و تا حد خوبی بخش‌ها ایزوله باشند. آیا این اصل یعنی هر ماژول فقط باید یه کار بکنه؟ جواب منفیه! کار با دغدغه متفاوته.

یه سوال جالب: این دو اصل چه نسبتی با هم دارند؟ میشه گفت معمولاً این دو اصل همراستا هستند ولی در موارد نادری ممکنه هم‌جهت نباشند. اگه مجبور بشیم بینشون اولویت داشته باشیم، از دید من همیشه سادگی به هر چیزی اولویت داره. حالا اگه این دو اصل رو در طراحی نرم‌افزار رعایت کنیم چه مزایایی داره؟
1️⃣فهم ساده‌تر: خوانایی و ساختارمند بودن نرم‌افزار خیلی مهمه. آقا مارتین فاولر میگه: ‌«هر احمقی قادره کدی بنویسه که ماشین بفهمتش، برنامه‌نویس خوب کسیه که کدی می‌نویسه که آدمها هم به راحتی درکش می‌کنند.»
2️⃣نگهداشت ساده‌تر: اگه این دو اصل رو رعایت کرده باشیم توسعه، نگهداری و حتی تعمیر نرم‌افزار به مراتب هزینه کمتری داره.
3️⃣قابلیت استفاده مجدد: وقتی نرم‌افزار از اجزای ساده و تر و تمیز تشکیل شده باشه میشه با تلاش کمی مولفه‌های موجود رو در جاهای دیگه هم استفاده کرد.
4️⃣آزمون‌پذیری بهتر: مولفه‌های ساده و تر و تمیز رو خیلی راحتتر میشه تست کرد.

مزایای خیلی زیادی میشه نوشت ولی من به همین ۴تا بسنده کردم. باز هم تاکید می‌کنم از دید من اصول همین دو اصله و حداقل ۵۰ ساله که در نرم‌افزار مطرح و استفاده می‌شه. دنبال هر فرقه یا اصول جدیدتر مثل SOLID یا DDD یا TDD و غیره هم برید بر پایه همین دو اصل هستند و من همیشه ترجیح دادم دید خودم رو باز نگه دارم و اصول دین رو صرفاً به این دو اصل محدود کنم و از هر رویکردی مثلاً DDD یا TDD در جای مناسب خودشون استفاده کنم چون تنها چیزی که در هر زمینه نرم‌افزاری به درد می‌خورند همین دو اصل هستند. در پست بعدی ایشالا به چابکی و تغییر می‌پردازیم.

پانوشت: مرحوم آقا دایکسترا خیلی در این زمینه زحمت کشیده!
👏52👍1



tgoop.com/djangolearn_ir/637
Create:
Last Update:

سری مهندسی نرم‌افزار: پست 6
از لینکدین Saeed Shahrivari Joghan
زوج طلایی طراحی: سادگی + تفکیک دغدغه‌ها

اگه پست ۵ رو خونده باشید به اینجا رسیدیم که برای طراحی و تولید یه نرم‌افزار (باز هم تاکید می‌کنم دامنه نرم‌افزار شامل کد، داده و مستنداته🙂) که قابلیت تغییر، نگهداری و حتی تعمیر ساده‌تری داشته باشه رعایت دو اصل تا حد زیادی کافیه: «سادگی» و «تفکیک دغدغه‌ها». بیاید دقیق‌تر به این دو موضوع بپردازیم:

1️⃣سادگی: سادگی در طراحی نرم‌فزار یعنی درست کردن سیستمی که فهم، استفاده، نگهداری و تغییر اون ساده باشه. به نظرم سادگی چیزیه که برای همه تا حد زیادی ملموسه!
2️⃣تفکیک دغدغه‌ها (SoC): یعنی نرم‌افزار رو به بخش‌های متمایزی تفکیک کنیم به نحوی که هر بخش درگیر یک عملکرد (functionality) یا به عبارتی دغدغه (concern) خاص باشه و تا حد خوبی بخش‌ها ایزوله باشند. آیا این اصل یعنی هر ماژول فقط باید یه کار بکنه؟ جواب منفیه! کار با دغدغه متفاوته.

یه سوال جالب: این دو اصل چه نسبتی با هم دارند؟ میشه گفت معمولاً این دو اصل همراستا هستند ولی در موارد نادری ممکنه هم‌جهت نباشند. اگه مجبور بشیم بینشون اولویت داشته باشیم، از دید من همیشه سادگی به هر چیزی اولویت داره. حالا اگه این دو اصل رو در طراحی نرم‌افزار رعایت کنیم چه مزایایی داره؟
1️⃣فهم ساده‌تر: خوانایی و ساختارمند بودن نرم‌افزار خیلی مهمه. آقا مارتین فاولر میگه: ‌«هر احمقی قادره کدی بنویسه که ماشین بفهمتش، برنامه‌نویس خوب کسیه که کدی می‌نویسه که آدمها هم به راحتی درکش می‌کنند.»
2️⃣نگهداشت ساده‌تر: اگه این دو اصل رو رعایت کرده باشیم توسعه، نگهداری و حتی تعمیر نرم‌افزار به مراتب هزینه کمتری داره.
3️⃣قابلیت استفاده مجدد: وقتی نرم‌افزار از اجزای ساده و تر و تمیز تشکیل شده باشه میشه با تلاش کمی مولفه‌های موجود رو در جاهای دیگه هم استفاده کرد.
4️⃣آزمون‌پذیری بهتر: مولفه‌های ساده و تر و تمیز رو خیلی راحتتر میشه تست کرد.

مزایای خیلی زیادی میشه نوشت ولی من به همین ۴تا بسنده کردم. باز هم تاکید می‌کنم از دید من اصول همین دو اصله و حداقل ۵۰ ساله که در نرم‌افزار مطرح و استفاده می‌شه. دنبال هر فرقه یا اصول جدیدتر مثل SOLID یا DDD یا TDD و غیره هم برید بر پایه همین دو اصل هستند و من همیشه ترجیح دادم دید خودم رو باز نگه دارم و اصول دین رو صرفاً به این دو اصل محدود کنم و از هر رویکردی مثلاً DDD یا TDD در جای مناسب خودشون استفاده کنم چون تنها چیزی که در هر زمینه نرم‌افزاری به درد می‌خورند همین دو اصل هستند. در پست بعدی ایشالا به چابکی و تغییر می‌پردازیم.

پانوشت: مرحوم آقا دایکسترا خیلی در این زمینه زحمت کشیده!

BY جنگولرن


Share with your friend now:
tgoop.com/djangolearn_ir/637

View MORE
Open in Telegram


Telegram News

Date: |

Your posting frequency depends on the topic of your channel. If you have a news channel, it’s OK to publish new content every day (or even every hour). For other industries, stick with 2-3 large posts a week. Telegram has announced a number of measures aiming to tackle the spread of disinformation through its platform in Brazil. These features are part of an agreement between the platform and the country's authorities ahead of the elections in October. ‘Ban’ on Telegram There have been several contributions to the group with members posting voice notes of screaming, yelling, groaning, and wailing in different rhythms and pitches. Calling out the “degenerate” community or the crypto obsessives that engage in high-risk trading, Co-founder of NFT renting protocol Rentable World emiliano.eth shared this group on his Twitter. He wrote: “hey degen, are you stressed? Just let it out all out. Voice only tg channel for screaming”. Telegram iOS app: In the “Chats” tab, click the new message icon in the right upper corner. Select “New Channel.”
from us


Telegram جنگولرن
FROM American