لطفا جهت اطلاع از آخرین دوره ها و اخبار سایت در
کانال تلگرام
عضو شوید.
آموزش ساخت برنامه های کاربردی وب مدرن با Go (Golang)
Building Modern Web Applications with Go (Golang)
نکته:
آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره:
آموزش برنامه نویسی در Go از استاد دانشگاه برنده جایزه نحوه نوشتن برنامه به زبان Go (اغلب به نام Golang) نحوه ایجاد صفحات HTML با استفاده از HTML5 نحوه نوشتن جاوا اسکریپت بدون وابستگی به چیزی مانند jQuery نحوه ایجاد و استفاده از Cascading Style Sheets چگونه برای ساختن برنامه های وب مدرن و ایمن در زبان برنامه نویسی Google Go چگونه برنامه Go خود را به درستی سازماندهی کنیم نحوه نوشتن تست در Go نحوه اتصال به پایگاه داده در Go نحوه مدیریت جلسات در Go نحوه ایجاد و استفاده از میان افزار در Go نحوه استفاده بسته های شخص ثالث با ماژول های Go نحوه پیاده سازی احراز هویت ایمن کاربر در Go بهترین روش ها برای امنیت در برنامه های تحت وب نحوه استقرار یک برنامه وب Go در سرور زنده پیش نیازها: هیچ پیش نیازی برای این دوره وجود ندارد. تنها چیزی که نیاز دارید یک کامپیوتر (مک، ویندوز یا لینوکس) و اتصال به اینترنت است.
نوشتن برنامه های کاربردی وب مدرن، سریع و ایمن در زبان برنامه نویسی Google Go را بیاموزید و آن را از یک استاد دانشگاه برنده جایزه با 20 سال سابقه تدریس و 20 سال تجربه کار در صنعت به عنوان یک کارآفرین یاد بگیرید.
Go یک زبان برنامه نویسی مدرن، تایپ ایمن، کامپایل شده و بسیار سریع است. این برای ساخت برنامه های کاربردی وب ایمن، مقیاس پذیر و فوق العاده سریع مناسب است.
این دوره هم برای مبتدیان کاملاً مناسب است و هم برای توسعه دهندگانی که قبلاً چیزی در مورد توسعه وب می دانند، اما می خواهند Go را به جعبه ابزار خود اضافه کنند.
ما با یک نمای کلی از زبان Go شروع می کنیم و سپس همه چیزهایی را که برای شروع نوشتن برنامه های وب نیاز دارید، از جمله مروری بر HTML5، بررسی ماژول های جاوا اسکریپت و جاوا اسکریپت، نحوه کار با Cascading Style Sheets را پوشش می دهیم. برنامه به شکلی که ما می خواهیم به نظر می رسد، و خیلی بیشتر.
پروژه اصلی در این دوره ایجاد یک سیستم رزرو و رزرو برای صبحانه تختخواب است. بازدیدکنندگان سایت ما میتوانند مکانهای اقامتی را بر اساس تاریخ جستجو کنند و رزرو آنلاین انجام دهند، و مالک سایت میتواند رزروها را از یک پشتیبان امن مدیریت کند.
زمانی که این دوره را به پایان می رسانید، درک کاملی از آنچه که برای ساخت یک برنامه وب کاملا کاربردی، ایمن و سریع از ابتدا لازم است خواهید داشت و درک کاملی از زبان برنامه نویسی Go خواهید داشت. .
سرفصل ها و درس ها
معرفی
Introduction
مقدمه: من کی هستم و قرار است چه کاری انجام دهیم
Introduction: who I am, and what we're going to do
چرا برو؟ چرا PHP یا Python یا Node.js یا هر چیز دیگری نیست؟
Why Go? Why not PHP, or Python, or Node.js, or whatever?
چرا برو؟ - منابع سیستم
Why Go? - System Resources
نصب Go، یک IDE و نوشتن یک برنامه ساده
Installing Go, an IDE, and writing a simple program
دریافت کمک: چگونه سوال بپرسیم
Getting help: How to ask questions
برخی از منابع مفید
Some Useful Resources
مروری بر زبان Go
Overview of the Go Language
نکته ای در مورد ترمینال در ویندوز: Git Bash
A note about the terminal on Windows: Git Bash
متغیرها و توابع
Variables & Functions
اشاره گرها
Pointers
انواع و سازه ها
Types and Structs
گیرنده ها: سازه هایی با توابع
Receivers: Structs with functions
سایر ساختارهای داده: نقشه ها و برش ها
Other data structures: Maps and Slices
ساختارهای تصمیم گیری
Decision Structures
حلقهها و محدودهای روی دادهها
Loops and ranging over data
رابط ها
Interfaces
مسابقه تست
Test quiz
بسته ها
Packages
کانال ها
Channels
خواندن و نوشتن JSON
Reading and Writing JSON
تست های نوشتن در Go
Writing Tests in Go
ساخت یک برنامه وب پایه
Building a Basic Web Application
نحوه کار برنامه های کاربردی وب: چرخه عمر درخواست/پاسخ
How web applications work: the request/response lifecycle
ساخت اپلیکیشن تحت وب "Hello, World".
Making a "Hello, World" web application
ماژول برنامه ما را آماده می کنیم
Making our application module-ready
توابع و کنترل کننده ها
Functions and handlers
خطا در بررسی
Error checking
ارائه الگوهای HTML
Serving HTML Templates
نکته ای برای کاربران ویندوز
A note for Windows Users
سازماندهی مجدد کد ما، و افزودن برخی سبک های اولیه به صفحات
Reorganizing our code, and adding some basic styling to pages
فعال کردن Go Modules و بازسازی کد ما برای استفاده از بسته ها
Enabling Go Modules and refactoring our code to use packages
کار با Layouts
Working with Layouts
ساخت یک کش قالب ساده
Building a simple template cache
ساخت کش قالب پیچیده تر
Building a more complex template cache
نکته ای در مورد سخنرانی های بعدی
A note about the next lectures
تنظیم پیکربندی گسترده برنامه
Setting application wide configuration
چرا پیکربندی گسترده برنامه بسیار مفید است
Why the application wide config is so useful
بهینه سازی حافظه پنهان الگو با استفاده از پیکربندی برنامه
Optimizing our template cache by using an application config
نکته ای در مورد سخنرانی بعدی
A note about the next lecture
به اشتراک گذاری داده ها با قالب ها
Sharing data with templates
مسیریابی و میان افزار بهبود یافته
Improved Routing & Middleware
استفاده از pat برای مسیریابی
Using pat for routing
استفاده از چی برای مسیریابی
Using chi for routing
در حال توسعه میان افزار خودمان
Developing our own middleware
مدیریت دولتی با جلسات
State Management with Sessions
نصب و راه اندازی بسته جلسات
Installing and setting up a sessions package
آزمایش با جلسات
Experimenting with sessions
انتخاب یک پروژه و کار با فرم ها
Choosing a Project, and Working With Forms
قراره چی بسازیم؟
What are we going to build?
راه اندازی پروژه ما
Setting up our project
فعال کردن فایل های ثابت
Enabling static files
ایجاد صفحات به صورت HTML
Creating pages as HTML
ایجاد صفحه فرود
Creating a landing page
ایجاد یک صفحه برای هر اتاق
Creating a page for each room
افزودن فرم برای جستجوی در دسترس بودن
Adding a form to search for availability
در حال بهبود فرم ما
Improving our form
ایجاد صفحه رزرو
Creating the reservation page
جاوا اسکریپت و CSS
Javascript & CSS
جاوا اسکریپت چیست و چرا باید اهمیت بدهم؟
What is Javascript, and why should I care?
ساخت تاریخ انتخاب بهتر
Making a better date picker
هشدارهای سفارشی با استفاده از Notie
Custom alerts using Notie
ایجاد مدال با SweetAlert
Creating modals with SweetAlert
پیاده سازی ماژول جاوا اسکریپت
Implementing a Javascript module
افزودن هشدارهای سفارشی در ماژول جاوا اسکریپت
Adding custom alerts in our Javascript module
با استفاده از ماژول جاوا اسکریپت بر روی دکمه "اکنون رزرو کنید".
Using our Javascript module on the "Book Now" button
CSS چیست و چگونه کار می کند؟
What is CSS, and how does it work?
پوشاندن قالبهای HTML به Go و ایجاد کنترلکنندهها
Coverting our HTML to Go Templates, and creating handlers
در حال تبدیل صفحات ما به قالب های Go
Converting our pages to Go templates
ایجاد کنترل کننده برای فرم های ما و افزودن محافظت CSRF
Creating handlers for our forms & adding CSRF Protection
ایجاد یک کنترل کننده که JSON را برمی گرداند
Creating a handler that return JSON
ارسال و پردازش درخواست AJAX
Sending & processing an AJAX request
ارسال پست AJAX و تعمیم عملکرد سفارشی ما
Sending AJAX post and generalizing our custom function
Refactoring برای استفاده از بسته های داخلی
Refactoring to use internal packages
اعتبار سنجی فرم سمت سرور
Server-side form validation
اعتبار سنجی فرم سمت سرور II
Server side form validation II
اعتبار سنجی فرم سمت سرور III
Server side form validation III
اعتبار سنجی فرم سمت سرور IV
Server Side form validation IV
نمایش پاسخ به کاربر پس از ارسال اطلاعات فرم
Displaying a response to user after posting form data
تکمیل پاسخ ما به کاربر و افزودن هشدارها
Finishing up our response to user, and adding alerts
یک نکته: موتورهای الگوسازی جایگزین
An aside: Alternate Templating Engines
تست های نوشتاری
Writing Tests
تست نوشتن برای بسته اصلی ما
Writing tests for our main package
تست های نوشتن برای گردانندگان GET ما
Writing tests for our GET handlers
تست های نوشتن برای کنترل کننده های POST ما
Writing tests for our POST handlers
تست های نوشتن برای بسته رندر I
Writing tests for our Render package I
تست های نوشتن برای بسته Render II ما
Writing tests for our Render package II
دریافت پوشش آزمون
Getting test coverage
تمرین: تست های نوشتاری برای بسته فرم ها
Exercise: Writing tests for the Forms package
راه حل برای نوشتن تست برای بسته فرم ها
Solution to writing tests for the Forms package
اجرای برنامه ما را آسان تر می کند
Making running our application easier
بهبود مدیریت خطا
Improved Error Handling
متمرکز کردن رسیدگی به خطا در بسته کمکی
Centralizing our error handling to a helpers package
با استفاده از توابع کمکی ClientError و ServerError
Using our ClientError and ServerError helper functions
در حال به روز رسانی تست های ما
Updating our tests
داده های ماندگار با PostgreSQL
Persisting Data with PostgreSQL
نصب PostgreSQL
Installing PostgreSQL
اتصال به پایگاه داده با DBeaver در مک
Connecting to the database with DBeaver on a Mac
اتصال به پایگاه داده با DBeaver در ویندوز
Connecting to the database with DBeaver on Windows
نحو اولیه SQL
Basic SQL syntax
پرس و جوهای پیچیده تر
More complex queries
طراحی ساختار پایگاه داده
Designing the Database Structure
شناسایی ساختار پایگاه داده، و نمودارهای ارتباط نهاد
Identifying database structure, and Entity Relationship Diagarams
سودا را نصب کنید
Install Soda
ایجاد جدول کاربران با استفاده از مهاجرت
Creating the users table using migrations
ایجاد بقیه پایگاه داده ما با استفاده از مهاجرت
Creating the rest of our database using migrations
راه اندازی کلید خارجی
Setting up a foreign key
راه اندازی بقیه کلیدهای خارجی ما
Setting up the rest of our foreign keys
اضافه کردن شاخص ها و ورزش
Adding Indices & Exercise
راه حلی برای ورزش
Solution to Exercise
اتصال برنامه ما به پایگاه داده
Connecting our Application to the Database
نحوه اتصال برنامه Go به پایگاه داده
How to connect a Go application to a database
ایجاد بسته درایور
Creating a Driver package
اتصال به پایگاه داده و افزودن اتصال SQL به مخزن ما
Connecting to the database and adding the SQL connection to our Repository
راه اندازی مدل ها
Setting up models
در حال پاک کردن کد ما
Cleaning up our code
چند کلمه در مورد ORM ها
A word about ORMs
تنظیم توابع پایگاه داده: درج رزرو
Setting up database functions: inserting a reservation
تست عملکرد رزرو درج ما
Testing our insert reservation function
درج محدودیت های اتاق
Inserting Room Restrictions
جستجو برای در دسترس بودن بر اساس اتاق
Searching for availability by room
جستجو برای در دسترس بودن برای همه اتاق ها
Searching for availablity for all rooms
اتصال هندلرهای ما به توابع جدید پایگاه داده ما
Connecting our handlers to our new database functions
اتصال در دسترس بودن جستجو به صفحه رزرو
Connecting search availablity to the make reservation page
در حال تمیز کردن صفحه رزرو ما و آزمایش همه چیز
Cleaning up our make reservation page and testing everything
پاک کردن صفحه خلاصه رزرو و بهبود اعتبار سنجی
Cleaning up the reservation summary page and improving validation
جستجو برای در دسترس بودن بر اساس اتاق
Searching for availability by Room
ارائه بازخورد هنگام جستجو بر اساس اتاق، و اتصال به صفحه رزرو
Providing feedback when searching by room, and connecting to the reservation pag
اتصال صفحه اتاق ها به صفحه رزرواسیون
Connecting the rooms page to the make reservation page
اتصال صفحه Major's Suite و استخراج ماژول جاوا اسکریپت
Connecting the Major's Suite page, and extracting our javascript module
اضافه کردن یک مهاجرت برای اتاق های بذر
Adding a migration for seeding rooms
افزودن مهاجرت برای محدودیت های بذر
Adding a migration for seeding restrictions
در حال به روز رسانی تست های ما
Updating our tests
ایجاد یک مخزن پایگاه داده آزمایشی
Creating a test database repository
به روز رسانی آزمون های موجود ما برای رسیدگی به جلسات
Updating our existing tests to handle sessions
بهبود آزمایشات ما با رسیدگی به موارد متعدد
Improving our tests by handling multiple cases
تست گردانندگان پست
Testing Post handlers
تست در دسترس بودن JSON
Testing AvailabilityJSON
تست های هندلر کامل شده
Completed Handler tests
ساده کردن اضافه کردن پارامترهای پست
Simplifying adding post parameters
ارسال نامه با استفاده از Go
Sending Mail using Go
ارسال ایمیل با استفاده از کتابخانه استاندارد
Sending email using the Standard Library
نصب بسته پستی و راه اندازی یک کانال ایمیل
Installing a mailer package and setting up a mail channel
نصب Mailhog در مک برای اهداف آزمایشی
Installing Mailhog on a Mac for testing purposes
نصب Mailhog در ویندوز برای اهداف آزمایشی
Installing Mailhog on Windows for testing purposes
ایجاد و ارسال اعلان های ایمیل
Creating and sending mail notifications
راه حل برای ارسال اعلان به صاحب ملک
Solution to sending notification to property owner
ارسال ایمیل با فرمت زیبا با استفاده از Foundation
Sending nicely formatted email using Foundation
در حال به روز رسانی تست های ما
Updating our tests
احراز هویت
Authentication
صفحه ورود ایجاد کنید
Create the login screen
ایجاد کنترل کننده های احراز هویت برای صفحه ورود به سیستم
Creating the authentication handlers for the login screen
ایجاد توابع احراز هویت و پایگاه داده کاربر
Creating the authentication and user database functions
ایجاد کنترل کننده ما برای ورود به سیستم
Creating our handler to log in
نوشتن میان افزار احراز هویت
Writing Authentication Middleware
افزودن کاربر به پایگاه داده
Adding a user to the database
تست ورود
Testing Login
بررسی اینکه آیا یک کاربر وارد سیستم شده است یا خیر، و یک کاربر از سیستم خارج می شود
Checking to see if a user is logged in, and logging a user out
محافظت از مسیرهای ما با میان افزار احراز هویت
Protecting our routes with authentication middleware
راه اندازی مدیریت امن پشتیبان
Setting up secure back end administration
انتخاب یک قالب مدیریت
Picking an admin template
قالب ادمین را به قالب Go تبدیل کنید
Convert the admin template into a Go template
مهم: یک یادداشت در مورد فایل admin.layout.tmpl
Important: A note on the admin.layout.tmpl file
راه حل ایجاد قالب های مدیریت
Solution to creating admin templates
کنترل کننده های خرد را برای عملکرد مدیریت ایجاد کنید
Create stub handlers for admin functionality
فهرست کردن همه رزروها
Listing all reservations
لیست رزروهای جدید
Listing new reservations
نمایش یک رزرو
Showing one reservation
توابع پایگاه داده برای ویرایش رزرو
Database functions for editing a reservation
ویرایش یک رزرو
Editing a reservation
علامت گذاری یک رزرو به عنوان پردازش شده
Marking a reservation as processed
حذف رزرو
Deleting a reservation
نمایش تقویم رزرو
Showing the reservation calendar
تقویم رزرو II
Reservation Calendar II
تقویم رزرو III
Reservation Calendar III
تقویم رزرو IV
Reservation Calendar IV
مدیریت تغییرات تقویم I
Handling Calendar changes I
مدیریت تغییرات تقویم II
Handling Calendar changes II
مدیریت تغییرات تقویم III
Handling Calendar changes III
مدیریت تغییرات تقویم IV
Handling Calendar changes IV
اصلاح تغییر مسیرهای ما
Fixing our redirects
در حال به روز رسانی تست های ما
Updating our tests
رفع یک اشکال از دست رفته توسط آزمایش های ما
Fixing a bug missed by our tests
چند کلمه در مورد تست های به روز شده
A word about the updated tests
در حال به روز رسانی برنامه های ما برای پذیرش پارامترهای خط فرمان
Updating our applications to accept command line parameters
تغییر برنامه ما برای استفاده از پرچم های خط فرمان
Changing our app to use command line flags
یک جایگزین: فایل .env
An alternative: the .env file
استقرار برنامه ما در یک سرور
Deploying Our Application to a Server
استفاده از vi برای ویرایش فایل ها در سرور راه دور
Using vi to edit files on remote server
انتخاب پلت فرم سرور
Choosing a server platform
کاربر مدیر را به مهاجرت اضافه کنید
Add admin user to migrations
نصب Go بر روی سرور، و دریافت کد ما در آنجا
Installing Go on the server, and getting our code up there
راه اندازی پایگاه داده از راه دور و ساخت برنامه بر روی سرور ما
Setting up the remote database and building the application on our server
نکته ای در مورد Caddy 2.5.0
A note about Caddy 2.5.0
اتصال برنامه به وب سرور
Connecting the application to the web server
راه اندازی سرپرست
Setting up Supervisor
نوشتن یک اسکریپت به روز رسانی برای سرور
Writing an update script for the server
نکته ای در مورد ارسال نامه از سرور زنده
A note about sending mail from the live server
پایان لمس
Finishing Touches
به روز رسانی به بوت استرپ 5
Updating to Bootstrap 5
به روز رسانی پاورقی و عنوان صفحه
Updating the footer and page title
اتمام کار، و رفع اشکال
Finishing touches, and fixing a bug
پر کردن بقیه صفحات
Populating the rest of the pages
نمایش نظرات