
اصول اولیه طراحی وب سایت پویا
ساختن وب سایت پویا، موضوعی گسترده و متنوع است که میتوان از زوایای مختلف بدان پرداخت. همچنین روشهای متنوعی برای ساختن وب سایت پویا وجود دارد، برای همین نمیتوان به همه وجود این سوال پاسخ داد.
خیلیها امروزه میخواهند وب سایتی با ساختار پویا (دادههای پویا) داشته باشند، چارپوبی که به آسانی به دارنده ساید اجازه میدهد تا متریال جدید به وب سایت خود اضافه کند، وب سایت خود را بازبینی کند و با مخاطبان تعامل مستمر داشته باشد. توییتر برای مثال یک وبسایت پویاست. در حالی که موفقیت پروژههای وبسایپهای پویا (Dynamic) در دستان انسانهای کوشای این شرکتهاست، این خطاست که چالشهای موجود در این وبسایت را دست کم بگیریم، بخصوص خصوصیات موجود در آینده این پروژهها را نباید دستکم گرفت. حتی سادهترین وبسایتهای پویا نیز نیازمند مهارتهای گسترده در بسیاری از زمینه هاست.
برای رسیدن به اهداف نامگونی که در ساختن یک وب سایت پویا وجود دارد، هیچ کسی نمیتواند از طراحی یک پایگاه داده مستحکم شانه خالی کند. البته باید دانست داشتن یک طراحی پایگاه داده خوب لازم است و نه کافی. در ساختن یک وب سایت پویا ما باید اهدافمان را بنویسیم و بهترین وسیله رسیدن به آنها را تعیین نماییم. سپس ما باید ابزارها و زبانهای برنامه نویسی خودمان را تعیین کنیم. به طور کلی دیدن تصویر کلی پروژه ما در ابتدا، مهمترین مهارتی است که باید آن را یاد بگیریم. حال در 4 قدم به شما میگوییم چگونه میتوانیم وب سایتی پویا داشته باشیم:
قدم اول: چه ابزاری برای چه اهدافی؟
به دلیل اینکه هسته مرکزی وب سایتها و ساختارهای اینترنتی پویا، پایگاه داده و جریان داده آن است، اولین هدف حیاتی ما، انتخاب ابزار پایگاهداده است. این اصلا ایده خوبی نیست که امیدوار باشیم این انتخاب و تصمیم را خیلی سرسری بگیریم و سریع رد کنیم. در این راستا گامهای زیر بسیار مهم اند:
- هدف مهم این تصمیم اولیه این است که رویکرد پروژه خود را (با ابزارها و موتورهای پایگاه داده) برنامه ریزی کنیم. این به ما کمک میکند تا در جاده مهم و مشخصی قرار بگیریم. جادهای مطمئن برای آینده پروژه که تمامی برنامههای آینده ما بر پایه آن استوار است. این جاده به ما کمک میکند تا در نهایت به شکل موثر و بدون برخورد با موانع به راهمان ادامه دهیم. این انتخاب بدین معنی است که موتور پایگاه دادهای که شما انتخاب میکنید چیزی نیست که قرار باشد شما به سادگی انتخابش کنید و سرسری از آن بگذرید، بلکه از ابتدا چیزی است که شما را تا انتهای مسیرتان همراهی خواهد کرد و به پردازش تقاضاهایتان خواهد پرداخت.
- گاهی ملاحظات مالی و اقتصادی چنین انتخابهایی را تحت تاثیر قرار خواهد داد. کدام یک از موتورهای دادهای نیاز به بررسیهای شدید دارند و یا پرهزینه اند؟ کدام یک از موتورهای دادهای تقریبا در نگهداری اهداف ما و رسیدن به اهداف ما رایگان هستند؟ به طور کلی، راهی که باید دنبال کنیم این است که باید میان گزینههایی که داریم بهترین را برگزینیم.
- برای انجام چنین کاری، باید جدولی از نیازها را تهیه نمایید، هر چند یک انسان حرفهای نیاز به ساختن چنین نقشه راهی ندارد (حتی با وجود اینکه صدها و یا هزارها جدول مورد نیاز باشد)، چرا که آنها به خوبی می توانند آینده را بر اساس مدارک و اتفاقاتی که در دست دارند پیش بینی کنند. به هرحال بعد از تهیه چنین جدولی شما باید یک پایگاه داده مناسب را تهیه کنید و بر اساس دستهبندیهای صورت گرفته و شاید تجربههایی که در انتها بدست آوردید، این پایگاه داده را انتخاب نمایید. MySQL یکی از انتخابهای معمول برای کاربردهای متمرکز است. برنامه نویسان معمولان به پایگاههای داده به عنوان مرکزی برای اقدامات و کاربردهای فشرده نگاه میکنند. ما بررسیهایمان را در راستای چنین ابزارهای حیاتیای با استفاده از تحقیقات دقیق و با ایجاد بستری از تجربهها در حوزه توسعه صنایع نرم افزاری انجام میدهیم. هزینهها به طور کلی میتوانند کنترل شوند، چرا که پیشفرضهای بسیاری از ابزارها موجود است. چیزی که ما میخواهیم بدست آوریم نوشتن و یا خواندن محیطهای متمرکز نرم افزاری است. همچنین میخواهیم پایایی و آسانی مدیریت این سیستمها را بهبود ببخشیم و یک فضای یکپارچه را در حوزه توسعه ابزارهای نرم افزاری آینده ایجاد کنیم.
قدم دوم: ابزارهای توسعه نرم افزار خود را انتخاب کنید.
دو الگو را برای انتخاب ابزارهای توسعه نرم افزار میتوانیم در نظر بگیرم. گفته میشود کار با ابزارهای "آسان" به ندرت آسان است، وقتی پروژه ای ناچارا از روالها و الگوهای پیشفرض برنامه نویسی تبعیت نمیکند، ابزارهای ساده عموما با محدودیتهایی مواجه میشوند. شما وقتی میخواهید پا را از ابزارهای "ساده" فراتر بگذارید-مانند ترکیب زبانهای برنامه نویسی و یا ترجمه پارامتر در URLهای پویا- نیاز دارید تا با ابزارهای "ساده" بیش از حد ور بروید و باید از مهارتهای پیچیده برنامه نویسی استفاده کنید تا بتوانید کارهای پیچیده را انجام دهید. ما باید بر ابزارهایمان تسلط کافی پیدا کنیم تا بتوانیم پروژههای خوب بسازیم. این باعث میشود تا ابزارهای ساده بهترین انتخاب نباشند و ابزارهای پیچیدهنیز قیاس دشواری تلقی شوند. تله ابزارهای "آسان" منجر میشود پروژه در بزنگاههای مختلف محتمل هزینههای زیادی شود. به طور کلی تنوع زیادی از این ابزارها در اختیار قرار میگیرد که به ظاهر قرار است نیازهایی این چنینی را برطرف سازند. اما الگوی پافشاری بر این ابزارها موجب میشود به اهدافمان نرسیم و بنابراین، معمولا ما به دنبال ابزارهای پیچیده و قدرمند میرویم. در اینجا ممکن است از الگوهای خوب پیروی کنیم و یا به دنبال اشیاء و یا کتابخانههای برنامه نویسی باشیم. نه تنها این ابزارها موانعی که ابزارهای رایگان داشتند، کنار میزنند بلکه ما را به آسانی و زودتر به هدفمان میرسانند. ما میتوانیم از ابزارهایی مانند پایتون، C++ و روبی استفاده کنیم تا این مشکل حل شود. این ابزارها میتوانند پیچیدگیهای مختلف را در خود حل کنند و بهترین ابزارهای ممکن هستند.
قدم سوم: طراحی و آزمایش مدلهای اولیه.
برای حل مشکلات و پاسخ به سوالاتمان، ما ناچاریم تا مدلها و الگوهای اولیه توسعه پروژههایمان را آزمایش کنیم تا به مسائل پروژه طراحی سایت خود واقف شویم. این بدین معنی است که ما باید بدانیم دقیقا ابزارهایمان چه هستند. کدام ابزار میتواند ما را به هدفمان نزدیکتر کند. همچنین یک لیست از ابزارها را بدست آوریم تا به وسیله آنها، بتوانیم مقایسه جامعی داشته باشیم. برای مثال قبل از اینکه شما بخواهیم زبان برنامه نویسی Ruby را انتخاب کنید، باید کتابهای حیاتی در این حوزه را مانند Agile Web Development with Rails را خوب خوب بخوانید. مطالعه اولیه شما بدین معنی نیست که خوب کد بزنید، بلکه بدین معنی است که بتوانید تشخیص دهید زبان برنامه نویسی و یا ابزار انتخاب شده از حیث کاربرد برای پروژه شما چه فوایدی دارد. این کار برای شروع بسیار حیاتی است. اگر قرار باشد ابزارهایی را که ظاهرا ساده هستند، با بهترین ابزارها مقایسه کنید، باید بررسی ابزارهای زبان برنامه نویسی C را در دستور کار قرار دهید. به عنوان یک مهندس برنامه نویس و یک توسعه دهنده وب ورزیده شما باید C را انتخاب کنید. زیرا زبان C از بسیاری از محدودیتها عاری است. آیا زبان C سخت تر نیست؟ جواب خیر است. زیرا زبان (سینکس) زبان است. در انتها شما باید بتوانید بر کاربردهای موجود واقف آیید و در حقیقت، زبان C و خانواده این زبان بسیار عالی اند. مشکل ورود به زبان C++ این است که باید خودتان مدلهای مخصوص خود را بسازید. زبان C کاربردهای شی گرای متنوعی دارد، چرا که مدل کلی کاربرد پایدار این زبان دقیقا برای بسیاری از چیزهایی که شما با آن کار خواهید داشت، طراحی شده است. شما با این زبان از دیگر زبانها مانند Ruby بسیار آزادانه تر حرکت خواهید کرد، و هرزمان می توانید مدلهای Ruby را بشکانید. از طرفی تکنیکهای طبقه بندی شده Rails کار را برای افراد تازهکار تسهیل میبخشد. البته این منوط به این است که کلیت پروژه بتواند با Ruby and Rails انجام بشود. برای مثال قالبهای پایه امنیت در Ruby به شما اجازه میدهد به ساده که با بازنویسی چند خط کد بتوانید از کاربردهای آن استفاده کنید و به خوبی کار شما را خواهد افتاد. ساده است؟ خب بله این کار به وسیله یک ویرایگشر ویندوز به نام NoteTab Pro وجود دارد که شما میتوانید با آن کار کنید. همچنین ماکروهای پیچیدهای که میتوانید با آنها هزاران خط کد را تغییر دهید و برنامه خودتان را بنویسید. با این حال باز هم کار کردن با این زبان ساده است. حقیقت این است که در C++ شما میتوانید اشیاء خود را بنوسید که میتوانند عملیاتها را به شکل جامعهای تغییر دهند و دیگر نیازی به دوباره کاری نیست. و خب هماطور که میبینید بده بستانی در اینجا وجود دارد. در نهایت باید نتیجه بگیریم که زبان C قدرتمندترین و کاربردیترین زبان است.
قدم چهارم: HTML و CSS مهمترین اند.
به طور کلی برنامه نویسندگان و توسعه دهندگان قدر برای دست یابی به مواردی که نیاز دارند از W3C.org استفاده خواهند. کرد. شما هم باید از آن استفاده کنید.