یوشا آل ایوب

دست نوشته ها و تجربیات شخصی

یوشا آل ایوب

دست نوشته ها و تجربیات شخصی

دکتر مصطفی چمران: می گویند تقوا از تخصص لازمتر است، آنرا می پذیرم، اما می گویم آنکس که تخصص ندارد و کاری را می پذیرد بی تقواست!

طبقه بندی موضوعی
تبلیغات
Blog.ir بلاگ، رسانه متخصصین و اهل قلم، استفاده آسان از امکانات وبلاگ نویسی حرفه‌ای، در محیطی نوین، امن و پایدار bayanbox.ir صندوق بیان - تجربه‌ای متفاوت در نشر و نگهداری فایل‌ها، ۳ گیگا بایت فضای پیشرفته رایگان Bayan.ir - بیان، پیشرو در فناوری‌های فضای مجازی ایران

۱۰ مطلب با موضوع «نرم افزار :: پایگاه داده و SQL» ثبت شده است

بدون استفاده از عبارت SET NAMES utf8 در دیتابیس:
enlightened اگر انکودینگ فایل موردنظر UTF8 باشه، تگ meta صفحه UTF8 باشه، charset دیتابیس هم utf8_persian_ci باشه خروجیش صحیحه و میشه این:
آ ب پ ت ث ج چ ح خ د ض ر ز ش

اگر انکودینگ فایل موردنظر UTF8 باشه، تگ meta صفحه UTF8 "نباشه"، charset دیتابیس utf8_persian_ci باشه/نباشه خروجیش میشه این:
آ ب پ ت ث ج چ ح خ د ض ر ز ش

اگر انکودینگ فایل موردنظر UTF8 "نباشه"، تگ meta صفحه UTF8 باشه، charset دیتابیس utf8_persian_ci باشه/نباشه خروجیش میشه این:
� � � � � � � � � � � � � � 

اگر انکودینگ فایل موردنظر UTF8 "نباشه"، تگ meta صفحه UTF8 "نباشه"، charset دیتابیس utf8_persian_ci باشه/نباشه خروجیش میشه این:
Â È Ê Ë Ì Í Î Ï Ö Ñ Ò Ô

enlightened اگر انکودینگ فایل موردنظر UTF8 باشه، تگ meta صفحه UTF8 باشه، اما charset دیتابیس utf8_persian_ci "نباشه" خروجیش صحیحه و میشه این:
آ ب پ ت ث ج چ ح خ د ض ر ز ش

می بینید که حتی بدون استفاده از عبارت SET NAMES utf8 باز هم میشه "خروجی" صحیح رو گرفت.

با استفاده از عبارت SET NAMES utf8 در دیتابیس:
enlightened اگر SET NAMES UTF8 باشه، انکودینگ فایل موردنظر UTF8 باشه، تگ meta صفحه UTF8 باشه، charset دیتابیس utf8_persian_ci باشه خروجیش صحیحه و میشه این:
آ ب پ ت ث ج چ ح خ د ض ر ز ش

اگر SET NAMES UTF8 باشه، انکودینگ فایل موردنظر UTF8 باشه، تگ meta صفحه UTF8 "نباشه"، charset دیتابیس utf8_persian_ci باشه خروجیش میشه این:
آ ب پ ت ث ج چ ح خ د ض ر ز ش

اگر SET NAMES UTF8 باشه، charset دیتابیس utf8_persian_ci "نباشه"، و همه چیز دیگر UTF8 باشن خروجیش میشه این:
? ? ? ? ? ? ? ? ? ? ? ? ? ?

اگر SET NAMES UTF8 باشه، انکودینگ فایل موردنظر UTF8 "نباشه"، تگ meta صفحه UTF8 باشه، charset دیتابیس utf8_persian_ci باشه خروجیش میشه این:
" "

enlightened اما برای نمایش درست کلمات در خود دیتابیس لازمه که از set_charset و SET NAMES UTF8 استفاده کنید.

۰ نظر ۹۹/۰۶/۲۱
یوشا آل ایوب

MSSQL / Azure SQL Database

 

MySQL

 

Oracle Database

 

jdbc, driver, versions, jdk, odbc, ojdbc

۰ نظر ۹۸/۰۲/۲۳
یوشا آل ایوب

 

hsqldb, h2, derby, sqlite compare

۲ نظر ۹۷/۱۲/۲۶
یوشا آل ایوب

 

دیاگرام اتصال و سلسله مراتب کتابخانه JDBC
 

برای بزرگنمایی کلیک کنید.

 

۰ نظر ۹۷/۱۰/۱۵
یوشا آل ایوب

 

برای بزرگنمایی کلیک کنید

PHP skills, back-end developer skills, مهارت های برنامه نویس PHP، roadmap, مهارت های برنامه نویس، programming skills

 

۳ نظر ۹۷/۰۹/۱۱
یوشا آل ایوب

 

1- جهت پشتیبانی از ارث بری چندگانه در PHP میتونید توسط trait ها اون رو شبیه سازی کنید.

trait PHP
{
   public function printPHP()
   {
      echo 'PHP ';
   }
}
trait Java
{
   public function printJava()
   {
      echo 'Java ';
   }
}
trait PHPJava
{
   use PHP, Java;
}
class ProgrammingLanguages
{
   use PHPJava;
}

 

2- اگر در حین کار با Composer یا PHPUnit با خطای module openssl is already installed on Unknown in line 0 مواجه شدید، کافیه اکستنشن openssl رو در PHP.ini غیرفعال کنید:

ویندوز
;extension=php_openssl.dll

لینوکس
;extension=php_openssl.so

۱ نظر ۹۷/۰۸/۱۹
یوشا آل ایوب

 

1- هنگام Multi-thread کردن کدهاتون فراموش نکنید برای دسترسی به اشیاء lazy-initialize(یا همون load on demand) وضعیت نهایی شی باید synchronize باشه تا با مشکل race condition مواجه نشید.

 

2- برای نرمال سازی ستونها و جلوگیری از افزونگی/redundancy داده باید از اصول زیر پیروی کنید:

- هیچ ستونی نباید بیشتر از یک نوع/type داده رو نگهداری کنه. (مثل int + char + float...)

- هیچ ستونی نباید داده های تکراری/مشابه به دیگر ستون ها رو در خودش نگهداری کنه.

- داده هارو در جداول مختلف نگهداری کنید و درصورت لزوم اونهارو توسط کلید خارجی/foreign key بهم متصل کنید.

 

3- جهت افزایش پرفورمنس، همیشه کلاس والد و اینترفیس رو در خطوط قبل از کلاس ارث بر تعریف کنید. در غیراینصورت موتور PHP برای پیدا و پردازش کردن کلاس والد مجبور به انجام عملیات های اضافی خواهد شد. (بر اساس OpCode تولید شده)

interface IData 
{
}

class MyClass implements IData
{
}

نکته: حتی اگر در فایلهای جداگانه تعریفشون می کنید این قائده باز هم باید رعایت بشه.

 

4- یادتون باشه که Dependency Injection نه تنها از طریق Constructor، بلکه از طریق Setter, Interface و Property هم قابل انجامه.

نکته: زمانی از نوع Constructor استفاده کنید که کل کلاس نیازمند اون dependency هستش یا شی dependency نباید در طول life time تغییر بکنه.

 

5- آیا می دونید تابع runkit_function_remove علاوه بر حذف قید تابع(function table)، مقدار حافظه اشغال شده توسط تابع رو هم آزاد می کنه؟

۵ نظر ۹۶/۱۰/۲۱
یوشا آل ایوب

اینها چیزی نیستند جز software bundle، که توسط شرکت ها و گروه های نرم افزاری برای یک هدف جمع آوری شدن. و اون هم فراهم کردن بستری سریع و آسون برای برنامه نویسی.

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


۱ نظر ۹۴/۱۱/۲۱
یوشا آل ایوب

 

پایگاه داده MySQL بدلیل کارایی(performance) بسیار بالایی که داره قادره از انواع(type) مختلف جدول پشتیبانی کنه که به شرح زیر هستن:

  • نوع MyISAM
  • نوع InnoDb
  • نوع Memory
  • نوع Archive
  • نوع BerkeleyDb
  • نوع Example
  • نوع Merge

۲ نظر ۹۲/۱۲/۱۸
یوشا آل ایوب

 

1- هرگز فایل های PHP ضمیمه شده رو با پسوند inc. ذخیره نکنید. یعنی name.class.inc رو به name.class.php تغییر بدید. و یا از .HTAccess یا HT برای تعیین سطح دسترسی inc. استفاده کنید.

با اینکار از دسترسی مستقیم و خوندن محتوای فایل توسط URL/Address bar جلوگیری می کنید.

 

2- حتاًالمکان تگ های اضافی و فضاهای خالی رو حذف و از باز و بسته کردن بیش از حد تگهای <?php ?> سرور خودداری کنید. (مخصوصاً در پروژه های سنگین)

اینکار به مقدار قابل توجهی در سرعت پردازش سورس PHP تون تاثیر میزاره.

 

3-  کلاس را با متد __construct یا نام کلاس شروع کنید و با متد __destruct پایان بدید. اگر هم از ارث بری کلاس استفاده نمی کنید، کلاس و متدها رو با کلمه کلیدی final آغاز کنید.

۴ نظر ۹۲/۰۱/۰۵
یوشا آل ایوب