+1 امتیاز
قبل در برنامه نویسی توسط (7.2هزار امتیاز)
برچسب گذاری دوباره قبل توسط
Assertion Facility در جاوا چیست؟

آیا کارکرد آن فقط در تست است؟

2 پاسخ

+1 امتیاز
قبل توسط (7.2هزار امتیاز)
انتخاب شده قبل توسط
 
بهترین پاسخ

معنی لغوی Assert به معنای اظهار قطعی کردن یا اطمینان داشتن از چیزی است، اما معنی آن در علم کامپیوتر چیست؟

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

مثلا تعداد کاربران فعال نمیتواند منفی باشد، ما نیز اگر به صورت black box به قضیه نگاه کنیم روند به دست آوردن تعداد کاربران فعال را نداریم.  ولی می توانیم با قابلیت Assertion از این امر اطمینان حاصل کنیم. در اینجا یک شبه کد برای مثالم می آورم:

int onlineUsers = getOnlineUsers();
      assert (onlineUsers >= 0);

در صورتی که شرط قید شده در assert برقرار نباشد به وسیله یک Exception رخ می دهد که با stack trace می توانیم آن را ردیابی کنیم.

ممکن است برای شما نیز یک سوال پیش بیاید که چرا از یک شرط ساده برای این کار استفاده نمی کنیم؟ مزیت assertion نسبت به شرط ( if - else ) این است که قابلیت غیر فعال شدن دارد و می توانیم هنگام توسعه آن را فعال و هنگام deploy آن را غیر فعال کنیم تا سربار سیستم کم شود.

این قابلیت توسط اکثر زبانهای شی گرا مانند Java و C++ به صورت Native وجود دارد و برای سایر زبان ها نیز قابل پیاده سازی است.

 

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

سوال شده 10 سال قبل در برنامه نویسی توسط (7.2هزار امتیاز)
برچسب گذاری دوباره 10 سال قبل توسط
چگونه می توان Assertion را هنگام توسعه در جاوا فعال نمود؟
0 امتیاز
قبل توسط (1.3هزار امتیاز)
سلام /

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

http://docs.oracle.com/cd/E19683-01/806-7930/6jgp65ikl/index.html

سوالات مشابه

0 امتیاز
2 پاسخ 708 بازدید
+1 امتیاز
1 پاسخ 1.2هزار بازدید
0 امتیاز
1 پاسخ 1.1هزار بازدید
+1 امتیاز
1 پاسخ 358 بازدید
0 امتیاز
1 پاسخ 471 بازدید
0 امتیاز
0 پاسخ 397 بازدید
...