برنامهسازی وب
| مدرس: دکتر حمید ضرابی زاده | پیشنیاز: برنامهسازی پایتون |
| ترم: | محل برگزاری: کلاس مجازی |
| زمان ارائه: یکشنبه ۱۷:۰۰ تا ۲۰:۰۰ | مشاهده: دریافت لایسنس |
معرفی درس
برنامهسازی وب؛ از طراحی صفحات تا توسعه و استقرار نرمافزارهای تحت وب
بخش بزرگی از نرمافزارهایی که هر روز استفاده میکنیم، از سامانههای فروشگاهی و خدمات آنلاین گرفته تا ابزارهای مدیریتی و آموزشی، بر بستر وب اجرا میشوند. توسعه چنین نرمافزارهایی به چیزی فراتر از طراحی یک صفحه وب نیاز دارد؛ برنامهنویس باید بتواند رابط کاربری مناسبی طراحی کند، منطق برنامه را در سمت سرور پیادهسازی کند و ارتباط میان این دو بخش را بهدرستی مدیریت کند.
در این درس، با اصول برنامهسازی وب و اجزای اصلی یک نرمافزار تحت وب آشنا میشوید. ابتدا ساختار صفحات را با HTML و CSS طراحی میکنید و با کمک JavaScript، تعاملپذیری صفحات و تغییر پویای عناصر آنها را میآموزید. سپس مفاهیمی مانند پردازش فرمها، ارتباط ناهمگام با سرور، کار با APIها و تبادل داده با قالب JSON را بررسی میکنید تا درک روشنی از ارتباط میان مرورگر و سرور به دست آورید.
بخش اصلی درس به چارچوب جنگو (Django)، یکی از چارچوبهای پرکاربرد مبتنی بر پایتون برای توسعه نرمافزارهای تحت وب، اختصاص دارد. در این بخش با معماری جنگو و اجزای مختلف آن، از جمله مدلها، نماها و قالبها آشنا میشوید و نحوه مدیریت دادهها، پردازش فرمها، احراز هویت و کنترل دسترسی کاربران را یاد میگیرید. در پایان نیز مباحثی مانند استقرار نرمافزار، استفاده از Docker، تنظیم وبسرور و بهینهسازی را بررسی میکنید تا با مراحل رساندن یک نرمافزار تحت وب از محیط توسعه به محیط اجرا آشنا شوید.
در پایان این درس چه تواناییهایی کسب میکنید؟
- طراحی ساختار صفحات وب با HTML و آراستن آنها با CSS، از جمله طراحی واکنشگرا
- استفاده از JavaScript برای مدیریت رویدادها، تغییر عناصر صفحه و ایجاد تعامل با کاربر
- درک ارتباط میان سمت کاربر و سمت سرور و آشنایی با پردازش فرمها و درخواستهای وب
- استفاده از AJAX، APIها و JSON برای تبادل داده میان اجزای یک نرمافزار تحت وب
- ایجاد پروژههای وب با چارچوب Django و شناخت معماری و اجزای اصلی آن
- تعریف مدلهای داده، مدیریت روابط میان مدلها و انجام عملیات بازیابی و تغییر دادهها
- طراحی نماها و قالبها و مدیریت مسیرهای دسترسی به صفحات
- پیادهسازی فرمها، اعتبارسنجی ورودیها و قابلیتهای احراز هویت و کنترل دسترسی کاربران
- آشنایی با قابلیتهای تکمیلی جنگو و استفاده از آنها در توسعه نرمافزار
- شناخت مراحل استقرار نرمافزارهای تحت وب، استفاده از Docker و تنظیم وبسرور
این درس برای دانشجویان و دانشآموختگان مهندسی کامپیوتر و علوم کامپیوتر، برنامهنویسان و افرادی مناسب است که میخواهند وارد حوزه توسعه وب شوند یا تواناییهای خود را در این زمینه گسترش دهند. اگر قصد دارید علاوه بر طراحی صفحات وب، توسعه سمت سرور را با پایتون یاد بگیرید و با چارچوبی پرکاربرد برای ساخت نرمافزارهای تحت وب آشنا شوید، این درس میتواند نقطه شروع مناسبی باشد.
پیشنیاز
آشنایی مقدماتی با برنامهنویسی و مفاهیمی مانند متغیرها، شرطها، حلقهها و توابع برای گذراندن این درس توصیه میشود. آشنایی قبلی با HTML، CSS، JavaScript یا Django ضروری نیست؛ مباحث مربوط به طراحی صفحات وب و توسعه نرمافزار با جنگو در طول درس ارائه میشوند.
سرفصلها
- طراحی صفحات وب (۲ جلسه)
- ساختار HTML، عناصر و ویژگیها، پاراگرافبندی، لینکها، لیستها، فرمها
- سبکبندی با CSS، انتخابکنندهها، وراثت و آبشار، درج فونت، طراحی واکنشگرا
- جاوا اسکریپت (۲ جلسه)
- ساختار کلی زبان، مدل DOM، ویرایش عناصر، رسیدگی به رویدادها
- مفاهیم جدید +ES6، ماژولها، ردهها، تجزیه ساختاری، توابع ناهمگام
- تعامل با سرور (۲ جلسه)
- کارگزار وب پایتون، رابط CGI، پردازش فرمهای ورودی، رابط WSGI
- استفاده از AJAX، ارتباط با سرور، کار با API، تبادل داده با JSON
- چارچوب جنگو (۱۰ جلسه)
- مفاهیم اولیه، نصب و راهاندازی، مؤلفهها، معماری کلی
- ایجاد یک پروژه، تعریف مدل، راهاندازی مدیر، افزودن نما
- لایهی قالب، زبان تعریف قالب، قالب پایه، فیلترهای آماده
- لایهی مدل، نگاشتگر شیء-رابطه، روابط بین مدلها، وراثت
- پرسوجوی دادهها، انواع پرسوجو، مدیریت دادهها
- لایهی نما، نگاشت نشانیها، اشیاء درخواست و پاسخ، نماهای عمومی
- پردازش فرمها، ابزارکهای توکار، اعتبارسنجی
- احراز هویت، کنترل دسترسیها، مدیریت کاربرها و گروهها
- دکوراتورها، نحوهی تعریف، آرگومانهای متغیر، کاربردها در جنگو
- مرحلهی استقرار، استفاده از داکر، تنظیم وبسرور، بستهبندی، بهینهسازی
ارزیابی
- تمرینهای عملی (۶ نمره)
- پروژه (۵ نمره)
- آزمون پایانی (۱۰ نمره)
منابع
- J. Wolf. HTML and CSS: The Comprehensive Guide. Rheinwerk Computing, 2023.
- D. Flanagan. Javascript: The Definitive Guide. 7th Edition, O'Reilly Media, 2020.
- B. Shaw, S. Badhwar, and C. Guest. Web Development with Django. 2nd Edition, Packt Publishing, 2023.
- M. Fowler, D. Rice, M. Foemmel, E. Hieatt, R. Mee, and R. Stafford. Patterns of Enterprise Application Architecture. Pearson Addison-Wesley, 2003.