Forwarded from Software Philosophy
اگر دوستانی دارید که نه تنها برنامه نویس هستند، بلکه اعتقاد دارید «مهندس نرمافزار» هم هستند، آنها را به کانال @SoftwarePhilosophy دعوت کنید.
این پیغام را برای آنها Forward کنید.
این پیغام را برای آنها Forward کنید.
فریمورک Aurelia یکی از فریمورکهای خوشساخت برنامههای وب نسل جدید است. این فریمورک که در حقیقت معادل و رقیب Angular 2 است معمولا به معماری خوب و Syntax بهتر از رقیب خود شناخته میشود. مدتی است که در مقایسه فریمورکهای جاوا اسکریپتی یکی از نکاتی که بسیار مورد توجه قرار میگیرد یکپارچگی آنها با TypeScript است. از این نظر نیز Aurelia بسیار خوب عمل کرده است و نه تنها کاملا با تایپ اسکریپت سازگار است، بلکه تمامی مستندات آن برای این زبان نیز وجود دارد و اصولا یکی از روشهای اصلی توسعه سیستم در آن استفاده از زبان TypeScript است.
مقاله زیر که توسط Mike Graham نوشته شده، توضیح میدهد که چگونه با این دو تکنولوژی میتوان شروع به توسعه نرمافزار کرد.
https://blog.durandal.io/2015/05/06/getting-started-with-aurelia-and-typescript
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
مقاله زیر که توسط Mike Graham نوشته شده، توضیح میدهد که چگونه با این دو تکنولوژی میتوان شروع به توسعه نرمافزار کرد.
https://blog.durandal.io/2015/05/06/getting-started-with-aurelia-and-typescript
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
Aurelia
Getting Started with Aurelia and TypeScript
Today, Core Aurelia Team member, Mike Graham, teaches us about combining Aurelia and TypeScript. About The Author Mike Graham (@cmichaelgraham) is a software architect with 25 years of experience designing and building extensible visualization platforms and…
معماری حافظه در .Net یکی از مفاهیم مهمی است که هنگام کار، مخصوصا هنگام نوشتن برنامههایی که از Parallel Programming استفاده میکنند بسیار اهمیت دارد. کلمه کلیدی volatile دستوری در زبان C# است معمولا کمتر شناخته شدهاست، ولی در خیلی از شرایط موازی، عدم استفاده از آن باعث ایجاد خطاهای عجیب میشود. مقاله زیر از Igor Ostrovsky (یکی از برنامه نویسان تیم ابزارسازی داتنت) در مورد مدل معماری حافظه در .Net صبحت کرده است. در این مقاله در مورد مفاهیمی مانند Lazy Initialization که بسیار پر کاربرد هستند نیز صحبت کرده است.
https://msdn.microsoft.com/en-us/magazine/jj863136.aspx
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
https://msdn.microsoft.com/en-us/magazine/jj863136.aspx
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
نوشتن یک رزومه خوب برای پستهای برنامهنویسی و یا UI/UX بسیار مهم است. رزومه باید بتواند قابلیتهای شما را در یک تعامل ذهنی به خواننده منتقل کند. شما باید بتوانید در رزومه خود، یک خط پنهان طراحی کنید تا کسی که رزومه شما را میخواند ناخودآگاه به ترتیبی که شما میخواهید رزومه شما را ببیند. به عبارت دیگر، اگر برای پست UI/UX رزومه مینویسید باید در آن اصول UI/UX را رعایت کنید.
نمونه جالب زیر، رزومه یک طراح است که به صورت یک شبه بازی رزومه خود را طراحی کردهاست و روند آن طوری است که شما را مشتاق نگه میدارد که تا آخر رزومه را مطالعه کنید.
https://www.rleonardi.com/interactive-resume
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
نمونه جالب زیر، رزومه یک طراح است که به صورت یک شبه بازی رزومه خود را طراحی کردهاست و روند آن طوری است که شما را مشتاق نگه میدارد که تا آخر رزومه را مطالعه کنید.
https://www.rleonardi.com/interactive-resume
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
#پست_مجدد این پست تا به حال بیش از ۲۵۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
ما به عنوان مهندسین نرمافزار عادت کردیم که نرمافزار بسازیم، در حقیقت به آن معتاد شدهایم. به خاطر همین موضو است که اغلب دوست نداریم به این فکر کنیم که تغییری که در نرمافزار میدهیم چطور باید در نسخه لایو اجرایی شود. خیلی وقتها نرمافزار را به صورت بسیار عالی تغییر میدهیم، ولی برنامهای برای اینکه این تغییر چطور باید در نسخهاجرایی اعمال شود نداریم.
یکی از دغدغه اصلی یک مهندس نرمافزار خوب، تمرکز بر Software Migration است. هر قطعه کدی که توسط یک مهندس نرمافزار نوشته میشود باید با دید یک Change دیده شود که باید روی نسخه لایو اعمال شود، نه صرفا یک کد جدید که Create شدهاست.
https://mehrandvd.me/2015/09/06/be-a-developer-not-a-programmer/
@SoftwarePhilosophy
___
یکی از دغدغه اصلی یک مهندس نرمافزار خوب، تمرکز بر Software Migration است. هر قطعه کدی که توسط یک مهندس نرمافزار نوشته میشود باید با دید یک Change دیده شود که باید روی نسخه لایو اعمال شود، نه صرفا یک کد جدید که Create شدهاست.
https://mehrandvd.me/2015/09/06/be-a-developer-not-a-programmer/
@SoftwarePhilosophy
___
مفهوم Technical Debt یا «بدهی فنی» مفهومی است که اخیرا زیاد از آن در پروژههای نرمافزاری استفاده میشود. وقتی شما کدی مینویسید که کار میکند ولی نیاز به بازنویسی و Refactoring دارد و فعلا آن را کامیت میکنید، کار خود را انجام دادهاید و تسک شما تمام شدهاست. ولی در حقیقت یک بدهی به نام شما به سیستم به وجود آمده است و باید در وقت مناسب بدهی خود را صاف کنید! شما باید در اولین فرصتی که میتوانید با انجام بازنویسی و Refactoring بدهی خود را به سیستم بپردازید. همچنین، همیشه باید حواستان باشد که بدهیهایتان به اندازهای زیاد نشود که از پس آن بر نیایید.
پست زیر روشی را در TFS ارائه داده است که بتوانید مفهوم Technical Debt و چرخه کاری آن را در فرایند توسعه نرمافزار خود بگنجانید.
https://www.c-sharpcorner.com/article/managing-technical-debt-using-vsts
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
پست زیر روشی را در TFS ارائه داده است که بتوانید مفهوم Technical Debt و چرخه کاری آن را در فرایند توسعه نرمافزار خود بگنجانید.
https://www.c-sharpcorner.com/article/managing-technical-debt-using-vsts
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
C-Sharpcorner
Managing Technical Debt Using VSTS
In this article, you will learn all about Technical Debt and how to manage it using VSTS.
#پست_مجدد این پست تا به حال بیش از ۳۱۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
اتفاقی که باید در وب میافتاد بالاخره افتاد! گوگل، مایکروسافت و موزیلا در یک تیم مشترک تصمیم گرفتهاند تا بر روی یک باینری فرمت جدید برای وب کار کنند. این فرمت WebAssembly نام داره و تکنولوژی آن بر بستر C++ سوار شده همچنین گفته شده سرعت Decode در آن ۲۳ برابر سریعتر است.
https://techcrunch.com/2015/06/17/google-microsoft-mozilla-and-others-team-up-to-launch-webassembly-a-new-binary-format-for-the-web/
@SoftwarePhilosophy
___
https://techcrunch.com/2015/06/17/google-microsoft-mozilla-and-others-team-up-to-launch-webassembly-a-new-binary-format-for-the-web/
@SoftwarePhilosophy
___
TechCrunch
Google, Microsoft, Mozilla And Others Team Up To Launch WebAssembly, A New Binary Format For The Web
Google, Microsoft, Mozilla and some of the engineers on the WebKit project today announced that they have teamed up to launch WebAssembly, a new binary format for compiling applications for the web.
زبان C++ کماکان یکی از قویترین زبانهایی است که تا به امروز ساخته شده است. خالق این زبان Bjarne Stroustrup اخیرا یک پیشنویس ارائه داده است که در آن در مورد اهداف نسخه بعدی یعنی C++ 17 صبحت کردهاست. مهمترین اهداف طراحی در این نسخه عبارتند از:
• بهبود پشتیبانی از large-scale dependable software
• بهرهمند شدن از ماژولهای سطح بالاتر برای concurrency
• ساده سازی هسته زبان
لینک زیر مصاحبهای است که با Stroustrup در مورد این پیشنویس انجام شده است.
https://www.infoq.com/news/2015/04/stroustrup-cpp17-interview
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
• بهبود پشتیبانی از large-scale dependable software
• بهرهمند شدن از ماژولهای سطح بالاتر برای concurrency
• ساده سازی هسته زبان
لینک زیر مصاحبهای است که با Stroustrup در مورد این پیشنویس انجام شده است.
https://www.infoq.com/news/2015/04/stroustrup-cpp17-interview
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
InfoQ
Stroustrup: Thoughts on C++17 - An Interview
Bjarne Stroustrup, designer and original implementor of C++, has recently circulated a draft aimed at “stimulating a discussion” about C++17 design goals and possible new features,. such as modules, concepts, and ranges. InfoQ has taken the opportunity to…
Forwarded from Software Philosophy
اگر دوستانی دارید که نه تنها برنامه نویس هستند، بلکه اعتقاد دارند «مهندس نرمافزار» هم هستند، آنها را به کانال @SoftwarePhilosophy دعوت کنید و این پیغام را برای آنها Forward کنید.
پیاده سازی Multi-Tenant Application و مدیریت دادههای مشتریان مختلف در یک بانک اطلاعاتی، پیچیدگیهای فراوانی دارد. در نسخه SQL Server 2016 امکانی به نام RLS (Row-Level Security) اضافه شده که این موضوع را بسیار سادهتر کرده است. لینک زیر توضیح میدهد که چگونه با استفاده از این امکان میتوان امنیت دادهها را در سطح رکورد فراهم کرد. با استفاده از این قابلیت میتوان برنامههایی برای چندین مشتری که اطلاعات آنها در یک بانک اطلاعاتی نگهداری می شوند، تولید کرد.
https://www.mssqltips.com/sqlservertip/4004/sql-server-2016-row-level-security-introduction
#محمدمحبتی
لینکدین :
https://www.linkedin.com/in/mohabbati
کانال تلگرام:
@SoftwarePhilosophy
___
https://www.mssqltips.com/sqlservertip/4004/sql-server-2016-row-level-security-introduction
#محمدمحبتی
لینکدین :
https://www.linkedin.com/in/mohabbati
کانال تلگرام:
@SoftwarePhilosophy
___
Mssqltips
SQL Server 2016 Row Level Security Introduction
Learn how to use the new feature Row Level Security in SQL Server 2016.
فلسفه Spacive Design جایگزینی برای Responsive Design
چند سالی است که طراحی Responsive به عنوان یکی از مهمترین فلسفههای طراحی برنامههای جدید شناخته میشود. اگر به علت ظهور این مدل تفکر در طراحی فکر کنید ظهور دستگاههایی با اندازههای مختلف و با امکانات شبیه هم باعث خلق چنین تفکری شده، نوعی طراحی که بتوان کاربری مناسبی روی دستگاههای با اندازه مختلف داشته باشد.
بنابراین ظهور یک دستگاه میتواند باعث ایجاد فلسفههای جدید طراحی شود. در یک سال اخیر به نظر میرسد یک مدیای جدید در راه است. دستگاههایی که امکان ایجاد واقعیت مجازی دارند. شرکتهای بزرگی مانند گوگل، سونی و مایکروسافت در حال هدایت این بازار هستند. به نظر من ورود این دستگاهها به بازار باعث ایجاد فلسفههای جدیدی در طراحی میشود.
هنوز خیلی زود است که بتوان در مورد آینده طراحی UI/UX اظهار نظر کرد. ولی به نظر من یکی از آینده های محتمل برای طراحی UI/UX نسل آینده نرمافزارها طراحی «فضاگرا» است. طراحی فضاگرا نوعی طراحی نرمافزار است که به آن این امکان را میدهد تا قسمتهای مختلف خود را در فضای اطراف کاربر پخش کند. برای مثال فرض کنید هنگام کار با فیسبوک، تایملاین را روی دیوار روبروی خود ببینید و نوتیفیکیشنها رو روی ساعد خود ببینید. به این ترتیب نرمافزار فیسبوک توانسته در فضای اطراف شما مستقر شود.
https://mehrandvd.me/2016/07/12/hololens-spacive-design-new-era-uiux/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
چند سالی است که طراحی Responsive به عنوان یکی از مهمترین فلسفههای طراحی برنامههای جدید شناخته میشود. اگر به علت ظهور این مدل تفکر در طراحی فکر کنید ظهور دستگاههایی با اندازههای مختلف و با امکانات شبیه هم باعث خلق چنین تفکری شده، نوعی طراحی که بتوان کاربری مناسبی روی دستگاههای با اندازه مختلف داشته باشد.
بنابراین ظهور یک دستگاه میتواند باعث ایجاد فلسفههای جدید طراحی شود. در یک سال اخیر به نظر میرسد یک مدیای جدید در راه است. دستگاههایی که امکان ایجاد واقعیت مجازی دارند. شرکتهای بزرگی مانند گوگل، سونی و مایکروسافت در حال هدایت این بازار هستند. به نظر من ورود این دستگاهها به بازار باعث ایجاد فلسفههای جدیدی در طراحی میشود.
هنوز خیلی زود است که بتوان در مورد آینده طراحی UI/UX اظهار نظر کرد. ولی به نظر من یکی از آینده های محتمل برای طراحی UI/UX نسل آینده نرمافزارها طراحی «فضاگرا» است. طراحی فضاگرا نوعی طراحی نرمافزار است که به آن این امکان را میدهد تا قسمتهای مختلف خود را در فضای اطراف کاربر پخش کند. برای مثال فرض کنید هنگام کار با فیسبوک، تایملاین را روی دیوار روبروی خود ببینید و نوتیفیکیشنها رو روی ساعد خود ببینید. به این ترتیب نرمافزار فیسبوک توانسته در فضای اطراف شما مستقر شود.
https://mehrandvd.me/2016/07/12/hololens-spacive-design-new-era-uiux/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
مفهوم Tow way bindig یکی از مهمترین امکاناتی است که فریم ورک AngularJS در اختیار برنامهنویسان قرار میدهد. این امکان به این صورت است که با تغییر view model، scope model نیز تغییر میکند و بلعکس. کاری که این فریم ورک برای ایجاد ارتباط بین view و scope model انجام میدهد به این صورت است که زمانیکه scop model تغییر می کند، به صورت خودکار $scope.$apply() صدا زده می شود که متعاقب آن $rootScope.$digest() فراخوانی میشود. با فراخوانی این سرویس، سیکل digest روی $scopeRoot شروع به کار کرده و تمام سرویسهای $watch را اجرا می کند. سرویس $watch مقدار view Model را با scope model مقایسه و مقادیر جدید را جایگزین میکند.
مقاله زیر توضیحات کاملی درباره سرویس های $apply و $digest داده و چرخه وصل کردن view به scope را به طور کامل شرح داده است.
https://www.sitepoint.com/understanding-angulars-apply-digest
#مریم_داودی
لینکدین:
https://www.linkedin.com/in/maryam-davoudi-7913565a
کانال تلگرام:
@SoftwarePhilosophy
___
مقاله زیر توضیحات کاملی درباره سرویس های $apply و $digest داده و چرخه وصل کردن view به scope را به طور کامل شرح داده است.
https://www.sitepoint.com/understanding-angulars-apply-digest
#مریم_داودی
لینکدین:
https://www.linkedin.com/in/maryam-davoudi-7913565a
کانال تلگرام:
@SoftwarePhilosophy
___
Sitepoint
Understanding Angular's $apply() and $digest() - SitePoint
This article explores Angular's $apply() function and the $digest cycle. The reader will learn when $apply() must be called manually.
کپی کردن کامل یک object معمولا یا از طریق Serialization انجام میشود یا از طریق Reflection. همیشه Serialization محدودیتهای خاص خود را دارد. برای مثال در XmlSerialization ارجاعات حلقهای (Circular References) باعث مشکل میشوند. همچنین سرعت کپی از طریق سریالایزیشن نسبت به Reflection بسیار کمتر است. از طرفی سرعت کپی شدن از طریق Reflection هنوز نسبت به کپی دستی (manually copy functions) کمتر است.
مقاله جدید روش جدیدی را برای کپی اشیا از طریق Expression Trees در زبان C# ارائه دادهاست که هم قدرت Reflection را دارد و سرعت آن تقریبا برابر با روش «کپی دستی» است. خواندن این مقاله روشی که Expression Tree از آن استفاده میکند را بسیار خوب توضیح داده است و در مثالهای عملی قدرت این ساختار را نمایش داده است.
https://www.codeproject.com/Articles/1111658/Fast-Deep-Copy-of-Objects-by-Expression-Trees-Csha
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
مقاله جدید روش جدیدی را برای کپی اشیا از طریق Expression Trees در زبان C# ارائه دادهاست که هم قدرت Reflection را دارد و سرعت آن تقریبا برابر با روش «کپی دستی» است. خواندن این مقاله روشی که Expression Tree از آن استفاده میکند را بسیار خوب توضیح داده است و در مثالهای عملی قدرت این ساختار را نمایش داده است.
https://www.codeproject.com/Articles/1111658/Fast-Deep-Copy-of-Objects-by-Expression-Trees-Csha
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
Codeproject
Fast Deep Copy by Expression Trees (C#)
Deep cloning code made with Linq.Expressions. Tests and test classes are enclosed.
#پست_مجدد این پست تا به حال بیش از ۴۳۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
یک پروژه برای تحلیل جهان هستی!
در حال حاضر ۱۲ ترابایت اطلاعات در یک دیتابیس به نام SkyServer ذخیره شده است که اطلاعات وضعیت کهشکانها رو با جزئیات بالا نگه میداره و به روز میشه. این مقاله نشون میده که چطور اطلاعات کهکشانها در این دیتابیس ذخیره شده و معماری فیزیکی دیتابیسها و سختافزار آنها چطور طراحی شده.
https://blogs.technet.microsoft.com/dataplatforminsider/2016/03/10/mapping-the-universe-with-sql-server/
@SoftwarePhilosophy
___
در حال حاضر ۱۲ ترابایت اطلاعات در یک دیتابیس به نام SkyServer ذخیره شده است که اطلاعات وضعیت کهشکانها رو با جزئیات بالا نگه میداره و به روز میشه. این مقاله نشون میده که چطور اطلاعات کهکشانها در این دیتابیس ذخیره شده و معماری فیزیکی دیتابیسها و سختافزار آنها چطور طراحی شده.
https://blogs.technet.microsoft.com/dataplatforminsider/2016/03/10/mapping-the-universe-with-sql-server/
@SoftwarePhilosophy
___
Microsoft SQL Server Blog
Mapping the Universe with SQL Server - Microsoft SQL Server Blog
This blog post was co-authored by Joseph Sirosh, Corporate Vice President, and Rimma V. Nehme, Principal Software Engineer, at the Data Group at Microsoft. Figure 1: Visible objects of the Sloan Digital Sky Survey (SDSS) DR7 dataset. Over the last 15 years…
عبارت Transpiler این روزها در دنیای مدرن برنامهنویسی زیاد استفاده میشود. عمل Transpiling در حقیقت تبدیل یک کد از یک زبان به یک زبان هم سطح دیگر است.
این در حالی است که مفهوم Compiling یک مفهوم کلیتر است و به معنی تبدیل یک زبان به هر چیز دیگری (مثل یک زبان نزدیک به ماشین یا زبان همسطح) است. برای مثال عمل تبدیل یک کد TypeScript به JavaScript توسط یک Transpiler انجام میشود. زیرا این دو زبان از لحاظ سطح انتزاع شبیه هم هستند. ولی عمل تبدیل کد C# به IL یا تبدیل کد C++ به binary code و یا تبدیل Java به byte code یک کامپایل محسوب میشود. زیرا این تبدیل به یک زبان نزدیک به ماشین است.
در لینک زیر میتوانید این مفاهیم را با جزئیات بیشتری مطالعه کنید.
https://www.stevefenton.co.uk/2012/11/compiling-vs-transpiling
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
این در حالی است که مفهوم Compiling یک مفهوم کلیتر است و به معنی تبدیل یک زبان به هر چیز دیگری (مثل یک زبان نزدیک به ماشین یا زبان همسطح) است. برای مثال عمل تبدیل یک کد TypeScript به JavaScript توسط یک Transpiler انجام میشود. زیرا این دو زبان از لحاظ سطح انتزاع شبیه هم هستند. ولی عمل تبدیل کد C# به IL یا تبدیل کد C++ به binary code و یا تبدیل Java به byte code یک کامپایل محسوب میشود. زیرا این تبدیل به یک زبان نزدیک به ماشین است.
در لینک زیر میتوانید این مفاهیم را با جزئیات بیشتری مطالعه کنید.
https://www.stevefenton.co.uk/2012/11/compiling-vs-transpiling
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
Forwarded from Iran .Net
"به خومان اهمیت بدهیم"
کسانی که در حوزه توسعه نرم افزار کار می کنند عموما از سبک زندگی مناسبی برخوردار نیستند. فشار کاری زیاد، انتظارات بالای سایرین از ما، رقابت شدید، نیاز به یادگیری مداوم و به روز ماندن، ساعت ها خیره شدن به مانیتور و فعالیت فیزیکی بسیار پایین، عدم تعامل موثر با سایرین و ... از ویژگی های "حرفه" ماست. این ها در کنار مشکلات جدی تر زندگی مانند مسائل مالی، رابطه و دغدغه های زندگی بسیار سنگین تر هم خواهند شد.
اسکات هنسلمن در وبلاگ اش راهکار هایی را که خودش برای حل این مسائل به کار بسته را به اشتراک گذاشته است.
https://www.hanselman.com/blog/SelfcareMattersPayYourselfFirst.aspx
کسانی که در حوزه توسعه نرم افزار کار می کنند عموما از سبک زندگی مناسبی برخوردار نیستند. فشار کاری زیاد، انتظارات بالای سایرین از ما، رقابت شدید، نیاز به یادگیری مداوم و به روز ماندن، ساعت ها خیره شدن به مانیتور و فعالیت فیزیکی بسیار پایین، عدم تعامل موثر با سایرین و ... از ویژگی های "حرفه" ماست. این ها در کنار مشکلات جدی تر زندگی مانند مسائل مالی، رابطه و دغدغه های زندگی بسیار سنگین تر هم خواهند شد.
اسکات هنسلمن در وبلاگ اش راهکار هایی را که خودش برای حل این مسائل به کار بسته را به اشتراک گذاشته است.
https://www.hanselman.com/blog/SelfcareMattersPayYourselfFirst.aspx
Hanselman
Self-care matters: Pay yourself first
I was meeting with a mentee today and she was commenting how stressed out she ...
عملگرهای null-conditional یکی از جذابترین امکاناتی است که به C# 6.0 اضافه شدهاند. برای همه برنامهنویسان همیشه چک کردن مقدار null بسیار زمانگیر است و عموما خوانایی کد را نیز کم میکند. مخصوصا اگر قرار باشد برای عبارتی مانند
person.Children[2].FavoriteSinger.SendMessage("Hello")
بخواهید null بودن را چک کنید.
آیا person==null است؟ اگر نیست، آیا Children اصلا آیتم 2 دارد و null نیست، اگر نیست، خواننده محبوب دارد؟
برای بررسی درست و نوشتن یک کد Null Safe باید حداقل ۱۰ خط کد نوشته شود. اما با ویژگی جدیدی که در C# 6.0 اضافه شده میتوانید از کد یک خطی زیر استفاده کنید:
Person?.Children?[2]?.FavoriteSinger?.SendMessage("Hello")
برای آشنایی کامل با این قابلیت و حالتهای مختلفی که میتواند کدهای شما را سادهتر کند لینک زیر توضیحات خلاصه و جامعی دادهاست.
https://msdn.microsoft.com/en-us/library/dn986595.aspx
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
person.Children[2].FavoriteSinger.SendMessage("Hello")
بخواهید null بودن را چک کنید.
آیا person==null است؟ اگر نیست، آیا Children اصلا آیتم 2 دارد و null نیست، اگر نیست، خواننده محبوب دارد؟
برای بررسی درست و نوشتن یک کد Null Safe باید حداقل ۱۰ خط کد نوشته شود. اما با ویژگی جدیدی که در C# 6.0 اضافه شده میتوانید از کد یک خطی زیر استفاده کنید:
Person?.Children?[2]?.FavoriteSinger?.SendMessage("Hello")
برای آشنایی کامل با این قابلیت و حالتهای مختلفی که میتواند کدهای شما را سادهتر کند لینک زیر توضیحات خلاصه و جامعی دادهاست.
https://msdn.microsoft.com/en-us/library/dn986595.aspx
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
یکی از مهمترین قسمت های برنامه نویسی خطا یابی یا همان debugging است. در گذشته برای خطا یابی از دستور print() استفاده می شد که بسیار زمان بر و طاقت فرسا بود. امروزه ابزارهایی برای debug طراحی شده که با ساده کردن خطا یابی باعث سرعت بیشتر برنامه نویسی شده اند. آشنایی و استفاده از این ابزارها لذت برنامه نویسی را برای شما صد چندان می کند.
در Visual Studio هفت ابزار برای خطا یابی وجود دارد.
• DataTip
• Autos Window
• Local Window
• Watch Windows
• QuickWatch dialog
• Parallel Watch Windows
• Immediate Window
مقاله زیر به روشی مناسب این 7 ابزار را معرفی کرده و شرح داده است.
https://blogs.msdn.microsoft.com/visualstudioalm/2016/07/15/7-ways-to-look-at-the-values-of-variables-while-debugging-in-visual-studio
#مریم_داودی
لینکدین:
https://www.linkedin.com/in/maryam-davoudi-7913565a
کانال تلگرام:
@SoftwarePhilosophy
___
در Visual Studio هفت ابزار برای خطا یابی وجود دارد.
• DataTip
• Autos Window
• Local Window
• Watch Windows
• QuickWatch dialog
• Parallel Watch Windows
• Immediate Window
مقاله زیر به روشی مناسب این 7 ابزار را معرفی کرده و شرح داده است.
https://blogs.msdn.microsoft.com/visualstudioalm/2016/07/15/7-ways-to-look-at-the-values-of-variables-while-debugging-in-visual-studio
#مریم_داودی
لینکدین:
https://www.linkedin.com/in/maryam-davoudi-7913565a
کانال تلگرام:
@SoftwarePhilosophy
___
Microsoft
7 Ways to Look at the Values of Variables While Debugging in Visual Studio
Learn to use Visual Studio, Visual Studio Team Services, Application Insights and Team Foundation Server to decrease rework, increase transparency into your application and increase the rate at which you can ship high quality software throughout the application…