Software Philosophy
3.45K subscribers
160 photos
41 videos
1.54K links
چکیده‌ای از مفاهیم به روز مهندسی نرم افزار برای مهندسین نرم‌افزار.
معماری نوین نرم‌افزار، تکنولوژی‌های برنامه نویسی جدید
Download Telegram
#پست_مجدد این پست تا به حال بیش از ۳۹۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد
Forwarded from Software Philosophy
تخمین کارها در Scrum یا Story Point Estimation یکی از کارهایی است که انجام درست آن دقت پیش‌بینی زمان انجام پروژه را بالا می‌برد. ولی تخمین‌های درست و نزدیک به واقعیت کار ساده‌ای نیست و برای رسیدن به آن باید نظم خاصی داشت. اینکه چه افرادی در جلسه شرکت می‌کنند، چه سوالاتی می‌پرسند، چه توضیحاتی داده می‌شود، فرایند تخمین زدن و پوینت دادن چطور است، اینها همه از عوامل تاثیر گذار در یک تخمین خوب هستند.
پست زیر قدم‌هایی را برای رسیدن به یک تخمین موفق، معرفی و آنها را شرح داده‌است.

https://www.agilebuddha.com/agile/agile-estimation-8-steps-to-successful-story-point-estimation/

#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd

کانال تلگرام:
@SoftwarePhilosophy

___
#پست_مجدد این پست تا به حال بیش از ۲۲۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد
Forwarded from Software Philosophy
آیا پردازنده‌ای که با آن کار می‌کنیم می‌تواند سریعتر پردازش کند؟

برای افزایش سرعت پردازش اطلاعات نیاز به اجرای همزمان کدها داریم و همینطور پریشانی توسعه دهندگان از غیرقابل ردیابی بودن برخی باگ‌ها نشان داده که شاید thread ها راه مناسبی نباشند، ولی مدل‌های جایگزین بهتری وجود دارد که یکی از آنها actor model می‌باشد.
اکتور یک مدل مفهومی ارائه شده برای محاسبات همزمان می‌باشد که کتابخانه‌هایی برای زبان‌های برنامه‌نویسی مختلف بر اساس این مدل ارائه شده‌اند . ایده‌ای که در این مدل وجود دارد بسیار مشابه تعاریفی است که در زبان شی‌گرایی با آن آشنایی داریم به این صورت که یک شی، یک پیغام را دریافت می‌کند و عملیاتی بر اساس پیغام دریافتی روی آن انجام می‌دهد. اما ویژگی‌های اصلی این مدل که آن را متمایز می‌کند جدا بودن هر اکتور از هم می‌باشد که هیچ‌گاه مموری را با هم به اشتراک نمی‌گذارند. هر اکتور شامل یک صندوق پستی است و اکتورها با ارسال پیغام به یکدیگر , با نگه داشتن پیغام ها در صندوق پستی , عملیات لازم را روی پیغام‌ها به صورت یکی یکی انجام می‌دهند.

مقاله زیر به شرح کامل نحوه عملکرد اکتورها و چگونگی ارتباط آنها می‌پردازد.

https://www.brianstorti.com/the-actor-model


#محمدرضا_جلیلوند

لینکدین:

https://ir.linkedin.com/in/mohammad-reza-jalilvand-0a5572b1

کانال تلگرام:
@SoftwarePhilosophy

___
#پست_مجدد این پست تا به حال بیش از ۲۳۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد
Forwarded from Software Philosophy
Asking the right question is at the heart of effective communications and information exchange.
یک functionوقتی جواب درست را برمی‌گرداند که ورودی‌ صحیح به آن داده شود. در یک ارتباط هم این قانون صادق است. شما وقتی از مخاطب جواب درست را می‌گیرد که سوال درستی بپرسید.
بسته به موقعیت باید از «نوع» درستی از سوال استفاده کرد.

انواع سوال‌های متدوال عبارتند از:

• Close Questions
• Open Question
• Funnel Question
• Probing Question
• Leading Question

Close Questions یا سوال‌های بسته به سوال‌هایی گفته می‌شود که جواب‌شان در حد «یک کلمه» یا «خیلی کوتاه» است.
از کاربرد‌های این نوع سوال میتوان به این موارد اشاره کرد.
۱- وقتی که در آخر یک جلسه نیاز به یک جمع‌بندی و نتیجه گیری دارید.
۲- وقتی که می‌خواهید اطمینان حاصل کنید که منظور طرف مقابل را درست متوجه شده‌اید.
برای این کار باید هر چیزی را که متوجه شدید به گونه‌ای بپرسید که جواب آن «بله» یا «خیر» باشد (یا در حد یک کلمه یا خیلی کوتاه). مثلا «اگر منظور شما رو درست متوجه شده باشم، من باید یک متد بنویسم که یک فایل ورد را به عنوان ورودی بگیرد و آن را تبدیل به پی‌دی‌اف کند؟»

در لینک زیر انواع سوال‌ها، همراه با موقعیت‌های که می‌شود از آن استفاده کرد، توضیح داده شده است.

https://www.mindtools.com/pages/article/newTMC_88.htm

#افشین_علیزاده
لینکدین:
https://ir.linkedin.com/in/afshinalizadehbehjati

کانال تلگرام:
@SoftwarePhilosophy

___
#پست_مجدد این پست تا به حال بیش از ۳۱۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد
Forwarded from Software Philosophy
اثری که Body language بر خود فرد می‌گذارد، اگر بیشتر از اثری که بر مخاطب می‌گذارد نباشد، کمتر هم نیست.

استاد دانشگاه هاروارد Amy Cuddy تحقیقی انجام داده است و در آن به این نتیجه رسیده است که فرم و حالت بدن می‌تواند بر «ذهن» و «فیزیولوژی» اثر گذارد،‌ بدین صورت که اگر شما ۲ دقیقه ژست یک فرد پیروز را به خود بگیرید میزان تستوسترون افزایش و کورتیزول کاهش میابد. میزان این هورمون‌ها اثر مستقیمی بر مغر گذاشته و میتواند باعث افزایش قدرت ریسک‌پذیری و موفقیت شود.

https://www.ted.com/talks/amy_cuddy_your_body_language_shapes_who_you_are

#افشین_علیزاده
لینکدین:
https://ir.linkedin.com/in/afshinalizadehbehjati

کانال تلگرام:
@SoftwarePhilosophy

___
#پست_مجدد این پست تا به حال بیش از ۹۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد
Forwarded from Software Philosophy
اولین قدم در ساخت تیم پروژه در TFS انتخاب پروسه آن است که قالب کلی سیستم پیگیری ورک‌آیتم‌ها را مشخص می‌کند.
یکی از این پروسه‌ها، CMMI است. در اصل Capability Maturity Model Integration (CMMI) یک مدل است و نه نسخه‌ای که قدم به قدم قابل اجرا باشد. این مدل مجموعه ای از رفتارهای سازمانی برای توسعه نرم افزار و مهندسی سیستم را ارايه می‌دهد. هدف این مدل ارزیابی میزان بلوغ فرایندهای سازمان و ارائه راهکارهایی برای بهبود آنهاست که نهایتا منجر به بهبود محصول نهایی می‌شود.
در TFS زمانی این نوع پروسه انتخاب می‌شود که تیم از روش‌های مشخص و خاصی در پروژه استفاده می‌کند و نیازمند چارچوبی برای بهبود پروسه و فرایندهای خود است که امکان ارزیابی تصمیمات و روش‌ها را فراهم کند.
در این پروسه امکان پیگیری requirement, change request, risk and review وجود دارد.
لینک زیر به طور کامل پروسه CMMI را در TFS شرح می‌دهد.

https://www.visualstudio.com/en-us/docs/work/guidance/cmmi-process

#مریم_داودی

لینکدین:
https://www.linkedin.com/in/maryam-davoudi-7913565a

کانال تلگرام:
@SoftwarePhilosophy

___
#پست_مجدد این پست تا به حال بیش از ۹۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد
Forwarded from Software Philosophy
یکی از تکنیک ها برای ایجاد عمق یا برجستگی، استفاده از shadow-box است. اطلاع از تمام امکانات و ویژگی هایی که این پروپرتی در اختیار ما قرار می دهد، می تواند به خلق طرح های جذاب به ما کمک کند. این ویژگی ها عبارتند از:
• Horizontal Length
• Vertical Length
• Blur Radius
• Spread Radius
• Shadow Color
• Opacity
• Outline/Inset
بطور کلی در پروپرتی box-shadow می توان لیستی از سایه ها را ( که هر کدام شامل ویژگی های بالاست) مشخص کرد. هر قسمت این لیست که با کاما از هم جدا شده است مربوط سایه یک قسمت از element مربوطه خواهد بود. به این ترتیب می توان ترکیب های متنوع و خلاقانه ای از سایه های داخلی یا خارجی با میزان و غلظت های مختلف ایجاد کرد.
لینک زیر به شرح کامل box-shadow با مثال پرداخته و دید کاملی برای استفاده از تمام ویژگی های ارائه کرده است.

https://www.css3.info/preview/box-shadow/

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، بر روی لینک زیر کلیک کنید:

https://ow.ly/MdiE309B7Jm

#مریم_داودی (https://ow.ly/HGkG309B7de)

کانال تلگرام:
@SoftwarePhilosophy

___
#پست_مجدد این پست تا به حال بیش از ۲۹۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد
Forwarded from Software Philosophy
یک فیچر کوچک، ولی بسیار بزرگ در Visual Studio 2017 که طرفداران زیادی پیدا کرده نحوه برخورد با NullReferenceException است. این فیچر در نحوه نمایش این نوع خطا در IDE خود را نشان می‌دهد. به این صورت که اگر برای مثال در عبارت person.Parent.FirstName مقدار Parent برابر با null باشد و باعث خطای NullReferenceException شود، در خطایی که نمایش داده می‌شود دقیقا اشاره می‌شود کدام قسمت null بوده. برای مثال دقیقا گفته می‌شود که person.Parent برابر null بوده و باعث بروز خطا شده‌است.

در لینک زیر به طور خلاصه نحوه استفاده از این ویژگی نمایش داده‌ شده است.

https://blogs.msdn.microsoft.com/devux/2017/03/18/the-small-big-feature-in-visual-studio-2017/

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، بر روی لینک زیر کلیک کنید:

https://ow.ly/dnIZ30aGM7L

#مهران_داودی (https://ow.ly/GwIl309lFEm)

کانال تلگرام:
@SoftwarePhilosophy


___
#پست_مجدد این پست تا به حال بیش از ۲۳۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد
Forwarded from Software Philosophy
درک ساختار فایل web.config معمولا کمک زیادی به برنامه‌نویسان می‌کند. اغلب برنامه‌نویسان فقط با قسمت‌های خاصی از این فایل کار می‌کنند و نیازی به تغییر سایر قسمت‌ها ندارند. ولی با این حال، درک درست معماری این فایل کمک زیادی به نحوه تنظیم آن می‌کند. ساختار سلسله مراتبی این فایل و اینکه هر فایل web.config معمولا ویژگی‌هایی را از فایل‌های دیگر به ارث می‌برد معمولا مغفول واقع می‌شود. دانستن این نکته که می‌توان با ایجاد چند فایل web.config در فولدرها از ویژگی ارث‌بری آن استفاده کرد می‌تواند کمک زیادی به طراحی این فایل‌ها کند.

مقاله زیر ۱۰ نکته‌ مهمی که برنامه نویسان باید در مورد این فایل بدانند را شرح داده‌است.

https://weblogs.asp.net/jongalloway/10-things-asp-net-developers-should-know-about-web-config-inheritance-and-overrides

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، بر روی لینک زیر کلیک کنید:

https://ow.ly/Ojts30aISN8

#مهران_داودی (https://ow.ly/GwIl309lFEm)

کانال تلگرام:
@SoftwarePhilosophy


___
#پست_مجدد این پست تا به حال بیش از ۲۳۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد
Forwarded from Software Philosophy
تنظیم محیط برنامه‌نویسی Linux روی Windows 10 عنوان مقاله‌ای است که اسکات هانسلمن در بلاگش در مورد آن توضیح داده‌است. یکی از نکات جالب مورد اشاره او در این پست این جمله بود: «بعضی‌ها دوست دارند با ماوس و کلیک کار کنند، بعضی‌ها ترجیح می‌دهند با کیبورد و تایپ کردن کار کنند، اشکال ندارد برای همه جا هست!»
دو عادت کاملا متفاوت برنامه‌نویسان، محیط‌های کارمندی و محیط‌های گرافیکی است. در این مقاله نحوه استفاده از bash روی linux که روی windows 10 بالا آمده‌است توضیح داده شده.

با مطالعه این مقاله با امکانات زیادی که برای تیپ برنامه‌نویسان کیبوردی طراحی شده آشنا می‌شوید.

https://www.hanselman.com/blog/SettingUpAShinyDevelopmentEnvironmentWithinLinuxOnWindows10.aspx

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، بر روی لینک زیر کلیک کنید:

https://ow.ly/FD3X30b4Kyd

#مهران_داودی (https://ow.ly/GwIl309lFEm)

کانال تلگرام:
@SoftwarePhilosophy


___
#پست_مجدد این پست تا به حال بیش از ۳۵۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد
Forwarded from Software Philosophy
استفاده از امکانات Azure و TFS برای تیم‌های برنامه‌نویسی بسیار جذاب است. بسیاری از مشکلاتی که در تیم‌های نرم‌افزاری پیش می‌آید به علت نبود فرایند‌های درست و ابزارهای مناسب است. یکی از دغدغه‌های تیم‌های برنامه‌نویسی، نحوه تعامل و همکاری اعضای تیم در ساخت نیازمندی‌های نرم‌افزار به صورت با کیفیت است. نیازها باید طوری شفاف تعریف شوند که قابل تست باشند. اصولا اگر یک نیازمندی به اندازه‌ای واضح تعریف نشده که بتوان آن را تست کرد، احتمالا کد آن هم خیلی واضح به آن هدف نخواهد رسید!

در مقاله زیر تجربه استفاده از دو ابزار Team Foundation Server و یکپارچگی آن با سرویس‌های Azure در یک پروژه عملی شرح داده شده است. در این فرایند Feature‌ ها به عنوان زبان مشترک بین تیم فنی و بیزنس طراحی می‌شوند. سپس این Feature ها به Backlog Item ها شکسته می‌شوند. یک Backlog Item در حقیقت یک نیازمندی‌است است که آنقدری کوچک شده که بتوان آن را به تنهایی تست کرد. به طوری که اگر تست تمام Backlog Item های یک Feature پاس شود، به معنی قابل تحویل بودن آن به تیم بیزنس باشد. سپس Task ها مجموعه کارهایی (فنی و غیر فنی) است که باید انجام شود تا بتوان تست یک Backlog Item را پاس کرد.

در مقاله زیر به طور خلاصه توضیح داده شده‌است که چگونه Sprint ها انجام می‌شوند.

https://mehrandvd.me/2017/02/24/azure-experience-handling-requirements/

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، بر روی لینک زیر کلیک کنید:

https://ow.ly/3NGm30b5IjZ

#مهران_داودی (https://ow.ly/GwIl309lFEm)

کانال تلگرام:
@SoftwarePhilosophy


___