Forwarded from Software Philosophy
آیا واقعا الگوریتم ابزار مناسبی برای درک کاربر است!؟ الگوریتمها محدودیتهای زیادی دارند. آنها معمولا بر اساس «اطلاعات قبلی» ساخته شدهاند. الگوریتمها معمولا از اطلاعات محدودی استفاده میکنند، یعنی برای سادگی قسمتهایی از مساله حذف میشود تا حل آن سادهتر شود. ولی رفتار یک انسان حتی خیلی وقتها شبیه رفتار قبل خودش نیست و تغییر میکند. اصولا رفتار انسان یک ویژگی منطقی نیست، ولی الگوریتم سعی در مدل کردن منطقی رفتار کاربران دارد.
مقاله زیر توضیح میدهد چگونه الگوریتمها را «انسانوار» کنیم (Humanizing the Algorithms).
http://uxmag.com/articles/design-like-a-human-in-the-age-of-algorithms
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
مقاله زیر توضیح میدهد چگونه الگوریتمها را «انسانوار» کنیم (Humanizing the Algorithms).
http://uxmag.com/articles/design-like-a-human-in-the-age-of-algorithms
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
Uxmag
Design like a Human in the Age of Algorithms
Algorithms are based on past behaviors—what you liked, what you purchased, what you clicked.
#پست_مجدد این پست تا به حال بیش از ۱۱۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
مفهوم delegate در زبان C# چه مشکلی را حل میکند؟ این مفهوم مشابه همان مفهوم Function Pointer یا اشارهگر به تابع در زبانهایی مانند C++ است. در حقیقت delegate ها میتوانند یک تابع را در دل خود نگه دارند و به صورت امن به آن اشاره کنند. شما اجازه دارید آنها را با هر تابعی که با امضای تعریف شده در آنها تطابق دارد مقدار دهی کنید.
لینک زیر این مفهوم را با مثال توضیح میدهد.
http://www.c-sharpcorner.com/blogs/what-problem-does-delegates-solve-in-c-sharp
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
لینک زیر این مفهوم را با مثال توضیح میدهد.
http://www.c-sharpcorner.com/blogs/what-problem-does-delegates-solve-in-c-sharp
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
C-Sharpcorner
What Problem Does Delegates Solve in C#?
In this blog you will learn how to solve Delegates Problem in C#.
#پست_مجدد این پست تا به حال بیش از ۱۲۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
آیا شما هم از آن دسته از برنامه نویس/توسعه دهندگان هستید که ترجیح میدهند به تنهایی کار کنند. جواب هر چه باشد شکی در این نیست که هیچ پروژه بزرگی بدون وجود یک تیم خوب، به نتیجه نرسیده است.
انتخاب افراد مناسب بخشی از فرآیند تیم سازی است، اما قسمت مهم در هدایت یک تیم، به کارگیری هر فرد در جایگاه مناسب است. تعریف های مختلف و متنوعی از پارامتر های یک تیم موفق وجود دارد که یکی از جالب ترین این تعاریف مدلBelbin است. بلبین معتقد است در هر تیم موفق (گروهی که برای رسیدن به یک هدف مشترک فعالیت می کنند) مجموعه ای از نقش ها باید وجود داشته باشد.
لینک زیر این نقشها و خصوصیات هر یک را شرح می دهد. شما تا کنون کدامیک از این نقش ها را در گروه خود ایفا کرده اید؟
http://www.belbin.com/about/belbin-team-roles/
#مهدی_نظری
لینکدین
https://ir.linkedin.com/in/mohammad-mahdi-nazari-90097b58
توییتر
https://twitter.com/ShamehdiN
کانال تلگرام:
@SoftwarePhilosophy
___
انتخاب افراد مناسب بخشی از فرآیند تیم سازی است، اما قسمت مهم در هدایت یک تیم، به کارگیری هر فرد در جایگاه مناسب است. تعریف های مختلف و متنوعی از پارامتر های یک تیم موفق وجود دارد که یکی از جالب ترین این تعاریف مدلBelbin است. بلبین معتقد است در هر تیم موفق (گروهی که برای رسیدن به یک هدف مشترک فعالیت می کنند) مجموعه ای از نقش ها باید وجود داشته باشد.
لینک زیر این نقشها و خصوصیات هر یک را شرح می دهد. شما تا کنون کدامیک از این نقش ها را در گروه خود ایفا کرده اید؟
http://www.belbin.com/about/belbin-team-roles/
#مهدی_نظری
لینکدین
https://ir.linkedin.com/in/mohammad-mahdi-nazari-90097b58
توییتر
https://twitter.com/ShamehdiN
کانال تلگرام:
@SoftwarePhilosophy
___
Belbin
The Nine Belbin Team Roles
Using Belbin throughout your organisation will help individuals to fulfil their potential by identifying their key strengths, and enable the right people to be brought together to form high-performing teams.
Forwarded from Iran .Net
آشنایی با Parallel LINQ
یکی از قابلیت هایی که در نسخه 3.5 دات نت فریم ورک افزوده شد قابلیت LINQ بود که برای راحت تر و روان تر کردن کار با داده ها طراحی شده بود و کم و بیش همه با آن آشنا هستند.
یکی از قابلیت های کمتر شناخته شده دات نت فریم ورک PLINQ یا Parallel LINQ می باشد که با سادگی به ما کمک می کند، پردازش های ما به طور موازی و همزمان صورت بگیرد و سرعت و بهره وری کد مان افزایش پیدا کند. برای بهره گیری از PLINQ تغییر چندانی در کد لازم نیست بدهیم و راه ورود به قلمرو PLINQ و اجرای موازی پردازش ها تنها و تنها استفاده از متد AsParallel می باشد. صدا زدن متد AsParallel بر روی داده (IEnumerable) به طور خودکار زمینه اجرای LINQ را به PLINQ تغییر خواهد داد.
همیشه اجرای موازی موجب افزایش کارایی نخواهد شد و حتی می تواند نتیجه ای برعکس داشته باشد. موتور اجرای PLINQ می تواند تا حدودی شرایط را ارزیابی کند و در صورت نیاز کد را به صورت Sequential و غیر موازی اجرا کند.
همچنین موتور PLINQ به طور پیشفرض به تعداد هسته های پردازنده Thread ایجاد خواهد کرد و هر Thread را بر روی یک هسته اجرا خواهد کرد. شما می توانید با استفاده از متد WithDegreeOfParallelism مشخص کنید و دستور دهید که به جای تنظیمات پیشفرض چه تعداد Thread باید ایجاد شود.
1. آشنایی مقدماتی با PLINQ:
http://www.codeproject.com/Articles/156980/Parallelism-in-NET-PLINQ
2. آشنایی با حنبه های فنی تر PLINQ:
https://msdn.microsoft.com/en-us/library/dd997425(v=vs.110).aspx
3. مثال هایی عملی و مباحث پیشرفته تر در کتاب آنلاین Albahari:
http://www.albahari.com/threading/part5.aspx#_PLINQ
یکی از قابلیت هایی که در نسخه 3.5 دات نت فریم ورک افزوده شد قابلیت LINQ بود که برای راحت تر و روان تر کردن کار با داده ها طراحی شده بود و کم و بیش همه با آن آشنا هستند.
یکی از قابلیت های کمتر شناخته شده دات نت فریم ورک PLINQ یا Parallel LINQ می باشد که با سادگی به ما کمک می کند، پردازش های ما به طور موازی و همزمان صورت بگیرد و سرعت و بهره وری کد مان افزایش پیدا کند. برای بهره گیری از PLINQ تغییر چندانی در کد لازم نیست بدهیم و راه ورود به قلمرو PLINQ و اجرای موازی پردازش ها تنها و تنها استفاده از متد AsParallel می باشد. صدا زدن متد AsParallel بر روی داده (IEnumerable) به طور خودکار زمینه اجرای LINQ را به PLINQ تغییر خواهد داد.
همیشه اجرای موازی موجب افزایش کارایی نخواهد شد و حتی می تواند نتیجه ای برعکس داشته باشد. موتور اجرای PLINQ می تواند تا حدودی شرایط را ارزیابی کند و در صورت نیاز کد را به صورت Sequential و غیر موازی اجرا کند.
همچنین موتور PLINQ به طور پیشفرض به تعداد هسته های پردازنده Thread ایجاد خواهد کرد و هر Thread را بر روی یک هسته اجرا خواهد کرد. شما می توانید با استفاده از متد WithDegreeOfParallelism مشخص کنید و دستور دهید که به جای تنظیمات پیشفرض چه تعداد Thread باید ایجاد شود.
1. آشنایی مقدماتی با PLINQ:
http://www.codeproject.com/Articles/156980/Parallelism-in-NET-PLINQ
2. آشنایی با حنبه های فنی تر PLINQ:
https://msdn.microsoft.com/en-us/library/dd997425(v=vs.110).aspx
3. مثال هایی عملی و مباحث پیشرفته تر در کتاب آنلاین Albahari:
http://www.albahari.com/threading/part5.aspx#_PLINQ
CodeProject
Parallelism in .NET – PLINQ
#پست_مجدد این پست تا به حال بیش از ۱۳۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
تجربه کاربری یا UX یکی از مفاهیمی است که تاثیر زیادی در محبوب شدن یک محصول دارد. مفهوم DX یا Developer Experience نیز مفهوم جدیدی است که تجربه یک برنامهنویس هنگام استفاده از یک پلتفرم یا فریمورک را بررسی میکند. چرا یک پلتفرم یا فریمورک محبوب میشود و دیگری نه؟ این سوالی است که عوامل زیادی در پاسخ دادن به آن موثر هستند. اینکه یک برنامه نویس هنگام کار با آن پلتفرم چه تجربهای احساس میکند یکی از عوامل مهم موفقیت یک پلتفرم است. در مقاله زیر مفهوم جدیدی به نام Dotability معرفی شده که میتوان به وسیله آن کتابخانهها و فریمورکهای مختلف را از لحاظ DX بررسی کرد.
http://mehrandvd.me/2016/05/31/developer-experience-dotability/
http://mehrandvd.me/2016/05/31/developer-experience-dotability/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
http://mehrandvd.me/2016/05/31/developer-experience-dotability/
http://mehrandvd.me/2016/05/31/developer-experience-dotability/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
Dot Philosophy
Developer Experience: Dotability - Dot Philosophy
Again, this famous 'X', as in UX. It's all about experience. The good experience is the key that makes a product valuable. We are always talking about user experience, but here in this post, I am going to talk about developer experience. As a developer, you…
دیباگ کردن به سبک جغدها
حتما تا به حال برنامهنویسی را دیدهاید که ساعتها «مانند جغد» به مانیتور زل زده و حتی به به کیبورد و ماوس دست نمیزند، ولی ادعا میکند در حال دیباگ کردن (پیدا کردن خطا) برنامه است!
در حقیقت او در حال انجام نوع خاصی از دیباگ به نام Owlly Debugging یا دیباگ کردن به سبک جغدها است.
حقیقت این است که زبانهای برنامهنویسی، تکنولوژیها و پلتفرمهایی وجود دارند که به شما امکانات زیادی برای دیباگ کردن نمیدهند و برنامه نویس برای پیدا کردن خطا چارهای به جز خواندن و حدس خطا ندارد. زبانهای Declarative مانند SQL، تکنیکهایی مانند AOP و مفاهیمی مانند MVVM همگی از این نوع هستند.
http://mehrandvd.me/2016/08/30/owlly-debugging-debugging-like-owl/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
حتما تا به حال برنامهنویسی را دیدهاید که ساعتها «مانند جغد» به مانیتور زل زده و حتی به به کیبورد و ماوس دست نمیزند، ولی ادعا میکند در حال دیباگ کردن (پیدا کردن خطا) برنامه است!
در حقیقت او در حال انجام نوع خاصی از دیباگ به نام Owlly Debugging یا دیباگ کردن به سبک جغدها است.
حقیقت این است که زبانهای برنامهنویسی، تکنولوژیها و پلتفرمهایی وجود دارند که به شما امکانات زیادی برای دیباگ کردن نمیدهند و برنامه نویس برای پیدا کردن خطا چارهای به جز خواندن و حدس خطا ندارد. زبانهای Declarative مانند SQL، تکنیکهایی مانند AOP و مفاهیمی مانند MVVM همگی از این نوع هستند.
http://mehrandvd.me/2016/08/30/owlly-debugging-debugging-like-owl/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
Dot Philosophy
Owlly Debugging: Debugging Like an Owl - Dot Philosophy
Have you ever seen a developer, staring thoughtfully at the monitor for a long moment, not even touching the keyboard and mouse, and still claims that he is debugging some piece of code! It is true, there is some kind of code that could not be debugged line…
Forwarded from Software Philosophy
اگر دوستانی دارید که نه تنها برنامه نویس هستند، بلکه اعتقاد دارند «مهندس نرمافزار» هم هستند، آنها را به کانال @SoftwarePhilosophy دعوت کنید و این پیغام را برای آنها Forward کنید.
#پست_مجدد این پست تا به حال بیش از ۱۰۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
پروژه اوپن-سورس شدن محصولات مایکروسافت از سال ۲۰۱۴ شروع شدهاست. پروژههای مهمی مانند .Net Framework، .Net Core، کامپایلر C# و بسیاری دیگر در GitHub توسعه داده میشوند. یکی از چیزهای جذابی که در این میان بسیار آموزنده است، مستنداتی است که در این پروژهها اوپن-سورس شده. مستنداتی مانند «جلسات طراحی»، «Code Review» از این قبیل هستند. مطالعه این مستندات از این جهت جالب است که مثلا میتوانید بفهمید چرا در زبان C# تصمیم گرفتهشده است قابلیت X اینطوری باشد و در جلسات چه گذشته. همچنین برای مثال میتوانید ببینید که جلساتی که برای طراحی C# 7.0 برگزار میشود چگونه پیش میرود و کدام فیچرها در چه وضعیتی قرار دارند.
لینک زیر در مورد پروژههای اوپن-سورس مایکروسافت صحبت کرده و لینکهای خوبی به مستندات طراحی آنها معرفی کرده است.
http://www.c-sharpcorner.com/article/a-deeper-look-into-open-source-net-development
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
لینک زیر در مورد پروژههای اوپن-سورس مایکروسافت صحبت کرده و لینکهای خوبی به مستندات طراحی آنها معرفی کرده است.
http://www.c-sharpcorner.com/article/a-deeper-look-into-open-source-net-development
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
C-Sharpcorner
A Deeper Look into Open Source .NET Development
In this article, we will look into Open Source .NET Development.
اگر از فریم ورک AngularJS استفاده میکنید، حتما این سوال برایتان پیش آمده که فرق service با factory در چیست؟ چه موقع باید از service استفاده کرد و چه موقع از factory؟ در بیشتر مقالات موجود که به مقایسه ی service و factory پرداخته شده است، بیشتر به شباهت های این دو API اشاره شده و کمتر تفاوت های آنها مطرح شده است.
بطور خلاصه، می توان گفت که هر دو API، singleton هستند و فقط یک instance از آنها زمان runtime ایجاد میشود.
Service در angular فقط یک متد مانند یک constructor function است که زمان runtime یک بار با new صدا زده می شود.
با اینکه Factory می تواند مانند یک Service عمل کند اما با این حال یک روش دیگر برای Service نیست بلکه می تواند بسیار قوی تر و منعطف تر از service عمل کند. در واقع factory یک design pattern است که در نهایت یک Object برمیگرداند.
مقاله زیر مقایسه کاملی بین این دو API ارائه کرده و چند مثال از انعطاف پذیری و قابلیت بیشتر Factory آورده است.
https://toddmotto.com/factory-versus-service
#مریم_داودی
لینکدین:
https://www.linkedin.com/in/maryam-davoudi-7913565a
کانال تلگرام:
@SoftwarePhilosophy
___
بطور خلاصه، می توان گفت که هر دو API، singleton هستند و فقط یک instance از آنها زمان runtime ایجاد میشود.
Service در angular فقط یک متد مانند یک constructor function است که زمان runtime یک بار با new صدا زده می شود.
با اینکه Factory می تواند مانند یک Service عمل کند اما با این حال یک روش دیگر برای Service نیست بلکه می تواند بسیار قوی تر و منعطف تر از service عمل کند. در واقع factory یک design pattern است که در نهایت یک Object برمیگرداند.
مقاله زیر مقایسه کاملی بین این دو API ارائه کرده و چند مثال از انعطاف پذیری و قابلیت بیشتر Factory آورده است.
https://toddmotto.com/factory-versus-service
#مریم_داودی
لینکدین:
https://www.linkedin.com/in/maryam-davoudi-7913565a
کانال تلگرام:
@SoftwarePhilosophy
___
Todd Motto
Angular .service() or .factory(), the actual answer
I was giving a workshop earlier this week, and as the workshop came to a close and people were leaving, an attendee asked if I could explain the difference b...
#پست_مجدد این پست تا به حال بیش از ۱۲۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
بالاخره jQuery 3.0 ریلیز شد. این نسخه از نسخه قبلی «سبکتر» و «سریعتر» است و Backward compatiblity نیز در آن در مد نظر قرار داده شده است. تمام workaround ها برای پشتیبانی نسخههای قدیمی IE حذف شده و تا حد امکان از امکانات جدید مرورگرهای پیشرفته استفاده شده. یکی از تغییرات مهم این نسخه تغییر jQuery.Differed برای سازگار شدن با استاندارد Promise/A+ است.
http://blog.jquery.com/2016/06/09/jquery-3-0-final-released
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
http://blog.jquery.com/2016/06/09/jquery-3-0-final-released
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
Jquery
jQuery 3.0 Final Released! | Official jQuery Blog
jQuery: The Write Less, Do More, JavaScript Library
Forwarded from Iran .Net
ارزیابی و مانیتورینگ کارکرد سیستم
یکی از تفاوت های فرهنگیِ توسعه نرم افزار به نسبت گذشته آن می باشد که ارزیابی و تست نرم افزار یک مسئولیت همگانی است و همه اعضای تیم نسبت به تولید با کیفیت مسئول هستند و دغدغه دارند. دیگر فرایند تست، فرایند مجزایی از توسعه نرم افزار نیست بلکه ارتباط تنگاتنگی با هم دارند. یکی از مواردی که برای ارزیابی تیم توسعه و محصولات آن ها بررسی می شود آن است که "آیا همه اعضای تیم نسبت به تست و صحت نرم افزار مسئول هستند؟"
یکی از ویژگی های توسعه دهندگان ارشد با تازه کار تر ها در این است که آن ها مشتاق به توسعه نرم افزار بی نقص هستند و در کتار این قادرند کارکرد نرم افزار ها را تحلیل کرده و نقاط ضعف و عوامل کندی و خرابی سیستم را شناسایی کنند.
هر سیستم در لایه ها و سطوح مختلفی می تواند دچار مشکل و آسیب باشد. ما باید آن ها را بشناسیم و بر ابزارهای لازم برای ارزیابی هر سطحی از سیستم مسلط و آشنا باشیم.
1. آیا زیرساخت (اجزا شبکه، سوییچ ها، روتر ها، فایروال ها، کارایی هارد دیسک و پردازنده و ....) سیستم را می توانید مانیتور کنید؟
2. آیا می توانید و خود را مسئول می دانید که با بهره گیری از Performance Profiler ها کارایی نرم افزار را ارزیابی کرده و گلوگاه ها را شناسایی کنید؟ مثلا با استفاده JetBrains dotTrace
3. آیا می توانید و خود را مسئول می دانید که میزان بهره گیری از حافظه را با استفاده از Memory Profiler ها ارزیابی کنید؟ مثلا با استفاده از JetBrains dotMemory
4. آیا برای ارزیابی مکانیک دقیق رسیدگی به هر رکوئست از Glimpse یا MiniProfiler استفاده می کنید؟
5. آیا با نحوه بررسی SQL Query Execution Plan ها آشنایی دارید؟ آیا می توانید کارایی SQL Server را با استفاده از SQL Profiler یا ابزارهای دیگر (Redgate Monitor) بررسی کنید؟
6. آیا سازمان به شما فرصت بهره گیری از این نرم افزار ها را می دهد و این ها را به الزام توسعه نرم افزار تبدیل کرده است؟
* آشنایی بیشتر با نرم افزارهای ارزیابی و مانیتورینگ سیستم ها:
https://www.infoq.com/articles/dotnet-performance-monitoring-optimization
یکی از تفاوت های فرهنگیِ توسعه نرم افزار به نسبت گذشته آن می باشد که ارزیابی و تست نرم افزار یک مسئولیت همگانی است و همه اعضای تیم نسبت به تولید با کیفیت مسئول هستند و دغدغه دارند. دیگر فرایند تست، فرایند مجزایی از توسعه نرم افزار نیست بلکه ارتباط تنگاتنگی با هم دارند. یکی از مواردی که برای ارزیابی تیم توسعه و محصولات آن ها بررسی می شود آن است که "آیا همه اعضای تیم نسبت به تست و صحت نرم افزار مسئول هستند؟"
یکی از ویژگی های توسعه دهندگان ارشد با تازه کار تر ها در این است که آن ها مشتاق به توسعه نرم افزار بی نقص هستند و در کتار این قادرند کارکرد نرم افزار ها را تحلیل کرده و نقاط ضعف و عوامل کندی و خرابی سیستم را شناسایی کنند.
هر سیستم در لایه ها و سطوح مختلفی می تواند دچار مشکل و آسیب باشد. ما باید آن ها را بشناسیم و بر ابزارهای لازم برای ارزیابی هر سطحی از سیستم مسلط و آشنا باشیم.
1. آیا زیرساخت (اجزا شبکه، سوییچ ها، روتر ها، فایروال ها، کارایی هارد دیسک و پردازنده و ....) سیستم را می توانید مانیتور کنید؟
2. آیا می توانید و خود را مسئول می دانید که با بهره گیری از Performance Profiler ها کارایی نرم افزار را ارزیابی کرده و گلوگاه ها را شناسایی کنید؟ مثلا با استفاده JetBrains dotTrace
3. آیا می توانید و خود را مسئول می دانید که میزان بهره گیری از حافظه را با استفاده از Memory Profiler ها ارزیابی کنید؟ مثلا با استفاده از JetBrains dotMemory
4. آیا برای ارزیابی مکانیک دقیق رسیدگی به هر رکوئست از Glimpse یا MiniProfiler استفاده می کنید؟
5. آیا با نحوه بررسی SQL Query Execution Plan ها آشنایی دارید؟ آیا می توانید کارایی SQL Server را با استفاده از SQL Profiler یا ابزارهای دیگر (Redgate Monitor) بررسی کنید؟
6. آیا سازمان به شما فرصت بهره گیری از این نرم افزار ها را می دهد و این ها را به الزام توسعه نرم افزار تبدیل کرده است؟
* آشنایی بیشتر با نرم افزارهای ارزیابی و مانیتورینگ سیستم ها:
https://www.infoq.com/articles/dotnet-performance-monitoring-optimization
InfoQ
Getting Started with ASP.Net Performance Monitoring and Optimization
“This web page is slow” is a common and regular complaint about web sites, especially since web applications started replacing desktop applications. While the web brings some desirable characteristics such as global delivery, it also brings its share of challenges…
خیلی وقت ها متدهایی نوشته می شود که تعداد زیادی پارامتر دارد ولی هنگام صدا زدن این متدها ممکن است لازم باشد چند پارامتر خاص آن پر شود و نه همه... اینجاست که مجبورید علاوه بر پارامترهای لازم، پارامترهای غیر لازم را نیز ذکر کرده و به ازای آنها مقدار null پاس دهید... البته اگر با امکانات معرفی شده در C# 4 آشنایی نداشته باشید.
از C# 4 به بعد می توانید از امکانات زیر استفاده کنید.
1. Optional Parameter: شما می توانید به یک پارامتر Default value بدهید و هنگام استفاده از متد در صورتی که نیاز به آن پارامتر ندارید، هیچ آرگومانی به ازای آن پارامتر ننوسید.
2. Nullable Parameter: شما می توانید با nullable کردن یک پارامتر، مقدار null را بعنوان default value به پارامتر اختصاص دهید.
3. Named Argument: شما می توانید هنگام اختصاص مقدار به پارامتر (مشخص کردن آرگومان)، نام پارامتر را نوشته و به این صورت نیازی به رعایت ترتیب پارامترها و ... نداشته باشید.
مقاله زیر توضیح کاملی از این امکانات به همراه مثالهای ساده ارائه کرده است.
http://codebetter.com/2011/01/11/c-in-depth-optional-parameters-and-named-arguments-2
#مریم_داودی
لینکدین:
https://www.linkedin.com/in/maryam-davoudi-7913565a
کانال تلگرام:
@SoftwarePhilosophy
___
از C# 4 به بعد می توانید از امکانات زیر استفاده کنید.
1. Optional Parameter: شما می توانید به یک پارامتر Default value بدهید و هنگام استفاده از متد در صورتی که نیاز به آن پارامتر ندارید، هیچ آرگومانی به ازای آن پارامتر ننوسید.
2. Nullable Parameter: شما می توانید با nullable کردن یک پارامتر، مقدار null را بعنوان default value به پارامتر اختصاص دهید.
3. Named Argument: شما می توانید هنگام اختصاص مقدار به پارامتر (مشخص کردن آرگومان)، نام پارامتر را نوشته و به این صورت نیازی به رعایت ترتیب پارامترها و ... نداشته باشید.
مقاله زیر توضیح کاملی از این امکانات به همراه مثالهای ساده ارائه کرده است.
http://codebetter.com/2011/01/11/c-in-depth-optional-parameters-and-named-arguments-2
#مریم_داودی
لینکدین:
https://www.linkedin.com/in/maryam-davoudi-7913565a
کانال تلگرام:
@SoftwarePhilosophy
___
Codebetter
C# In Depth – Optional Parameters and Named Arguments | CodeBetter.Com
#پست_مجدد این پست تا به حال بیش از ۱۱۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
امکانات مورد انتظار در C# 7.0
مقاله زیر به طور خیلی خلاصه و مفید، جذابترین امکاناتی را که قرار است به نسخه جدید سیشارپ اضافه شوند را توضیح میدهد. امکاناتی مانند Pattern Matching، Record Syntax، Tuple as return type و امکاناتی برای Null Safety در نسخه جدید این زبان، برنامهنویسی را بسیار شیرینتر و البته Robust تر میکند. همچنین در این مقاله توضیح داده شدهاست که چگونه Record ها میتوانند به پیادهسازی یک immutable class کمک کند.
http://www.dotnetcurry.com/csharp/1286/csharp-7-new-expected-features
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
مقاله زیر به طور خیلی خلاصه و مفید، جذابترین امکاناتی را که قرار است به نسخه جدید سیشارپ اضافه شوند را توضیح میدهد. امکاناتی مانند Pattern Matching، Record Syntax، Tuple as return type و امکاناتی برای Null Safety در نسخه جدید این زبان، برنامهنویسی را بسیار شیرینتر و البته Robust تر میکند. همچنین در این مقاله توضیح داده شدهاست که چگونه Record ها میتوانند به پیادهسازی یک immutable class کمک کند.
http://www.dotnetcurry.com/csharp/1286/csharp-7-new-expected-features
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
Dotnetcurry
C# 7 - What's New | DotNetCurry
C# 7 is the next version of C#. This article provides an overview of the new features in C# 7.0.
در زبان SQL، درک منطق اجرای یک کوئری برای خطایابی و نوشتن کد بهینه از اهمیت بالایی برخوردار است. شاید تاکنون برای شما هم پیش آمده است که در هنگام نوشتن یک کوئری، از اینکه کوئری بر خلاف انتظارتان عمل می کند دچار سردرگمی شده باشید. مثلا اینکه چرا با وجود اینکهalias ها را درSELECT Clause تعریف کرده اید، درWHERE Clause نمیتوانید از آنها استفاده کنید.
درSQL ، کوئری به ترتیبی که دستورات آن نوشته میشود اجرا نمیشود، بلکه به ترتیب زیر است:
۱) FROM clause
۲) WHERE clause
۳) GROUP BY clause
۴) HAVING clause
۵) SELECT clause
۶) ORDER BY clause
۷) TOP
در طراحی زبان SQL، مِلاکِ ترتیب اجرای دستورات کوئری، شبیه بودن به زبان انگلیسی بوده است. فرض کنید که به شما گفته میشود :"برو از قفسه سوم کتابخانه، کتاب قمارباز را بیاور!". در این مثال مهمترین بخش محل است، پس شما اول به کتابخانه میروید (FROM)، بعد قفسههای دیگر را فیلتر می کنید و نگاهتان در قفسه سوم به دنبال کتاب مورد نظر میگردد(WHERE) و تازه در این قسمت کتابی که میخواهید را بیرون میکشید(SELECT) و به شخصی که آن را درخواست کرده می دهید.
در مقاله زیر دربارهی Logical Query Processing بیشتر بخوانید.
http://sqlmag.com/sql-server/logical-query-processing-what-it-and-what-it-means-you
#زهره_مرادی
لینکدین:
https://ir.linkedin.com/in/zohre-moradi
کانال تلگرام:
@SoftwarePhilosophy
___
درSQL ، کوئری به ترتیبی که دستورات آن نوشته میشود اجرا نمیشود، بلکه به ترتیب زیر است:
۱) FROM clause
۲) WHERE clause
۳) GROUP BY clause
۴) HAVING clause
۵) SELECT clause
۶) ORDER BY clause
۷) TOP
در طراحی زبان SQL، مِلاکِ ترتیب اجرای دستورات کوئری، شبیه بودن به زبان انگلیسی بوده است. فرض کنید که به شما گفته میشود :"برو از قفسه سوم کتابخانه، کتاب قمارباز را بیاور!". در این مثال مهمترین بخش محل است، پس شما اول به کتابخانه میروید (FROM)، بعد قفسههای دیگر را فیلتر می کنید و نگاهتان در قفسه سوم به دنبال کتاب مورد نظر میگردد(WHERE) و تازه در این قسمت کتابی که میخواهید را بیرون میکشید(SELECT) و به شخصی که آن را درخواست کرده می دهید.
در مقاله زیر دربارهی Logical Query Processing بیشتر بخوانید.
http://sqlmag.com/sql-server/logical-query-processing-what-it-and-what-it-means-you
#زهره_مرادی
لینکدین:
https://ir.linkedin.com/in/zohre-moradi
کانال تلگرام:
@SoftwarePhilosophy
___
IT Pro
Logical Query Processing: What It Is And What It Means to You
There’s so much to say about logical query processing that a single article won’t be enough. This article is the first in a series, and here I’ll explain what the term means to me and provide an overview. In future articles I’ll delve into more details about…
#پست_مجدد این پست تا به حال بیش از ۱۱۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.