مفهوم Tuple Deconstrution مفهومی است که قرار است به نسخه ۷.۰ زبان C# اضافه شود. این مفهوم کار با Tuple ها را بسیار راحتتر میکند. با ظهور این قابلیت امکان نوشتن کد زیر به وجود خواهد آمد:
var (x, y) = point;
Console.WriteLine($"Coordinates: ({x}, {y})");
در این روش در یک خط، هر دو متغییر x و y مقدار گرفتهاند و قابل استفاده هستند.
این ویژگی در Visual Studio 15 Preview 4 پیادهسازی شده و میتواند آن را آزمایش کرد.
لینک زیر مثالهای جالبی از کاربرد این مفهوم ارائه کردهاست.
http://www.thomaslevesque.com/2016/08/23/tuple-deconstruction-in-c-7/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
var (x, y) = point;
Console.WriteLine($"Coordinates: ({x}, {y})");
در این روش در یک خط، هر دو متغییر x و y مقدار گرفتهاند و قابل استفاده هستند.
این ویژگی در Visual Studio 15 Preview 4 پیادهسازی شده و میتواند آن را آزمایش کرد.
لینک زیر مثالهای جالبی از کاربرد این مفهوم ارائه کردهاست.
http://www.thomaslevesque.com/2016/08/23/tuple-deconstruction-in-c-7/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
Thomaslevesque
Tuple deconstruction in C# 7
Last time on this blog I talked about the new tuple feature of C# 7. In Visual Studio 15 Preview 3, the feature wasn’t quite finished; it lacked 2 important aspects:
emitting metadata for the names of tuple elements, so that the names are preserved across…
emitting metadata for the names of tuple elements, so that the names are preserved across…
#پست_مجدد این پست تا به حال بیش از ۱۴۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
ویژگی float در CSS یکی از ویژگیهایی است که نکات ریز خیلی زیادی دارد. به همین دلیل استفاده از آن معمولا در ابتدا خیلی ساده به نظر میرسد، ولی بعد از اینکه مدل صفحه پیچیدهتر شد و تعداد زیادی از دستورات شروع به تاثیرگذاری روی یکدیگر کردند دیگر مدیریت آن آسان نیست. پست زیر که به زبان فارسی هم هست توضیحات خیلی خوبی در مورد توصیف عملکرد این ویژگی دادهاست که برای تمام کسانی که با CSS کار میکنند مفید است.
http://css-tricks.ir/css_reference/float/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
http://css-tricks.ir/css_reference/float/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
آموزش حرفه ای و تخصصی CSS
float - آموزش حرفه ای و تخصصی CSS
توضیح کامل ویژگی float در سایت css-tricks.ir توسط مجتبی سیدی
Forwarded from Software Philosophy
اگر دوستانی دارید که نه تنها برنامه نویس هستند، بلکه اعتقاد دارید «مهندس نرمافزار» هم هستند، آنها را به کانال @SoftwarePhilosophy دعوت کنید.
این پیغام را برای آنها Forward کنید.
این پیغام را برای آنها Forward کنید.
#پست_مجدد این پست تا به حال بیش از ۱۵۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
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…