VIP همه چیز درباره برنامه نویسی

وضعیت
موضوع بسته شده است.

☾♔TALAYEH_A♔☽

کاربر نگاه دانلود
کاربر نگاه دانلود
عضویت
2017/05/18
ارسالی ها
35,488
امتیاز واکنش
104,218
امتیاز
1,376
چند توصیه به برنامه نویسان مبتدی


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

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

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

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

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

آشنایی با روش‌های دیباگ کردن کد
در حین کدنویسی، کمتر برنامه نویسی -از مبتدی گرفته تا کاملاً حرفه ای- را می‌توان یافت که باگ تولید نکند. به همین دلیل، یکی از اصلی‌ترین فرایندهایی که در کدنویسی می بایست مد نظر قرار دهیم روش‌های دیباگ کردن یا مشکل یابی کدها است. پیش از این هم توضیح دادیم که باگ ها در برنامه نویسی به چند دسته تقسیم می‌شوند که در ادامه خلاصه‌ای از هر کدام را شرح می دهیم:
- ارورهای سنتکسی: این دست ارورهای زمانی ایجاد می‌شوند که ما دستوری را به سورس کد خود اضافه می‌کنیم که برای آن زبان برنامه نویسی مد نظر تعریف نشده است!
- ارورهای سمنتیک: این دست ارورها زمانی ایجاد می‌شوند که کد نوشته شده از لحاظ سینتکسی درست است اما خروجی کد بر خلاف انتظارات برنامه نویس است مثلاً تقسیم کردن عدد 12 بر عدد 0.
- ارورهای منطقی: ارورهایی از این دست زمانی ایجاد می‌شوند که دستورات نوشته شده توسط برنامه نویس درست هستند و همان تاثیر مد نظر را باز می گرداند اما نتیجه اشتباه است!

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

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

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

انتشار
مؤسس شبکه ی اجتماعی لینکدین -آقای راید هافمن- جمله ی جالبی دارد با این مضمون که «اگر شما از اولین نسخه ی نرم‌افزار خود حالتان بهم نخورد، شک نداشته باشید که نرم‌افزار خود را خیلی دیر به بازار عرضه کرده اید!» بسیاری از افرادی که تازه وارد دنیای برنامه نویسی می شوند، از این که اولین نسخه ی نرم‌افزار خود را به دیگران عرضه کنند ابا دارند چرا که دوست دارند اولین کارشان واقعاً حرفه‌ای باشد. در عمل، چنین چیزی امکان‌پذیر نیست و تا زمانی که شما نرم‌افزار خود را منتشر نکنید، باگ ها، مشکلات و نواقص آن معلوم نخواهد شد.

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

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

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

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

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

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

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

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

اگر هم مسائل شغلی و درآمدی را نادیده بگیریم، با یادگیری اصول برنامه نویسی شما از ذهنی تحلیلی برخوردار خواهید شد که علاوه بر لـ*ـذت بردن از کدنویسی، در سایر بخش های زندگی هم می توانید تصمیمات به مراتب منطقی تر، اثربخش تر و بهتری بگیرید و در نهایت به فردی مبدل خواهید شد که از تفکر انتقادی برخوردار است یعنی مسائل را از زوایای مختلف سنجیده سپس تصمیم می گیرد که صرفا همین یک قابلیت بسیار ارزشمند خواهد بود!

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

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

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



ارادتمند
بهزاد مرادی
مدرس سکان آکادمی
 
  • پیشنهادات
  • ☾♔TALAYEH_A♔☽

    کاربر نگاه دانلود
    کاربر نگاه دانلود
    عضویت
    2017/05/18
    ارسالی ها
    35,488
    امتیاز واکنش
    104,218
    امتیاز
    1,376
    بسم الله.png


    {{مقالات برنامه نویسی}}

    ارسال هرگونه پستی ممنوع می باشد.

    منبع: نویا سیستم

     

    ☾♔TALAYEH_A♔☽

    کاربر نگاه دانلود
    کاربر نگاه دانلود
    عضویت
    2017/05/18
    ارسالی ها
    35,488
    امتیاز واکنش
    104,218
    امتیاز
    1,376
    ویژگیهای PHP 6
    در زمان نگارش این متن، PHP 6 در نسخه بتا یا آزمایشی خود قرار دارد و قرار است تا پایان سال 2007 میلادی بیرون داده شود. تصمیم بر سر اینکه آیا این نسخه می بایست نسخه ای اصلی باشد (نسخه 6) یا نسخه ای میانی، توسط بسیاری مورد بحث قرار گرفته است و آنطور که بنظر می رسد بسیاری از آزمایش کنندگان این نسخه، آن را نسخه ای اصلی می دانند چرا که حداقل یک ویژگی مهم به آن اضافه شده است: پشتیبانی از یونیکد. در هر صورت، در دنیای برنامه نویسی، عبارت تغییر مهم، بیانگر چشمگیر و قابل حس بودن است در نتیجه نباید اجازه داد تا ویژگیهای مهم دیگر اضافه شده به این نسخه، نادیده گرفته شوند. لیستی از تغییرات مهمی که همراه این نسخه ارائه شده اند در زیر آورده شده است:

    • پشتیبانی از یونیکد: پشتیبانی از یونیکد در این نسخه اضافه شده است که باعث می شود تا ساخت برنامه های چند زبانه راحت تر صورت گیرد.
    • ارتقای امنیت: افزایش امنیت پیشرفت زیادی در این نسخه کرده است و بطرز چشمگیری منجر به کاهش اشتباهات امنیتی شده است که شاید بتوان گفت ایراد این زبان نبوده بلکه از اشتباهات برنامه نویسان نامتجرب ناشی می شدند. این مسائل در فصل 2 مورد بحث قرار خواهند گرفت.
    • ویژگیهای و سازه های جدید زبان: تعدادی از ویژگیهای دستوری جدید به این نسخه اضافه شده اند که مهمترین آنها شامل، متغیرهای صحیح نوع 64 بیتی، ساختار جدید foreach برای آرایه های چند بعدی و پشتیبانی از break و label ها. برخی از این ویژگیها در فصل 3 بررسی خواهند شد.
    در زمان نگارش این کتاب، محبوبیت PHP در اوج خود قرار دارد. بر طبق گزارشات Netcraft، PHP بر روی بیش از 20 میلیون دامنه نصب شده است. بر طبق گزارشات شرکت E-Soft، PHP مشهورترین ماژول Apache است که در بیش از 40 درصد از از سیستم های Apache نصب شده است.

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

    توجه: امکان دارد تعجب کنید چرا تنها از نسخه های 4، 5 و 6 در این فصل صحبت شد. و ممکن است این سوال نیز پیش آید که آیا نسخه آخر، مهمترین نسخه این زبان نیست؟ درحالیکه شما را به استفاده از آخرین نسخه پایدار این زبان تشویق می کنیم، ولی نسخه های 4 و 5 مورد مقبولیت و استفاده زیادی قرار گرفته اند و احتمال آنکه خیلی زود از صحنه زقابت خارج شوند پایین خواهد بود. در نتیجه داشتن دیدی در مورد قابلیتهای هر نسخه و محدودیتهای آنها، در عمل ایده خوبی می باشد، بخصوص در صورتیکه با مشتریانی کار کنید که تمایلی به استفاده از بروزترین تکنولوژیهای PHP را ندارند.
     

    ☾♔TALAYEH_A♔☽

    کاربر نگاه دانلود
    کاربر نگاه دانلود
    عضویت
    2017/05/18
    ارسالی ها
    35,488
    امتیاز واکنش
    104,218
    امتیاز
    1,376
    تاریخچه PHP
    ریشه PHP به سال 1995 میلادی بر می گردد زمانیکه یک برنامه نویس مستقل به نام راسموس لردورف (Rasmus Lerdorf)، اسکریپتی را به زبان Perl/CGI نوشت که توسط آن توانست دریابد چه تعداد بازدید کننده در حال خواندن رزومه آنلاینش هستند. اسکریپت وی دو کار را انجام میداد: اطلاعات کاربران را ثبت می کرد و تعداد بازدید کننده ها را در صفحه نمایش می داد. همانطور که امروزه می دانیم، به دلیل آنکه وب در آن زمان تکنولوژی جوانی محسوب می شد، ابزارهایی نظیر این، در آن زمان وجود نداشتند و در نتیجه کاربران زیادی از طریق ایمیل از لردورف در خواست کردند تا اسکریپت خود را در اختیار آنها قرار دهد. در نتیجه لردورف شروع به ارسال ابزار خود برای آنها کرد و نام آن را PHP یا صفحه شخصی نامید (Personal Home Page).

    شهرت و موفقیت ابزار PHP، لردورف را مجبور می کرد تا توسعه این زبان را ادامه دهد. شاید اولین تغییراتی که بعنوان اولین ویژگی جدید در این زبان صورت گرفت، تبدیل داده های وارد شده از طریق یک فرم HTML به متغیرهای سمبولیک بود که کار انتقال به سیستمهای دیگر را آسان تر می کرد. برای انجام اینکار، لردورف تصمیم گرفت تا بجای استفاده از Perl، از زبان C استفاده کند. اوج تغییرات در این زبان، در نوامبر سال 1997 میلادی اتفاق افتاد که همراه با نگارش نسخه PHP 2.0 یا مفسر فرم بود (PHP/FI). افزایش شهرت این زبان برنامه نویسی، سبب شد تا برنامه نویسان بسیاری از سراسر جهان، در توسعه PHP و ارائه نسخه 2.0 شرکت کنند.

    نسخه جدید PHP بسیار مشهور شد و یک هسته جدید از برنامه نویسان خیلی زود به لردورف ملحق شدند. آنها با در نظر گیری مفاهیم بنیادین این زبان که شامل پیاده سازی مستقیم کدهای PHP در کدهای HTML بود، موتور پردازشگر این زبان برنامه نویسی را از نو نوشتند که منجر به تولدی جدیدی از PHP به نام PHP 3.0 شد. حوالی سال 1998، نسخه 3.0 روانه بازار شد و بیش از 50.000 کاربر در حال استفاده از PHP بودند تا صفحات سایت خود را ارتقای دهند.

    ظرف دو سال، توسعه این زبان با گامهای بلندی در حال انجام بود بطوریکه صدها تابع به این زبان اضافه شدند و تعداد کابران نیز در حال فزونی بود. اویل سال 1999 میلادی، Netcraft، شرکتی در خصوص تحلیل و بررسی های آمارهای اینترنتی، گزارش داد که حداقل یک میلیون کاربر در اینترنت، در حال استفاده از PHP هستند که همین آمار منجر شد تا این زبان بعنوان یکی از مشهورترین زبانهای اسکریپت نویسی در جهان شناخته شود. شهرت PHP حتی از سطح توقع برنامه نویسان آن نیز فراتر رفت بطوریکه بزودی مشخص شد که کاربران تمایل دارند تا از PHP برای قدرت دهی بیشتر به نرم افزارهایشان استفاده کنند. دو برنامه نویس اصلی PHP به نامهای زیو سوراسکی (Zeev Suraski) و اندی گاتمنز (Andi Gutmans)، در پی آن بودند تا در مورد آنکه چطور PHP کار می کند تفکر مجدد صورت گیرد. اوج این ماجرا زمانی صورت گرفت که پردازشگر PHP از نو نوشته شد و نام آن موتور اسکریپت Zend نام گرفت. نتیجه این کار، در نسخه 4 بیرون داده شد.

    توجه: علاوه بر آنکه سوراسکی و گاتمنز، رهبران اصلی توسعه موتور Zend هستند و همچنین نقش اصلی را در هدایت و پیشرفت کلی زبان PHP داشته اند، آنها همچنین موسسین شرکت زند تکنولوژی نیز می باشند
    (Zend the PHP Company). شرکت زند اصلی ترین ارائه دهنده محصولات و خدمات برنامه نویسی، انتشار و نرم افزارهای مدیریتی تحت PHP است. از سایت آنها دیدن کنید تا با خدمات آنها بیشتر آشنا شوید و همچنین سایت آنها منابعی رایگان بسیاری در خصوص آموزش دارد.
     

    ☾♔TALAYEH_A♔☽

    کاربر نگاه دانلود
    کاربر نگاه دانلود
    عضویت
    2017/05/18
    ارسالی ها
    35,488
    امتیاز واکنش
    104,218
    امتیاز
    1,376
    SRAM، DRAM، و cache
    المان اساسی RAM استاتیک (یا SRAM)، واحد سلول ذخیره سازی است که از تعدادی سلول حافظه تشکیل شده است که هر کدام از آنها، یک بیت را در مدارات فلیپ فلاپ خود نگهداری می کنند. خطوط آدرس، اطلاعات آدرسی را که می بایست رم از آنها برای ذخیره سازی یا بازیابی اطلاعات، استفاده کند را نشان می دهد. خطوط کنترل خواندن و نوشتن، مشخص می کند که اطلاعات ذخیره شوند یا بازیابی شوند. خطوط داده نیز، داده ها را در هر دو طرف منتقل می کند. دستگاه های دیگری که در یک واحد ذخیره سازی قرار دارند شامل رجسترهای آدرس، دیکدر، رجیستر بافر حافظه و درایور هایی به شکل مبدلها یا تقویت کننده ها هستند. واحد SRAM، مادامیکه که جریان الکتریکی جریان دارد، محتویات خود را حفظ خواهند کرد و هنگامیکه جریان الکتریکی قطع شود، محتویات نیز از بین خواهند رفت.

    اکثرا رم های سیستمی، از RAM دینامیک (یا DRAM) تشکیل شده اند. این حافظه ها نسبتا ارزانتر بوده از SRAM ها بوده چراکه هر بیت توسط یک خازن ذخیره سازی می شود. هر سلول DRAM از یک خازن برای نگهداری محتویات یک بیت و یک ترانزیستور برای ویرایش یا بازیابی محتویات بیت استفاده می کند. یک پالس جریان الکتریکی بطور پیوسته سلولهای حافظه را بروز رسانی می کند. چنانچه این جریان الکتریکی قطع شود، اطلاعات نیز از بین خواهند رفت. هر زمان که اطلاعات خوانده می شوند، خازن نگهدارنده اطلاعات، محتویات خود را از دست می دهد و اصطلاحا دشارژ می شود. DRAM در بسته بندی 30 یا 70 پینی بصورت تک ردیفه (SIMM) و یا دو ردیفه (DIMM) بسته بندی می شوند.

    انواع دیگر حافظه رم شامل رم cache سطح 1 (L1) یا رم cache سطح 2 (L2) می باشد. حافظه cache از سلولهای SRAM تشکیل شده است. از آنجاییکه cache بسیار نزدیک به CPU بوده، در نتیجه باید زمان دسترسی فوق العاده پایینی داشته باشد. رم cache L1، بعنوان رم داخلی CPU تعریف می شود در حالیکه رم cache L2 بعنوان cache ثانویه یا حافظه خارجی CPU تعریف می شود. طرحهای جدید شامل رم cache سطح 3 (L3)، و رم cache سطح 4 (L4) می باشد. رم نگهدارنده (PRAM) از یک باتری برای نگهداری اطلاعات استفاده می کند و محتویات خود را حتی پس از قطع کامل منبع تغذیه، نگاه خواهد داشت.
     

    ☾♔TALAYEH_A♔☽

    کاربر نگاه دانلود
    کاربر نگاه دانلود
    عضویت
    2017/05/18
    ارسالی ها
    35,488
    امتیاز واکنش
    104,218
    امتیاز
    1,376
    سیستم عامل چیست؟
    operating-system.jpg

    مهمترین برنامه ای که در یک کامپیوتر وجود دارد، سیستم عامل است (OS). یک سیستم عامل، برنامه ای است که توسط زبان در سطح متوسط نظیر C یا ++C نوشته شده است که توابع و پارامترهایی را تجویز می کنذ که به کامپیوتر خواهد گفت چگونه اجرای فیزیکی خودش را درون واحدهای منطقی، سازماندهی کند، حافظه را مدیریت کند و با محیط بیرونی و کاربران کامپیوتر، تعامل بر قرار کند.

    مثالهایی از سیستم های عامل شامل سیستم یونیکس و نسخه های متعدد آن، سیستم عامل ویندوز و سیستم عامل Mac می باشد. زمانیکه کامپیوتری در حال بالا آمدن است، در ابتدا سیستم عامل را از دیسک، به حافظه بارگذاری می می کند. سیستم عامل می تواند درون هارد دیسک، یا یک CD-ROM یا هر وسیله الکترونیکی دیگری قرار داشته باشد.

    فلب اصلی سیستم های عامل، kernel است. Kernel یونیکس، بخش بسیار کوچکی از سیستم عامل یونیکس را تشکیل می دهد که این امکان را می دهد تا از یونیکس در بسیاری از کامپیوترها استفاده شود (از کامپیوترهای خانگی با لینوکس گرفته تا ابر کامپیوتر هایی با UNICOS). چنانچه جایی از کار سیستم عامل به مشکل حادی برخورد کند، سیستم عامل به حالت ترس خود خواهد رفت. در اصطلاح گفته می شود که سیستم عامل هنگ کرده است.
     

    ☾♔TALAYEH_A♔☽

    کاربر نگاه دانلود
    کاربر نگاه دانلود
    عضویت
    2017/05/18
    ارسالی ها
    35,488
    امتیاز واکنش
    104,218
    امتیاز
    1,376
    Cygwin چیست؟
    cygwin.jpg

    یک برنامه نویس ++C بدون تجربه در زمینه Unix، از بسیاری جهات، ناپخته است. انواع مختلفی از سیستم عامل یونیکس در اینترنت بصورت رایگان موجود است و می توانند بسادگی بصورت مجزا یا در مد بوت دوگانه به همراه ویندوز بر روی لپ تاپ ها و کامپیوترهای خانگی نصب شوند. Fedora Core، CentOs، و BSD مثالهایی از این سیستم عامل هستند.


    Cygwin برای کاربران ویندوز
    بسته نرم افزاری cygwin، به کاربران ویندوز این امکان را می دهد تا از محیط Unix در محیط ویندوز استفاده کنند و از کتابخانه های یونیکس و برنامه های آن در محیط ویندوز استفاده نمایند. Cygwin، بطور موثر کامپیوتری می سازد که بر روی کامپیوتر شما تحت سیستم عامل ویندوز در حال اجرا است. برای مجزا کردن این دو سیستم عامل از هم، به سیستم عامل یونیکس، "محیط" خواهیم گفت. کاربران MATLAB با مفهوم یک محیط محاسباتی آشنایی دارند. cygwin نام خود را از سه جزء گرفته است:

    • 1. Gnu: مخفف عبارت "Gnu's Not Unix" است یعنی GNU یونیکس نیست. GNU سیستم عاملی رایگان است که از هسته kernel، ابزارهای سیستمی، کامپایلرها، و برنامه های کاربردی تشکیل شده است. توسعه این سیستم عامل در سال 1983 نوسط ریچارد استالمن اعلام شد.
    • 2. Cygnus: نام یک پرنده زیبا است.
    • 3. Windows: سیستم عاملی که توسط شرکت مایکروسافت تولید شد.
    بسته cygwin می تواند بسادگی و بصورت کاملا رایگان از اینترنت دانلود و نصب شود. آدرس سایت دانلود
    Please, ورود or عضویت to view URLs content!
    است. این بسته شامل برنامه ها و ابزارهای گرانبهایی است که شامل کتابخانه گرافیک X11 و یک کامپایلر C++ است.
     

    ☾♔TALAYEH_A♔☽

    کاربر نگاه دانلود
    کاربر نگاه دانلود
    عضویت
    2017/05/18
    ارسالی ها
    35,488
    امتیاز واکنش
    104,218
    امتیاز
    1,376
    کامپایل و تولید فایل اجرایی
    برای نوشتن دستورات به یک زبان سطح متوسط، در ابتدا نیاز داریم تا یک یا چند فایل که توصیف کننده برنامه اصلی، سابروتین ها و داده های مورد نیاز است را تولید کنیم. فایلها با استفاده از یک ویرایشگرهای متنی یا هر ویرایشگر دیگری می توانند تولید شوند. این فایلها، تشکیل دهنده سورس کد برنامه می باشند.

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

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

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

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

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


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

    ☾♔TALAYEH_A♔☽

    کاربر نگاه دانلود
    کاربر نگاه دانلود
    عضویت
    2017/05/18
    ارسالی ها
    35,488
    امتیاز واکنش
    104,218
    امتیاز
    1,376
    زبان اسمبلی چیست؟
    پردازشگر مرکزی طوری طراحی شده است تا تنها به مجموعه دستورات خاصی که به زبان ماشین نوشته شده اند و بصورت رشته ای از اعداد باینری هستند پاسخ دهد. یک دستور از کدهای عملیات به همراه آرگومانهای یا پارامترهای آن تشکیل شده است. بعنوان مثال، عدد باینری 67099098095 ممکن است معادل درخواست عملیات جمع ریاضی باشد که با عدد 98 نشان داده می شود که محتویات حافظه در آدرس 670 را با محتویات حافظه در آدرس 990 جمع می کند و نتیجه را در آدرس 095 قرار می دهد.


    زبانهای سمبولیک
    زبانهای سمبولیک از کلمات به جای کدهای عملیاتی استفاده می کنند و به عملیات، با عبارات سمبولیک نظیر add اشاره می کنند. یک دستور در سطح پایین ترین زبان برنامه نویسی سمبولیک، زبان اسمبلی نامیده می شود که به توسط برنامه ای مترجم به نام اسمبلر به زبان ماشین (کد هدف) ترجمه خواهد شد. دستورات در یک زبان اسمبلی شامل بارگذاری متغیرها از مکانی در حافظه یا برعکس قرار دادن محتویات متغیرها در مکان خاصی در حافظه می باشد. تناظر میان دستورات زبان اسمبلی و دستورات زبان ماشین، تناظری یک به یک است: هر فرمان، توسط یک دستور پیاده سازی می شود. زبان اسمبلی، سطح پایین ترین محاوره قابل فهم را میان خود و یک انسان دارد.

    نمونه ای از یک دستور در زبان اسمبلی: mov b2, 3Ah، که به معنای "مقدار 3A را به رجیستر b2 در پردازشگر انتقال بده". کد اسمبلی برای پیاده سازی الگوریتم bubble-sort که اعضا یا اسامی را در یک لیست مرتب می کند به قرار زیر است:


    bs proc array:DWORD,len:DWORD
    mov ecx, len
    mov edx, array
    bs_o:
    xor ebp, ebp
    bs_i:
    mov eax, DWORD PTR [edx+ebp*4+4]
    cmp DWORD PTR [edx+ebp*4], eax
    jb @F
    xchg eax, DWORD PTR [edx+ebp*4]
    mov DWORD PTR [edx+ebp*4+4], eax
    @@:
    add ebp,1
    cmp ebp, ecx
    jb bs_i
    loop bs_o
    pop ebp
    retn 8
    bs endp
    مرجع: Bubble sort

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

    بسیار راحت تر خواهد بود تا از زبانهای سمبولیک سطح بالا که از کلمات انگلیسی و علائم ریاضی استفاده می کنند، برای برنامه نویسی استفاده شوند. بعنوان مثال:

    • زبان بیسیک که در اواسط دهه 60 میلادی طراحی شد و هنوز هم از ان استفاده می شود.
    • FORTRAN افسانه ای (به معنای مترجم فرمول) که در اواسط دهه 50 میلادی طراحی شد و هنوز هم استفاده هایی دارد.
    • پاسکال، ظهور آن اوایل دهه 70 میلادی بود.
    • زبان C که در اواسط دهه 70 بوجود آمد.
    • زبان C++ که در اواسط دهه 80 میلادی ساخته شد.
    زبان های برنامه نویسی دیگری نیز برای استفاده در ساخت برنامه های کاربردی بوجود آمده اند که از ذکر آنها در اینجا خود داری می کنیم. از آنجاییکه زبانهای برنامه نویسی C و C++ اجازه دستکاری در بیتها، بایتها و آدرسهای حافظه را می دهند، به آنها زبانهای برنامه نویسی سطح متوسط اطلاق می شود. رتبه بندی زبان های برنامه نویسی از نظر کارایی و راحتی، می تواند موضوع بحث بزرگی باشد.

    در یک زبان برنامه نویسی سمبولیک، عباراتی نظیر A=A+B به چشم می خورند که به معنای افزودن B به A است. پردازشگر این کار را از طریق چند گام انجام می دهد:

    • محتویات باینری A را از RAM بردار و آن را درون رجیستر R1 در پردازشگر کپی کن.
    • محتویات باینری B را از RAM بردار و آن را درون رجیستر R2 در پردازشگر کپی کن.
    • محتویات R1 و R2 را در Adder کپی کن و عملیات جمع را انجام بده و حاصل را در R3 قرار بده.
    • محتویات R3 را به آدرس A در RAM کپی کن.
    • مشاهده می کنیم که تناظر یک دستور زبان سطح بالا به دستورات زبان ماشین، تناظری یک به چند است. این به معنای آن است که هر دستور زبان برنامه نویسی سطح بالا، با چندین دستور زبان ماشین پیاده سازی می شوند.
     

    ☾♔TALAYEH_A♔☽

    کاربر نگاه دانلود
    کاربر نگاه دانلود
    عضویت
    2017/05/18
    ارسالی ها
    35,488
    امتیاز واکنش
    104,218
    امتیاز
    1,376
    ویژگیهای PHP 5
    نسخه 5 از PHP تحول بزرگی دیگری در این زبان برنامه نویسی بود. اگرچه نسخه های قبلی شامل تعداد زیادی از کتابخانه هایی بودند که به تازگی اضافه شده بودند، ولی نسخه 5، شامل ارتقای توابع موجود و افزودن چندین ویژگی بود که امکان ارتباط این زبان را با معماری های دیگر زبانهای برنامه نویسی پیشرفته می داد:

    قلبلیتهای شی گرایی بطور وسیعی پیشرفت کرده بودند: ارتقای قابلیت های شی گرایی در PHP، قابل رویت ترین ویژگی در نسخه بود. نسخه 5 شامل افزودن تعداد زیادی از توابع می شد، توابعی نظیر سازنده ها و نابود کننده ها، تکثیر اشیاء، تجرید سازی کلاس ها (Class Abstraction)، حوزه متغیرها، رابط ها، و ارتقای طریقه مدیریت کردن اشیا توسط PHP. فصول 6 و 7، مقدمه هایی بر این موضوعات خواهند بود.

    مدیریت خطاهای try/catch: طریقه مدیریت دستی خطاها در زبانهای برنامه نویسی سازمان یافته، خطا پذیر و سخت می باشد. برای غلبه بر این مشکل، نسخه 5، از مدیریت خطاها پشتیبانی می کرد. مدیریت خطاها در بسیاری از زبانهای برنامه نویسی نظیر C++، C#، Phyton، و Java، ابزاری عالی را برای استاندارد سازی منطق گزارش خطاها بدست می دهد. در فصل 8 بیشتر با این موضوع آشنا خواهیم شد.

    ارتقای پشتیبانی از XML و وب سرویس ها: پشتیبانی از XML، با استفاده از کتابخانه libxml2 ارائه شد و نیز توابعی جدید و نسبتا آینده دار برای خواندن و دستکاری در XML ارائه شدند. نام این افزونه جدید SimpleXML نام دارد. افزونه SOAP نیز با این نسخه ارائه شد. در فصل 20، با این دو افزونه به همراه تعدادی دیگر از افزونه های وب سرویس بیشتر آشنا خواهید شد.

    پشتیبانی از SQLite: ویژگی که واقعا حیاتی نبود ولی برنامه نویسان با محبت تمام این ویژگی را برای پشتیبانی از نسخه ای خلاصه شده از دیتابیس سرور به نام SQLite فراهم کردند. SQLite راه حلی ساده را برای برنامه نویسانی که به دنبال استفاده از دیتابیس هستند ولی نمی خواهند با پیچیدگیهای مدیریتی آن دست و پنجه نرم کنند فراهم می کند. پشتیبانی PHP از این موتور قدرتمند پایگاه داده، در فصل 22 مورد بحث قرار خواهد گرفت.

    توجه: ارتقای قابلیتهای شی گرایی که در نسخه PHP 5 ارائه داده شدند منجر شد تا قدرت این زبان برنامه نویسی افزایش بیشتری یابد: این قابلیتها این امکان را می دادند تا با استفاده از این زبان فریم ورک بتواند ساخته شود.

    با بیرون آمدن نسخه 5، شهرت PHP به بالاترین حد خود در آن زمان رسید. طبق گزارشات Netcraft، PHP تقریبا در 19 میلیون دامنه نصب شده بود. PHP همچنین مشهورترین ماژول Apache بود که تقریبا روی 54 درصد از کل سیستمهای Apache نصب شده بود. این آمار طبق گزارشات شرکت E-Soft ارائه شده است.
     
    وضعیت
    موضوع بسته شده است.

    برخی موضوعات مشابه

    بالا