دهکده آی تی » Programming




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

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

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

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

با تعیین آرگومانی از یک تابع به صورت اختیاری، تمامی آرگومان های بعد از آن نیز باید از نوع اختیاری(و با مقدار پیش فرض) تعریف شوند.

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

function itvillage ($face, $size) {
print “<font face=\”$face\” font size=\”$size\”>
یک مثال روشن و ساده</font>”;
}
itvillage(”tahoma”);

بدیهیست که استفاده از کد بالا با نمایش یک پیغام خطا توسط موتور PHP همراه خواهد بود. برای حل این مشکل و اینکه در صورت دریافت نکردن هیچ نوع ورودی برنامه به هم نریزد، بهتر است از یک مقدار پیش فرض برای آرگومان های تابع استفاده کنیم. حال موضوع مهم این است که اگر برای آرگومان face$ مقدار پیش فرض انتخاب کرده ایم(”face = “tahoma$) حتمن باید برای size$ نیز مقدار پیش فرض تعیین کنیم. در غیر این صورت دوباره با خطایی روبه رو می شوید که در مثال بالا دیدید! بنابراین اگر تابع شما 10 آرگومان دارد و برای مثال شما برای آرگومان پنجم مقدار پیش فرضی در نظر گرفتید، باید برای بقیه آرگومان ها تا دهمی نیز مقدار پیش فرض بگذارید. اما لازم نیست برای آرگومان های قبل از آرگومان پنجم، مقداری را در نظر بگیرید.

امیدوارم این به اشتراک گذای اطلاعات به درد دوستان بخورد و اگر عمری بود باز هم با یکدیگر دانسته های خود را پیرامون این زبان توسعه می دهیم.


همه ی دوستان می دانند که برای برنامه نویسی به زبان PHP حتی می توان از محیط Notpad نیز استفاده کرد. اما خب آیا محیطی بهتر از این برنامه وجود ندارد؟ جواب این سوال مسلما بله است! بنده هم به این دلیل که به یک محیط خوب نیاز داشتم وقت زیادی برای پیدا کردن یک ادیتور خوب صرف کردم، که توانستم برای زبان پی اچ پی ، 57 ادیتور فقط در سطح متوسط به بالا پیدا کنم! در این پست تصمیم دارم 9 ادیتور بهتر و برتر را معرفی کنم که می دانم به درد خیلی از دوستان خواهد خورد.
البته یک توضیح کوچک باید بدهم. بسیاری این برنامه ها دارای ویژگی های مشترکی هستند و بنده لزومی ندیدم همه ی این ویژگی های تکراری را ذکر کنم.

NuSphere PhpED:
این محیط، ویژگی های بسیار خوب و مفیدی دارد که از جمله ی آنها، به اشکال زدایی بسیار قدرتمند، پشتیبانی کامل از کد های زبان PHP، HTML، CSS و … ، به روزسانی خودکار، پشتیبانی کامل از PHP5، پشتیبانی تمام و کمال از MySQL، قابلیت فرستادن اسکریپت به سرور به صورت بسیار ساده و سریع، پروفایل پیشرفته و … . این برنامه در محیط لینوکس و ویندوز به خوبی کار می کند و به 64 مگا بایت رم و 80 مگابایت حافظه نیاز دارد. البته یک مشکل اساسی برای ما دارد و آن هم این که رایگان نیست و شما تنها می توانید نسخه ی 14 روزه ی آن را از اینجا دانلود کنید.

ActiveState Komodo:
این برنامه، محیط قدرتمندی برای نوشتن برنامه، توسعه، اشکال زدایی و تست کردن برنامه در اختیار شما قرار می دهد. اشکال زدایی گرافیکی، مدیریت پروژه، مدیریت کد های منبع، حدس زدن و کامل کردن کلمات و … از ویژگی های دیگر این نرم افزار است که در همه ی پلت فرم ها کار می کند. البته این نرم افزار هم پولی است، اما نسخه ی آزمایشی آن را می توانید از اینجا دانلود کنید.

emacs:
فکر کنم دوستان لینوکسی از دیدن این اسم بسیار خوشحال شدند! تا اونجا که بنده اطلاع دارم emacs و Vi دو برنامه ی ویرایش در لینوکس هستند که از دومی برای کار های ساده و از اولی برای کار های پیشرفته تر استفاده می شود. emacs با زبان Lisp نوشته شده است و با اینکه دارای بسیاری از قابلیت ها نیست، اما ویژگی کد باز بودن آن این اجازه را به شما می دهد که با نوشتن برنامه ی مورد نظر خود و افزودن آن به فایل emacs. ویزگی مورد علاقه خود را به آن بیفزایید. این نرم افزار رایگان است و اگر می خواهید ویژگی های آن را بدانید سری به اینجا بزنید.

TSW WebCoder:
این برنامه بهترین گزینه برای کسانی است که می خواهند سایت داشته باشند. مهم نیست که شما تازه کار هستید و می خواهید یک سایت با نمای زیبا داشته باشید. این برنامه به راحتی به شما کمک خواهد کرد. البته با این نرم افزار قادر به نوشتن برنامه هم خواهید بود. این برنامه فقط در ویندوز کار می کند. قیمت نرم افزار تقریبا 30 دلار است اما شما می توانید نسخه ی تریال آن را این
آدرس دانلود کنید!

Maguma Workbench:
این برنامه ی کد باز به شما اجازه ی هر کاری را که بخواهید می دهد! تقریبا دارای ویژگی هایی می باشد که سایر برنامه ها نیز دارا می باشند و می توانید به راحتی در آن برنامه ی خود را بنویسید. این برنامه در همه ی پلت فرم های موجود کار می کند و قیمت آن 69 یورو می باشد! اما خب برای شما نسخه ی آزمایشی هم وجود دارد که از اینجا می توانید دانلود کنید!

PHP Designer:
بالاخره رسیدیم به نرم افزار محبوب من! این نرم افزار دو نسخه ی حرفه ای و خانگی دارد که نسخه ی حرفه ای آن پولی می باشد! اما نسخه ی خانگی آن، که من از آن استفاده می کنم بسیار عالی است و تقریبا تمامی نیاز ها را بر طرف می کند. شما می توانید در این برنامه به زبان های PHP، VBScript، #C، Perl، Java و … برنامه بنویسید. غلط گیر قدرمتند، پشتیبانی کامل از کد های زبان های مختلف، اطلاعات کامل از موقعیت برنامه نویس، جدا کردن متغیر ها، اشیا ها و آرایه ها و توابع از یکدیگر و مرتب کردن آنها و … از جمله ی ویژگی های این نرم افزار است.حجم کم نسخه ی خانگی، زیبایی و شکیل بودن آن باعث می شود تا در بین برنامه هایی با همین ویژگی ها، این برنامه به انتخاب اول تبدیل شود. شما می توانید نسخه ی خانگی و حرفه ای آن را از اینجا دانلود کنید و لذت ببرید!

Bluefish:
این برنامه محیطی قدرتمند را برای برنامه نویسی و مدیریت سایت در اختیار شما قرار می د