Monthly Archives: تیر 1394

حدیث هایی در مورد دوستی

 

 


بشر دوستی

1- رسول خدا (صلی الله علیه و آله و سلّم) فرمودند: پس از ایمان به خداوند سرآمد تمام اعمال عاقلانه، بشر دوستی و نیکی به همه ی مردم است خواه خوب و درستکار باشند یا فاسق و گناهکار.

منبع : مستدرک 2 ،ص67

2- پیشوای گرامی اسلام حضرت ابوالحسن (علیه السّلام) فرموده اند: تمام مردم روی کره ی زمین مشمول رحمت و فیض الهی هستند مادامی که به این سه اصل اساسی عمل کنند: بشر دوست باشند، در امانتها خیانت نکنند ،عملا پیرو حق و عدالت باشند.

منبع : مجموعه ورّام جلد 1 ص12

3- حضرت امام علی (علیه السّلام) در ضمن وصایای خود به حضرت امام حسین (علیه السّلام) فرموده اند: خوشبخت و رستگار کسی است که علم و عملش، دوستی و دشمنیش، گرفتن و رها کردنش، سخن گفتن و سکوتش، رفتار و گفتارش تنها بر اساس رضای الهی استوار باشد و برخلاف امر پروردگار قدمی بر ندارد.

منبع : تحف العقول ،ص91

انتخاب دوست

4- حضرت امام صادق (علیه السّلام) فرموده اند: کسیکه سه بار نسبت به تو خشمگین شود و درباره ات به بدی سخن نگوید شایسته ی رفاقت است، او را برای دوستی انتخاب کن.

منبع : تاریخ یعقوبی ، ص97

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

منبع : غررالحکم،ص695

6- حضرت امام علی (علیه السّلام) فرموده اند: کسیکه ناسنجیده با دیگران پیمان دوستی می بندد ناچار باید به رفاقت اشرار و افراد فاسد تن دهد.

منبع : غررالحکم،ص695

مشخصات دوست

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

منبع : امالی صدوق ،ص397

8- رسول خدا (صلی الله علیه و آله و سلّم) فرمودند: کسیکه تو به حقوق او توجّه داری ولی او به حق تو توجّه نمی کند رفیق خوبی نخواهد بود و برای مصاحبت شایستگی ندارد.

منبع : تاریخ یعقوبی ،ص66

9- رسول خدا (صلی الله علیه و آله و سلّم) فرمودند: آدمی تحت تاثیر رفیق است و عملاً از سیره و روش او پیروی می کند . البته هر یک از شما باید در انتخاب دوست دقت کند و ببیند با چه کسی طرح رفاقت و دوستی می ریزد.

منبع : مستدرک2 ،ص62

10- حضرت امام صادق (علیه السّلام) فرموده اند: پس از آنکه از رفیقت جدا شدی و رشته ی دوستیش را بریدی، پشت سرش بدگویی و غیبت مکن که با این کار راه برگشت را بر او می بندی، شاید تجربه های زندگی، وی را به راه آشتی و تجدید رفاقت بکشاند.

منبع: بحار16،ص46

11- حضرت امام صادق (علیه السّلام) فرموده اند: رفقای صمیمی که همانند برادر به آدمی وابسته و نزدیک هستند سه قسمتند. اول، کسی است که مانند غذا از لوازم ضروری زندگی به حساب می آید و در همه ی حالات، آدمی به وی نیاز دارد، او رفیق عاقل است. دوم، کسی است که وجود او برای انسان به منزله ی یک بیماری مزاحم و رنج آور است و او رفیق احمق است. سوم، رفیقی است که وجود نافعش به منزله ی داروی شفا بخش و ضد بیماری است و او رفیق لبیب یعنی روشنفکر بسیار عاقل است.

منبع: تحف العقول،ص323

12- حضرت امام باقر (علیه السّلام) فرمودند: دوستان خود را تکریم کنید و به احترام، با آنان برخورد نمایید و برخلاف ادب متعرض یکدیگر نشوید.

منبع: کافی،ج2،ص173

13- حضرت امام رضا (علیه السّلام) فرموده اند: دوستِ آدم بی خرد، در رنج و زحمت است.

منبع: مسند،ج1،ص302

14- حضرت امام علی (علیه السّلام) فرموده اند: هزار دوست و همنشین بسیار نیست. ولی یک دشمن برای آدمی البته زیاد است.

منبع : امالی صدوق،ص397

15- حضرت امام محمدباقر (علیه السّلام) فرموده اند: با اقران و امثال خود مصاحبت کن و با کسانی که مساعدت و کمک آنان بی نیازت میسازد رفاقت مکن چه این کار مایه ی ذلت و خواری است.

منبع : مکارم الاخلاق ،ص131

16- حضرت امام علی (علیه السّلام) در نامه ی خود به حارث همدانی توصیه کرده اند: از رفاقت با کسانی که افکارشان خطا و اعمالشان ناپسند است بر حذر باش. چه آدمی به رویه و روش رفیقش خو می گیرد و با افکار و اعمال وی معتاد می شود.

منبع : نهج البلاغه ،نامه ی 69

17- حضرت سجاد (علیه السّلام) به فرزندش امام باقر(علیه السّلام) فرموده اند: از رفاقت با احمق پرهیز کن، چه او اراده می کند به نفع تو قدمی بر دارد ولی بر اثر حمق و نافهمی مایه ی زیان و ضررت می شود.

منبع : وسائل 3 ،ص205

18- حضرت امام علی (علیه السّلام) فرموده اند: کسیکه رفیق احمق دارد همواره دررنج و ناراحتی است.

منبع : غهرست غرر،ص 83

19- رسول اکرم (صلی الله علیه و آله و سلّم) فرموده اند : روش آدمی بر طبق مذهب و سیره ی دوست صمیمی و رفیق دلبندش خواهد بود.

منبع : وسائل4، ص207

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

منبع : مستدرک 2 ،ص62

شناسایی رفیق

21- حضرت امام علی (علیه السّلام) فرموده اند: پیوند دوستی را با برادران دینی خود محکم سازید که آنان ذخائر دنیا و آخرت هستند. مگر نشنیده اید که خداوند در قرآن شریف به تأثّر گمراهان در قیامت اشاره کرده که می گویند در این روز سخت نه شفیعی داریم نه دوستی که در کارمان همّت گمارد.

منبع : مستدرک 2 ،ص62

22- حضرت امام صادق (علیه السّلام) فرموده اند: کسیکه با رفیق بد همنشین شود سالم نمی ماند و سرانجام به ناپاکی آلوده می شود.

منبع : مستدرک2 ،ص65

23- حضرت امام علی (علیه السّلام) فرموده اند: مانعی ندارد که با  فرد عاقل و خردمندی که دارای طبع و کرامت اخلاق نیست رفاقت نمایی ولی مراقب باش که در برخوردهای دوستانه تنها از فکر روشنش استفاده کنی و به دنائت و پستی اخلاقش متخلّق نگردی.

منبع : وسائل 3، ص203

24- حضرت امام علی (علیه السّلام) فرموده اند: کسی که  برای فضیلتی که در تو نیست به دروغ مدحت گوید سزاوار است روز دیگر برای صفت بدی که از آن منزّهی مذمتت کند.

منبع : مستدرک 2، ص65

25- حضرت امام علی (علیه السّلام) فرموده اند: با چاپلوس رفاقت مکن که او با چرب زبانی تو را اغفال می کند، کار ناروای خود را در نظرت زیبا می نماید و دوست دارد که تو نیز مانند وی باشی.

منبع : غررالحکم ،ص811

26- حضرت امام صادق (علیه السّلام) فرموده اند: از رفاقت و همبستگی سه گروه بر حذر باش. خائن ،ستمکار و سخن چین. کسی که  روزی به نفع تو خیانت می کند روز دیگر به ضرر تو خیانت خواهد کرد ،کسیکه برای تو به دیگری ستم می نماید طولی نمی کشد که به شخص تو ستم می کند و کسی که از دیگران نزد تو نمّامی می کند عنقریب از تو نزد دیگران نمّامی خواهد کرد. (نمّامی = سخن چینی)

منبع : تحف العقول ، ص316

27- رسول اکرم (صلی الله علیه و آله و سلّم) فرموده اند: شایسته ترین مردم برای بدنامی و ننگ اجتماعی کسانی هستند که با بدنامان رفیق می شوند و با آنان مجالست می نمایند.

منبع : مستدرک 2 ،نامه ی 31

28- حضرت امام علی (علیه السّلام) در ضمن توصیه نامه ی خود به فرزندش حضرت مجتبی (علیه السّلام) فرموده اند: به اتکاء روابط دوستانه و رفاقت صمیمانه، حقّ برادرت را ضایع مکن چه در زمینه ی تضییع حقوق، روابط دوستی نابود می شود و آنکس که حقّش را تباه ساختی برای تو برادر نخواهد بود.

منبع : نهج البلاغه ، نامه ی 31

29- حضرت امام علی (علیه السّلام) فرموده اند: کسی که دوست پاک ضمیر خود را که برای خدا با وی پیوند دوستی داشته از دست بدهد مثل این است که شریف ترین اعضاء بدن خود را از دست داده است.

منبع : غررالحکم ، ص723

30- حضرت امام علی (علیه السّلام) در ضمن وصایای خود به حضرت مجتبی (علیه السّلام)  فرموده اند: از مراکز بد نام بپرهیز، از مجالسی که مورد سوء ظن است دوری کن و بدانکه رفیق بد، دوست خود را فریب می دهد و میل او را به کارهای ناپسند تحریک می کند و سرانجام آلوده اش می سازد.

منبع : بحار جلد 23،ص55

31- حضرت امام حسن عسکری (علیه السّلام) فرموده اند: دوست شخص نادان همواره در زحمت و ناراحتی است.

منبع : بحار 17،ص217

32- حضرت امام صادق (علیه السّلام) فرمودند : هر که به خاطر دین، دوستی نکند و به خاطر دین ، دشمنی نکند، دین ندارد.

منبع : اصول کافی جلد 4، ص 383

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

منبع : اصول کافی جلد 4، ص 383

34- حضرت امام صادق (علیه السّلام) فرمودند: دو مسلمان به هم برخورند و بهترشان، آن کسی است که رفیق خود را بیشتر دوست دارد.

منبع : اصول کافی جلد 4، ص 383

35- حضرت امام صادق (علیه السّلام) فرمودند : بسا دوستی برای خدا و رسول است و بسا برای دنیا، آنچه برای خدا و رسول است ، ثوابش بر خدا است و آنچه برای دنیا است اثری ندارد.

منبع : اصول کافی جلد 4، ص 383

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

منبع : اصول کافی جلد 4، ص 381

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

منبع : اصول کافی جلد 4، ص 379

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

منبع : اصول کافی جلد 4، ص 377

39- حضرت امام صادق (علیه السّلام) فرمودند: از محکمترین حلقه های ایمان این است که، دوست داری برای خدا و دشمن داری برای خدا و عطا کنی در راه خدا و دریغ داری در راه خدا.

منبع : اصول کافی جلد 4، ص 375

40- حضرت امیرالمومنین (علیه السّلام) فرمودند: مومن اهل معاشرت است و خیری نیست در کسی که الفت نگیرد و با او الفت نگیرند.

منبع : اصول کافی جلد 4، ص 313

42- رسول اکرم (صلی الله علیه و آله و سلّم) فرموده اند: شایسته ترین مردم برای بدنامی و ننگ اجتماعی کسانی هستند که با بدنامان رفیق می شوند و با آنان مجالست می نمایند.

منبع : مستدرک2، ص 65

43- امام صادق (علیه السّلام) فرموده اند : بهترین و محبوب ترین برادران من کسی است که عیوب مرا به من اهدا کند و نقائصم را تذکر دهد.

منبع : تحف العقول ص 224

44- حضرت امام باقر (علیه السّلام) فرمودند: یاران خود را بزرگ شمارید و آنان را احترام کنید و به همدیگر روی ترش نکنید و به یکدیگر زیان نرسانید و به همدیگر حسد نبرید، مبادا بخل ورزید، بنده های با اخلاص خدا باشید.

منبع : اصول کافی جلد 4، ص 515

45- حضرت امام سجّاد (علیه السّلام) فرموده اند: حق رفیق این است که با او براساس تفضل و عواطف عالیه انسانی برخورد نمایی و در مواردیکه که قادر به تفضل اخلاقی نیستی باید از مرز عدل و انصاف تنزل ننمایی و موظفی که رفیقت را همواره احترام کنی همانطور که او محترمت می دارد.

منبع: تحف العقول، ص 266

46- حضرت امام باقر (علیه السّلام) فرموده اند:  از اندرزهای لقمان حکیم به فرزندش این بود که فرزند عزیز، کسی که با گناهکار شریک شود راه ناپاکی را از وی یاد می گیرد، کسی که مجادله را دوست داشته باشد مورد فحش و دشنام واقع می شود، کسی که در جایگاه های بد نام قدم بگذارد متهم خواهد شد، کسی که با رفیق بد همگام گردد از فساد اخلاق سالم نمی ماند، کسی که مالک زبان خود نباشد سرانجام پشیمان خواهد گشت.

منبع: بحار5،ص322

47- حضرت امام علی (علیه السّلام) در ضمن نامه ی خود به حضرت مجتبی (علیه السّلام) نوشته اند: با نیکوکاران قرین شو تا از آنان باشی و از بدکاران دوری کن تا از آنها جدا شوی.

منبع: نهج البلاغه، نامه ی 31

 

www.ez12.persianblog.ir

با تشکر از انتخاب شما

Node.js Best Practices | Just Build Something

I’ve recently been working on a lot of Node.js projects, for myself, with my students, and for national organizations. Because I’m a University instructor I’ve been getting a lot of questions about what the best practices for Node.js are from every project I’m involved with. I’ve worked with Node.js for years and know all the best practices myself, but I had never seen a list that explained the best practices to my satisfaction. So, I have put one together taking all the best practices agreed on by the community and explaining why each practice is the best way to write Node.js code.

If you want to improve these best practices in any way please don’t hesitate to create a pull request to the GitHub repo.

Here we go.

Before you comment with TL;DR notice that below are links to a description of each best practice. You can skip around and read the ones you are most interested in. The descriptions are concise and worth reading.

  1. Always Use Asynchronous Methods
  2. Never require Modules Inside of Functions
  3. Save a reference to this Because it Changes Based on Context
  4. Always “use strict”
  5. Validate that Callbacks are Callable
  6. Callbacks Always Pass Error Parameter First
  7. Always Check for “error” in Callbacks
  8. Use Exception Handling When Errors Can Be Thorwn
  9. Use module.exports not just exports
  10. Use JSDoc
  11. Use a Process Manager like upstart, forever, or pm2
  12. Follow CommonJS Standard

Always Use Asynchronous Methods

The two most powerful aspect of Node.js are it’s non-blocking IO and asynchronous runtime. Both of these aspects of Node.js are what give it the speed and robustness to serve more requests faster than other languages.

In order to take advantage of these features you have to always use asynchronous methods in your code. Below is an example showing the good and bad way to read files from a system.

The Bad Way reads a file from disk synchronously.

var data = fs.readFileSync('/path/to/file');
console.log(data);
// use the data from the file

The Good Way reads a file from disk asynchronously.

fs.readFile('/path/to/file', function (err, data) {
	// err will be an error object if an error occured
	// data will be the file that was read
	console.log(data);
});

When a synchronous function is invoked the entire runtime halts. For example, above The Bad Way halts the execution of any other code that could be running while the file is read into memory. This means no users get served during this time. If your file takes five minutes to read into memory no users get served for five minutes.

By contrast The Good Way reads the file into memory without halting the runtime by using an asynchronous method. This means that if your file takes five minutes to read into memory all your users continue to get served.

Never require Modules Inside of Functions

As stated above you should always use asynchronous methods and function calls in Node. The one exception is the require function, which imports external modules.

Node.js always runs require synchronously. This is so the module being required can require other needed modules. The Node.js developers realize that importing modules is an expensive process and so they intend for it to happen only once, when you start your Node.js application. They even cache the required modules so they won’t be requried again.

However, if you require an external module from within functions your module will be synchronously loaded when those functions run and this can cause two problems.

To explain one of the problems imagine you had a module that took 30 minuets to load, which is unreasonable, but just imagine. If that module is only needed in one route handler function it might take some time before someone triggers that route and Node.js has to require that module. When this happens the server would effectively be inaccessible for 30 minutes as that module is loaded. If this happens at peak hours several users would be unable to get any access to your server and requests will queue up.

The second problem is a bigger problem but builds on the first. If the module you require causes an error and crashes the server you may not know about the error for several days, especssially is you use this module in a rarely used route handler. No one wants a call from a client at 4AM telling them the server is down.

The solution to both of these problems is to always require modules at the top of your file, outside of any function call. Save the required module to a variable and use the variable instead of re-requiring the module. Node.js will save the module to that variable and your code will run much faster.

var _ = require('underscore');

function myFunction(someArray){

	// use underscore without the need
	// to require it again
	_.sort(someArray, function(item){
		// do something with item
	});

}

module.exports.myFunction = myFunction;

Save a reference to this Because it Changes Based on Context

If you have a background with Java, ActionScript, PHP, or basically any language that uses the this keyword you might think you understand how JavaScript treats the same keyword. Unfortunately you would be wrong.

Let me tell you how this is determined officially by ECMAScript.

The this keyword evaluates to the value of the ThisBinding of the current execution context.

Basically that means that the value of the this variable is determined based on context, not encapsulation, as it is in other languages.

For example, if this is used inside a function, this references the object that invoked the function. That means that if you create a constructor function (basically a class in JavaScript) which then has methods attached to it, the this variable in those methods may not refer to the constructor function (class) they are inside of.

The above happens a lot in Node, but it might be hard to understand without seeing code.

In the code below this has two different values.

function MyClass() {
	this.myMethod = function() {
		console.log(this);
	};
}

var myClass = new MyClass();
myClass.myMethod(); // this resolves as the instance of MyClass

var someFunction = myClass.myMethod;
someFunction(); // this resolves as the window in a browser and the global object in Node

The best way to solve this is to preserve this as another variable and then use that other variable instead. The most common variable names to use are _this, that, self, or root.

I personally like _this or self best because _this is easy to understand and self will be understood by anyone with Python or Ruby experience as both languages use self instead of this.

After making the changes your code should look like this.

function MyClass() {
	var self = this;
	this.myMethod = function() {
		console.log(self);
	};
}

var myClass = new MyClass();
myClass.myMethod(); // self resolves as the instance of MyClass

var someFunction = myClass.myMethod;
someFunction(); // self also resolves as the instance of MyClass

self now always refers to the MyClass instance.

Always “use strict”

“use strict” is a behavior flag you can add to to first line of any JavaScript file or function. It causes errors when certain bad practices are use in your code, and disallows the use of certain functions, such as with.

Believe it or not but the best place I found to describe what JavaScript’s strict mode changes is Microsoft’s JavaScript documentation.

Validate that Callbacks are Callable

As stated before Node.js uses a lot of callbacks. Node.js is also weakly typed. The compiler allows any variable to be converted to any other data type. This lack of typing can cause one big problem.

Only functions are callable.

This means that if you pass a string to a function that needed a callback function your application will crash when it tries to execute that string.

This is obviously bad, but upon first blush there is no simple way to solve it. You could wrap the execution of all callbacks in try catch statements, or you could use if statements to determine if a callback has been passed in.

However, there is a simple way of validating that callbacks are callable which requires only one line of code, and it accounts for optional callbacks as well as checking data type.

callback = (typeof callback === 'function') ? callback : function() {};

This determines if the callback is a function. If it’s not a function for any reason it creates an empty function and sets the callback to be that function. This way all callbacks are callable and optional.

Place that line at the top of each function that receives a callback and you will never crash due to uncallable callbacks again.

Callbacks Always Pass Error Parameter First

Node.js is asynchronous, which means you usually have to use callback functions to determine when your code completes.

After writing Node.js code for a while you will want to start writing your own modules, which need callback functions to be passed in by the user of your module. If an error occurs in your module, how do you communicate that to the user of the module? If you’re a Java developer you might think you should throw an exception, but throwing an exception in Node.js could potentially shutdown the server. Instead you should package the error into an object, and pass it to the callback function as the first parameter. If no error occurred you should pass null.

By convention all callback functions are passed an error as the first parameter.


function myFunction(someArray, callback){

	// an example of an error that could occur
	// if the passed in object is
	// not the right data type
	if( !Array.isArray(someArray) ){
		var err = new TypeError('someArray must be an array');
		callback(err, null);
		return;
	}

	// ... do other stuff

	callback(null, someData);

}

module.export.myFunction = myFunction;

Always Check for “error” in Callbacks

As stated above, by convention an error is always the first parameter passed to any callback function. This is great for making sure your site doesn’t crash and that you can detect errors when they happen.

Now that you know what they are you should start using them. If your database query errors out you need to check for that before using the results. I’ll give you an example.

myAsyncFunction({
		some: 'data'
	}, function(err, someReturnedData) {

		if(err){
			// don't use someReturnedData
			// it's not populated
			return;
		}

		// do something with someReturnedData
		// we know there was no error

	}
});

Use Exception Handling When Errors Can Be Thrown

Most methods in Node.js will follow the “error first” convention, but some functions don’t. These functions are not Node.js specific function, they instead come from JavaScript. There are lots of functions that can cause exceptions. One of these functions is JSON.parse which throws an error if it can’t parse a string into JSON.

How do we detect this error without crashing our server?

This is a perfect time to use a classic JavaScript try catch.


var parsedJSON;

try {
	parsedJSON = JSON.parse('some invalid JSON');
} catch (err) {
	// do something with your error
}

if (parsedJSON) {
	// use parsedJSON
}

You can now be sure that the JSON was parsed correctly before using it.

This can be even more useful when using it in modules.

function parseJSON(stringToParse, callback) {

	callback = (typeof callback === 'function') ? callback : function() {};

	try {

		var parsedJSON = JSON.parse(stringToParse);

		callback(null, parsedJSON);

	} catch (err) {

		callback(err, null);

		return;

	}


}

Of course the above example is slightly contrived, however, the idea of using try catch is a very good practice.

Use module.exports not exports

You might have used module.exports and exports interchangeably thinking they are the same thing and in may cases they are. However, exports is more of a helper method that collects properties and attaches them to module.exports.

So what the problem? That sounds great.

Well don’t get too excited. exports only collects properties and attaches them if module.exports doesn’t already have existing properties. If module.exports has any properties, everything attached to exports is ignored and not attached to module.exports.

module.exports = {};

exports.someProperty = 'someValue';

someProperty won’t be exported as part of the module.

var exportedObject = require('./mod');

console.log(exportedObject); // {}

The solution is simple. Don’t use exports because it can create confusing, hard to track down bugs.

module.exports = {};

module.exports.someProperty = 'someValue';

someProperty will be exported as part of the module.

var exportedObject = require('./mod');

console.log(exportedObject); // { someProperty: 'someValue' }

Use JSDoc

JavaScript is a weakly typed language. Any variable can be passed to any function without conflict, until you try to use that function.

function multiply(num1, num2) {

	return num1 * num2;

}

var value = multiply('Some String', 2);

console.log(value) // NaN

Obviously this is a problem above that could easily be fixed by looking at the code. But what if the code was written by someone else and uses complex parameters that you don’t really understand. You could spend several minutes tracking down the expected data type. Worst yet it might accept multiple data types, in which case it may take you longer to track it down.

The best thing to do is use JSDoc. If you’re a Java developer you will have heard of Javadoc. JSDoc is similar and at it’s simplest adds comments above functions to describe how the function works, but it can do a lot more.

Some IDEs will even use JSDoc to make code suggestions.

Use a Process Manager like upstart or forever

Keeping a Node.js progress running can be daunting. Simply using the node command is dangerous. If your Node.js server crashes the node command won’t automatically restart the process.

However, programs like upstart and forever will.

While upstart is a general purpose init daemon forever and pm2 are specific to Node.

Follow CommonJS Standard

Node.js follows a standard for writing code that varies slightly from the standards that govern writing browser based JavaScript.

This standard is called CommonJS.

While CommonJS is far too large for me to cover here it’s worth knowing about about and learning. The most important point are that it mandates certain file organization and behavior that should be expected from the CommonJS module loader (require). It also describes how internals of the Node.js system should work.

Check it out.

Conclusion

That was long but hopefully worth it. These are the main best practices of Node.js that everyone should be following.

Of course there are more best practices that can be followed, like only using one module.exports per module and one return per function, but these will only help with debugging.

Now that you know these best practices I hope either have validated your current way of working or your code improves and that you can write bigger better applications with less confusion.

If you have any questions please don’t hesitate to email me at alanjames1987@gmail.com. I do answer quickly and love talking about programming.

حدیث هایی در مورد مسلمان

 

 

1- حضرت محمد (صلی الله علیه و آله و سلّم) می فرمایند: کسی که در هر صبحگاه به امور مسلمین همّت نگمارد و در اندیشه ی کارهای آنان نباشد از آنها نیست وکسی که بشنود مردی فریاد می زند:«ای مسلمان ها بدادم برسید» و جواب او را ندهد مسلمان نیست. 

منبع : اصول کافی٬ ج٢/ص١۶۴٬ حدیث۵.

2- حضرت محمد (صلی الله علیه و آله و سلّم) می فرمایند: کسی که صبح کند و بفکر گره گشایی دیگر مسلمین نباشد، مسلمان حقیقی نیست.

منبع : اصول کافی

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

منبع: مسند،ج1،ص260

4- حضرت موسی بن جعفر روایت کرده اند که رسول اکرم (صلی الله علیه و آله و سلّم) فرمودند: مسلمان نیست آنکس که به عهد و پیمان وفادار نباشد.

منبع : بحار جلد 16ص144

5- رسول اکرم (صلی الله علیه و آله و سلّم)فرموده اند: بر هیچ مسلمانی جایز نیست که خود را ذلیل و خوار نماید.

منبع : تاریخ یعقوبی ،ص67

6- رسول اکرم (صلی الله علیه و آله و سلّم) فرموده اند: خواستن رزق مباح و گذران کردن از درآمد حلال وظیفه ی واجب هر مرد و زن مسلمان است.

منبع : بحار 23،ص6

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

منبع : مستدرک الوسائل جلد2 ص302

تناسب نعمت ها با استعدادهای گوناگون

8- حضرت امام علی (علیه السّلام) می فرمایند: پس از ستایش پروردگار، بدانید که تقدیرهای الهی چون قطرات باران از آسمان به سوی انسان ها فرود می آید، و بهره ی هر کسی، کم یا زیاد به او می رسد پس اگر یکی از شما برای برادر خود، برتری در مال و همسر و نیروی بدنی مشاهده کند، مبادا فریب خورد و حسادت کند؛ زیرا مسلمان (تا زمانی که دست به عمل پستی نزده که از آشکار شدنش شرمنده باشد و مورد سرزنش مردم پست قرار گیرد.) به مسابقه دهنده ای (1) می ماند که دوست دارد در همان آغاز مسابقه پیروز گردد تا سودی به دست آورد و ضرری متوجه او نگردد. هم چنین مسلمانی که از خیانت پاک است انتظار دارد یکی از دو خوبی نصیب او گردد: یا دعوت حق را لبیک گفته عمر او پایان پذیرد (( که آنچه در نزد خداست برای او بهتر است))؛ و یا خداوند روزی فراوان به او دهد و صاحب همسر و فرزند و ثروت گردد، و هم چنان دین و شخصیت خود را نگاه دارد. همانا ثروت و فرزندان، محصول دنیا و فانی شدنی و عمل صالح زراعت آخرت است، گر چه گاهی خداوند، هر دوی آن را به ملت هایی خواهد بخشید. از خدا در آنچه اعلام خطر کرده است بر حذر باشید! از خدا آن گونه بترسید که نیازی به عذر خواهی نداشته باشید! عمل نیک انجام دهید بدون آن که به ریا و خودنمایی مبتلا شوید؛ زیرا هرکس، کاری برای غیر خدا انجام دهد، خدا او را به همان غیر واگذارد. از خدا، درجات شهیدان، و زندگی سعادتمندان، و هم نشینی با پیامبران را درخواست می کنیم.

(1): فالج یاسر: در دوران جاهلیت شتری را می کشتند و برای تقسیم گوشت آن به مسابقه تیراندازی متوسّل می شدند؛ ده تیر بود که هفت عدد آن علامتی مخصوص داشت و سه تای آن بدون نشان بود هرکس که تیر او به هدف می خورد سهم بیشتری از گوشت شتر داشت. از این رو هر کسی دوست داشت که همان آغازین تیری را که رها می کند به هدف زده برنده مسابقه باشد.

منبع: نهج البلاغه،خطبه 23

9- حضرت امام حسین (علیه السّلام) فرمودند: کسی که برادر مسلمان خود را که بر او وارد شده است احترام نماید خدا را احترام کرده است.

منبع: وسادل،ج4،ص97

10- رسول اکرم (صلّی الله علیه و آله و سلّم) فرمودند: کسی که برادر مسلمان خود را با کلمات مودت آمیز خویش احترام نماید و غم او را بزداید، تا این سجیه در او باقی است پیوسته در سایه ی رحمت خداوند است.

منبع: بحار،ج16،ص84

11- رسول اکرم (صلّی الله علیه و آله و سلّم) فرمودند: هیچ یک از مسلمین را تحقیر نکنید و کوچک نشمارید زیرا مسلمانی که در نظر شما کوچک است نزد خداوند بزرگ است.

منبع: مجموعه ورام،ج1،ص31

13- رسول اکرم (صلّی الله علیه و آله و سلّم) فرموده اند: بر هیچ مسلمانی جایز نیست که خود را ذلیل و خوار نماید.

منبع : تاریخ یعقوبی ،ص67

14- حضرت امام صادق (علیه السّلام) فرموده اند: خداوند تمام کارهای هر مسلمانی را به خود او واگذار نموده اند مگر ذلیل کردن خود، یعنی مؤمن حق ندارد موجبات خواری و ذلّت خود را فراهم آورد.

منبع : کافی جلد 5 ص63

15- حضرت امام حسن عسکری (علیه السّلام) فرموده اند: چقدر قبیح است که در باطن مسلمان ، میل و رغبت به چیزی باشد که سبب ذلّت و خواری او شود.

منبع : تحف العقول ص489

16- حضرت امام صادق (علیه السّلام) فرموده اند: مردی به خانه ی رسول اکرم آمد و درخواست ملاقات داشت. موقعیکه حضرت خواستند از حجره خارج شوند و به ملاقات آن مرد بروند به جای آیینه ، جلوی ظرف بزرگ آبی که در داخل اطاق بود ایستاند و سر و صورت خود را مرتّب کرند، عایشه از مشاهده ی اینکار به عجب آمد، در مراجعت عرض کرد یا رسول الله چرا در موقع رفتن در برابر ظرف ایستادید و موی و روی خود را منظّم کردید، فرموند: عایشه، خداوند دوست دارد که وقتی مسلمانی برای دیدار برادرش می رود خود را بسازد و خویشتن را برای ملاقات او بیاراید.

منبع : مکارم الاخلاق ،ص51

17- رسول اکرم (صلی الله علیه و آله و سلّم) فرموده اند: هیچ یک از مسلمانان را کوچک و ناچیز نشمارید که خردسالان مسلمین هم در پیشگاه الهی بزرگند.

منبع : مجموعه ی ورّام جلد1 ص 31

18- با هم و کمک کردن به هم در مهرورزی و همراهی با نیازمندان و در مهرورزی به همدیگر تا بوده باشید چنانچه خدا عزوجل فرموده است: (( مهربانند به خویشتن یا مهربانان در میان خودشان)) (فتح آیه 29) با همدیگر مهربان باشید و غمناک شوید برای آنچه از کار مسلمانان در دسترس ندارید، بر همان روشی که انصار در دوران رسول خدا (صلّی الله علیه و آله و سلّم) داشتند.

منبع : اصول کافی جلد 4، ص 519

19- معلی بن خنیس، گوید: به حضرت امام صادق (علیه السّلام) گفتم: حق مسلمان بر مسلمان چیست؟ فرمود: برای او هفت حق واجب است که هر کدام در مقام خود واجب است بر او، اگر یکی از آنها را ضایع و بی اجرا گذارد از ولایت و اطاعت خدا بیرون است و برای خداوند هیچ بهره ای از بندگی در او نیست، به او گفتم: قربانت، آنها چیستند؟ فرمودند: ای معلی، به راستی که من بر تو مهربانم، و می ترسم که آنها را ضایع کنی و نگهداری نکنی و بدانی و بکار نبندی، گوید: به او گفتم: لاحول ولا قوة الا بالله، فرمودند: آسان تر آنها این حق است که : 1- دوست داری برای او آنچه را برای خود دوست داری و بد داری برای او آنچه را برای خود بد داری. 2- از خشم او کناره کنی و خشنودی او را پیروی کنی و فرمان او را ببری. 3- او را کمک کنی با خودت و داراییت و زبانت و دست و پایت. 4- چشم او و رهنمای او و آینه ی او باشی. 5- سیر نباشی و او گرسنه باشد، سیراب نباشی و او تشنه بماند، نپوشی و او لخت بگردد. 6- اگر تو را خدمتکاری است و برادرت را خدمتکاری نیست، خدمتکار خود را بفرستی تا جامه ی او را بشوید و خوراک او را بسازد و بستر او را پهن کند. 7- به سوگند او وفاداری کنی، دعوت او را بپذیری، بیمار شد به دیدارش روی و در جنازه ی او حاضر شوی و هرگاه بدانی او را حاجتی است به انجام آن برایش پیش دستی کنی و او را نداری تا از تو خواهش آن کند ولی بشتاب و در انجام آن بکوش و هرگاه چنین کردی دوستی خود را به دوستی او پیوستی و دوستی او را به دوستی خداوند پیوستی( این است معنی روابط دوستانه ی متبادله)

منبع : اصول کافی جلد 4، ص 501

20- عبدالاعلی بن اعین گوید: (برخی) از اصحاب ما نوشتند و چیزهایی از حضرت امام صادق (علیه السّلام) پرسیدند و به من فرمان دادند که از آن حضرت حق مسلمان را بر برادرش بپرسم، پرسیدم و به من پاسخی نداد، چون آمدم که با او وداع کنم، به ایشان گفتم: پرسیدم و جواب ندادید؟ فرمودند: من می ترسم شما کافر شوید، به راستی از سخت ترین چیزها که خدا بر خلقش واجب کرده سه تا است: 1- عدالت ورزی مرد از طرف خودش تا اینکه نپسندد برای برادرش از طرف خودش جز آنچه بپسندد برای خودش از طرف او.2- همراهی برادر با مال و دارایی.3- ذکر خدا در هر حال که نه لفظ سبحان الله والحمد لله است ولی در نزد آنچه خدا حرام کرده یاد خدا کند و آن را وانهد.

منبع : اصول کافی جلد 4، ص 503

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

منبع : اصول کافی جلد 4، ص 505

22- حضرت امام صادق (علیه السّلام) فرمودند: حق مسلمان به برادر مسلمانش این است که: هرگاه به او برخورد سلامش کند، و هر وقت بیمار شد او را عیادت کند، و وقتی غایب شد برای او خیرخواهی کند، و چون عطسه زد به او دعای وارد را (یرحمک الله) بگوید، و چون از او دعوت کرد او را اجابت کند، و وقتی مرد از او تشییع کند.

منبع : اصول کافی جلد 4، ص 507

23- أبی المغرا گوید، حضرت امام صادق (علیه السّلام) فرمودند: مسلمان برادر مسلمان است، به او ستم نکند و او را واننهد و به او خیانت نورزد و بر مسلمانان سزا است که بکوشند در هم پیوستگی و کمک بر یکدیگر در مهرورزی و همراهی با نیازمندان و مهرورزی بر همدیگر تا بوده باشید چنانچه خدای عزوجل فرموده است: ((مهربانند به یکدیگر)) (سوره فتح آیه 29) در خوشی های هم شریک شوید و مهرورز باشید و غم خوار باشید نسبت به آنچه کار آنان در دسترس شما نیست، بر همان روشی که گروه انصار در دوران رسول خدا  (صلّی الله علیه و آله و سلّم) داشتند.

منبع : اصول کافی جلد 4، ص 517

24- رسول خدا  (صلّی الله علیه و آله و سلّم) فرمودند: مسلمان باید چون سفری خواهد، برادران خود را آگاه سازد و بر برادران او است که چون برگردد به دیدن او آیند.

منبع : اصول کافی جلد 4، ص 517

25- رسول خدا (صلّی الله علیه و آله و سلّم) فرمودند: جبرئیل برای ما بازگفت که خدا عزوجل فرشته ای را به زمین فرستاد و آن فرشته آمد و آغاز رفتن نمود تا گذرش بر دری افتاد که مردی بر آن ایستاده و از صاحب خانه اجازه ی ورود می خواست، آن فرشته به وی گفت: چه نیازی به صاحب این خانه داری در پاسخ گفت: برادر دینی من است و در راه خدا تبارک و تعالی از او دیدن کنم، آن فرشته به وی گفت: تو تنها برای همین آمدی؟ در پاسخ گفت: جز برای این کار نیامدم، به او گفت: من پیک خدایم به سوی تو و او به تو سلام می رساند و می فرماید: بهشت برای تو واجب است، آن فرشته گفت: خدا عزوجل می فرماید: هر مسلمانی از مسلمانی دیدن کند، او را دیدن نکرده پس مرا دیدن کرده و ثواب او بر من بهشت است.

منبع : اصول کافی جلد 4، ص 523

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

منبع : اصول کافی جلد 4، ص 527

27- ابی الجارود گوید: شنیدم حضرت امام باقر (علیه السّلام) می فرمودند: به راستی دوست داشتنی ترین کارها به درگاه خدا عزوجل شاد کردن مومن است یا سیر کردن مسلمانی یا پرداختن بدهکاری او.

منبع: اصول کافی جلد 4،ص 563

28- حضرت امام صادق (علیه السّلام) فرموده اند: هر که مسلمانی را شاد کند، خدا عزوجل او را شاد کند.

منبع: اصول کافی جلد 4،ص 573

29- ابی عبیده حذاء گوید، حضرت امام صادق (علیه السّلام) فرموده اند: هرکه در انجام حاجت برادر مسلمانش راه رود، خدا به وسیله ی هفتاد و پنج هزار فرشته بر او سایه افکند و گامی بر ندارد جز اینکه خدا برایش حسنه ای نویسد و گناهی بدان از وی بریزد و درجه ای بدان برایش بالا برد و چون از حاجت او فارغ شود، خدا عزوجل برای او مزد کسی که حج و عمره کرده بنویسد.

منبع: اصول کافی جلد 4، ص 585

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

منبع: اصول کافی جلد 4، ص 587

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

منبع: اصول کافی جلد 4، ص 589

32- حضرت امام صادق (علیه السّلام) فرموده اند: هر که مومن را اطعام کند تا سیرش سازد، هیچ کس اندازه ی مزدی که در آخرت دارد نداند، نه فرشته ی مقرب و نه پیغمبر مرسل جز خدا پروردگار جهانیان، سپس فرمودند: از موجبات آمرزش ، اطعام مسلمان گرسنه است سپس قول خدا عزوجل را خواند: (( یا اطعام به روز قحطی(14) به یتیمی خویشاوند(15)، یا مستمندی خاک نشین(16).)(بلد،آیه ی 14 تا 16)

منبع: اصول کافی جلد 4، ص 599

33- عبدالله وصّافی گوید، امام باقر(علیه السّلام) فرمودند: اگر من یک مرد مسلمان را اطعام کنم، بهتر است برایم از اینکه یک افق از مردم را اطعام کنم، من گفتم: افق چه اندازه است؟ فرمودند: ده هزار.

منبع: اصول کافی جلد 4، ص601

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

منبع: اصول کافی جلد 4، ص 603

35- حضرت امام صادق (علیه السّلام) فرمودند: یک خوراکی که برادر مسلمانم نزد من بخورد، دوست داشتنی تر است نزد من از آزاد کردن یک بنده.

منبع: اصول کافی جلد 4، ص603

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

منبع: اصول کافی جلد 4، ص605

37- از امام باقر (علیه السّلام) پرسیده شد، با آزاد کردن بنده چه چیز برابر است؟ فرمودند: طعام یک مرد مسلمان.

منبع: اصول کافی جلد 4، ص605

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

منبع: اصول کافی، ج4، ص609

39- حضرت امام صادق (علیه السّلام) فرموده اند: هرکه مقدم برادر مسلمان خود را که به او وارد شود گرامی دارد و از او احترام کند، همانا خدا عزوجل را گرامی داشته.

منبع: اصول کافی جلد 4، ص613

40- پیامبر اسلام (صلّی الله علیه و آله و سلّم) فرموده اند: هرکه برادر مسلمان خود را با سخنی، مهرورزی کند و گرامی دارد و گره گرفتاری او را بگشاید، پیوسته در سایه ی خدا است و با رحمت او مدد شود تا در این کار باشد.

منبع: اصول کافی جلد 4، ص613

41- حضرت موسی بن جعفر (علیه السّلام) روایت کرده است که رسول اکرم (صلی الله علیه و آله و سلّم) فرمودند: مسلمان نیست آن کس که به عهد و پیمان وفادار نباشد.

منبع : بحار جلد 16 ص144

42- رسول اکرم (صلّی الله علیه و آله و سلّم) فرموده اند: هیچ یک از مسلمانان را کوچک و ناچیز نشمارید که خردسالان مسلمین هم در پیشگاه الهی بزرگند.

منبع: مجموعه ی ورام، ج1، ص 31

43- حضرت امام صادق (علیه السّلام) فرموده اند: من در شگفتم از مرد مسلمان، خدا عزوجل چیزی برای او مقدر نکند جز این که خیر او است و اگر با مقراض او را ببرند و تیکه تیکه کنند خیر او است و اگر مشارق و مغارب را هم مالک شود، خیر او است.

منبع : اصول کافی جلد 4، ص 197

44- رسول اکرم (صلّی الله علیه و آله و سلّم) فرموده اند: مسلمانی که درختی غرس یا زراعتی سبز نماید مردم و طیور و پرندگان از آن بخورند اجر صدقه دارد.

منبع: مستدرک،ج2،ص501

45- حضرت امام علی (علیه السّلام) فرموده اند: مسلمانی که از یک گناه اعراض کند اجر هفتاد حج مقبول در پیشگاه خداوند دارد.

منبع: مستدرک الوسائل، ج2،ص302

 

www.ez12.persianblog.ir

با تشکر از انتخاب شما

Asynchronous method queue chaining in JavaScript

Thursday May 6 2010

Chaining. It's an extremely popular pattern these days in JavaScript. It's easily achieved by continually returning a reference to the same object between linked methods. However one technique you don't often see is queueing up a chain of methods, asynchronously, by which functions can be linked together independent of a callback. This discussion, of course, came from a late work night building the @anywhere JavaScript API with two other mad scientists, Russ D'Sa (@dsa) and Dan Webb (@danwrong). Anyway, let's have a look at some historical conventions and compare them to newer ones. Imagine an iterator class that operated on arrays. It could look like this:
// no chaining

var o = new Iter(['a', 'b', 'c', 'd', 'e']);

o.filter(function(letter) {

  if (letter != 'c') { return letter; }

});

o.each(function(letter) {

  append(letter);

});



// with chaining

new Iter(alphabet).filter(remove_letter_c).each(append);
This is a simple because we're working on a known existing object in memory (the alphabet array). However an easy way to spoil our soup is to make our methods continue to operate without existing objects. Like say, for example, a result set you had to make an async request to the server to get. Thus, imagine making this work:
ajax('/server/results.json').filter(remove_duplicates).append('div#results');
In the grand scheme of things, the above example isn't too far off from from currying (which it's not). And to make another point, currying can often lead to bad coupling of code... which in its defense, is often the point as well. Some libraries even call this pattern binding... so... yeah. Anyway, to the point, here is a basic Queue implementation that can be used as a tool to build your own asynchronous method chains.
function Queue() {

  // store your callbacks

  this._methods = [];

  // keep a reference to your response

  this._response = null;

  // all queues start off unflushed

  this._flushed = false;

}



Queue.prototype = {

  // adds callbacks to your queue

  add: function(fn) {

    // if the queue had been flushed, return immediately

    if (this._flushed) {

      fn(this._response);



    // otherwise push it on the queue

    } else {

      this._methods.push(fn);

    }

  },



  flush: function(resp) {

    // note: flush only ever happens once

    if (this._flushed) {

      return;

    }

    // store your response for subsequent calls after flush()

    this._response = resp;

    // mark that it's been flushed

    this._flushed = true;

    // shift 'em out and call 'em back

    while (this._methods[0]) {

      this._methods.shift()(resp);

    }

  }

};
With this code, you can put it straight to work for something useful, like say, a jQuery plugin that fetches content remotely and then appends the results to your selector input. For you plugin developers our there, it would look like this...

<script src="jquery.js"></script>

<script src="async-queue.js"></script>

<script>

(function($) {



  $.fn.fetch = function(url) {

    var queue = new Queue;

    this.each(function() {

      var el = this;

      queue.add(function(resp) {

        $(el).html(resp);

      });

    });



    $.ajax({

      url: url,

      dataType: 'html',

      success: function(html) {

        queue.flush(html);

      }

    });

    return this;

  };



})(jQuery);

</script>

Then voila! You can make your DOM queries, fetch remote content, and continue your chain, asynchronously.
$("<div/>")

  .fetch('/server/navigation.html')

  .addClass('column')

  .appendTo('#side');

Here's a brief example of showing off the example above. Point being, one can only imagine the possibilities you could do. Say for example, having multiple items in the queue waiting to operate on a response. Thus imagine this...
fetchTweet(url).linkify().filterBadWords().appendTo('#status');
Your internals would look like this with the Queue.

function fetchTweet(url) {

  this.queue = new Queue;

  this.tweet = "";

  var self = this;

  ajax(url, function(resp) {

    self.tweet = resp;

    self.queue.flush(this);

  });

}

fetchTweet.prototype = {



  linkify: function() {

    this.queue.add(function(self) {

      self.tweet = self.tweet.replace(/b@(w{1,20}b/g, '<a href="...">$1</a>');

    });

  return this;

  },



  filterBadWords: function() {

    this.queue.add(function(self) {

      self.tweet = self.tweet.replace(/b(fuck|shit|piss)b/g, "");

    });

  return this;

  },



  appendTo: function(selector) {

    this.queue.add(function(self) {

      $(self.tweet).appendTo(selector);

    });

  return this;

  }



};

And with that, you can call it a night. Cheers.