Software Philosophy
3.45K subscribers
160 photos
41 videos
1.54K links
چکیده‌ای از مفاهیم به روز مهندسی نرم افزار برای مهندسین نرم‌افزار.
معماری نوین نرم‌افزار، تکنولوژی‌های برنامه نویسی جدید
Download Telegram
Forwarded from Software Philosophy
درک ساختار فایل web.config معمولا کمک زیادی به برنامه‌نویسان می‌کند. اغلب برنامه‌نویسان فقط با قسمت‌های خاصی از این فایل کار می‌کنند و نیازی به تغییر سایر قسمت‌ها ندارند. ولی با این حال، درک درست معماری این فایل کمک زیادی به نحوه تنظیم آن می‌کند. ساختار سلسله مراتبی این فایل و اینکه هر فایل web.config معمولا ویژگی‌هایی را از فایل‌های دیگر به ارث می‌برد معمولا مغفول واقع می‌شود. دانستن این نکته که می‌توان با ایجاد چند فایل web.config در فولدرها از ویژگی ارث‌بری آن استفاده کرد می‌تواند کمک زیادی به طراحی این فایل‌ها کند.

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

https://weblogs.asp.net/jongalloway/10-things-asp-net-developers-should-know-about-web-config-inheritance-and-overrides

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، بر روی لینک زیر کلیک کنید:

https://ow.ly/Ojts30aISN8

#مهران_داودی (https://ow.ly/GwIl309lFEm)

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


___
#پست_مجدد این پست تا به حال بیش از ۲۳۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد
Forwarded from Software Philosophy
تنظیم محیط برنامه‌نویسی Linux روی Windows 10 عنوان مقاله‌ای است که اسکات هانسلمن در بلاگش در مورد آن توضیح داده‌است. یکی از نکات جالب مورد اشاره او در این پست این جمله بود: «بعضی‌ها دوست دارند با ماوس و کلیک کار کنند، بعضی‌ها ترجیح می‌دهند با کیبورد و تایپ کردن کار کنند، اشکال ندارد برای همه جا هست!»
دو عادت کاملا متفاوت برنامه‌نویسان، محیط‌های کارمندی و محیط‌های گرافیکی است. در این مقاله نحوه استفاده از bash روی linux که روی windows 10 بالا آمده‌است توضیح داده شده.

با مطالعه این مقاله با امکانات زیادی که برای تیپ برنامه‌نویسان کیبوردی طراحی شده آشنا می‌شوید.

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

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، بر روی لینک زیر کلیک کنید:

https://ow.ly/FD3X30b4Kyd

#مهران_داودی (https://ow.ly/GwIl309lFEm)

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


___
#پست_مجدد این پست تا به حال بیش از ۳۵۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد
Forwarded from Software Philosophy
استفاده از امکانات Azure و TFS برای تیم‌های برنامه‌نویسی بسیار جذاب است. بسیاری از مشکلاتی که در تیم‌های نرم‌افزاری پیش می‌آید به علت نبود فرایند‌های درست و ابزارهای مناسب است. یکی از دغدغه‌های تیم‌های برنامه‌نویسی، نحوه تعامل و همکاری اعضای تیم در ساخت نیازمندی‌های نرم‌افزار به صورت با کیفیت است. نیازها باید طوری شفاف تعریف شوند که قابل تست باشند. اصولا اگر یک نیازمندی به اندازه‌ای واضح تعریف نشده که بتوان آن را تست کرد، احتمالا کد آن هم خیلی واضح به آن هدف نخواهد رسید!

در مقاله زیر تجربه استفاده از دو ابزار Team Foundation Server و یکپارچگی آن با سرویس‌های Azure در یک پروژه عملی شرح داده شده است. در این فرایند Feature‌ ها به عنوان زبان مشترک بین تیم فنی و بیزنس طراحی می‌شوند. سپس این Feature ها به Backlog Item ها شکسته می‌شوند. یک Backlog Item در حقیقت یک نیازمندی‌است است که آنقدری کوچک شده که بتوان آن را به تنهایی تست کرد. به طوری که اگر تست تمام Backlog Item های یک Feature پاس شود، به معنی قابل تحویل بودن آن به تیم بیزنس باشد. سپس Task ها مجموعه کارهایی (فنی و غیر فنی) است که باید انجام شود تا بتوان تست یک Backlog Item را پاس کرد.

در مقاله زیر به طور خلاصه توضیح داده شده‌است که چگونه Sprint ها انجام می‌شوند.

https://mehrandvd.me/2017/02/24/azure-experience-handling-requirements/

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، بر روی لینک زیر کلیک کنید:

https://ow.ly/3NGm30b5IjZ

#مهران_داودی (https://ow.ly/GwIl309lFEm)

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


___
ویژگی Window Function در SQL Server 2005 معرفی شد و در SQL Server 2012 ارتقا پیدا کرد و قابلیت framing نیز به آن اضافه شد. با به کار بردن Window Function می توان کوئری هایی به مراتب بهینه نوشت و با استفاده درست از framing نیز کوئری را بهینه‌تر کرد. لینک زیر Kathi Kellenberger به خوبی و با مثال‌هایی توضیح می‌دهد که Window Function ها چطور کار می‌کنند و در یک مثال فوق العاده نشان می‌دهد که چطور می‌توان با framing میزان logical reads را کم کرد. در این مثال مشاهده خواهید کرد که مقایسه کارایی نوشتن کوئری با تکنیک‌های متفاوت مانند
Window function with default frame, Correlated sub-query, Cursor solution و Window function with ROWS
چگونه خواهد بود و قطعا شگفت زده خواهید شد.

https://www.red-gate.com/simple-talk/sql/t-sql-programming/t-sql-window-functions-and-performance/

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، بر روی لینک زیر کلیک کنید:

https://ow.ly/hCOD30lzp2h

#محمد_محبتی (https://ow.ly/4ZMN30lzoxf)

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


___
#پست_مجدد این پست تا به حال بیش از ۲۳۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد
Forwarded from Software Philosophy
مفهوم Concurrent Programming و تفاوت آن با Parallel Programming همیشه یکی از مباحث چالش برانگیز برای برنامه نویسان بوده است. مفهوم اجرای همزمان یا Concurrent حتی قابل اجرا روی یک نخ یا یک cpu است. در حالی که اجرای موازی یا Parallel نیاز به چند نخ دارد. مقاله زیر به زیبایی و بسیار خلاصه این دو مدل برنامه‌نویسی را توضیح داده‌است. همچنین نحوه استفاده از امکانات .net core را برای پیاده‌سازی این مفاهیم را به همراه مثال‌هایی خوانا شرح داده‌است.

مفاهیم TPL, PLINQ, Async, Immutable Collection و مفاهیم دیگر در این مقاله با ذکر مثال‌هایی جالب شرح داده شده‌اند.

https://www.dotnetcurry.com/dotnet/1360/concurrent-programming-dotnet-core

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، بر روی لینک زیر کلیک کنید:

https://ow.ly/xoWQ30bbJFn

#مهران_داودی (https://ow.ly/GwIl309lFEm)

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


___
#پست_مجدد این پست تا به حال بیش از ۳۹۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد
Forwarded from Software Philosophy
حذف حجم زیادی از سطرها از دیتابیس با اجرای دستور DELETE می‌تواند بسیار پر هزینه و زمان‌بر باشد. برای بهبود عملکرد و سرعت عملیات حذف باید Foreign Key ها، Index ها را هم بررسی کرد. ولی پس از بررسی و بهبود توسط این عوامل، راه بعدی استفاده از Delete Chunks است. شکستن DELETE های بزرگ به تکه‌های کوچک‌تر می‌تواند کمک زیادی به بهبود سرعت کند.

مقاله زیر ضمن آموزش این روش، نتایج اجرای این روش را با روش‌های دیگر مقایسه کرده‌است.


https://sqlperformance.com/2013/03/io-subsystem/chunk-deletes

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، بر روی لینک زیر کلیک کنید:

https://ow.ly/CcQz30bhNiQ


#مهران_داودی (https://ow.ly/GwIl309lFEm)

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


___
#پست_مجدد این پست تا به حال بیش از ۲۲۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد
Forwarded from Software Philosophy
رعایت Coding Style در هنگام برنامه‌نویسی، تاثیر زیادی در کیفیت کد تولید شده می‌گذارد. اغلب برای زبان‌هایی مانند C#, Java و یا JavaScript قوانین زیادی برای استایل وجود دارد. این قوانین کمتر در مورد زبان‌هایی مانند SQL رایج است در حالی که رعایت آنها در چنین زبان‌هایی بسیار مهم است. مقاله جالب زیر یک سری از اصول Coding Style در زبان SQL را شرح داده‌است. خلاصه نکات این مقاله عبارتند از:
• Formatting SQL Code
• Functional Misuse
• Variables and Parameters
• Wonderful world of collations

https://www.simple-talk.com/sql/t-sql-programming/basics-good-t-sql-coding-style/

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، بر روی لینک زیر کلیک کنید:

https://ow.ly/XSIA30c5GS3


#مهران_داودی (https://ow.ly/GwIl309lFEm)

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


___
#پست_مجدد این پست تا به حال بیش از ۲۲۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد
Forwarded from Software Philosophy
مقایسه کد دو اسمبلی ساخته کاری است که در هنگام بررسی نسخه‌های مختلف یک dll بسیار پیش می‌آید. با ابزارهایی مانند Reflector یا dotPeek می‌توان محتوای یک اسمبلی را مشاهده کرد ولی مقایسه دو نسخه مختلف یک اسمبلی با این ابزارها بسیار سخت است. ابزار JustAssembly یک ابزار رایگان و اوپن‌سورس است که اخیرا توسط تیم Telerik توسعه داده شده و به خوبی به برنامه نویسان این امکان را می‌دهد که نسخه‌های مختلف یک اسمبلی را با یکدیگر مقایسه کنند.

https://developer.telerik.com/topics/net/introducing-justassembly-lightweight-net-assembly-diff-tool/

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، بر روی لینک زیر کلیک کنید:

https://ow.ly/Mezs30c7VfS


#مهران_داودی (https://ow.ly/GwIl309lFEm)

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


___
Forwarded from عکس نگار
رویداد آموزشی دات نت تاک با موضوع Testing

لینک ثبت نام:
https://evnd.co/uJy0e
زمان : پنج شنبه 15شهریور، ساعت 17:00 تا 20:00
مکان : تهران ،چهار راه ولیعصر، کوچه بالاور، برج فناوری امیرکبیر، طبقه اول

دات نت تاک (گفتگویی از جنس دات نت) :
رویداد DotNetTalk دات نت تاک فرصتی است که در آن ضمن آشنایی با یکدیگر و شبکه سازی، به بحث تبادل نظر و یادگیری درباره موضوعات مختلف برنامه نویسی می پردازیم.

موضوع این جلسه : Testing

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

توی این جلسه به موارد زیر میپردازیم :
- چرا باید تست بنویسیم
- چرا تمایلی به تست نویسی نداریم؟!
- باید ها و نباید های طراحی و نوشتن تست
- چطور علمی و اصولی تست بسازیم؟
- کار با فریمورک های محبوب تست خودکار
- کجا ها از mocking؟ و چگونه؟
- سایر ابزارهای مطرح در نگهداری و سازماندهی خودکار تست ها

میزبان این جلسه : فینوا
حامیان رسانه ای : فینوا - اوکس تیم

از این که با حضوتون، بار علمی رویداد رو افزایش میدهید سپاس گذاریم

لینک ثبت نام:
https://evnd.co/uJy0e
#پست_مجدد این پست تا به حال بیش از ۹۳۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد
Forwarded from Software Philosophy
مفهوم FaaS یا Function as a Service اخیرا در معماری‌های Serverless بسیار محبوب شده‌اند. این مفهوم به برنامه‌نویسان اجازه می‌دهد تا منطق یک function را بدون وابستگی به سرور و یا تکنولوژی خاصی deploy کنند. برنامه‌نویس می‌تواند یک تابع را بدون وابستگی به هیچ‌چیزی روی بستر cloud بالا بیاورند. در حال حاضر AWS, Microsoft Azure و Google Cloud این امکان را برای برنامه‌نویسان فراهم کرده‌اند.

https://stackify.com/function-as-a-service-serverless-architecture/

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، بر روی لینک زیر کلیک کنید:

https://ow.ly/hYO930chI1x


#مهران_داودی (https://ow.ly/GwIl309lFEm)

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


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

https://www.simple-talk.com/dotnet/net-framework/high-performance-powershell-linq/

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، بر روی لینک زیر کلیک کنید:

https://ow.ly/bgOq30cm0iu


#مهران_داودی (https://ow.ly/GwIl309lFEm)

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


___
#پست_مجدد این پست تا به حال بیش از ۲۲۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد
Forwarded from Software Philosophy
مدیریت خطا یا Exception Handling صحیح یکی از نکات مهم در کدهای با کیفیت است. در یک کد با کیفیت باید به خطاها فکر کرد و برای آنها در هنگام توسعه تصمیم گرفت. اینکه کجا یک exception را catch کنید و کجا به آن اجازه دهید به لایه‌های بالاتر رود، اینکه چگونه exception‌ ها را در هم wrap کنید و موارد بسیار دیگر مستقیما روی کیفیت کد شما تاثیر می‌گذارد.
مقاله زیر در مورد نحوه انجام این کار در Large .NET Projects را شرح داده‌است و مطالعه آن می‌تواند کمک زیادی به بالا رفتن کد برنامه نویسان کند.

https://www.dotnetcurry.com/patterns-practices/1364/error-handling-dotnet-projects

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، بر روی لینک زیر کلیک کنید:

https://ow.ly/SWJZ30cAalk


#مهران_داودی (https://ow.ly/GwIl309lFEm)

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


___