Software Philosophy
3.45K subscribers
160 photos
41 videos
1.54K links
چکیده‌ای از مفاهیم به روز مهندسی نرم افزار برای مهندسین نرم‌افزار.
معماری نوین نرم‌افزار، تکنولوژی‌های برنامه نویسی جدید
Download Telegram
#پست_مجدد این پست تا به حال بیش از ۱۲۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
پیاده سازی Owin Authorization در برنامه‌هایی که از Owin WebApi استفاده می‌کنند معمولا بسیار کاربردی است. استفاده از Owin در معماری برنامه‌های تحت وب مزایای زیادی دارد. مفهوم Middleware در این معماری باعث خوانایی بسیار زیادی در معماری می‌شود. در معماری Owin فضاهای بسیار مشخصی برای نوشتن کدها تعریف شده‌است.
مقاله زیر به خوبی نشان می‌دهد چطور Claim based authentication را با استفاده از Owin روی ASP.NET WebApi تنظیم کنید.

https://brockallen.com/2013/10/24/a-primer-on-owin-cookie-authentication-middleware-for-the-asp-net-developer

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

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


___
Forwarded from Iran Agile
انگیزش تیم‌ها

تازه وارد یک شرکت شده اید بسیار شوق و ذوق دارید، می‌خواهید همه چیز را درست کنید، می‌خواهید دنیا را جای بهتری کنید، ولی بعد از مدتی شبیه بقیه می‌شوید، شاید بی انگیزه تر از بقیه. ولی چرا این اتفاق می افتد؟

یکی از بهترین روش های انگیزش تیم‌ها، دیدن تاثیر کار بر روی مشتریان است.

یعنی این تسک من چه تاثیر بر زندگی مشتری ها دارد؟

@iranagile

یکی از مثال های معروف قدیمی، اگر از آبدارچی ناسا بپرسید چه کاری انجام می دهی، احتمالا خواهد گفت "من به پرتاب شاتل کمک می کنم" ولی از آبدارچی شرکت‌های خودمان بپرسیم خواهند گفت، "از صبح تا شب دارم حمالی می کنم ..."

یکی از مثال‌های اخیر که بیاد دارم، در شرکتی که یک فروشگاه اینترنتی است، یک باگ مربوط به پرینت لیبل وجود داشت. درخواست دهنده این بخش انبار بود و بشدت انتظار رفع این باگ را داشتند. لیبل‌هایی که چاپ می شدند قابل اسکن نبودند و این روند انبارداری را بسیار کند می‌کرد.

ولی این باگ برای برنامه نویس ها اهمیتی نداشت، "بابا اینکه باگ مهمی نیست، دستی دارن کار رو انجام یمدهند دیگه، برای چی باید روش وقت بگذاریم، اصلا مهم نیست...". ولی زمانی که باگ رفع شد، از برنامه نویس ها خواسته شد که در محل انبار حضور داشته باشند و خوشحالی کل کارمندان را دیدند که چقدر از رفع این باگ خوشحال شده بودند، خودشان دیدند این چقدر به راحتی کار آنها در انبار کمک می کرد، و دیالوگ جدیدشان این بود که "چرا ما این رو سریع تر درست نکردیم..."

یا مثال دیگر در پروژه بانکداری الکترونیکی که در آن هستم، ویژگی با عنوان "پرداخت مستمر" پیاده شده است، در جلسه برنامه ریزی یکی از برنامه نویس ها گفتند "یک مورد دیدم که عنوان پرداخت مستمر رو زده بود، پرداختی ماهانه برای مامان، شما تصور کنید یک پسر داره ماهانه یک مبلغی برای مادرش واریز میکنه، حالا فکر کنید این از کار بیفته و پول به دست مادر نرسه، چه حالی می شوید...".

یکی از تفاوت های اصلی روش های چابک در این است که شما واسط تیم ها با بازار-مشتریان نشوید، اجازه بدهید تیم ها مشکلات مشتری ها را لمس کنند، اجازه بدهید اهمیت و تاثیر خروجی کارشان بر مشتری ها را ببینند.

https://blog.scrum.ir/2017/03/team-motivation
#پست_مجدد این پست تا به حال بیش از ۹۷۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
یکی از تکنیک‌هایی که در مدیریت پروژه‌های نرم‌افزاری برای مدیریت کارها استفاده می‌شود استفاده از مفهوم «کانبان» است. این روش که شرکت تویوتا از آن در سیستم تولید just-in-time خود استفاده می‌کند برای پروژه‌های نرم‌افزاری نیز سازگار شده‌است.
یکی از اهداف کانبان، شناسایی گلوگاه‌های کاری است تا بتوان به فرایندی بهینه‌تر برای تولید نرم‌افزار رسید.

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

https://kanbanblog.com/explained/

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

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

___
#پست_مجدد این پست تا به حال بیش از ۹۸۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.
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://t.iss.one/SoftwarePhilosophy/723

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

https://t.iss.one/SoftwarePhilosophy/724

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

https://t.iss.one/SoftwarePhilosophy/726

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

https://t.iss.one/SoftwarePhilosophy/727

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

https://t.iss.one/SoftwarePhilosophy/730

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

https://t.iss.one/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

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

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

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

https://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 را معرفی کرده‌است که معماری بسیار خوبی دارد و به راحتی می‌توان از آن استفاده کرد.

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

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

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

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

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

https://t.iss.one/SoftwarePhilosophy/735

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

https://t.iss.one/SoftwarePhilosophy/737

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

https://t.iss.one/SoftwarePhilosophy/739

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

https://t.iss.one/SoftwarePhilosophy/741

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

https://t.iss.one/SoftwarePhilosophy/743

ـــــــــــ
@SoftwarePhilosophy
#پست_مجدد این پست تا به حال بیش از ۱۳۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.