آموزش حرفه ای php

آموزش کامل و حرفه ای php به زبان فارسی

آموزش حرفه ای php

آموزش کامل و حرفه ای php به زبان فارسی

Geek ها چه کسانی هستن ؟

با سلام خدمت همه ی دوستان

امروز درباره گیک ها (Geek کیست) و Nerd کیستها صحبت میکنیم و به تفاوت های این دو مفهموم می پردازیم .

چگونه تفاوت بین نرد و گیک ها را بیان کنیم. شما یک نرد (Nerd) هستید یا یک گیک (Geek) هستید. نرد یا گیک بودن یعنی تعریف از کسی یا مخالفت کردن با کسی؟؟!!

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

آشنایی با مفهوم گیک – Geek

بگذارید به ریشه یا منشا کلمه ی گیک (Geek) برگردیم . تقریبا به اوایل دهه 1900 زمانی که کارناوال های سیار معروف بودند .در این کارناوال ها یک اجرا کننده ای وجود داشت که او را گیک (Geek)می نامیدند . این گیک (Geek) شغلش اجرای کارهای عجیب و غریب و گاهی چندش آور برای سرگرم کردن مردم یک محل بود .

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

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

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

آشنایی با مفهوم نرد – Nerd

و اکنون میخواهم معنی کلمه نرد (Nerd) را به شما بگویم.

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

آموزش هات لینک

با سلام و درود

در این جلسه به معرفی قابلیت hot link در htaccess می پردازیم .

با استفاده از hot link می توانیم از مصرف منابع سایت خود به وسیله ی سایت های دیگر جلوگیری کنیم . خب طبیعتا این عمل باعث می شود ترافیک سایت خودمون بیهوده هدر نره .

فرض کنید من یک عکس در وب سایت شما را دوست دارم و می‌خواهم آن عکس در سایت من نیز قرار بگیرد. اگر من از URL کامل عکس شما در سایتم استفاده کنم، هر بار که کسی از سایت من دیدن می‌کند، عکس از سایت شما دانلود ‌می‌شود. این بدین معناست که من از پهنای باند شما برای عکس‌های سایت خود استفاده می‌کنم. حالا اگر شما محافظ هات لینک (hot link) را فعال کنید، من نمی‌توانم پهنای باند شما را بدزدم.

محافظ هات لینک (hot link) اجازه نمی‌دهد سایت‌های دیگر مستقیما به فایل‌ها و یا تصاویر موجود در سایت شما لینک بزنند. سایت‌های دیگر تنها می‌توانند به فایل‌هایی لینک کنند که شما نوع آنها را مشخص نکرده‌اید.

توجه کنید برای استفاده از این قابلیت نیاز است mod_rewrite را فعال نمایید :

برای مشاهده ی کامل آموزش کلیک نمایید .

آموزش بلاک کاربران با استفاده از htaccess

با سلام و درود

امروز قابلیتی رو معرفی میکنیم به عنوان Deny visitors by referrer .

قابلیت مسدود سازی بازدید کننده (blocking facilities) توسط وب سرویس آپاچی (Apache Web Server) مارا قادر میسازد از دسترسی برخی بازدیدکنندگان که از سایت های دیگر هست جلوگیری نماییم .

اگر به فایل های log سایت اتتون نگاه کرده باشید و متوجه ی افزایش حیرت آور ترافیک شده باشید , به احتمال زیاد سایت شما هک شده و یا فایل های عمومی سایتان(مانند css ها ) در اختیار فردی دیگر و یا در داخل سایتی دیگر  قرار گرفته .

خب برای استفاده از این قابلیت و جلوگیری از دسترسی برخی بازدیدکنندگان نیاز هست mod-rewrite روی سرور شما فعال باشد :

آموزش htaccess

برای مشاهده ی کامل آموزش کلیک نمایید .

Loose Coupling چیست ؟

سلام و احترام

مقاله ی امروز توضیحی درباره ی Loose Coupling  و Tight Coupling است .

اگر برنامه نویس باشید و مقالات و آموزش های  مربوط به برنامه نویس های حرفه ای را دنبال نمایید حتما با اصطلاحاتی تحت عناوین Loose Coupling و Tight Coupling برخورد کرده اید. اما تفاوت این دو مورد در چیست؟

توضیح مختصر

Loose Coupling

Loose Coupling به معنای به حداقل رساندن وابستگی های کلاس به کلاس های دیگری که مستقیما از آن ها استفاده می کند می باشد. در Tight Coupling کلاس ها و آبجکت ها به یکدیگر به شدت وابسته می باشند. در حالت کلی Tight Coupling معمولا ساختار بدی می باشد چرا که انعطاف پذیری و قابلیت استفاده مجدد کد را پایین می آورد و نیز توسعه و تغییر در کد را بسیار مشکل تر می نماید و … .

Tight Coupling

شیئی که Tightly Coupled باشد شیئی می باشد که نیاز دارد تا در مورد بقیه شی ها یا object ها دانش بسیار کمی داشته باشید و معمولا بسیار به ساختار یکدیگر وابسته می باشند. در یک نرم افزار Tightly Coupled تغییر در یک شی معمولا نیازمند تغییر در چندین شی دیگر نیز می باشد. در یک پروژه کوچک به راحتی می توانیم تغییرات را تشخیص دهیم و احتمال اینکه بخشی از کد که نیاز به اصلاح دارد بدون اصلاح بماند بسیار کم می باشد. اما در پروژه های بزرگتر همه برنامه نویس ها وابستگی های درونی آبجکت ها به یکدیگر را نمی شناسند و بنابراین تغییر در یک آبجکت احتمال این که باعث عدم اجرای درست بخش دیگری از برنامه شود را بیشتر می کند. اما هر مجموعه آبجکت های  Loosely coupled به یکدیگر وابسته نمی باشند.

 

مشکلات Tight Coupling

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

  1. تلویزیون بدون ریموت کنترل کار نخواهد کرد
  2. تغییر در  ساختار کلاس تلویزیون نیاز در تغییر کلاس ریموت می باشد
  3. کنترل تنها می تواند کلاس تلویزیون را کنترل کند و برای وسایل دیگر غیر استفاده می شود

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

آموزش دیزاین پترن Factory Design Pattern

سلام خدمت دوستان گلم

امروز شروع میکنیم به معرفی دیزاین پترن فکتوری (Factory Design Pattern) .

اول از همه بگم دیزاین پترن فکتوری (Factory Design Pattern) همانند دیزاین پترن Singleton و Multiton و … یک دیزاین پترن از نوع Creationa است زیرا به نحوه ساخت آبجکت ها به صورت runtime نظارت می نماید .

دیزاین پترن فکتوری (Factory Design Pattern)   این امکان را به ما می دهد که در زمان اجرا (runtime) تصمیمی بگیریم از کدام کلاس باید آبجکت ساخته شود و آن آبجکت را برگرداند  و وظیفه ساخت آین آبچکت ها بر عهده متد factory هست که داخل کلاس دیزاین پترن ما وجود دارد .

تکته مهم اینکه در دیزاین پترن فکتوری تابع سازنده نداریم و روند ساخت آبجکت ها بر عهده همان متد factory است . برای جا افتادن کاربر این دیزاین پترن یک مثال میزنم :

فرض کنید میخواهیم توسط یک کانکشن  به یک Datasource وصل بشیم  و نوع این کانکشن در زمان اجرا توسط کاربر به وسیله ی فرمی که براش قرار دادیم تعیین می شود . (مثلا از نوع xml باشد و یا sql و یا csv , ..) وقتی کاربر نوع مورد نظر خودش را به وسیله ی فرم انتخاب کرد باید یک آبجکت از کلاس مربوطه بسازیم و کانکشن را در اختیار کاربر قرار دهیم تا شروع به کار کند.پس خیلی راحت دیزاین پترن فکتوری به کمک ما می آید و این روند ساخت شی را به صورت runtime انجام می دهد .

به صورت کلی 3 نوع  دیزاین پترن فکتوری وجود دارد :

  1. Simple factory (مانند دو مورد بعدی رسمی نیست)
  2. Factory method
  3. Abstract factory

دیزاین پترن Simple factory :

Simple factories که یک زمانی به static factories معروف بود , سادترین نوع این دیزاین پترن می باشد . گرچه یک دیزاین پترن رسمی نیست ولی در پروژه هایی با مقیاس کوچک و متوسط کاربرد خود را دارد .

Simple factories ها کلاس هایی هستند که می توانند یک کلاس به خصوص را برگردانند (این کلاس ها به product معروف هستند .)

قانون های دیزاین پترن Simple factory : 

  • کلاس های factory باید یک متد استاتیک داشته باشند .
  • متدهای factory باید یک نمونه از کلاس را برگردانند.
  • در یک لحظه باید 1 آبجکت ایجاد و برگردانده شود .

برای مشاهده کامل آموزش کلیک نمایید .