Test Driven Developement یا توسعه تست محور چیست ؟

Test Driven Developement یا TDD یا توسعه‌ی تست محور،‌ یک روش توسعه‌ی نرم‌افزار است که با هدف کاهش خطاهای برنامه‌نویسی ایجاد شده است. در شیوه‌ی عادی و با استفاده از آزمون واحد( Unit Test ) می‌توانیم برنامه را تست کنیم ولی بدون داشتن یک قانون مشخص برای آزمون نرم‌افزار، معمولا نوشتن تست به تاخیر می‌افتد یا به طور کلی انجام نمی‌شود.

توسعه تست محور

در شیوه‌ی «توسعه‌ی تست محور» برای جلوگیری از فراموش شدن یا به تاخیر افتادن نوشتن تست‌ها، لازم است تا ابتدا و پیش از نوشتن کدهای اصلی، تست آن را بنویسیم. این تست در زمان نوشته شدن، fail می‌شود و پس از آن برنامه‌نویس می‌بایست کدهای لازم را به برنامه اضافه کند تا این تست جدید وضعیت pass پیدا کند.
ادامه‌ی خواندن

ارسال شده در برنامه‌نویسی | برچسب‌شده , | یک دیدگاه

قیمت گذاری پروژه‌های نرم‌افزاری

پروژه‌های نرم‌افزاری و طراحی سایت به دلیل اینکه پیش از اجرا بیش از حد معمول ذهنی هستند، به سختی قابل قیمت‌گذاری هستند. و به همین دلیل مشتریان در مراجعه به برنامه‌نویسان و طراحان سایت مختلف با قیمت‌هایی بسیار متفاوت از یکدیگر مواجه می‌شوند.

در این نوشته قصد داریم راهی بیابیم تا خطای موجود در برآورد زمانی و ریالی این گونه پروژه‌ها به حداقل برسد.

ادامه‌ی خواندن

ارسال شده در برنامه‌نویسی, عمومی | برچسب‌شده , , | ۵ دیدگاه

خواندن و نوشتن فایل‌های اکسل در لاراول

لاراول شیوه‌ی جدیدی از کدنویسی را در دنیای برنامه‌نویسی php ایجاد کرده است. در این شیوه شکل دستورات برنامه‌نویسی تا حد امکان به زبان انسان نزدیک شده است و به همین دلیل خواندن کدهایی که قبلا نوشته شده‌اند و توسعه‌ی آن‌ها نسبت به قبل آسان‌تر و سریع‌تر شده است.
خواندن و نوشتن فایل‌های اکسل از گذشته یکی از مشکلات قابل توجه در برنامه‌نویسی به ویژه در محیط‌هایی غیر از ویندوز به شمار می‌رفته است.
ایجاد و خواندن اکسل در لاراول و php
با گذشت زمان، این مشکل تا حد زیادی برطرف شده است. در زبان php کتابخانه‌ی  PHPExcel ابزاری بوده است که انجام این کار را بسیار در دسترس قرار داده است.

ادامه‌ی خواندن

ارسال شده در PHP, لاراول | برچسب‌شده , , | ۲ دیدگاه

افزونه‌های ضروری برای وردپرس

wordpress

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

ارسال شده در SEO, امنیت, برنامه‌نویسی, وردپرس | برچسب‌شده , | دیدگاه‌تان را بنویسید

انتقال فایل‌های تغییر یافته پروژه به سرور

در هنگام برنامه‌نویسی پروژه‌های تحت وب، در دفعات مکرر ممکن است بخواهیم آخرین فایل‌های تغییر یافته را به سرور منتقل کنیم.
شناسایی فایل‌هایی که تغییر کرده‌اند و آپلود تک به تک آن‌ها به سرور کاری دشوار و زمان‌بر است.
از طرف دیگر آپلود تمامی فایل‌ها هم ممکن است به دلیل حجم زیاد و تعداد زیاد، منطقی و شدنی نباشد.
یکی از بهترین روش‌ها در هنگام انجام این کار، فشرده کردن فایل‌هایی است که در مدت زمان مشخصی تغییر کرده باشند و آپلود این فایل فشرده روی سرور.
برای شناسایی فایل‌هایی که امروز تغییر کرده‌اند و قرار دادن آن‌ها در یک فایل فشرده، می‌توان از نرم‌افزار Info-ZIP که نرم‌افزاری رایگان و چندسکویی است استفاده کرد.
برای این منظور ابتدا نرم‌افزار Zip را از این صفحه دانلود کنید
سپس یک Batch File ( با پسوند cmd یا bat ) در شاخه‌ی بالایی پروژه‌ی خود ایجاد کنید.
برای مثال اگر فایل‌های پروژه در مسیر C:\wamp\www\amib قرار دارند، فایل خود را در مسیر

c:\wamp\www\compress-amib.cmd

ایجاد کنید.
محتویات فایل Batch را مطابق کدهای زیر قرار دهید. فراموش نکنید که نام شاخه‌ها را می‌بایست مطابق نیاز تغییر دهید.

@echo off
del amib\amib.zip > nul
cd amib
set mydate=%date:~4,2%%date:~7,2%%date:~10,4%
c:\zip.exe -r amib.zip -9 -t=%mydate% *.*

اکنون می‌توانید فایل Battch را اجرا کنید و پس از ایجاد شدن فایل zip آن را به سرور منتقل و استخراج کنید.
این فایل به طور پیش‌فرض تاریخ امروز را مقابل دستور zip قرار می‌دهد. بنابراین آخرین فایل‌هایی که طی امروز تغییر کرده‌اند را شناسایی و فشرده می‌کند. چنانچه می‌خواهید فایل‌های تغییر یافته در روزهای قبل نیز به فایل فشرده افزوده شوند، می‌بایست دستورات را مطابق نیاز تغییر دهید.

ارسال شده در برنامه‌نویسی, نرم‌افزار | برچسب‌شده , , , | دیدگاه‌تان را بنویسید

خطاهای تایپی در برنامه نویسی و روش کم کردن آن

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

ارسال شده در برنامه‌نویسی | برچسب‌شده , | ۲ دیدگاه

عبارت‌های شرطی یودا( Yoda )

یودا در اصطلاح، شیوه‌ای کد نویسی برای تعریف عبارت‌های شرطی است. در این روش، مقدار مقایسه پیش از علامت «==» و متغیر پس از آن می‌آید:

<?php
	//NORMAL
	if( $hello == false ) {
	    // ...
	}
 
	// YODA CONDITIONS
	if( false == $hello ) {
	    // ...
	}
?>

چرا این کار را انجام می‌دهیم؟

مهم‌ترین مزیت انجام این‌کار، جلوگیری از خطاهای عملکردی در کدنویسی است. در حالت معمولی، اگر به اشتباه علامت «=» را به جای «==» درج کنیم، شرط هیچ‌گاه برقرار نخواهد شد و کامپایلر هم متوجه خطای موجود نخواهد شد و عملکرد برنامه دچار خدشه می‌شود.
ولی در روش یودا، اگر این اشتباه را مرتکب شویم، کامپایلر با یک خطای نحوی ما را از اشتباهمان آگاه خواهد کرد

معایب

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

یکی از قوانین کدنویسی وردپرس، استفاده از عبارت‌های شرطی یودا است

ارسال شده در PHP, برنامه‌نویسی, وردپرس | برچسب‌شده , | ۲ دیدگاه

Node.js چیست؟

nodejs

Node.js یک محیط یا Platform برنامه‌نویسی تحت سرور است که بر پایه‌ی موتور جاواسکریپت V8 گوگل کروم توسعه پیدا کرده است.
Node.js می‌تواند برای ایجاد وب‌سرورهای ساده تا پیشرفته مورد استفاده قرار بگیرد. برای مثال ممکن است برای راه‌اندازی یک وبسایت همه منظوره که محتواهای متنی و چندرسانه‌ای را در اختیار مشتریان قرار می‌دهد از این ابزار استفاده شود.
ویژگی قابل توجهی که Node.js را از سایر محیط‌های برنامه‌نویسی متمایز می‌کند رویدادگرا( Event-driven ) بودن آن است. برنامه‌نویسی رویدادگرا به شیوه‌ای از برنامه‌نویسی گفته می‌شود که اجرا کدهای برنامه وابسته به رخداد رویدادهای خاص است. برای مثال در هنگام خواندن محتویات یک فایل، در برنامه‌نویسی سنتی، برنامه در هنگام خوانده شدن محتویات فایل از روی رسانه، متوقف می‌شود و پیشروی نمی‌کند. در معماری رویدادگرا، برنامه به پیشروی خود ادامه می‌دهد و هنگامی که محتویات از فایل خوانده شدند، تابع دلخواهی از برنامه توسط Node.js فراخوانی می‌شود.
ادامه‌ی خواندن

ارسال شده در برنامه‌نویسی, جاوااسکریپت | برچسب‌شده , | ۳ دیدگاه

همه چیز در مورد فشرده‌سازی

WinRAR 5
هرچند ظرفیت ذخیره‌سازی دیسک سخت و درایو‌های نوری و دیسک‌های فلش افزایش چشم‌گیری داشته و سرعت انتقال داده‌ها نیز نسبت به گذشته رشد قابل توجهی را تجربه می‌کند، با این حال به دلایل مختلف ممکن است بخواهیم حجم فایل‌ها را تا حد ممکن کم کنیم.
ادامه‌ی خواندن

ارسال شده در عمومی | برچسب‌شده , , , | ۲۱ دیدگاه

تشخیص قدیمی بودن نگارش IE و تعریف کلاس برای body

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

ارسال شده در CSS, HTML, برنامه‌نویسی, جاوااسکریپت | برچسب‌شده | دیدگاه‌تان را بنویسید