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

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

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

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

معایب دیجی کالا

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

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

با این حال مانند هر سیستم دیگر معایبی نیز دارد که برخی از آن‌ها را در ادامه مشاهده می‌نمایید:

  1. عدم فروش برخی از انواع کالاها به دلایل مختلف.
  2. عدم کنترل روی قیمت‌گذاری فروشندگان دیگر و ارائه قیمت‌هایی غیرواقعی روی برخی از کالاها.
  3. عدم کنترل کافی روی کیفیت اجناس ارائه شده.
  4. عدم ارائه اجناس ۱۰۰ درصد اصلی برخلاف ادعای این موضوع( برای مثال چندین هدفون سامسونگ با قیمت‌های بسیار متفاوت در سایت به فروش می‌رسد که قطعا همگی نمی‌توانند اصلی باشند ).
  5. ارسال کالا در بازه‌های زمانی طولانی( در گذشته انتخاب بازه ساعت ارسال با دقت بیشتری امکان‌پذیر بود ).
  6. معرفی محصولات مشابه با پیشنهادهای نه چندان بهینه.
  7. برخی از نظرات کاربران در محصولات غیرواقعی و توسط رقبای فروشنده درج شده‌اند.
  8. قیمت‌گذاری بر اساس عرضه و تقاضا نه بر اساس قیمت خرید ( قیمت محصولات پرفروش که در بازار محدود باشند، با افزایش قیمت مواجه می‌شوند )
  9. تلاش برای ایجاد انحصار و از میان بردن رقبای ضعیف‌تر
  10. تلاش برای فروش محصولات غیرقابل فروش از طریق پیشنهاد ویژه
لازم به ذکر است که برخی از موارد فوق بر اساس تجربیات و درک شخصی می‌باشند و ممکن است برخی مشتریان این فروشگاه با یک یا چند مورد از موارد فوق موافق نباشند.
اگر فکر می‌کنید موارد دیگری نیز می‌بایست در این فهرست گنجانده شوند، یا برخی از آن‌ها نادرست هستند، آن را در نظرات در میان بگذارید.
  • امیرمسعود ایرانی

به روزرسانی خودکار قالب‌ها و افزونه‌های وردپرس

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

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

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

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

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

برای به‌روزرسانی تمامی افزونه‌ها به صورت خودکار، کافی است کد زیر را در فایل functions.php قالب خود یا یک افزونه‌ی جدید درج نمایید و آن را فعال کنید:

add_filter( 'auto_update_plugin', '__return_true' );

همچنین برای به‌روزرسانی تمامی قالب‌های موجود به صورت خودکار این کد را می‌بایست استفاده نمایید:

add_filter( 'auto_update_theme', '__return_true' );

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

add_filter( 'auto_update_translation', '__return_false' );
  • امیرمسعود ایرانی

MVC در برنامه نویسی چیست ؟

امیرمسعود ایرانی | دوشنبه, ۱۷ ارديبهشت ۱۳۹۷، ۰۷:۰۶ ب.ظ | ۰ نظر

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

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

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

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

در مدل MVC کدهای برنامه بر اساس اینکه چه کاری را به انجام می‌رسانند،‌ به سه قسمت تقسیم می‌شوند.

  1. بخش Model یا M
  2. بخش View یا V
  3. بخش Controller یا C

بخش Model وظیفه ذخیره و بازیابی اطلاعات را بر عهده دارد

بخش View کار نمایش اطلاعات به کاربر را بر عهده دارد

بخش Controller سایر وظایف را به انجام می‌رساند

این بخش‌ها با ایجاد ارتباط بین هم، می‌توانند هدف اصلی برنامه را اجرایی کنند.

مزیت استفاده از مدل MVC این است که بسیاری از تغییرات روی برنامه آسان‌تر از قبل به انجام می‌رسد. برای مثال اگر اطلاعات کاربران سیستم در یک View به صورت جدول در یک صفحه وب دیده می‌شود، به آسانی می‌توان یک View جدید ایجاد کرد که همین اطلاعات را به صورت یک فایل اکسل به کاربر تحویل دهد. ایجاد یک View جدید بدون نیاز به انجام تغییرات روی کدهای بخش Controller و Model به انجام می‌رسد.

همچنین اگر بنا باشد که اطلاعات سیستم از زمانی به جای ذخیره شدن در پایگاه MySQL در پایگاه SQL Server یا Oracle به انجام برسد، تنها بخش Model تغییر خواهد کرد و بقیه بخش‌های برنامه به شکل قبل به کار خود ادامه می‌دهند.

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

زبان برنامه‌نویسی سایت دیوار

امیرمسعود ایرانی | دوشنبه, ۱۷ ارديبهشت ۱۳۹۷، ۰۶:۰۴ ب.ظ | ۰ نظر
تشخیص تکنولوژی‌های استفاده شده در سایت‌های مختلف به صورت دقیق از راه دور امکان پذیر نیست. با این حال استفاده از فناوری‌های مختلف و زبان‌های برنامه‌نویسی مختلف، اثراتی روی خروجی سایت بر جای می‌گذارند که کمک می‌کنند اطلاعاتی از آن به دست بیاوریم.
سایت دیوار که کار ثبت و نمایش آگهی‌های اینترنتی را انجام می‌دهد با استفاده از فناوری‌های زیر آماده شده است که در مورد هر یک اطلاعاتی مختصر ارائه می‌کنم:

۱- Express.js - به نظر می‌رسد که سایت دیوار در پشت صحنه از فریم‌ورک برنامه‌نویسی Express.js استفاده می‌کند. این فریم‌ورک با استفاده از زبان جاوااسکریپت و روی Node.js فعالیت می‌کند. استفاده از فریم‌ورک‌ها، می‌تواند توسعه‌ی نرم‌افزار را آسان کند و تغییر و رفع مشکلات را در آینده مدیریت نماید.

۲- Python - Django - علاوه بر فریم‌ورک Express، به نظر می‌رسد که در پیاده‌سازی سایت دیوار از زبان برنامه‌نویسی پایتون و فریم‌ورک Django نیز استفاده شده است. شکل استفاده از این دو فریم‌ورک در کنار هم قابل شناسایی دقیق نیست. ولی استفاده از زبان‌های مختلف برای پشتیبانی سایت‌ها موضوع غیرمتداولی نیست. به ویژه هنگامی که یک زبان یا فریم‌ورک برنامه‌نویسی قابلیت‌های خاصی برای مدیریت برخی فعالیت‌ها داشته باشد.

۳- Nginx - وب سرور Nginx ابزاری است که اغلب به عنوان Reverse Proxy مورد استفاده قرار می‌گیرد. به نظر می‌رسد سایت دیوار هم با استفاده از این وب سرور تلاش کرده است تا بار سنگین موجود روی سایت را مدیریت نماید. کار یک Reverse Proxy این است که درخواست‌های رسیده را از نظر امنیتی ارزیابی کند، در صورت تمایل بدون ارسال درخواست به فریم‌ورک، اطلاعات Cache را به مشتری بفرستد و در نهایت، بار سنگین درخواست‌های متعدد را بین چند وب سرور دیگر تقسیم نماید. همچنین یک Reverse Proxy می‌تواند برای رمزگزاری https درخواست‌ها و پاسخ‌ها به کارگیری شود.

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

سایر فناوری‌های استفاده شده در این سایت بدون دسترسی کامل به تیم توسعه دهنده‌ی آن قابل شناسایی با اطمینان کافی نیستند.

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

استفاده از فرصت‌ها در کنار تهدیدها

امیرمسعود ایرانی | پنجشنبه, ۱۳ ارديبهشت ۱۳۹۷، ۰۲:۵۴ ب.ظ | ۰ نظر

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

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

تا اینکه امروز یک اتفاق جالب افتاد. ایشان مرا به گروهی در واتس آپ اضافه کرد که بیش از ۲۵۰ نفر از متخصصین هم رشته خودشان در آن حضور داشتند.

در این فکر بودم که از گروه بیرون بیایم یا این فعالیت‌هایشان را به واتس آپ گزارش کنم که ناگهان فکری به سرم زد

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

اگر برایتان سوال پیش آمده که این شماره‌ها به چه کاری می‌آید، با توجه به شغلی که این افراد دارند، الان من شماره تلفن ۲۵۰ نفر را که می‌توانند مشتری بالقوه برای کار طراحی سایت باشند را دارم !

باید یک کمپین تبلیغاتی برای این عزیزان آماده کنم :)


در کنار هر تهدید،‌ ممکن است فرصتی مهم مخفی باشد

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

رفع خطای «بروزرسانی دیگری در حال پیش‌روی است» در وردپرس

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

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

  • بروزرسانی دیگری در حال پیش‌روی است
  • Another update currently in process

برای رفع این مشکل دو کار قابل انجام است.

۱- انتظار برای رفع مشکل

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

۲- تغییر وضعیت وردپرس به صورت دستی

برای انجام این کار لازم است تغییراتی در پایگاه داده انجام دهید. جهت این کار phpMyAdmin را باز کنید و جدول options را بیابید. در این جدول برای عبارت «core_updater.lock» جستجو انجام دهید و اگر این مقدار را یافتید، آن را حذف کنید.
دقت کنید که انجام تغییرات در پایگاه داده باید با دقت انجام شود. عدم دقت در این کار می‌تواند به اطلاعات سایت شما آسیب بزند.

عدم رفع مشکل با روش‌های بالا

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

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

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

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

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

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

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

در چنین مواقعی به احتمال زیاد ویروس از انواع قدرتمندتر است که می‌تواند به خوبی خود را در سایت شما مخفی کند تا انواع روش‌های متداول برای یافتن آن‌ها کارساز نباشند.

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

برای مشاوره و کسب اطلاعات بیشتر با ایمیل بنده در تماس باشید: amibct در gmail.com

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

جلوگیری از هک شدن سایت با دقت در هنگام تهیه پشتیبان

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

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

برای مثال بسیار از هکرها تلاش می‌کنند فایل‌هایی با نام‌هایی مشابه فایل‌های زیر را از روی سایت‌های مختلف دانلود کنند:

1.zip
2.zip
a.tar.gz
b.tar.gz
public_html.zip
www.zip
wp-config.php.bak
configuration.php.bak

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

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

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

site-backup-1396-12-15-ok.zip
db-back-up-1396-12-15-sql-amib.zip
old-wp-config-1396-12.php
  • امیرمسعود ایرانی

آیا می‌توان یک شبه برنامه نویس یا طراح سایت شد ؟

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

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

  • یک شبه طراح سایت شوید
  • یک ماهه برنامه نویس شوید
  • در عرض یک ساعت سایت خود را طراحی کنید
  • در عرض یک روز سئو را یاد بگیرید

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

به عبارت دیگر بهتر بود، عنوان تبلیغات بالا به شکل زیر تغییر می‌کرد:

  • فوری پول خود را به ما بدهید

یادگیری طراحی سایت و برنامه‌نویسی به چه مقدار زمان نیاز دارد ؟

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

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

بنابراین اگر این بار با تبلیغات مشابه روبرو شدید، مفهوم واقعی پشت این گونه شعارهای تبلیغاتی را در ذهن خود بیاورید.

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

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

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

نگارش جدید WinMerge

امیرمسعود ایرانی | شنبه, ۵ اسفند ۱۳۹۶، ۰۷:۲۷ ب.ظ | ۰ نظر
نرم‌افزار WinMerge یکی از ابزارهایی است که در سال‌های طولانی جزء ابزارهای ضروری برای کار من بوده است. این برنامه برای مقایسه‌ی دو فایل یا دو شاخه و محتویات آن‌ها کاربرد دارد.
به طور خاص، در هنگام برنامه‌نویسی اگر بخواهید دو فایل را با هم مقایسه کنید، این برنامه کمک بزرگی برای شما به حساب خواهد آمد.
آخرین نسخه از این برنامه چندین سال قبل( سال ۲۰۱۳ ) منتشر شده است و در این مدت به‌روزرسانی جدیدی برای آن در دسترس قرار نگرفته است.
خوشبتختانه امروز متوجه شدم که یک fork از این برنامه در حال به‌روزرسانی و انتشار است. این نسخه با نام WinMerge 2011 به فعالیت و توسعه ادامه داده است.
و خبر بهتر اینکه از نظر عملکرد و ظاهر شباهت زیادی با نرم‌افزار قدیمی دارد.
برای دانلود و استفاده از این برنامه‌ی مفید، اینجا کلیک کنید.
  • امیرمسعود ایرانی