نکات برنامه‌نویسی

نکات برنامه‌نویسی و رایانه‌ای - امیرمسعود ایرانی

نکات برنامه‌نویسی

نکات برنامه‌نویسی و رایانه‌ای - امیرمسعود ایرانی

۵ مطلب در اسفند ۱۳۹۲ ثبت شده است

انتخاب بین اوپن‌کارت و پرستاشاپ

امیرمسعود ایرانی | چهارشنبه, ۱۴ اسفند ۱۳۹۲، ۰۴:۲۲ ب.ظ | ۱ نظر

- این یک مقایسه‌ی تجربی است نه علمی -


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


امکانات

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


بانک افزونه‌ها

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

افزونه‌های خوب و مهم موجود در سایت پرستاشاپ و اوپن‌کارت عمدتا تجاری هستند. قیمت افزونه‌های پرستاشاپ به طور تقریبی حدود ۷۰-۸۰ دلار است در حالی که افزونه‌های اوپن‌کارت به طور متوسط ۲۰ دلار قیمت دارند.

ظاهرا کنترل تیم توسعه روی افزونه‌های پرستاشاپ بسیار بهتر است. به همین دلیل، کیفیت و اطمینان به افزونه‌های پرستاشاپ بالاتر به نظر می‌رسد.


توسعه‌ی افزونه‌های جدید

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

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

فکر می‌کنم عبارت «فاجعه» به خوبی وضعیت اوپن‌کارت را شرح ندهد، برای انتقال بهتر حس موجود از عبارت «هرکی‌هرکی» هم می‌شود استفاده کرد :)


بهینه‌سازی موتور جستجو( SEO )

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


کارایی

با توجه به کیفیت کدنویسی، به نظر می‌رسد اوپن‌کارت در حجم بالای تراکنش‌ها آسیب‌پذیر باشد.


سیستم قالب‌نویسی

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


بخش مدیریت

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


مستندات

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


یکپارچه‌سازی

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


-------------------------------


نتیجه‌گیری

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

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

  • امیرمسعود ایرانی

شناسایی فایل‌های تغییر یافته و انتقال آن‌ها به سرور

امیرمسعود ایرانی | سه شنبه, ۱۳ اسفند ۱۳۹۲، ۱۲:۴۱ ق.ظ | ۲ نظر

اگر شما هم برنامه‌نویس وب باشید، احتمالا زیاد پیش می‌آید که بخواهید تغییرات انجام شده روی نسخه‌ی محلی اسکریپت خود را روی سرور منتقل کنید.

اگر تعداد کل فایل‌ها زیاد باشد و حجم زیادی را هم اشغال کرده باشند، انتقال فایل‌های تغییریافته با وضعیت اینترنت موجود کاری بسیار مشکل خواهد بود


یکی از ساده‌ترین روش‌ها برای حل این مشکل استفاده از نرم‌افزار WinRAR است

کافی است تمامی فایل‌های پروژه را در Windows Explorer انتخاب کنید، سپس با کلیک راست و انتخاب Add to archive پنجر‌ه‌ی WinRAR را باز کنید

در سربرگ Time یک گزینه وجود دارد به نام Include files . مقدار مقابل این گزینه را روی Newer than تنظیم کنید و سپس زمان تقریبی آخرین آپلود خود را در فیلدهای ظاهر شده وارد کنید

بهتر است این مقدار کمی بیشتر از زمان مورد نظر شما باشد تا از جاماندن احتمالی فایل‌ها جلوگیری شود

مثلا اگر فکر می‌کنید آخرین آپلود شما ۵ روز قبل بوده است. می‌توانید عدد ۶ یا ۷ را وارد کنید تا تمام فایل‌هایی که در این مدت به‌روزرسانی‌شده‌اند در فایل فشرده جاگذاری شوند

فراموش نکنید که فرمت فایل فشرده را از rar به zip تغییر دهبد تا در سرور قابل استخراج باشد

با انجام این کار WinRAR فقط فایل‌هایی را در بسته قرار خواهد داد که در ۶ یا ۷ روز گذشته تغییراتی داشته‌اند

و آخرین نکته اینکه، انجام این کار تنها فایل‌های جدید و تغییریافته را روی سرور منتقل می‌کند و اگر فایلی را حذف کرده باشید، همچنان روی سرور باقی می‌ماند.

این موضوع در بعضی موارد خاص می‌تواند اهمیت داشته باشد که باید به آن توجه کنید

  • امیرمسعود ایرانی

دانلود فایل با استفاده از افزونه‌ی curl در php

امیرمسعود ایرانی | شنبه, ۱۰ اسفند ۱۳۹۲، ۰۲:۲۸ ب.ظ | ۰ نظر

دانلود فایل در php به شیوه‌های مختلفی امکان‌پذیر است

یکی از مطمئن‌ترین و بهترین روش‌ها استفاده از افزونه‌ی CURL است

$url = 'http://amib.ir/';
$filename = 'amib.ir.html';

$file = fopen( $filename, 'wb' ); // open output file

$ch = curl_init(); // init CURL
curl_setopt( $ch, CURLOPT_HEADER, 0 ); // no header in response
curl_setopt( $ch, CURLOPT_TIMEOUT, 10 ); // timeout
curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, true ); // auto redirect
curl_setopt( $ch, CURLOPT_MAXREDIRS, 3 ); // max redirects
curl_setopt( $ch, CURLOPT_URL, $url ); // set download URL
curl_setopt( $ch, CURLOPT_FILE, $file ); // set output destination
curl_exec( $ch ); // begin download...
curl_close( $ch ); // close CURL

fclose( $file ); // close file
  • امیرمسعود ایرانی

Mock object چیست

امیرمسعود ایرانی | سه شنبه, ۶ اسفند ۱۳۹۲، ۱۲:۰۰ ب.ظ | ۰ نظر
Mock object در تست واحد، کلاس‌هایی هستند که عملکرد یک کلاس واقعی را شبیه‌سازی می‌کنند. درست همانگونه که یک خودروساز از ماکت انسان به عنوان جایگزینی در آزمون تصادف خودرو بهره‌برداری می‌کند.

  • موارد استفاده از Mock object می‌تواند هنگامی باشد که کلاس اصلی یکی از وضعیت‌های زیر را داشته باشد:
  • نتایج غیرقطعی تولید کند( مثلا دمای فعلی یا زمان فعلی )
  • وضعیت‌های دارد که تولید آن مشکل باشد( مثلا خطای شبکه )
  • سرعتش کم باشد( مثلا یک پایگاه داده که نیازمند مقداردهی اولیه باشد )
  • هنوز ایجاد نشده یا عملکرد آن متغیر است
  • برای کارکرد به اطلاعات آزمایشی نیاز داشته باشد

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


منبع



  • امیرمسعود ایرانی

Data Profiling چیست

امیرمسعود ایرانی | جمعه, ۲ اسفند ۱۳۹۲، ۰۴:۱۶ ب.ظ | ۰ نظر
Data Profiling در اصطلاح به بررسی داده‌های موجود در پایگاه داده و جمع‌آوری آمار و اطلاعات در مورد آن گفته می‌شود. هدف از انجام این کار ممکن است یکی از موارد زیر باشد:
  • بررسی کارایی اطلاعات موجود برای استفاده در اهداف دیگر
  • افزایش جستجوپذیری داده‌ها با افزودن، کلیدواژه‌ها، برچسب‌ها، توضیحات و قرار دادن اطلاعات در شاخه‌های مختلف
  • اندازه‌گیری کیفیت اطلاعات برای بررسی سازگاری آن‌ها با استانداردها و الگوها
  • اندازه‌گیری ریسک یکپارچه‌سازی داده‌ها در هنگام انتقال به یک نرم‌افزار دیگر
  • بررسی دقت و صحت فراداده( متادیتا ) برای همخوانی با مقادیر واقعی
  • شناسایی سریع چالش‌های موجود در نرم‌افزارهای داده محور. عدم کشف چالش‌های اطلاعاتی در مراحل ابتدایی ممکن است سبب بار شدن هزینه‌های سنگینی در مراحل بعد شود.
  • ایجاد یک دید سازمانی از اطلاعات.

منبع

  • امیرمسعود ایرانی