اوراکل اپکس برای چه نوع برنامه هایی مناسب است

اوراکل اپکس برای چه نوع برنامه هایی مناسب است

“اپکس مانند یک بسته نرم افزاری است که کار کردن با آن سخت است چون لایه بندی مشخصی ندارد!! اپکس برای سیستم ها و تیم های کوچک به خوبی عمل می کند اما برای سیستم ها و تیم های بزرگ توانایی کافی ندارد!! ما با اپکس ۳ کار کردیم اما واقعا دستمان در پیاده سازی کامپوننت های دلخواه بسته بود، آیا تغییری حاصل شده است؟ آیا اپکس قدرت ایجاد برنامه های پیچیده را دارد؟ آیا اپکس ویژگی های مطرح در web 2.0 را دربر می گیرد؟ از نظر کارایی چی؟ آیا بهبود بخشیدن به کارایی در آن همانند جاوا است؟ اپکس بهتر است یا ADF ؟ …”

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

آقای Steven Feuerstein یکی از برجسته ترین اساتید شناخته شده زبان PL/SQL و از توسعه دهندگان اصلی این زبان است. وی از سال ۱۹۹۲ تاکنون به تدریس و توسعه این زبان پرداخته است و سالانه در کنفرانس های بسیاری درخصوص PL/SQL و ویژگی های جدید آن شرکت می کند. آقای Feuerstein بیش از ۱۰ کتاب در خصوص زبان PL/SQL به رشته تحریر درآورده است، (انتشارات O’Reilly) و از سوی شرکت اوراکل دارای نشان Oracle ACE Director می باشد. وی به طور ماهیانه مقالاتی را در همین خصوص در ماهنامه شرکت اوراکل به چاپ می رساند و در سالهای ۲۰۰۲ و ۲۰۰۶ به عنوان برترین برنامه نویس اوراکل PL/SQL سال شناخته شده است و هم اکنون در شرکت های Quest Software و Dell و بسیاری شرکت های دیگر به عنوان مشاور و معمار نرم افزار مشغول به کار است. وی صاحب سایت مشهور http://www.plsqlchallenge.com است که به پاسخگویی به سوالات در خصوص PL/SQL می پردازد و به صورت دوره ای اقدام به طرح سوال در خصوص این زبان می کند.

مطلب زیر، مطلبی است که ایشان در پاسخ به یکی از مدیران شرکت بیمه سلامت که در خصوص اپکس و توانایی های آن مطرح کرده بودند، به رشته تحریر درآورده اند:

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

من در حال تلاش برای توسعه اپکس در سازمان خود هستم. بالاخص، در حال توسعه مقاله ای هستم و می خواهم نظر شما در مورد اپکس را در این مقاله قرار دهم. در شرکت ما، آنچه دیگران در مورد اپکس می گویند این است:
“اپکس یک برنامه اصلاحاً افزودنی (add-on) است. اپکس ابزار ساخت و تولید گزارشات سریع شرکت اوراکل برای تولید برنامه های وب است. این ابزار برای تیم های کوچک با مهارت برنامه نویسی محدود مناسب است. کاملا وب محور است و به صورت یک add-on رایگان بر روی دیتابیس نصب می شود. تا آنجا که ما می دانیم، تنها تیمی که در حال کار با آن است تیم آقای Rick در شرکت ما است و دیگران از آن استفاده نمی کنند. راهی برای ایجاد و توسعه برنامه ها برای تیم ممکن است وجود داشته باشد اما بهبود کارایی آن بسیار سخت و طاقت فرساست. می خواهم بگویم زمانی که در زمان توسعه ذخیره می کنید، بعداً صرف بهبود کارائی آن می شود.”
من در مورد آنچه باید بگویم می دانم اما فکر می کنم نظر شخصی با نام رسمی شما می تواند اهرم بهتر و تواناتری باشد. اگر تمایل دارید لطفاً نظر خود را در خصوص APEX برای ما اعلام نمایید.

ریک، خوشحال خواهم شد نظر خود را در خصوص اپکس با تو در میان بگذارم. دیدگاهی که بیان خواهم کرد حاصل تجربیات برنامه نویسی خود با اپکس (سایت PL/SQL Challenge را که یک برنامه اپکس است مشاهده نمایید)، ارتباطات نزدیکم با تیم توسعه دهنده اوراکل اپکس، (گروهی از برنامه نویسان چابک و کاملا به روز و در دسترس)، و نیز توسعه دهندگان بیشمار اپکس در کنفرانس ها و دوره های آموزشی، است.

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

از طرفی نیز هیچ شکی وجود ندارد که اپکس ابزار اصلی و آینده اوراکل و جزء کلیدی در توسعه سریع برنامه های وب محور، Cloud و غیره است. اپکس به عنوان قلب تپنده Oracle Cloud و Oracle Store استفاده می شود. هزاران شرکت توسعه دهنده نرم افزار در دنیا در حال حاضر برنامه های بزرگ خود را چه در بستر اینترانت و چه در بستر اینترنت ایجاد و منتشر کرده اند. برای اطمینان از تعهد اوراکل نسبت به پشتیبانی کامل و نیز توسعه و به روز داشتن اوراکل اپکس دلایل بسیار زیادی وجود دارد و قطعا اوراکل نسبت به این موضوعات خود را متعهد می داند.

جمله “برای تیم های با مهارت برنامه نویسی محدود” برایم جالب است، همانطور که جمله متضادی که علاقه مندان اپکس بیان می کنند: “برای تیم های با مهارت برنامه نویسی بدون محدودیت”. می توانم اینطور تصور کنم که شخص گوینده این مطلب تصور می کند که داشتن دانش PL/SQL و SQL محدودیت است، در حالی که دانستن دانش زبانی همچون جاوا کاملا بدون محدودیت و نهایت آزادی است.

باید بگویم اپکس به تیم های برنامه نویسی با دانش و تجربه SQL و PL/SQL اجازه نفوذ بیشتری را می دهد. همچنین شکی نیست که اگر بخواهید برنامه هایی واقعا کاربردی و خوب، بر اساس وب ۲ و یا موبایل ایجاد کنید بهتر است دانش خود را در زمینه توانایی استفاده از HTML، CSS، JavaScript،XML و غیره تکمیل نمایید.

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

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

من واقعا نمی دانم بهبود بخشیدن یک برنامه اپکس چگونه می تواند سخت تر از یک برنامه مبتنی بر جاوا با آن اتصالات ضعیف به پایگاه داده اوراکل باشد. مسلماً، توسعه دهنده اپکس می تواند برنامه شلوغ و آشفته ای را تولید کند که با دستورات SQL کاملا ضعیف و با کارایی پایین بنا نهاده شده است. اما این به هیچ وجه تقصیر اپکس نیست. در کار با اپکس باید اعضای تیم خود را تشویق کنید تا اکثر منطق کسب و کار برنامه را به صورت View یا Package به پایگاه داده ها منتقل کنند- به خصوص دستورات SQL. اگر این کار را انجام دهید، مطمئن هستم که بهبود بخشیدن و نیز نگهداری برنامه اپکس از هر چیز دیگری که در درون پایگاه داده اوراکل اجرا می شود، راحت تر خواهد بود.

آیا اپکس خوب و کامل است؟ بیش از آنچه فکر می کنید. همچون دیگر ابزارهایی که در حال رشد هستند، معماری آن نیز دارای نقاط قوت و ضعف خاص خود است. اگر پیش از این تجربه کار با Ruby & Rails و یا PHP و یا هر زبان برنامه نویسی دیگری را داشته باشید، ممکن است در مواجهه با اپکس دچار کمی استرس شوید، اما اوراکل اپکس مزیت ها و معایب خاص خود را در مقابل همه این ابزارهای برنامه نویسی دارد.

و اما کلام پایانی: اگر یک برنامه نویس با تجربه SQL و PL/SQL هستید و قصد ایجاد برنامه های وب بر روی بستر پایگاه داده اوراکل را دارید، اپکس راهی بسیار منعطف و دلپذیر برای رسیدن به موفقیت با هزینه ای کم و رضایتمندی زیاد مشتری نسبت به دیگر تکنولوژی ها است.