Promotion 12/12 หนังสือสอนเขียน API ด้วย Ruby on Rails
ส่วนลดพิเศษ 20% โปรโมชั่นพิเศษ 12.12
มาเรียน framework ที่สร้างเนื้อสร้างตัวให้กับ startup มาแล้วทั่วโลกกันเถอะ
อัพสกิลของตัวเองให้รู้ว่า Framework ที่มีทุกอยากเพรียบพร้อม และ มีกฏการเขียนที่ดี เป็นอย่างไร
Ruby คือ ภาษา ที่ถูกสร้างมาเพื่อให้ Programmer สนุกกับการเขียนโปรแกรม
Rails คือ Framework ที่ถูกสร้างมาให้การเขียน Web Application เป็นเรื่องสนุก และ มีทุกๆอย่างที่ต้องการ
รายละเอียดหนังสือ
เนื้อหาของหนังสือมีดังนี้ครับ
- บทท่ี 1 - เตรียมเครื่อง
- rvm / Install Ruby
- nvm / Install NodeJS (optional) Ruby on Rails
- Text Editor
- Postman / Hoppscoth
- บทท่ี 2 - สร้าง Project
- บทท่ี 3 - Folders และ Files
- root Folder
- config Folder
- app Folder
- Files อื่นๆ
- บทท่ี 4 - ภาษา Ruby
- Numbers
- String
- Comment
- puts และ print
- Array
- Hash
- if / else / elsif / end
- Boolean
- Case (switch)
- Loops (for ,while, each)
- map
- implicit / explicit return
- Code Block 30 Class / Object
- Subclass
- Modify Build-in Class
- บทท่ี 5 - Controllers
- Static API [GET]
- Request with curl
- CORs / Hoppscotch
- POST/PUT/PATCH/DELETE
- บทท่ี 6 - Model / Database
- ActiveRecord
- Model / Table Design
- Code First Database Migration
- การแก้ไขโครงสร้าง Database
- การเขียนข้อมูลด้วย Rails Console
- บทท่ี 7 - CRUD REST API
- New project
- REST APIs
- Generating Controllers
- GET users#index
- POST users#create
- GET users#show
- PUT/PATCH users#update
- DELETE users#destroy
- บทท่ี 8 - Scaffolding
- rails g scaffold
- ทดสอบ API จาก scaffold
- บทท่ี 9 - Model Relationships
- Defining Relationships
- บทท่ี 10 - Sending Emails
- Mailgun
- ActionMailer Basic
- Sending Real emails
- บทท่ี 11 - Errors Handling
- rescue
- throwing errors
- Custom Error Class
- Catching Errors in Controller
- Other errors to rescue
- บทท่ี 12 - Authenticating APIs
- devise gem
- JWT
- Model callbacks
- Sessions Controller
- Sign up API
- Sign in API
- Profile API
- Sign out API
- Catching JWT / API Errors
- บทท่ี 13 - Model Validation
- Presence
- Inclusion
- Length / Number
- Custom Validation
- บทท่ี 14 - Query Interfaces
- .find / .findby?
- .where / .where.not
- Date Query
- Scope
- Scope with function
- Ordering
- Readonly Object
- JOIN
- Eager Load / N+1 Query
- Selecting Fields to Query
- Calculations
- บทท่ี 15 - Caching with Rails
- Installing REDIS
- Configuring Rails
- Simple Cache Key
- Caching Model
- บทท่ี 16 - Delayed Jobs
- ActiveJob
- Using with Mailer
- บทท่ี 17 - Uploading files / Images
- ActiveStorage
- Upload Image API
- multipart/form-data
- Auto Resize Images
- File Validation
- Storage Config
- บทท่ี 18 - Model / State Machine
- AASM
- States
- Events
- Callbacks
- บทท่ี 19 - Unit Test
- Rails test
- Test Driven Development (TDD)
- Fixtures
- Parallels Testing
- บทท่ี 20 - Searching Database
- Preparation / Database Seed
- SQL Search / Ransack
- SQL Multi-column Ransack
- ElasticSearch / Searchkick
- บทที 21 - Security / Credentials
- rails credentials
- บทท่ี 22 - Deploying Rails
- Server Preparation (Ubuntu)
- Adding new user to Server
- Installing Rails / NGINX
- Deploying Code
- Nginx & Passenger Config
- SSL / Let’s Encrypt Config
- Dockerfile
สำหรับ Video สอน
ผมพยายามทำและรวบรวมวีดีโอที่ผมทำเอง และ ถ้าเป็นไปได้จะพยายามเอาวีดีโออื่นๆที่เกี่ยวข้องมารวมด้วยครับ (ข้ามไปดูวีดีโอด้านล่างสุดได้เลยครับ สำหรับคนใจร้อน)
Youtube Channel SaKKosama 🐶 กดติดตามหน่อยนะครับ
เป้าหมายคือ อยากให้เป็นประโยชน์กับทุกๆคน ไม่ว่าจะพนักงานของผมเอง หรือ จะเป็นคนที่มีความสนใจศึกษา Ruby on Rails และอยากให้มี Developer ชาวไทยหันมาใช้งาน Ruby on Rails กันให้เยอะขึ้นครับ
ปล. Web dev.to นี้ก็เขียนด้วย Ruby on Rails นะครับ
List ข้อดีของ Ruby on Rails
- Ruby เป็นภาษาที่ สามารถอ่านได้ง่าย เข้าใจง่าย
- Rails เป็น Framework ที่มี High standard และ Convention ที่ดีมากๆ ดีขนาดที่ทุกๆ Framework พยายามนำไปเปรียบเทียบ
- คนชอบบอกว่า High Learning Curve แต่สำหรับผม มันขึ้นอยู่กับว่า เริ่มอย่างไรมากกว่า
- Rails เป็น Framework ที่มีครบเกือบจะทุกอย่างที่ Developer ต้องการสำหรับ Web Development
- Rails เป็น Framework ที่ทำให้สามารถพัฒนาระบบอะไรก็ตามได้อย่างรวดเร็ว และ สามารถทำการเปลี่ยนแปลง feature ต่างๆ ได้โดยง่าย
- Rails ตั้งแต่ Rails 5 ขึ้นมา มีการใส่ Test Driven Development ได้โดยง่าย ไม่ว่าจะเป็น Unit test, Integration test ในทุกๆเรื่อง โดยที่มีการกำหนดวิธีเขียนมี standard อย่างชัดเจน
- Rails มี Security Standard ที่ชัดเจน หากทำตามที่ Framework กำหนด มีความปลอดภัยในการทำสูงมาก
- Rails caching mechanism ดีมากๆ ไม่ว่าจะเป็น Query Cache, Redis Cache รับรองว่าใช้แล้วจะแปลกใจทำไมภาษาอื่นไม่มี
List ข้อด้อยของ Ruby on Rails ที่คนชอบบ่นกัน
- หลักๆเลยคือ ช้า... คนบ่นทุกคน แต่มันก็พอๆกะ Python (Django)
- Scale ยาก เพราะว่ามันช้า มันเลย Require scaling เยอะกว่าคนอื่น
- พึ่งพา gem เยอะ และอาจจะทำให้ไม่ค่อย Flexible หากเลือกไม่ดี (เป็นเหมือนกันทุกภาษา)
- Learning curve / Learning Material เอาจริงๆ ผมว่าขึ้นอยู่กะคน
สรุปความคิดเห็นส่วนตัว
- ภาษาที่เขียนง่าย อ่านง่าย จะทำให้ Maintain ง่ายขึ้น ผมเปิดบริษัทมาร่วมสิบปี Maintain Rails เป็นอะไรที่สบายที่สุด แต่ NodeJS เป็นอะไรที่ทรมานที่สุด
- ภาษาที่เขียนง่าย ทำให้สามารถเขียน function ยากๆได้ง่ายขึ้น ภาษาที่เร็วๆ เขียนไม่ดีมันก็ช้าได้
- Function ไหนอยากให้เร็วขึ้น
- หาทางทำ Caching
- Optimize query
- ย้ายไปทำ Microservice แยก เอาก็ได้
พิมมาเยอะ ใครเห็นด้วยไม่เห็นด้วยก็ติชมได้ครับ จะพยายามปรับให้ดีขึ้นเรื่อยๆครับ ขอบคุณครับ
วิีดีโอ
- TIPS EP0: เตรียม server Ubuntu Server 18.04 แบบง่ายๆ
- Ruby on Rails EP1: สอน Ruby on Rails (Active Record / Models)
- Ruby on Rails EP2: สอน Ruby on Rails (Model / has_many)
- Ruby on Rails EP3: สอน Ruby on Rails (Models / many to many)
- Ruby on Rails EP4: สอน Ruby on Rails (routes)
- Ruby on Rails EP5: สอน Ruby on Rails (Routes and APIs)
- Ruby on Rails EP5.1 สอน Ruby on Rails (Routes and APIs ต่อ)
- Ruby on Rails EP6: สอน Ruby on Rails (Scaffolding)
- Ruby on Rails EP7: สอน Ruby on Rails (Active Record Callbacks)
- Ruby on Rails EP8: สอน Ruby on Rails (ActiveRecord State Machine)
- Ruby on Rails EP9: สอน Ruby on Rails (Make APIs Rescue from any Error)
- Ruby on Rails EP10: สอน Ruby on Rails (ใช้ credentials กับ สร้าง JWT)
- Ruby on Rails EP11: Active Record (Single Table Inheritance)
- Ruby on Rails Ep12: Rails powered by Ruby (พื้นฐาน Ruby #1)
- Ruby on Rails Ep12.1: Rails powered by Ruby (พื้นฐาน Ruby #2)
- Ruby on Rails Ep12.2: Rails powered by Ruby (พื้นฐาน Ruby #3 Class)
- Ruby on Rails Ep13: Polymorphic using Ruby on Rails
- Ruby on Rails EP14: Workshop Login API
- Ruby on Rails EP14.1: Workshop Rest API CRUD (cont.)
- เขียน NuxtJS+VueJS มาเชื่อมต่อ EP14,EP14,1
- เทคนิค Code First Database Migration สร้าง Database ด้วย Code แบบแทบจะไม่ต้องพึ่ง SQL อีกเลย