شنبه، آذر ۲۱، ۱۳۸۸

و روزی که من Seam یاد گرفتم...

امروز دومین روزی است که دارم کتاب Seam in Action یا به قول دوستان سیمین اکشن را می خوانم. قبلا هیچ گاه بیشتر از دیدن چند برنامه نمونه و تجربه قبلی JSF به درون Seam نرفته بودم و نیازی به یادگیری بیشتر حس نمی کردم. ولی این بار من باید یک برنامه جهنمی را تغییر دهم و چون نویسندگان این برنامه هیچ گونه دانشی در زمینه جاوا (J2EE و سایر موارد بماند) نداشته اند، کد برنامه بسیار ترسناک شده است.

تقریبا من در حال تعمیر یک بنای باستانی هستم که به هر دیوار آن کلنگ می زنم سقف روی سرم خراب می شود. نکته مثبت این پروژه این است که من بالاخره باید در مورد JSF و Seam بیشتر یاد بگیرم. در حین خواندن Seam in Action به پست The Law of Leaky Abstractions از بلاگ Joel Spolsky برخوردم. فکر می کنم کسی نمی تواند بهتر از Joel این حس را توصیف کند. این مقاله را حتما بخوانید. متاسفانه اشکال تکنولوژی هایی مثل JSF این است که سطح abstraction بالایی فراهم می کنند و درنتیجه با دانش 20 درصدی می توان 90 درصد کارها را انجام داد ولی برای حل 10 درصد باقیمانده باید با زیر و بم تکنولوژی آشنا شد و این کار در مورد JSF و Seam خیلی ساده نیست.

در ضمن طی این دو روز حس می کنم که تازه فهمیدم Seam همان Spring نیست که به جای XML از Annotation ها استفاده می کند. Seam در واقع اولین مدل Stateful برنامه های وب جاوایی است که می توانند از EJB استفاده نکند. (حداقل اولین برای من) و این خود یک paradigm shift بزرگ برای کسی است که همیشه در دنیای Stateless زندگی کرده است.
نوشتن یک برنامه با دید Stateless و استفاده از Seam هدر دادن وقت و هزینه است و عاقبت دردناکی دارد. برای استفاده از هر تکنولوژی باید با روح آن آشنا شد. به همه کسانی که دوست دارند از این تکنولوژی استفاده کنند خواندن کتاب Seam in Action را توصیه می کنم و در آخر هم جمله Joel Spolsky:

All non-trivial abstractions, to some degree, are leaky

۱ نظر:

  1. علاقمند شدم برم یاد بگیرم دکتر! البته الان سرم خیلی شلوغه، باشه واسه ترم بعد:دی

    پاسخحذف