Software Philosophy – Telegram
Software Philosophy
3.45K subscribers
160 photos
41 videos
1.54K links
چکیده‌ای از مفاهیم به روز مهندسی نرم افزار برای مهندسین نرم‌افزار.
معماری نوین نرم‌افزار، تکنولوژی‌های برنامه نویسی جدید
Download Telegram
Forwarded from Software Philosophy
هشت نکته در زبان C# که احتمالا آنها را نمی‌دانید! دو نکته که برای من جالب بود:
۱. در Indexer ها می‌توان از params استفاده کرد و چندین پارامتر ورودی استفاده کرد.
۲. بر روی enum ها هم می‌توان Extension Method تعریف کرد.

https://damieng.com/blog/2012/10/29/8-things-you-probably-didnt-know-about-csharp

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

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


___
Forwarded from Iran .Net
چه تفاوتی بین مفاهیم Asynchronous و Multi Threading وجود دارد؟

تفاوت این دو مفهوم برای خیلی مشخص نیست، با آنکه به کلی متفاوت از هم می باشند.

مفهوم Asynchronous به ماهیت Non-Blocking یک متد یا فرایند اشاره می کند.
به طور ساده، می دانیم که در صورت صدا زدن یک متد، جریان برنامه متوقف می شود. پس از پایان یافتن متد، برنامه مجددا به مسیرِ اجرای خود ادامه خواهد داد. به این نوع از متد ها متدهای Blocking گفته می شود، بدین معنی که فرایند برنامه تا زمانِ اتمام این نوع از متد ها متوقف (بلاک) خواهد شد. اما در موردمتدهای Non-Blocking و یا Asynchronous قضیه فرق می کند و جریانِ اصلی برنامه پس از صدا زدن متد، معطل تمام شدن متد نخواهد ماند و به مسیر خود ادامه خواهد داد. این نوع از متدها معمولا در مورد امور I/O و مواردی که در حوزه سیستم عامل، دیسک و شبکه و پایگاه داده و ... می باشند، مورد استفاده قرار می گیرند.
از سوی دیگر مفهوم Multi Threading به این موضوع اشاره می کند که یک تکه از کد همزمان توسط چند Thread در حال اجرا می باشد. این نوع از اجرا بیشتر در مورد کد هایی استفاده می شوند که به اصطلاح CPU Bound بوده و دارای بار پردازشی زیادی می باشند. با تقسیم بار بین چند پردازنده سعی می کنیم، موجب سریع تر و بهینه تر شدن کد شویم.

http://blog.slaks.net/2014-12-23/parallelism-async-threading-explained/

@irandotnet
#پست_مجدد این پست تا به حال بیش از ۱۱۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
برای شما که علاقه دارید (عجله دارید!) تا امکانات C# 7.0 را همین الان امتحان کنید، قبل از اینکه نسخه‌ نهایی آن منتشر شود، لینک زیر توضیح می‌دهد که چطور می‌توانید در Visual Studio 2015 و یا Visual Studio '15' (نسخه بعدی) نسخه جدید زبان C# را امتحان کنید. با توجه به اینکه کامپایلر جدید این زبان (Roslyn) دیگر Open Source شده، شما می‌توانید حتی آخرین نسخه‌ موجود را امتحان کنید.

http://www.c-sharpcorner.com/article/how-to-compile-test-C-Sharp-7-features/

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

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



___
#پست_مجدد این پست تا به حال بیش از ۱۱۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
همیشه یکی از مراحل مهم در توسعه نرم‌افزار، مرحله Optimization است. در این مرحله معمولا کدها نوشته شده و حال نوبت رفع کندی‌هایی است که در برنامه وجود دارد. برای این کار باید ابتدا تشخیص دهید چه قسمت‌هایی از برنامه کند است، یا به طور دقیق‌تر چه متدهایی و یا دقیقا اجرای چه خط‌هایی باعث کند شدن برنامه شده‌است. به ابزارهایی که به شما کمک می‌کنند بتوانید نرم‌افزار خود را از این لحاظ بررسی کنید Performance Profiler می‌گویند. از نمونه ابزارهای قوی در این حوزه می‌توان به dotTrace و ANZ اشاره کرد. در خود Visual Studio نیز چنین ابزاری به نام Profiler وجود دارد که لینک زیر نحوه استفاده از آن را شرح داده‌است.

https://blogs.msdn.microsoft.com/visualstudioalm/2016/04/28/how-cpu-sampling-works/

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

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



___
#پست_مجدد این پست تا به حال بیش از ۱۲۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
از جمله تکنولوژی‌های جذابی که این روز‌ها به عنوان تکنولوژی‌های آینده وب مطرح هستند Angular 2، TypeScript و ASP.NET Core برای ساخت برنامه‌های Cross-Platform هستند. یکی از جذابیت‌های این تکولوژی‌ها این است که تمامی آنها کاملا از ابتدا نوشته شده‌اند و با توجه به این که نیازی به پشتیبانی از نسخه‌های قبل ندارند معماری کاملا نوینی و مدرنی دارند.
این لینک به صورت قدم به قدم آموزش داده است که همین الان چطور می‌توانید با این تکنولوژی‌ها برنامه تولید کنید. بنابراین با خواندن این پست و انجام مراحل شما یک محصول کامل خواهید نوشت.


https://chsakell.com/2016/01/01/cross-platform-single-page-applications-with-asp-net-5-angular-2-typenoscript/

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

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



___
بهترین راه برای تست کارایی یک نمونه‌ی اولیه واسط کاربری، مشاهده دقیق افرادیست که برای اولین بار از آن استفاده می‌کنند. با این کار می‌توان به راحتی متوجه شد که چه قسمت هایی گیج کننده است، چه قسمت هایی نامفهوم است یا کارایی مناسب را ندارد و از آن‌ها در جهت بهبود طراحی استفاده کرد.
برای انجام این کار با توجه به اینکه کاربر نهایی چه کسی است و چه اهدافی دارد، یک سناریو یا داستان نوشته می شود و کارهایی که شخص باید انجام دهد را مشخص می‌کند اما در آن به جای اینکه مشخصا از شخص خواسته شود که "کار X را انجام بده!"، یک سناریو طرح می‌شود که این فضا را به شخص بدهد که کار X را انجام دهد. برای مثال، یک سناریو می‌تواند این باشد: "شما در‌حال برنامه‌ریزی سفر به شهر اصفهان از تاریخ ۳ فروردین تا ۶ فروردین هستید و احتیاج دارید که بلیط هواپیمای خود را بخرید. برای انجام این کار به سایت هواپیمایی ماهان می روید.". و متوجه می‌شویم که کاربر آیکون خرید بلیط را خیلی سخت پیدا کرده است. این آزمایش به طراح نشان می‌دهد باید طراحی تجربه کاربری را تغییر دهد...
در مقاله ی زیر می توانید با این روش کاملتر آشنا شوید.

https://www.nngroup.com/articles/task-scenarios-usability-testing

#زهره_مرادی

لینکدین:
https://ir.linkedin.com/in/zohre-moradi

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

___
#پست_مجدد این پست تا به حال بیش از ۱۴۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
معماری نرم‌افزاری و سخت‌افزاری سایت StackOverflow در سایت ۲۰۱۶. در این پست Nick Craver یکی از برنامه‌نویسان سایت StackOverflow حجم بالای ترافیک این سایت را توصیف کرده و توضیح می‌دهد که در معماری نرم‌افزاری که برای نوشتن این سایت استفاده شده از چه تکنولوژی‌های استفاده شده‌است. از آنجایی که این سایت یکی از محصولات موفق با بار ترافیک بالا است، تکنولوژی‌های استفاده شده در این سایت همیشه برای برنامه‌نویسان جذاب بوده است.

http://nickcraver.com/blog/2016/02/17/stack-overflow-the-architecture-2016-edition/

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

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



___
مطمئنا برای خیلی از ما پیش آمده است که یک صحفه را طراحی کرده‌ایم و در browser مان همه چیز مرتب و به قاعده است، اما بعد از ریلیز روی سایت از دوستان و اطرافیانتان می شنویم که صفحه به هم ریخته و نامرتب بنظر می‌رسد.
نگذارید این اتفاق برای شما هم بیافتد. بعد از انجام کار زمان لازم را برای تست صفحه وب خود روی browserهای مختلف بگذارید.
اگر همه browserها را روی رایانه خود نصب ندارید، ابزارهای آنلاینی وجود دارد که می توانید با استفاده از آنها صفحه وب خود را در browserهای مختلف و ورژنهای مختلف آنها تست کنید. از جمله این سایتها:
• The Browser Sandbox
BrowserShots.org
CrossBrowserTesting.com
مقاله زیر به شرح این مشکل پرداخته و راه کارهایی را پیشنهاد کرده و مختصر توضیحی از سایت های ذکر شده ارائه کرده است.

http://www.digitalfamily.com/tutorials/test-your-website-in-differen-web-browsers/

#مریم_داودی

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

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


___
#پست_مجدد این پست تا به حال بیش از ۱۱۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
اگر می‌خواهید از Entity Framework Core روی SQLite استفاده کنید، لینک زیر محدودیت‌های EF Core را روی آنها توضیح داده‌است. البته بیشتر این محدودیت‌ها به دلیل پشتیبانی نکردن خود SQLite از این عملیات است. برای مثال شما می‌توانید برای رفع محدودیت‌های Migration در مورد این کارهای خاص از متد Sql(string) استفاده کنید.

http://ef.readthedocs.io/en/latest/providers/sqlite/limitations.html

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

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



___
محاسبات بدون سرور یا «Serverless Computing» مفهومی است که جذابیت‌های زیادی را در دنیا نرم‌افزار ایجاد کرده‌است. این مفهوم با تکنولوژی Azure Functions بسیار ملموس‌تر و عملی‌تر شده و دنیای Micro Service را با امکان جدیدی روبرو کرده‌است. شما کافیست Function مورد نظر خود را در بروزر به زبان C# یا JavaScript بنویسید و آن را در Azure هاست کنید. از این به بعد این تابع روی کلاد با Scalability بسیار بالا قابل دسترس است و هر چقدر بار استفاده از آن بالاتر رود به طور خودکار Scaling‌ انجام می‌شود.

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

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

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

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

___
#پست_مجدد این پست تا به حال بیش از ۱۲۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
پروژه Jil یک کتابخانه جذاب برای استفاده به عنوان JSON Serializer است. اگر تا به حال از کتابخانه‌هایی مانند NewtonSoft استفاده کرده‌اید و دغدغه Performance داشته‌اید این کتابخانه می‌تواند جایگزین مناسبی باشد. جالب است بدانید که کتابخانه‌ای است که برنامه‌نویسان سایت StackOverflow به دلیل Performance انتخاب کرده‌اند و در طراحی این سایت از آن استفاده کرده‌اند.

https://github.com/kevin-montrose/Jil

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

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



___
#پست_مجدد این پست تا به حال بیش از ۱۰۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
اگر در حال توسعه نرم‌افزار هستید و با مفهوم Source Control آشنایی ندارید، حتما یک جای کار خیلی مشکل دارد! امروزه مفاهیم و ابزارهای سورس کنترل انقدر زیاد و متداول شده‌اند که اگر به آن عادت کنید، دیگر حتی بدون آنها نمی‌توانید یک پروژه شخصی در خانه بنویسید.
لینک زیر که توسط تیم git (یکی از محبوب‌ترین ابزارهای سورس کنترل) نوشته شده‌است، مفاهیم پایه‌ای را توضیح می‌دهد.

https://www.atlassian.com/git/tutorials/what-is-version-control

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

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



___
با استفاده از دستور supports@ در CSS می‌توان پشتیبانی مرورگر را در مورد یک ویژگی بررسی کرد. یعنی آن ویژگی در مرورگر مورد نظر کار می‌کند یا خیر.
معمولا این کار توسط کتابخانه‌های جاوااسکریپت نظیر Modernizr انجام می‌شود اما این دستور این امکان را می دهد تا بتوان این آزمایش را در فایل CSS بدون نوشتن کد جاوااسکریپت انجام داد.
اگر علاقمند به استفاده از این ویژگی هستید، لینک زیر را بخوانید.

https://davidwalsh.name/css-supports

#مریم_داودی

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

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

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