DJANGOLEARN_IR Telegram 609
جنگولرن
سری مهندسی نرم‌افزار: پست 3 از لینکدین Saeed Shahrivari Joghan لینک پست در کامنت احتمالاً در صحبت با دوستان و همکاران یا در فضای مجازی به کتاب‌های پیشنهادی متعددی برای مطالعه (مثلاً کتاب کد تمیز) برخورد کرده باشید. با وجود اینکه مطالعه این کتاب‌ها مفیده…
سری مهندسی نرم افزار: پست 4
از لینکدین Saeed Shahrivari Joghan
لینک

تو پست‌های قبلی راجع به محورهای سه گانه این سری صحبت کردم یعنی: نرم‌افزار، مهندسی نرم‌افزار و مهندس نرم‌افزار. تو این پست می‌خوام راجع به مفهوم «نرم‌افزار خوب» صحبت کنم.

اول دو تا نکته ریز بگم خدمتتون:
۱- معمولاً اگه در کتاب‌ها یا وب بگردید به دو مفهوم بر می‌خورید یکی «نرم‌افزار خوب» (Good Software) و یکی هم «نرم‌افزار باکیفیت» (High Quality Software) که به نظر من تقریباً یه مفهوم دارند.
۲- کیفیت از دو دید قابل بحثه یکی کیفیت داخلی مثلاً معماری خوب و یکی هم کیفیت خارجی مثلا واسط کاربری خوب. معمولاً کاربر بیشتر کیفیت خارجی رو درک میکنه و مهندس نرم‌افزار هم ناخودآگاه بیشتر به کیفیت داخلی توجه میکنه. حالا کدوم باید اولویت داشته باشه؟ به نظر من هیچکدوم برتری نداره که الآن نمیخوام راجع بهش بحث کنیم.

حالا ویژگی‌های یه نرم‌افزار خوب چیه؟ معیارها خیلی متنوعه و پراکنده ولی اجازه بدید در این مورد اقتدا بکنیم به آقای سامرویل! از دید سامرویل ویژگی‌های یه نرم‌افزار خوب موارد زیره:
- کاربردی (Functional): یعنی عملکرد لازم رو به کاربر بده یا به عبارتی درست کار کنه و به درد بخور باشه.
- کارا (High Performance): یعنی کارایی لازم رو هم ارائه بده مثلاً کند نباشه.
- قابل استفاده (Usable): یعنی سهولت استفاده داشته باشه یا به عبارتی کاربرپسند باشه.
- قابل اعتماد (Reliable): یعنی بدون خطا و خرابی کار کنه به عبارتی باگ نداشته باشه و بشه روش حساب کرد.
- قابل نگهداشت (Maintainable): یعنی به راحتی بشه تغییر، ارتقا و بهبودش داد.
- امن (Secure): یعنی امنیت لازم رو برای کاربر فراهم کنه.
البته ویژگی‌های بیشتری هم هست مثل: Scalability یا Testablity‌ یا Compatibility و ... ولی به نظرم ۶ موردی که بالا مرور کردیم تقریباً تو هر نرم‌افزاری دیده میشه ولی موارد دیگه ممکنه تو بعضی نرم‌افزارها خیلی دغدغه نباشه مثلاً مقیاس‌پذیری. لطفاً این ۶ مورد و تعاریفش رو همیشه به خاطر داشته باشیم.

چند تا نکته کنکوری و پایانی:
۱- اینا ویژگی‌های نرم‌افزار خوبه یعنی: کد، داده و مستندات. پس صرفاً شامل کد نمیشه.
۲- نرم‌افزار شامل استهلاک نمیشه یعنی با گذشت زمان خرابی توش بوجود نمیاد برای مثال مقایسه بکنید با ماشین که به مرور زمان استهلاک پیدا میکنه و بیشتر خراب میشه.
۳- یه مهندس نرم‌افزار صرفاً نباید توجهش معطوف به ویژگی‌های کیفی داخلی باشه و باید به ویژگی‌های کیفی خارجی هم توجه کنه مثل قابل استفاده بودن.
۴- این ویژگی‌ها معمولاً مثل یه تار عنکبوت به هم تنیده شدند. یعنی اگه بخوایم یکی رو افزایش بدیم ممکنه به احتمال زیاد ویژگی‌های دیگه که در تعارض هستند کاهش پیدا کنند. برای مثال معمولاً تلاش برای افزایش کارایی سیستم باعث کاهش اتکاپذیری میشه. احتمالاً در آینده راجع این موضوع بیشتر صحبت می‌کنم اما فعلاً پیشنهاد میکنم برای این بحث مقاله بسیار عالی «The web of system performance» رو مطالعه بکنید:
https://lnkd.in/d9s998jA

حالا چه کنیم که نرم‌افزار خوب تولید کنیم؟ ایشالا به شرط حیات در پست‌های بعدی بهش می‌پردازیم😉
👍5



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

سری مهندسی نرم افزار: پست 4
از لینکدین Saeed Shahrivari Joghan
لینک

تو پست‌های قبلی راجع به محورهای سه گانه این سری صحبت کردم یعنی: نرم‌افزار، مهندسی نرم‌افزار و مهندس نرم‌افزار. تو این پست می‌خوام راجع به مفهوم «نرم‌افزار خوب» صحبت کنم.

اول دو تا نکته ریز بگم خدمتتون:
۱- معمولاً اگه در کتاب‌ها یا وب بگردید به دو مفهوم بر می‌خورید یکی «نرم‌افزار خوب» (Good Software) و یکی هم «نرم‌افزار باکیفیت» (High Quality Software) که به نظر من تقریباً یه مفهوم دارند.
۲- کیفیت از دو دید قابل بحثه یکی کیفیت داخلی مثلاً معماری خوب و یکی هم کیفیت خارجی مثلا واسط کاربری خوب. معمولاً کاربر بیشتر کیفیت خارجی رو درک میکنه و مهندس نرم‌افزار هم ناخودآگاه بیشتر به کیفیت داخلی توجه میکنه. حالا کدوم باید اولویت داشته باشه؟ به نظر من هیچکدوم برتری نداره که الآن نمیخوام راجع بهش بحث کنیم.

حالا ویژگی‌های یه نرم‌افزار خوب چیه؟ معیارها خیلی متنوعه و پراکنده ولی اجازه بدید در این مورد اقتدا بکنیم به آقای سامرویل! از دید سامرویل ویژگی‌های یه نرم‌افزار خوب موارد زیره:
- کاربردی (Functional): یعنی عملکرد لازم رو به کاربر بده یا به عبارتی درست کار کنه و به درد بخور باشه.
- کارا (High Performance): یعنی کارایی لازم رو هم ارائه بده مثلاً کند نباشه.
- قابل استفاده (Usable): یعنی سهولت استفاده داشته باشه یا به عبارتی کاربرپسند باشه.
- قابل اعتماد (Reliable): یعنی بدون خطا و خرابی کار کنه به عبارتی باگ نداشته باشه و بشه روش حساب کرد.
- قابل نگهداشت (Maintainable): یعنی به راحتی بشه تغییر، ارتقا و بهبودش داد.
- امن (Secure): یعنی امنیت لازم رو برای کاربر فراهم کنه.
البته ویژگی‌های بیشتری هم هست مثل: Scalability یا Testablity‌ یا Compatibility و ... ولی به نظرم ۶ موردی که بالا مرور کردیم تقریباً تو هر نرم‌افزاری دیده میشه ولی موارد دیگه ممکنه تو بعضی نرم‌افزارها خیلی دغدغه نباشه مثلاً مقیاس‌پذیری. لطفاً این ۶ مورد و تعاریفش رو همیشه به خاطر داشته باشیم.

چند تا نکته کنکوری و پایانی:
۱- اینا ویژگی‌های نرم‌افزار خوبه یعنی: کد، داده و مستندات. پس صرفاً شامل کد نمیشه.
۲- نرم‌افزار شامل استهلاک نمیشه یعنی با گذشت زمان خرابی توش بوجود نمیاد برای مثال مقایسه بکنید با ماشین که به مرور زمان استهلاک پیدا میکنه و بیشتر خراب میشه.
۳- یه مهندس نرم‌افزار صرفاً نباید توجهش معطوف به ویژگی‌های کیفی داخلی باشه و باید به ویژگی‌های کیفی خارجی هم توجه کنه مثل قابل استفاده بودن.
۴- این ویژگی‌ها معمولاً مثل یه تار عنکبوت به هم تنیده شدند. یعنی اگه بخوایم یکی رو افزایش بدیم ممکنه به احتمال زیاد ویژگی‌های دیگه که در تعارض هستند کاهش پیدا کنند. برای مثال معمولاً تلاش برای افزایش کارایی سیستم باعث کاهش اتکاپذیری میشه. احتمالاً در آینده راجع این موضوع بیشتر صحبت می‌کنم اما فعلاً پیشنهاد میکنم برای این بحث مقاله بسیار عالی «The web of system performance» رو مطالعه بکنید:
https://lnkd.in/d9s998jA

حالا چه کنیم که نرم‌افزار خوب تولید کنیم؟ ایشالا به شرط حیات در پست‌های بعدی بهش می‌پردازیم😉

BY جنگولرن


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

View MORE
Open in Telegram


Telegram News

Date: |

Co-founder of NFT renting protocol Rentable World emiliano.eth shared the group Tuesday morning on Twitter, calling out the "degenerate" community, or crypto obsessives that engage in high-risk trading. Earlier, crypto enthusiasts had created a self-described “meme app” dubbed “gm” app wherein users would greet each other with “gm” or “good morning” messages. However, in September 2021, the gm app was down after a hacker reportedly gained access to the user data. 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”. The group also hosted discussions on committing arson, Judge Hui said, including setting roadblocks on fire, hurling petrol bombs at police stations and teaching people to make such weapons. The conversation linked to arson went on for two to three months, Hui said. Hui said the time period and nature of some offences “overlapped” and thus their prison terms could be served concurrently. The judge ordered Ng to be jailed for a total of six years and six months.
from us


Telegram جنگولرن
FROM American