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

لینک زیر مفهوم Planning Poker که در اسکرام استفاده می‌شود را توضیح داده و برخی از دلایل پشت فرایند آن را هم تشریح کرده‌است.

https://en.wikipedia.org/wiki/Planning_poker

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

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

___
#خلاصه_مطالب «فلسفه نرم‌افزار» در هفته گذشته:

۱. فلسفه Spacive Design جایگزینی برای Responsive Design

https://news.1rj.ru/str/SoftwarePhilosophy/723

۲. آشنایی با box-shadow در CSS

https://news.1rj.ru/str/SoftwarePhilosophy/724

۳. تنظیم Claim based authentication برروی ASP.NET WebApi با استفاده از Owin Authorization

https://news.1rj.ru/str/SoftwarePhilosophy/726

۴. راهکارهایی برای انگیزش تیم‌ها (Iran Agile)

https://news.1rj.ru/str/SoftwarePhilosophy/727

۵. آشنایی با کانبان و نحوه کار بورد کانبان در پروژه‌های نرم‌افزاری

https://news.1rj.ru/str/SoftwarePhilosophy/730

۶. توضیحاتی در رابطه با مفهوم Planning Poker در اسکرام

https://news.1rj.ru/str/SoftwarePhilosophy/732

ـــــــــــ
@SoftwarePhilosophy
#پست_مجدد این پست تا به حال بیش از ۱۳۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
تکنولوژی Xamarin.Forms تکنولوژی ساخت برنامه‌های موبایل cross-platform نسل جدید Xamarin است. یکی از جذابیت‌های این تکنولوژی قابلیت استفده از XAML در طراحی و تولید رابط کاربری است. اگر قصد برنامه نویسی با Xamarin.Forms را دارید احتمالا می‌خواهید نمونه‌هایی از برنامه‌های ساخته شده را ببینید تا روش استفاده از کامپوننت‌های مختلف و نحوه نمایش آن را در پلتفرم‌های مختلف موبایل ببینید. در لینک زیر مثال‌های نمایشی زیادی را در این مورد در اختیار برنامه‌نویسان قرار داده‌است تا بتوانند قابلیت‌های هر کنترل را در پلتفرم‌های مختلف بررسی کنند.

https://developer.xamarin.com/samples/xamarin-forms/all

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

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

___
#پست_مجدد این پست تا به حال بیش از ۱۲۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
با توجه به افزایش استفاده از تلفن همراه بسیاری از افراد برای دستیابی به اطلاعات دنیای وب از تلفن همراه خود استفاده می‌کنند و آمار استفاده از موبایل روند صعودی خود را می‌پیماید. گوگل در اوایل سال 2016 یکی از ابزارهای جدید خود، به نام AMP(Accelerated Mobile Pages) را منتشر کرده است. هدف از ارائه این ابزار بهبود عملکرد صفحات وب حاوی متن, تصویر، فیلم، انیمیشن و…. در موبایل می‌باشد که در نتیجه آن سرعت لود صفحات در موبایل افزایش می‌یابد، خصوصا سایت‌هایی که دارای متن زیادی می‌باشند )مانند سایت‌های خبری.(
پروژه AMP یک فریم‌ورک جدید و متن باز است که به طور کامل از فناوری‌های موجود در وب ساخته شده است. این پروژه که به وسیله گوگل و توییتر انجام شده است، به برنامه نویسان کمک می کند صفحات HTML با حجم کم ایجاد کنند. شما به عنوان یک برنامه نویس فقط تگ‌های خاصی از HTML را می‌توانید استفاده کنید و مجاز به استفاده از همه تگ‌ها نیستید. همچنین شما فقط می‌توانید کدهای ساده CSS و آن‌هایی که دارای کاربرد بسیار هستند را استفاده کنید. استفاده از کدهای جاوا اسکریپت نیز در همه جا مجاز نمی‌باشد. در واقع AMP استاندارد خاصی را برای کدهای شما در نظر می‌گیرند و کدهایی که حجم صفحات را افزایش می‌دهد، به عنوان عامل غیرمجاز در نظر می‌گیرد.
با مراجعه به لینک زیر علاوه بر آشنایی بیشتر با این زیرساخت قدرتمند می‌توانید در راستای استاندارد کردن سایت خود بر مبنای AMP گام بردارید.

https://www.ampproject.org/docs/get_started/create

#محمدرضا_جلیلوند
لینکدین:
http://ir.linkedin.com/in/mohammad-reza-jalilvand-0a5572b1

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

___
#پست_مجدد این پست تا به حال بیش از ۱۴۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
فریم ورک JoinJs یک کتابخانه جاوا اسکریپتی قوی برای ایجاد دیاگرام، چارت درختی، گراف و ... است. این کتابخانه با بکارگیریHTML5 و SVG، نمایش و ایجاد گراف به شکل های مختلف را فراهم کرده است.
لینک زیر، مربوط به همین کتابخانه بوده، که شامل دمو از قابلیت‌ها و آموزش نحوه استفاده از آن است.

http://jointjs.com/

#مریم_داودی

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

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

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

طبق تحقیقات انجام شده به علت عدم وجود Onboarding در سازمان‌ها 16% از نیروهای تازه استخدام شده در همان هفته اول و 17% نیز در ماه اول از ادامه همکاری با شما منصرف می‌شوند. قاعدتا در ماه اول استخدام برای نیروهای جدید یک دروه‌ی آموزشی برگزار میشود. اگر این نیروی جدید بعد از یک ماه منصرف شود چه زیانی به سازمان وارد شده است:
• بدون شک فردی که مسئول آموزش به نیروی جدید است در آن 1 ماه راندمان سابق را ندارد به 2 دلیل: زیرا زمانی از روز را به آموزش تخصیص داده است و همچنین به علت سوالات نیروی جدید نمی‌تواند تمرکز لازم را روی کار خود داشته باشد.
• نتیجه‌ای که بعد از 1 ماه حاصل میشود چیزی بجز ضرر برای شما نیست. ۱- وظایفی که مسئول آموزش می‌توانست در 1 ماه انجام دهد به طور کامل انجام نشده است. ۲- شما بابت کاری که هیچ فایده‌ای برای سازمان نداشته است به مسئول آموزش حقوق داده‌اید.

از مزایای Onboarding می‌توان به موارد زیر اشاره کرد:

افزایش:
• رضایت شغلی
• عملکرد شغلی
• تعهد سازمانی
و همچنین کاهش:
• استرس شغلی
• ترک کار

لینک زیر به صورت شماتیک به مزایای Onboarding اشاره می‌کند.

https://business.linkedin.com/talent-solutions/blog/2014/06/what-do-new-hires-want-from-onboarding-infographic

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

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

___
#پست_مجدد این پست تا به حال بیش از ۱۱۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
مدیریت نسخه‌ها در طراحی RESTFul Web Api ها در معماری نرم‌افزارهای نسل جدید به یک مفهوم مهم تبدیل شده‌است. از آنجاییکه «تغییر» و بهبود یکی از فاکتور‌های جدا نشدنی در نرم‌افزار است و در نسل جدید نرم‌افزارها تغییر بسیار سریعتر اتفاق می‌افتند، مدیریت آن بسیار مهم است.
مدیریت نسخه‌ها در Web Api حتی می‌تواند در طراحی آن تاثیر بگذارد. برای مثال طراحی api ممکن است به روش‌های زیر باشد:
• /api/foo?api-version=1.0
• /api/foo?api-version=2.0-Alpha
• /api/foo?api-version=2015-05-01.3.0
• /api/v1/foo
• /api/v2.0-Alpha/foo
• /api/v2015-05-01.3.0/foo

در لینک زیر «اسکات هانسلمن» کتابخانه‌ای را برای مدیریت versioning در .NET را معرفی کرده‌است که معماری بسیار خوبی دارد و به راحتی می‌توان از آن استفاده کرد.

http://www.hanselman.com/blog/ASPNETCoreRESTfulWebAPIVersioningMadeEasy.aspx

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

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

___
#خلاصه_مطالب «فلسفه نرم‌افزار» در هفته گذشته:

۱. تکنولوژی Xamarin.Forms برای ساخت برنامه‌های موبایل
#xamarin #mobile #crossplatform

https://news.1rj.ru/str/SoftwarePhilosophy/735

۲. فریم‌ورک AMP و فرآیند هماهنگ‌سازی سایت با مرورگرهای موبایل
#javanoscript #mobile

https://news.1rj.ru/str/SoftwarePhilosophy/737

۳. معرفی فریم‌ورک JoinJS
#javanoscript #framework

https://news.1rj.ru/str/SoftwarePhilosophy/739

۴. مفهوم Onboarding و تاثیر آن در عملکرد تیم‌ها
#management

https://news.1rj.ru/str/SoftwarePhilosophy/741

۵. معرفی کتابخانه‌ای در .NET برای مدیریت versioning
#dotnet #webapi #versioning

https://news.1rj.ru/str/SoftwarePhilosophy/743

ـــــــــــ
@SoftwarePhilosophy
#پست_مجدد این پست تا به حال بیش از ۱۳۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
هنگام استفاده از ORM ها در پروژه‌های بزرگ سرعت یکی از عوامل مهم در انتخاب ORM است. غالبا «سرعت» و «امکانات» در مقابل یکدیگر قرار دارند. هر چه به امکانات و قدرت یک ORM اضافه شود از سرعت آن کم می‌شود و بر عکس. البته اکثر ORM های امروز از سرعت قابل قبولی برخوردارند و مقایسه سرعت آنها فقط در داده‌های با حجم زیاد و تناوب بالا مطرح می‌شود. Dapper یکی از Micro ORM های بسیار سریع و مطرح در پلتفرم .net است. این فریم‌ورک بسیار ساده و کوچک نگه داشته شده است و بین برنامه نویسان بسیار محبوب است. جالب است بدانید سایت StackOverflow از این ORM استفاده می‌کند. لینک زیر این Micro ORM را به طور مختصر معرفی کرده و به مقایسه آن با سایر ORM ها پرداخته‌است.

http://www.c-sharpcorner.com/UploadFile/e4e3f7/dapper-king-of-micro-orm-C-Sharp-net/

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

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

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

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

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

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

___
امضا کنندگان مانیفست Agile امضایشان را پس گرفتند. مارتین فاولر نیز از امضای این مانیفست اعلام ندامت کرد. مشکل از آنجا شروع شده که پروژه‌هایی که تحت این مانیفست اجرا می‌شده‌اند با مشکلات عمده‌ای روبرو شدند و ۸۳.۶٪ آنها شکست خوردند.
این درحالی است که شرکت‌های بزرگی مانند Microsoft و Atlassian سرمایه‌گذاری زیادی روی این مانیفست در محصولات خود مانند TFS و JIRA کرده‌اند. همچنین شرکت‌های نرم‌افزاری زیادی در حال استفاده از این محصولات هستند که این تغییر باعث افت شدید سهام آنها می‌شود.

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

سیزده به در مبارک!!

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

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

___
نسخه ۴.۰ فریم‌ورک Angular!؟ مدتها بود برنامه‌نویسان منتظر نسخه ۲.۰ این فریم‌ورک محبوب بودند که ناگهان صحبت از نسخه ۴.۰ این فریم‌ورک شده‌است.
علت این تغییر نسخه سریع و عجیب در حقیقت هماهنگ شدن این محصول با Semantic Versioning است. تیم Angular برای هماهنگی با استاندارد Semantic Versioning و اطلاع‌رسانی بهتر در مورد محتوای هر ریلیز، این استاندارد را پیاده‌سازی کرده‌است. در این روش از هر نسخه می‌توان موارد زیر را فهمید:
- Signaling content of releases
- Time-based release cycles
- Deprecation Policy
- Distinction between stable and experimental releases

برای توضیحات بیشتر می‌توانید پست زیر از Igor Minar را در بلاگ رسمی تیم Angular بخوانید.

http://angularjs.blogspot.com/2016/10/versioning-and-releasing-angular.html

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، بر روی لینک زیر کلیک کنید:
http://ow.ly/tiQx30avyhr

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

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


___
امکانات اضافه شده در C# 7.0 در نسخه Visual Studio 2017 قابل استفاده شدند. از جمله این امکانات می‌توان به موارد زیر اشاره کرد.
- Pattern Matching
- Out Variables
- Locals and Ref Returns
- Generalized Async Return Types

بیشتر این مفاهیم قبلا هم معرفی شده‌بودند ولی در این میان مفهوم Generalized Async Return Types از بقیه جدیدتر به نظر می‌رسد. در لینک زیر با استفاده از این مفهوم به جای Task<T> از یک تایپ جدید با نام ValueTask<T> استفاده شده که کاربردهای بسیار زیادی می‌تواند داشته باشد. همچنین برنامه‌نویسان می‌توانند خودشان تایپ‌های جدیدی را به این منظور طراحی کنند.

لینک زیر امکانات جدید اضافه شده را به همراه مثال توضیح داده‌است.

https://docs.microsoft.com/en-us/dotnet/articles/csharp/csharp-7

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

http://ow.ly/3bpp30ay2f3

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

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


___