اشتراکها
بررسی TypeScript
اشتراکها
چرا زمان پروژه شما طولانی می شود؟
اشتراکها
بهبود تدریجی زمان Build پروژه
ویدئوی با عنوان Test Driven Xamarin Development در کنفرانس Xamarin Evolve 2016 در ارتباط با استفاده از Xamarin برای توسعه برنامههای بزرگ وجود داره که مشاهده اون میتونه مفید باشه.
مطالب
دنیای چابک-قسمت اول
داخل وبلاگها و وب سایتهای فارسی زبان(مربوط به برنامه نویسی) که جستجو میکنیم شاهد کلمه ای هستیم که تازه به چشممان میخورد:Agile(چابک). البته لازم به ذکر است این کلمه چیز جدیدی نیست و سابقه ای در حدود 10 سال دارد(February 2001 ).که جمعی از برنامه نویسان بیانیه ای را تحت عنوان چابک (Agile ) تهیه کردند که متن آن به شرح زیر است:
ما با توسعه نرم افزار و کمک به دیگران در انجام آن . در حال کشف راههای بهتری برای توسعه نرم افزار هستیم. از این طریق باید دست یابیم به ارزش :
- افراد و تعاملات بالاتر از فرآیندها و ابزارها
- نرم افزار کارکننده بالاتر از مستندات جامع
- مشارکت مشتری در انجام کار بالاتر از قرارداد کار
- پاسخگویی به تغییرات بالاتر از پیروی یک طرح
با وجود اینکه موارد سمت چپ نیز ارزشمند هستند ولی ما برای موارد سمت راست ارزش بیشتری قائل هستیم .
که این بیانیه بر پایه 12 اصل(Agile principles)
- بالاترین اولویت ما جلب رضایت مشتری با تحویل زود و مداوم نرم افزاری ارزشمند میباشد
- استقبال از تغییر نیازمندی ها، حتی در اواخر فرآیند توسعه. فرآیندهای چابک، تغییر را در جهت مزیتِ رقابتی مشتری مهار میکنند
- تحویل زود به زود نرمافزار قابل استفاده دو، سه هفته یک بار تا دو ، سه ماه یک بار با ترجیح بر فاصلههای زمانی کوتاهتر
- ذی نفعان کسب و کار و توسعه دهندهها میبایست به صورت روزانه در طول پروژه با هم کار کنند
- پروژهها را بر دوش افراد با انگیزه بنا کنید. فضای لازم رابه آنها بدهید و از نیازهای آنها پشتیبانی کنید وبه آنها اعتماد کنید تا کارها را انجام دهند
- کارآمدترین و موثرترین روش انتقال اطلاعات به تیم توسعه و تبادل آن در میان اعضای تیم ، گفتگوی چهره به چهره است
- نرم افزار قابل استفاده اصلیترین معیار سنجش پیشرفت است
- فرآیندهای چابک توسعه پایدار را ترویج میدهندحامیان مالی , توسعه دهندگان و کاربران باید بتوانند سرعت پیشرفت ثابتی را برای مدت نامحدودی حفظ کنند
- توجه مداوم به برتری فنی و طراحی خوب باعث افزایش چابکی میشود
- سادگی -- هنر به حداکثر رساندن مقدار کار انجام نشده -- ضروری است
- بهترین معماریها , نیاز مندیها و طراحیها از تیمهای خود سازمانده پدید آور میشود
- در فواصل منظم , تیم برچگونگی موثرتر شدن تامل وتفکر مینماید و سپس تیم رفتار خود را بر اساس بازتاب این تفکر تنظیم و هم سو مینماید
متاسفانه در ایران حالا یا به علت سواد کم و یا به هر علتی از این بیانیه برداشتهایی متفاوت و غلط عده ای اونو به بازی تشبیه کردن و عده ای هم با اون کار میکنن ولی هیچکدوم از اصلهای اونو رعایت نمیکنن و بعد که پروژه شکست خورد میگن:متدولوژی خوب نبود و ... .
وقتی کتاب Agile Principles, Patterns, and Practices in C# رو مطالعه میکنید به این نتیجه میرسید که بیشترین چیزی که تاکید داره روی ارتباطات هستش.
قصد دارم در قالب چند پست به شما این اصول رو معرفی کنم.
شیوههای متعددی رو برای نگهداری نکات مختلفی که ضمن کار یادمیگرفتم، تست کردم از جمله نوشتن در کاغذهای مخصوص فیش و استفاده از OneNote و بعضی از نرم افزارهای فیش نگاری و ... همه روشهایی که گفته شد به نوعی یک یادداشت برداری کاغذی ولی به سبک دیجیتال هستند نه خیلی بیشتر که معمولا خسته کننده هستند و کم نتیجه و عمدتا پاسخگوی نیازهای جدید نیستند
پس از مدتی استفاده از این شیوهها به این نتیجه رسیدم که یک ویکی شخصی کم دردسر برای خودم راه اندازی کنم. نرمافزارهای سورس باز مختلفی رو تست کردم و علیرغم برخی کاستیها به همان نرم افزاری رسیدم که سایت معظم ویکی پیدیا از اون استفاده میکنه یعنی نرم افزار MediaWiki که از اینجا میتونید دانلودش کنید
در مدیاویکی شخصی خودتون به صورت کاملا لوکالی، میتونید فیشها، یادداشتها، صفحات وبی و مقالات متعددی رو ایجاد و ویرایش کنید و به یکدیگر و به سایتهای اینترنتی پیوند بدید. همه صفحات ویکی شما میتونند با همدیگه به شکل درون متنی پیوند برقرار کنند و شبکهای از مفاهیم مرتبط به هم تشکیل بدند. همچنین برای هر صفحه میشه از دستهبندی و کلمات کلیدی که توسط خودتون تعریف میشه برای طبقهبندی استفاده کرد
نصب و راهاندازی اون بسیار ساده است و کافیه مثلا فقط نرم افزار WAMP -Windows Apache Mysql PHP- رو به عنوان راه انداز وب سرور داخلی نصب کنید و ...
ربطش به برنامه نویسی
یکی از کاربردهایی که میشه برای این شیوه در نظر گرفت، نگهداری و به اشتراک گذاری دانش افراد مثلا در یک تیم برنامهنویسی است که پس از مدتی استفاده از اون باعث تولید یک مجموعه ارزشمند از تجربیات و دانش افراد میشه و افراد تازه کار میتونن در تجربیات بقیه شریک بشن و هرکاری فقط توسط یک نفر تجربه میشه و سایرین اونو استفاده میکنن و نیازی نیست که همه اونو تجربه کنن یا به قولی دوباره چرخ رو اختراع کنن
اشتراکها
لیستی از ابزار ها و فریم ورک های تست
This is a list of Automated Testing Frameworks for .NET related to methodologies and types of tests:
- Test-Driven Development (TDD)
- Behavior-Driven Development (BDD)
- Specification by Example (SBE)
- Acceptance Test-Driven Development (ATDD)
- Property-Based Testing (PBT)
- Unit \ Integration \ Acceptance \ Specification \ etc. Tests