وبلاگ میثم پاسداری هریس

۵ مطلب با موضوع «برنامه نویسی» ثبت شده است

  • ۰
  • ۰

حملات SQL Injection در وب


 توضیحات مختصری به همراه یک مثال از PDO آماده کردم، که از اینجا ( ) می تونید دریافت کنید.


  • میثم پاسداری
  • ۰
  • ۰

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

Overloading توابع و سازنده کلاس ها یک مثال از این کمبود ها در PHP هست.

اما برای اینکه بتوان در PHP این کمبود را جبران کرد تکنیک جالبی وجود که در ادامه به همراه کد توضیح اش آورده شده است.

class User {
public $Username;
function __construct(){
$argv=func_get_args();
switch(func_num_args()){
case 0:
self::__construct1();
break;
case 1:
self::__construct2($argv[0]);
break;
}
}
function __construct1(){
//initialization
}
function __construct2($username){
//do something like assign a value
$this->Username=$username;
}
}

تکه کد بالا کلاس User را نشان می دهد.

برای اینکه این کلاس بیشتر از 2 تابع سازنده داشته باشد، از دو تابع

()func_get_args برای گرفتن پارامتر هایی که به شی از نوع کلاس User در حین فراخوانی پاس داده می شوند و

()func_num_args برای گرفتن تعداد پارامترهایی که پاس داده شده اند،

استفاده می کنیم.

بنابراین به راحتی می توان متناسب با تعداد پارامتر ها توابعی را تعریف کرد.

در مثال بالا اگر دقت کنید تابع construct1() هیچ پارامتری را نمی پذیرد و همان سازنده پی فرض است و

در تابع construct2() اگر دقت کنید یک پارامتر را به عنوان ورودی تابع در نظر می گیرد.

  • میثم پاسداری
  • ۱
  • ۰

برنامه نویس

Team Foundation نرم افزاری است که اولین بار توسط شرکت مایکروسافت معرفی شد تا بشه توسط اون کدنویسی رو در طول اجرای پروژه به شکلی هماهنگ انجام داد و از conflict ها جلوگیری کرد. تو این نوشته قصد داریم سناریوی شبیه سازی یه همچین چیزی رو مرور کنیم!

مدتی هست با دوستم علیرضا درگیر یک پروژه ای هستیم و به شکل از راه دور (Remote)، داریم روی پروژه کار میکنیم، زبان و پایگاه داده ای(همون DBMS) هم که انتخاب کردیم خوشبختانه یا شوربختانه Open Source هستند، به همین دلیل پشتیبانی درست و درمونی هم در مقایسه با مایکروسافت و IBM و... ندارند و ما هم همینطوری الله بختکی! تصمیم گرفتیم برای خودمون یک Team Foundation تدارک ببینیم که هماهنگی های لازم برای کار تیمی انجام بشه. یرای اینکار از چند تا ابزار زیر کنار همدیگه بهره بردیم، اگه به کارتون اومد برا تفریح هم که شده امتحان کنید، جالبه!

  • DropBox : اکانت دراپ باکس و کنارش اون app کوچیک و باحالش کلی مفید هستن! پیشنهاد میکنم حتما امتحان کنید! خودش اتومات براتون فایل ها رو Sync میکنه و هر وقت هم تغییراتی تو فضای ذخیره سازی تون اتفاق افتاد خبر میده! به علاوه اگه پروژه تون تحت وب بود روی فضایی که بهتون میده آپاچی و... رو Config کنید و کدهاتون رو run کنید!
  • Goodsync : نرم افزار جالبی که باهاش فایل های پوشه پروژه روی سیستم رو با فایل های دایرکتوری دراپ باکس (روی سیستم)  از لحاظ ورژن مقایسه میکنه و اونا رو Sync میکنه! (بخش Version Controlling هم تو این قسمت انجام میشه!!!!)
  • Skype : ابزاری که همه آشنا هستن و به درد ما هم خیلی میخوره. 
  • Teamviewer :  تا حالا نقش Remote Desktop رو به خوبی ایفا کرده، ما که راضی هستیم ازش!
  • Notepad++ : البته ما کله شق تر از اونی هستیم که داریم از این به عنوان IDE (مثلا) استفاده کنیم اما شما میتونید از PHPStorm و Eclipseو PHPDesigner و... استفاده کنید.
به این ترتیب شما میتونید به راحتی یه Team Foundation خوب با طعم Dropbox و یک Version Control دست ساز (همون Goodsync و Dropbox Application) رو تجربه کنید و از کارتون لذت ببرید. 

البته روش دیگه هم به این شکل وجود داره که اگه فرصت پیش بیاد در نوشته های آتی بهش اشاره خواهم کرد!

  • میثم پاسداری
  • ۱
  • ۰

نرم افزار های Version Control

در پروژه ها و کارهای تیمی یکی از بزرگ ترین معضلات، سردرگمی اعضای تیم است که نتیجه مشخص نبودن تغییرات توسط دیگر افراد می باشد که در کارهای تیمی نیز طبیعی بوده و اجتناب ناپذر نیز هست. به همین دلیل ابزار های مفید و خوبی طراحی و نوشته شده اند که بتوانند این مشکل را در کارهای تیمی و انجام پروژه از طریق چندین فرد را حل کنند. این ابزار ها که معمولا به صورت یک نرم افزار سبک و کوچک عرضه می شود Version Control نام گرفته و همانطور که از اسم آن هم پیداست ورژن و تغییرات Deadline پروژه رو بررسی و Track می کنند. 

حالا چندتا Version Control خوب : 

  • Version Control مناسب برای توسعه دهندگان وب GIT (لینک +)
  • Version Control مناسب برای تقریبا همه انواع پروژه ها و یکی از قدیمی ترین نوع این ابزار ها CVS (لینک +)
  • Version Control های معروف دیگر همچون SVN، Mercurial،Bazaar و...

این پست در واقع نتیجه مواجه شدنم با این مشکل در اولین پروژه ای هست که به صورت تیمی در حال انجام آن هستیم و حالا خودتون تصور کنید که این اتفاق میمون تیمی در خوابگاه رخ بدهد!!!!

  • میثم پاسداری
  • ۱
  • ۰

Linq یکی از تکنولوژی های جالب و کارآمد مایکروسافت برای کار بر روی انواع مختلف داده ها می باشد که این تکنولوژی از دات نت 3.5 به بعد یعنی از vs2008 به بالا معرفی شد. Linq To SQL نیز بر روی پایگاه داده عمل نموده و مخفف عبارت Language Integrated Query می باشد. تو این مقاله آموزشی به صورت تصویری و مقدماتی نحوه استفاده از Linq To SQL آورده شده است و خواستم اینجا معرفی کنم که دوستان استفاده کنند. برام جالب بود که یک سری از سایت های دانلود کتاب، از این مقاله به عنوان کتاب (!!) یاد کرده بودند!

به هر حال امیدوارم مفید باشه

مشاهده لینک دانلود 

براتون آرزوی بهترین هارو دارم.

  • میثم پاسداری