کد قابل توسعه: تکرار کد مساوی است با زنگ خطر

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

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

کد قابل توسعه: استفاده از توابع به جای مقدارهای ثابت

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

در فرآیند کدنویسی بسیار پیش می‌آید که فهرست یا مقدارهایی خاص در بخش‌های مختلف استفاده می‌شود. فهرست‌هایی مثل «استان‌ها» یا «شیوه‌های ارسال کالا» یا «راه‌های تماس».
ممکن است به نظر برسد که فهرست‌ها همیشه ثابت هستند و ممکن است نیازی به ثبت آن‌ها در بانک اطلاعاتی و ایجاد اشیا در برنامه‌نویسی شیء‌گرا حس نشود.

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

به نمونه‌ی زیر دقت کنید:

<?php
	$provinces_array = array(
		"آذربایجان شرقی",
		"آذربایجان غربی",
		"اردبیل",
		"ایلام"
		// ...
	);
?>

کد قابل توسعه:

<?php
	$provinces_array = get_provinces_array();
 
	function get_provinces_array() {
		return array(
			"آذربایجان شرقی",
			"آذربایجان غربی",
			"اردبیل",
			"ایلام"
			// ...
		);
	}
?>
ارسال شده در PHP, برنامه‌نویسی | برچسب‌شده | دیدگاه‌تان را بنویسید

آموزش چندرسانه‌ای اصول طراحی وب با php

آموزش چندرسانه‌ای اصول طراحی وب

این برنامه‌ی آموزشی را برای پروژه‌ی درس چندرسانه‌ای‌ام آماده کردم.
این آموزش شامل ۱۷ اسلاید متنی و بخش‌های کوتاهی کد است. با باز شدن هر اسلاید متن آن برای شما خوانده می‌شود.
لطفا نظرها و پیشنهادهای خودتان را در ذیل این مطلب قرار دهید.

عنوان‌های اصلی عبارتند از:

  • اینترنت چگونه کار می‌کند؟
  • ابزارهای توسعه‌ی وب
  • HTML زبان ایجاد محتوای وب
  • CSS زبان تغییر ظاهر سایت
  • JavaScript زبانی برای ایجاد محتوای پویا
  • PHP زبانی ساده و روان
  • مرورگرهای اینترنتی
  • دستگاه‌های هوشمند
  • یونیکد( Unicode )
  • شروع کار با HTML
  • شروع کار با PHP
  • شروع کار با CSS

برای دریافت بسته با حجم ۱۲ مگابایت اینجا کلیک کنید

ارسال شده در CSS, PHP, برنامه‌نویسی | ۱۳ دیدگاه

اجرای زمانبندی‌شده‌ی اسکریپت‌های تحت وب

ممکن است برای شما نیز پیش آمده باشد که بخواهید اسکریپت تحت وب خود را به طور خودکار و در زمان‌های مشخص فراخوانی کنید.

انجام این کار نیازمند دسترسی به Scheduled Tasks در ویندوز و Cron Jobs در لینوکس است. بسیاری از میزبان‌های اشتراکی امکان استفاده از این قابلیت را برای مشتریان فراهم نمی‌کنند.
یکی از ساده‌ترین راه‌حل‌های موجود، استفاده از سرویس‌های تحت وبی است که به صورت خودکار و در زمان‌های مشخص اسکریپت شما را فراخوانی می‌کنند.

سایت زیر مجموعه‌ای از سرویس‌های Cron تحت وب را فهرست کرده است که می‌توانید به رایگان از آن‌ها استفاده کنید.
http://www.onlinecronservices.com

ارسال شده در برنامه‌نویسی | ۴ دیدگاه

۴۴ نکته‌ی طلایی در php

امروز به طور اتفاقی مطلب خوب و جامعی را در وبلاگ Boplo.ir دیدم
پیشنهاد می‌کنم آن را مطالعه کنید

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

انتخاب واحد و اندازه‌ی فونت برای طراحی صفحات وب

انتخاب اندازه و واحد فونت یکی از پیش‌نیازهای طراحی صفحات وب برای ایجاد خروجی یکسان در بسترهای مختلف است. واحد‌های اندازه‌گیری گوناگونی مانند point، pixel و em از گزینه‌های موجود به عنوان واحد اندازه‌گیری هستند.

واحد pixel یا px ساده‌ترین و مناسب‌ترین واحد برای تعیین اندازه‌ی فونت در صفحات وب است. این گزینه هنگامی کاربرد دارد که بخواهید متن‌های با اندازه‌ی ثابت در مقایسه با تصاویر داشته باشید.
برای مثال اگر اندازه‌ی فونت یک عنصر html را “12px” مشخص کنید، نوشته‌ی شما در تمامی مرورگرها به همین اندازه نمایش داده می‌شود

واحد em واحدی نسبی است. بر اساس فونت پیش‌فرض در عنصر فعلی، واحد em معنی متفاوتی دارد. هر em با اندازه‌ی فونت فعلی برابری می‌کند. مثلا اگر اندازه‌ی فونت عنصری “12pt” باشد، “1em” برابر “12pt” و “2em” برابر با “24pt” خواهد بود.

واحد پرکاربرد بعدی point یا pt نام دارد. این واحد نیز واحدی نسبی است. شیوه‌ی محاسبه‌ی اندازه‌ی واقعی و پیکسلی وابسته به وضوح صفحه‌ی نمایش یا چاپگر مشخص می‌شود. بر طبق قرارداد، هر ۷۲ پوینت معادل یک اینچ تعیین شده است.
وضوح پیش‌فرض در سیستم‌عامل مکینتاش ۷۲ نقطه در اینچ است. در نتیجه تعیین اندازه‌ی فونت با پیکسل یا پوینت در آن یکسان است. ولی در ویندوز مقدار ۹۶ نقطه در اینچ عدد پیش‌فرض است و معنی آن این است که هر ۹۶ پیکسل با یک اینچ برابری خواهد کرد.
بنابراین اگر اندازه‌ی عنصری را “72pt” مشخص کنید، در مکینتاش با اندازه‌ی ۷۲ پیکسل و در ویندوز با اندازه‌ی ۹۶ پیکسل دیده خواهد شد.

برای ساده‌تر شدن محاسبات کافی است اندازه‌ی پوینت را به عدد ۷۲ تقسیم و نتیجه را در وضوح نمایش یا چاپ ضرب کنید.
مثلا محاسبه‌ی ۱۲ پوینت در ویندوز: ۱۲ را تقسیم بر ۷۲ و سپس در ۹۶ ضرب می‌کنیم که نتیجه عدد ۱۶ پیکسل خواهد بود.

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

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

پرسش‌های استخدامی برای توسعه‌دهنده‌ی وب

به تازگی پرسش‌هایی برای آزمودن تسلط کارجویان php طراحی کردم. پرسش‌ها به گونه‌ای طراحی شدند که در زمانی کمتر از ۱۵ دقیقه قابل پاسخگویی باشند و تنها کسانی بتوانند به آن‌ها پاسخ صحیح بدهند که تسلط کافی روی php، HTML، JavaScript، CSS، MySQL و SQL Server داشته باشند
پرسش‌ها و پاسخ‌های صحیح را در ادامه مشاهده کنید.

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

ارسال شده در CSS, PHP, برنامه‌نویسی, جاوااسکریپت, عبارت‌های منظم, پایگاه داده | ۱۰ دیدگاه

کدهای جاوااسکریپت سایت scriptiny

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

چند نمونه از اسکریپت‌های قابل دریافت از این سایت عبارتند از: منوی جاوااسکریپت، جعبه‌ی بازشونده، جدول هوشمند جاوااسکریپت و چندین اسکریپت مفید دیگر.

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

رتبه‌ی نخست وضوح ۱۳۶۶‎×‎۷۶۸ میان کاربران وب

سایت StatCounter اعلام کرد برای نخستین بار وضوح صفحه‌ی «۱۳۶۶‎×‎۷۶۸» در مکانی بالاتر از وضوح «۱۰۲۴‎×‎۷۶۸» قرار گرفت.
این موضوع برای طراحان نرم‌افزارهای تحت وب می‌تواند خبری مهم و اثرگذار باشد.

با این حال وضوح «۱۰۲۴‎×‎۷۶۸» در میان کاربران ایرانی وب با حدود ۳۲ درصد همچنان در رتبه‌ی نخست قرار دارد و در طراحی سایت‌هایی که برای کاربران داخلی انجام می‌شود، باید این موضوع در نظر باشد.

سایت StatCounter ارائه دهنده‌ی آمارگیرهای حرفه‌ای برای سایت‌های اینترنتی است و نتایج اعلام شده از سوی این سایت بر اساس میلیاردها مشاهده در ماه تهیه می‌شوند.

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

تفاوت و کاربرد عبارت‌های Having و Where در MySQL

نشان MySQL

مطابق استاندارد رسمی SQL، عبارت Having تنها می‌تواند حاوی شرط‌هایی برای محدود کردن نتایج GROUP BY باشد. با این حال «MySQL 5.0.2» و جدید‌تر به شما اجازه می‌دهد شرط خود را بدون داشتن GROUP BY با کمک Having بنویسید.

دو تفاوت اساسی میان Having و Where وجود دارد که می‌تواند در انتخاب هر یک موثر باشد.

۱- زمان اجرا:
Where در مرحله‌ی جستجوی ردیف‌ها مورد ارزیابی قرار می‌گیرد. یعنی پایگاه داده در هنگامی که جدول‌ها را پردازش می‌کند شرط مقابل Where را نیز در جستجو دخیل می‌کند.
Having تقریبا در پایان مراحل و پیش از آنکه نتایج به مشتری ارسال شود، نتایج یافته شده توسط Where را پاکسازی می‌کند.

۲- بهینه‌سازی
با توجه به آنچه در مورد زمان اجرای هر یک از عبارت‌های Where و Having گفته شد، مشخص است که اعمال بهینه‌سازی بر روی Where امکان‌پذیر و در خصوص Having ناممکن است. زیرا Having نقشی در یافتن رکوردها ندارد و تنها کار حذف رکوردهای نادرست را انجام می‌دهد.

با توجه به دو تفاوت گفته شده، کاربردهای مختلفی نیز برای این دو دستور به وجود می‌آید.
یکی از بهترین مثال‌ها برای استفاده از Having هنگامی است که می‌خواهید یک فیلد محاسباتی را که با ALIAS نامی برای آن برگزیده‌اید، فیلتر کنید.
ادامه‌ی خواندن

ارسال شده در پایگاه داده | برچسب‌شده | ۳ دیدگاه