وبلاگ شخصی حامد شیربندی

حامد شیربندی

توسعه دهنده نرم افزار

آخرین مقالات و یادداشت های من

Continuous Dellivery - بخش اول : مفهوم

در مقاله های قبلی با مفهوم CI آشنا شدیم و با استفاده از امکانات داخلی TFS توانستیم یک فرآیند تعریف کنیم که بعد از هر بار تغییر روی سورس اجرا شده و در نهایت باعث یکپارچه سازی آن میشد. اما بعد از اینکه ما توانستیم نسخه های stable و یکپارچه ی سورس خود را مشخص کنیم توسط آنها چه ارزشی را میتوانیم به بیزنس خود اضافه کنیم؟ در ادامه و با بررسی این مسئله با CD یا همان Continuous Dellivery آشنا خواهیم شد.


ادامه مقاله

آیا من یک برنامه نویس هستم؟

چند روز پیش با دوست و همکار خوبم بهزاد علی محمد زاده در مورد مسیری که برای توسعه نرم افزار طی کرده بودیم گپ میزدیم و اشتباهاتی که در این راه مرتکب شده بودیم و تاثیرات ناشی از آن را بررسی میکردیم. چه مسیر سخت و پر پیچ و خمی بود و حالا که احساس میکنم نزدیک به میانه های راه هستم دیدم بد هم نیست تا برای جواب به این سوال بزرگ، خودم را مثال بزنم.

 آیا من یک برنامه نویس هستم ؟

ادامه مقاله

پیاده سازی Push Service از طریق SignalR Core

SignalR یک لایبری سورس باز ارائه شده توسط مایکروسافت است که امکان RealTime را به برنامه های وب اضافه می کند. به این صورت که در Server Side قادر هستیم پیامهایی را به کلاینت ها  به اصطلاح Push کنیم و این کلاینت میتواند یک وب سایت یا یک اپ موبایل و ... باشد.
این لایبری کاربردی و محبوب روی پروژه ی دات نت Core هم منتقل شده و میتوان در پروژه های مبتنی بر دات نت Core نیز از آن استفاده کرده و امکاناتی مثل ارسال Push Notification، پشتیبانی از بازی های چند کاربره، پیاده سازی سرویس های چت و پشتیبانی آنلاین، ارتباط با دیوایس ها در اینترنت اشیاء ، پیاده سازی داشبورد های بلادرنگ و ...را به برنامه های خود اضافه کنیم.

ادامه مقاله

Continuous Integration - بخش دوم : پیاده سازی در TFS

 مقدمه

در بخش اول این مقاله با مفهوم CI و لزوم پیاده سازی آن آشنا شدیم. در ادامه و در این بخش به نحوه ی پیاده سازی آن با استفاده از TFS می پردازیم.

به صورت پیشفرض انتظار می رود که شما با TFS آشنا بوده و از آن به عنوان یک سورس کنترل بتوانید استفاده کنید. همچنین پیش فرض ما استفاده از TFS Online مایکروسافت می باشد که به صورت رایگان و با یک سری محدودیت به توسعه دهنده ها ارائه میشود.

ادامه مقاله

Continuous Integration - بخش اول : مفهوم

Continuous Integration یا CI فرایند خودکار سازی Build و تست کدهای پروژه است. در نظر بگیرید که یک تیم چند نفره در حال توسعه ی یک پروژه هستند. هر توسعه دهنده یک نسخه از پروژه را روی لوکال خود دارد و مدام در حال ایجاد تغییرات و افزودن ویژگی به آن است. در این حالت نیاز است تا کل تغییرات توسط تمام توسعه دهنده ها به برنچ master اعمال شود تا یک نسخه ی یکپارچه از کد روی سورس کنترل ایجاد شود اما انتظار چندورزه برای ارسال تغییرات تمام توسعه دهندگان می تواند باعث ایجاد conflict های متعدد شده و نیز رفع باگ های پروژه را بسیار سخت کند.

ادامه مقاله