Node.js تولدی دیگر برای جاوا اسکریپت

جاوا اسکریپت یک زبان برنامه نویسی به شیوه اسکریپت میباشد که در سال 1995 توسط شرکت اینترنتی نت اسکیپ و برای طراحی صفحت داینامیک در سمت کاربر ساخته شد. این زبان شی گرا و رخداد محور است. همچنین این زبان خود با زبان ++c نوشته شده و به عنوان موتور جاوا اسکریپت در هسته مرورگرها قرار گرفته است. یکی ازمعروفترین  موتورهای جاوا اسکریپت موتور V8 شرکت گوگل میباشد که در مرورگر کروم استفاده شده و به عنوان سریعترین موتور جاوااسکریپت معروف است. حال این زبان با همت شخصی به نام رایان دهل (Rayan Dahl) در سال 2010 جای خود را با نام Node.js دربین زبان های برنامه نویسی سمت سرور با همان موتور V8 پیدا کرد اما با سبکی جدید و قابلیت هایی فراتر...

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

node.js آموزش , دانلود node.js

دانلود کتاب


حمایت از نویسنده

ادامه نوشته

تگ های مفهومی در HTML5

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

مفهوم 10 کد وضعیت در HTTP (قسمت اول)

در پروتوکل HTTP یکی از مهمترین اطلاعاتی که در قسمت سرآیند(head) یک پاسخ (response) قرار دارد کد وضعیت (status code) میباشد. در اینجا به توضیح اطلاعاتی که این کدها به ما میدهند میپردازیم.

10.1 اطلاعاتی 1xx

کدهایی که در این دسته قرار میگیرند یک پاسخ موقتی را مشخص میکنند. این پاسخ حاوی کد وضعیت وسرآیند های دلخواه است و با وجود این کد وضعیت نیازی به سرآیند دیگری ندارد.از آنجایی که HTTP/1.0 چنین کد وضعیتی را تعیین نمیکند سرور نباید یک کد وضعیت 1xx به کلاینت یا مشتری ارسال نمایید.

ادامه نوشته

پردازش سنگین را در ند مدیریت کنیم

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

همانطور که میدانید هر پروسه دارای یک خروجی استاندارد(standard output) و یک ورودی استاندارد (standard input) و یک ارور استاندارد(standard error) و از طرفی هر پروسه توسط سیستم عامل با سیگنالهای کنترلی تحت کنترل میباشد لازم به ذکر است که بدانیم هر پروسه یک مشخصه با نام PID دارد که یکتا میباشد. بنابراین با داشتن این اطلاعات ساختن یک پروسه کار چندان مشکلی نیست.

ادامه نوشته

Node.js یا PHP

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

مقایسه در سه جنبه به صورت زیر:

A) جنبه مصرف گرایی : میزان استفاده از منابع سخت افزاری مانند حافظه سریع و پردازنده 

 از این نظر نمیتوان PHP را با NOde مقایسه کرد. برای اثبات این موضوع فایل موجود در لینک زیر را دانلود کرده و بر    روی سرور های PHP و Node ببینید.البته باید به این نکته که آپاچی هم در این مقایسه نقش دارد توجه کرد و از    این  نظر نمیتوان فقط PHP را مقصر اصلی دانست . از طرفی همیشه نام PHP  را در کنار Apache میشنویم.

  دانلود فایل بنچمارک 

B) هزینه توسعه و پیاده سازی:  باید از سرور های مجازی یا اختصاصی استفاده کنید که نسبت به سرورهای  معمولی گران تر میباشند

 از آنجا که نود جاوا اسکریپت در سمت سرور میباشد توسعه دهندگانی که با زبان برنامه نویسی جاوا اسکریپت  آشنا هستند سرعت و دقت بیشتری در روند توسعه خواهند داشت.

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

شی گرایی در جاوااسکریپت ( قسمت پنجم )

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

Object.create = function(o){ 

 function F {}

 F.prototype = o;

 return new F();

};

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

منبع: http://manuel.kiessling.net

ادامه نوشته

شی گرایی در جاوا اسکریپت ( قسمت چهارم)

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

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

Car.prototype;

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

این به این معنیست که میتوانیم یک شی myCar بدون هیچ گونه تابعی داشته باشیم.


ادامه نوشته

شی گرایی در جاوا اسکریپت ( قسمت سوم)

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

در جاوا اسکریپت موجودیت هایی وجود دارند که اشیا را با رفتار های اشتراکی ایجاد مینمایند به این توابع خاص که جزیی موجودیت های جاوا اسکریپت میباشند سازنده (constructor) میگوییم.

حالا یک سازنده برای تولید ماشین میسازیم. حرف اول این سازنده را با شکل بزرگ C آن نمایش میدهیم که مشخص میکند یک سازنده میباشد.

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

قدم اول: استفاده از روش قبلی (که اشیا مستقل تولید میکرد) اما حالا با استفاده از یک سازنده.

function Car () {                                                                  this.honk = function () {                                                        console.log ("honk honk");                                          }                                                                       }

ادامه نوشته

debug کردن برنامه های Node.js با Eclipse

امروز قصد دارم یک روش کاملا تست شده توسط خودم برای عیب یابی برنامه های Node.js را ارائه دهم.

اول از همه به برنامه محبوب برنامه نویسان اندروید، Eclipse نیاز دارید که میتوانید از اینجا دانلود کنید.

اگر این برنامه را از قبل دارید یک workbench جدید به غیر از ++C یا جاوا ایجاد کنید.

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

 حالا در گوشه سمت راست بالا بر روی workbench کلیک کنید.

* در منوی اصلی برنامه روی help کلیک کنید و گزینه install new software را انتخاب کنید.

* در پنجره باز شده بر روی دکمه add  در جلوی محل ورود متن کلیک کنید.

* در پنجره جدید دو محل ورود متن وجود دارد که در اولی با برچسب name، مقدار Google Chrome Developer Tools  را وارد نمایید.
* در محل :Location مقدار http://chromedevtools.googlecode.com/svn/update/dev
را وارد کرده و بر روی Ok  کلیک نمایید.


ادامه نوشته

شی گرایی در جاوا اسکریپت ( قسمت دوم)

در قسمت اول تفاوت شی گرایی در جاوااسکریپت با سایر زبان ها را مورد بحث قرار دادیم در این قسمت به روش ساخت اشیا در جاوا اسکریپت اشاره میکنیم. در شکل سادهaو بی دردسر میتوان یک پیش نمونه برای اشیا را به شکل زیر ایجاد نمود:


 var myCar = {}
     myCar.honk = function() {  
         console.log("honk honk");
    } 
     myCar.drive = function() {  
        console.log("vrooom..."); 
    }
ادامه نوشته