توسعه برنامه های وب با وردپرس – معرفی

توسعه برنامه های وب با وردپرس – معرفی

در حال حاضر بیش از هر زمان دیگری، توسعه دهندگان و طراح ها شروع به استفاده از وردپرس برای ساخت برنامه های وب کرده اند.

منظورم این است که این جامعه متوجه شده است که از وردپرس می شود، بیش از یک سیستم وبلاگ نویسی و مدیریت محتوا انتظار داشت.

و چرا که نه؟ وقتی چند قدم به عقب بر می گردید و به امکانات وردپرس نگاه می کنید، می بینید که واقعا چه امکاناتی وردپرس دارد.

به عنوان مثال:

  • دارای یک دیتابیس با انواع داده انعطاف پذیر
  • لایه برنامه هسته با قلاب های (Hook) متعدد که از آنها می شود استفاده کرد
  • توانایی راه اندازی سمت سرویس گیرنده، سمت سرور، user-facing، و administrator-facing

در واقع، Matt Mullenweg در تویتر خود این چنین می گوید:

وقتی دربارش فکر می کنیم، می بینیم که در حال ساخت یک نوع سیستم عامل وب هستیم.

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

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

 

فریم ورک (Framework) چیست؟

ویکیپدیا فریم ورک را این چنین تعریف کرده است، یک نرم افزار به شرح زیر:

در برنامه نویسی کامپیوتر، یک چارچوب نرم افزاری انتزاعی است که به صورت عموم ارائه می شود که توسط اشخاص مختلف می شود تغییر یافت، در نتیجه باعث تولید نرم افزاری خاص. یک نرم افزار فریم ورک جهانی است، قابل استفاده در پلت فرم های مختلف، برای توسعه دادن. فریم ورک ها دارای برنامه های پشتیبان هستند، کامپایلر، کتابخانه کد، مجموعه ابزار، و رابط برنامه نویسی نرم افزار (API)، که با گرد آوردن تمام اجزا مختلف، یک محیط برای توسعه دادن پروژه شما فراهم می سازند.

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

با یک فریم ورک، شما می توانید بر روی دامنه ای خاص از مشکلات تمرکز کنید تا راه حل را پیدا کنید.  به عنوان مثال، فرض کنید به شما می گویم که یک نرم افزار ساده حساب درست کنید، که مسئول پیگیری سپرده، برداشت، و دسترسی است.

در این سناریو، شما یک دیتابیس دارید که منحصر به فرد برای این مشکل است، یک دیتابیس انتزاعی باعث می شود به راحتی داده ها را بخوانید یا در طرح تعریف شده بنویسید، و مجموعه از قرارداد ها برای نمایش کد ها (که مسئول نمایش داده ها برای کاربر، که با کاربر تعامل کند). و برای سازماندهی کد برنامه که نشست بین نمایش کد و کد دیتابیس که کپسوله کردن هر  گونه منطق کسب و کار منحصر به فرد به این مشکل است.

می بینید که، یک فریم ورک چگونه می تواند یک برنامه را از روی زمین بلند کند. کمک می کند تا یک برنامه را از شمای یک دیتابیس گرفته تا برنامه نویسی پیچیده ایجاد کند.

day-one-screenshot-760x504

حالا، پایه (Foundation) چیست؟

در واقع حقیقت این است که آن چیزی که پیشنهاد میدهد بسیار شبیه وردپرس است؟ اینطور نیست؟

اما چیری که است، وردپرس یک برنامه است که یک دیتابیس از پیش تعریف شده فراهم می کند می کند، مجموعه ای از کدهای برنامه (API)، و همچنین راه هایی برای نمایش اطلاعات با قالب ها (template files).

به عبارت ساده، وردپرس برنامه ای است که مجموعه ای از API ها و  قراردادها را برای ساخت برنامه فراهم می کند. همچنین طرح (schema)، هسته داده های منطق، برخی از منطق های کسب و کار، و استراتژی های خارج از محدوده را فراهم می کند.

در حالی که یک فریم ورک در واقع این اجازه را می دهد که یک برنامه را ایجاد کنید،  ولی یک پایه (foundation) اجازه می دهد که برنامه خود را توسعه دهید.

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

به طور خلاصه، نرم افزار می تواند بر اساس فریم ورک ساخته شود، نرم افزار می تواند پایه را گسترش دهد.

کمی گمراه شدید؟

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

با وردپرس، می توان تمام این ها را با دیتابیس موجود ممکن ساخت. از API ها برای اعتبار سنجی داده ها استفاده می شود، می توانید از قالب ها برای نمایش اطلاعات استفاده کنید، و از قلاب ها (Hooks) برای پیاده سازی توابعی سفارشی استفاده کنید که وظیفه تعامل با کاربر را دارند.

 

پس تفاوت چیست؟

بنابراین، بله، اگرچه از همان نوع از نرم افزار را می توان بر اساس یک فریم ورک یا پایه درست کرد، تفاوت هایی بین چارچوب و پایه وجود دارد، و فکر می کنم خیلی مهم است که فرق این دو را درک کنید، قبل از این که به قسمت های بعدی مراجعه کنید.

به عبارت ساده، فریم ورک ها برنامه های کاربردی نیستند، پایه ها برنامه های کاربردی هستند.

دلیل نمی شود که اگر یک برنامه را با وردپرس می شود درست کرد پس آن برنامه یم فریم ورک است. این یک پایه و اساس است. این برنامه به خودی خود می تواند بیشتر از یک برنامه رشد کند.

چیزهایی مثل Rails، Laravel، CakePHP، Zend، و CodeIgnitor فریم ورک هستند، وقتی آنها را دانلود و نصب می کنید، می بینید که آنها در واقع تا زمانی که کد مناسبی را دریافت نکنند کاری انجام نمی دهند.

ولی پایه و اساس (Foundations) اینطور نیستند. آنها بدون اینکه کدی را شما وارد کنید یا نه کارهایی را انجام می دهند.

 

مرحله بعدی چیست؟

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

اگرچه موارد فنی زیادی وجود نخواهد داشت – مثل کد، مقدار زیادی از نمونه های API وردپرس در دسترس خواهد بود، چگونه از آنها استفاده کنیم، و آنچه را هنگام نوشتن برنامه لازم است.

در مقاله بعدی خواهیم دید که، تغییر مفهومی مدل در ساخت برنامه های وب با اسفاده از الگو ها و فریم ورک ها مثل وردپرس چگونه است.