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

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

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

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

دانلود کتاب


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

ادامه نوشته

مفهوم 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..."); 
    }
ادامه نوشته

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

زبان های برنامه نویسی شی گرا به دو صورت اشیا را میسازند.اگر myCar نمایش بیتی اتومبیل واقعی باشد پس دارای صفات رنگ و وزن بیتی و عمل های راندن و بوق زدن بیتی هم میباشد. در یک برنامه واقعی این اتومبیل را میتوان در یک بازی ماشین سواری که توسط یک بازی کن رانده میشود در نظر گرفت. حالا ما قصد داریم در باره استفاده این ماشین و رفتارش در برنامه صحبت کنیم.

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

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

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

myCar.honk();

مفسر جاوا با دیدن این دستور به کلاس ماشین رفته و تعیین میکند که باید چه دستوراتی را اجرا نماید.همان دستوراتی که در متد honk تعریف شده است.

حالا به جاوا اسکریپت میرویم.

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

اگر در جاوا بخواهیم 30 تا شی ماشین بسازیم ، این رابطه کلاس-شی برای ما 30 ماشین با قابلیت راندن و بوق زدن که هر کدام 30 تا متد honk و drive را اجرا میکنند، فراهم میکند.

اما در جاوا اسکریپت چگونه به این هدف برسیم ؟ به جای رابطه کلاس-شی در جاوا اسکریپت رابطه شی-شی تعریف میشود.

 

منبع: iNote

ادامه نوشته

یک برنامه رنگی به زبان PHP

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

برنامه نویسی چیست و برنامه نویس کیست؟

میگویند دموکراسی روشی است معین برای رسیدن به نتایج نامعین.ولی بهتر است بدانیم برنامه نویسی یا برنامه سازی(programing) بر عکس دموکراسی روشی است نامعین برای رسیدن به نتایج معین به همین دلیل همه برنامه نویسان میدانند نتیجه یک برنامه چه خواهد شد ولی هر کس روش خودش را دارد....

ادامه نوشته

متغیر های از پیش تعیین شد در PHP

پی اچ پی تعدادی متغیر را از پیش تعریف کرده که شامل متغیر های درونی و خارجی میباشد بعضی از این متغیر ها در همه جا در دسترس میباشند.در زی به بررسی این متغیر ها میپردازیم.

> Superglobals :  این متغیرها در همه جای اسکریپت های پی اچ پی قابل دسترسی میباشد

 > $GLOBALS : یک متغیر جهانی است که در همه جای اسکریپت در دسترس میباشد و اولویت دارد

  function test(){

     $local = "this is local variable";

     echo ' locale here is local. ' . $local ;

     echo ' locale here is global. '. $GLOBALS['local];

 }

  $local = "this is global";

  test();

 >oute  

     local here is local. this is a local variable

    local here is global.this is global. 

ادامه نوشته

خلاصه و مفید برای طراحان و برنامه نویسان وب

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

این سایت دارای مثال های متنوع برای تمام تگ های HTML به همراه تمام المنت های CSS دارد که میتوانید نمایش این مثالها را به صورت آنلاین ببینید و خودتان در آنها تغییر ایجاد کنید.میتوانید در http://www.w3schools.com  اطلاعات کاملی را تجربه کنید.

منبع: iNote

برنامه نویسی هم به فن آوری نیاز دارد؟

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

همیشه سادگی و راحتی در برنامه نویسی لحاظ نمیشود:

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

برنامه نویسی [2] Programing

با سلامی دوباره 

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

ادامه نوشته

برنامه نویسی [Programing [1

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

 

ادامه نوشته