در تپش این هفته، ماجرای فریب و تعرض در پوشش عرفانهای دروغین و رمالی را بررسی کردیم
تفکرات پشت پرده
وردپرس و جوملا، از محبوبترین CMSهای منبعباز هستند. این CMSها، جامعه پشتیبان بزرگ و فعالی دارند و راهنماهای آنها بهوفور در اینترنت یافت میشود. وردپرس، بهخاطر طراحی زیبای محیط و رنج وسیع قالبهای فوقالعاده و در دسترس، معمولا اولین گزینه اجتماع توسعهدهندگان برای انتخاب است. اما جوملا، بهخاطر بدنامیای که برای کارایی پایین و خروجیهایی که که گاهی اوقات اشتباه هستند(که البته این را از مامبو بهارث بردهاست)، رنجآور است. البته در نسخه 5/1، هسته جوملا، بهوسیله توسعهپذیریهای پیشرفته و خروجی HTML بهتر، بازنویسی شد.
یکی از تفاوتهای وردپرس و جوملا، در مدل تمهای آنهاست. یک برنامهنویس که از جوملا بهسمت وردپرس میرود ممکن است این احساس را داشته باشد که وردپرس نیازهای بیشتری از او را برطرف میکند و در حالت عکس، کسی که بهسمت جوملا میرود، ممکن است احساس کند جوملا، انعطافپذیری و تغییرپذیری کمتری دارد. دلیل این امر، مدلهای مختلفی است که در تمهای این CMSها قرار داده شدهاست.
مدل قالب وردپرس
مدل قالب وردپرس، برپایه ساختار دید مرحلهای است. بهاین معنی که در هر تم، میتوانید برای فایلهای لیست پستشدهها، یا یک پست خاص و یا صفحههای آرشیو، دید خاصی داشتهباشید. این فایلها، مستقل از یکدیگر هستند و این قابلیت وردپرس، به برنامهنویس اجازه میدهد هر شیوه دیدن را بهطور خاص طراحی کند. ولی اینکار، بخشهای زیادی از کد را تکراری میکند. تنها بخش معمول در قالب، سرنوشته و پانوشته است که میتوانند بهطور مستقیم، در یک دید مستقل و در کد نوشته شوند. مهمترین اشکال این مدل این است که در دیدهای مختلف، معمولا از نمایشهای مختلفی استفاده نمیشود. برای غلبه بر این مشکل، یک تم در ساختار ترتیبی و با دیدهای نوعی بیشتر ساخته شد که در موارد خاص مانند یک سیستم پشتیبان عمل میکند.
مدل قالب جوملا
جوملا (Joomla)، از شیوه متفاوتی برای قالبهای خود استفاده میکند. قالبهای جوملا، روی یک ساختار معمول که در فایل index.php تعریف شدهاست، ساخته شدهاند. این فایل، هم شامل محتوای ایستا و هم شامل تگهای قالب است که مانند نگهدارنده محتوا عمل میکند و در فاز رندر شدن صفحه، با خروجی HTML جایگزین میشود. تگهای قالب، در نوع محتوایی که فراهم میکنند تفاوت دارند. مثل اجزا، پیغام، ماژول، سرصفحه و غیره.
اصل این ساختار، این مساله را نشان میدهد که هر دید در خروجی CMS، یک صفحه کامل نیست ولی چیزهایی که باید را نشان میدهد. در اولین نگاه، برنامهنویسی که از مدل تمگذاری وردپرس استفاده میکند، شاید فکر کند که هیچ راهی برای تغییر دادن یک محتوا وجود نداشته باشد. درواقع جوملا، بر الگوی معماری MVC تکیه کرده است. به این معنی که در آن بیرونکشیدن و نمایش داده جدا شده است.
تغییرات قالبها
جوملا برای تغییر دید پیشفرض، الگویی بهنام ابطال قالب دارد که سیستم، پوشه قالب را برای پیدا کردن یک فایل دید تغییر دادهشده، و برای جایگزینی بهجای دید پیشفرض، جستجو میکند. ابطال قالب که در جوملا وجود دارد، روش خوبی برای سفارشی کردن قالب یک وبسایت، بدون شکستن قفل آن است.
آن سوی هسته
در چند سال گذشته، افزونهها، تحول عظیمی در صنعت نرمافزار بهوجود آوردند. همانطور که اشاره شد، CMSهای مدرن، برپایه گسترشپذیری توسعه یافتند و بههمین دلیل است که میتوانیم از هسته آن بهراحتی استفاده کنیم و قسمتهای ویژهای را در بالاترین سطح آن بسازیم. این طراحی قسمتبندیشده، به چند دلیل یک مدل توسعه موثر است:
- نگهداری بهتر. توسعهدهندگان نیازی به اصلاح هسته برای اضافه کردن یا تغییر قابلیت ندارد.
- سبکتر و امنتر. قابلیتهایی که مورد نیاز هستند، در آن قرار دادهشده است. اینعمل، مصرف کمتر حافظه، حجم کمتر و آسیبپذیری کمتر را نتیجه میدهد.
- چرخههای توسعه جداگانه برای هسته و قابلیتها. توسعهدهندگان میتوانند قابلیتهای جدیدی اضافه کنند درحالی که تیمی که روی هسته کار میکنند، روی کارایی سیستم تمرکز کردهاند. با استفاده از پروژههای منبعباز، آخرین نکته، هم خوب است و هم بد! هم برای توسعههای مشترک مفید است و هم اینکه ما را به سمت روند کاری شلوغتر سوق میدهد. جوملا و وردپرس، سعی بر این داشتهاند که این ضعف را بهوسیله تهیه راهنماهای کدنویسی برطرف کنند.
گذشته از تفاوتهای جوملا و وردپرس در نامگذاریها، مدلهای بسط یافته جوملا و وردپرس در چگونگی تعامل کد و هسته اختلافهایی دارند. کلید درک این مساله این است که درحالی که جوملا، برپایه الگوی MVC است، وردپرس به سیستم رخداد مانند تکیه کرده است. در بخش بعدی، پروژههای فارسی این دو سیستم محبوب را بررسی خواهیم کرد.
محمدحسین کردونی
در تپش این هفته، ماجرای فریب و تعرض در پوشش عرفانهای دروغین و رمالی را بررسی کردیم
گزارش «جامجم» درباره دستاوردهای زبان فارسی در گفتوگو با برخی از چهرههای ادب معاصر
معاون وزیر بهداشت: