หัวข้อบทความ
การพัฒนาซอฟต์แวร์
บันทึกจากการสร้างเว็บไซต์และเครื่องมือ
8 บทความใหม่สุดก่อน
การพัฒนาซอฟต์แวร์
RPC กับ REST แตกต่างกันอย่างไร และควรเลือกใช้แบบไหน
RPC เรียก procedure บน server ด้วยชื่อและพารามิเตอร์ ส่วน REST ส่งคำขอไปที่ resource ผ่าน interface กลางของ HTTP เทียบทีละประเด็นพร้อมตัวอย่าง gRPC และ JSON-RPC อิงจาก Fielding, RFC 9110 และ spec ต้นทาง
เริ่มต้น10 นาที
- API
- RPC
- REST
- gRPC
- JSON-RPC
- HTTP
การพัฒนาซอฟต์แวร์
WebSocket SSE และ Polling ต่างกันอย่างไร ควรเลือกแบบไหน
Polling ส่ง request ใหม่ทุกรอบ SSE เปิด response ค้างให้ server ส่ง event ทางเดียว WebSocket upgrade แล้วส่ง frame ได้สองทาง พร้อมเรื่อง reconnect และ proxy
ปานกลาง9 นาที
- WebSocket
- Server-Sent Events
- SSE
- Long Polling
- HTTP
- Reverse Proxy
- nginx
การพัฒนาซอฟต์แวร์
OAuth 2.0 กับ OpenID Connect ต่างกันอย่างไร
OAuth 2.0 ให้แอปได้ access token ไปเรียก API แทนผู้ใช้ ส่วน OpenID Connect เพิ่ม ID token ที่บอกว่าใคร sign in ไล่ authorization code flow กับ PKCE ทีละ request
ปานกลาง7 นาที
- OAuth 2.0
- OpenID Connect
- PKCE
- Authentication
- Authorization
- Tokens
การพัฒนาซอฟต์แวร์
Docker กับ Kubernetes ต่างกันอย่างไร เมื่อไหร่ต้องใช้ Kubernetes
Docker ใช้ build image และรัน container บนเครื่องหนึ่งเครื่อง ส่วน Kubernetes ดูแล container บนหลายเครื่อง ทั้งจัดวาง Pod รักษาจำนวน replica และเปิด Service
เริ่มต้น5 นาที
- Docker
- Kubernetes
- Containers
- Docker Compose
- OCI
- DevOps
การพัฒนาซอฟต์แวร์
Database index คืออะไร ทำไม query ถึงช้า ดูจาก EXPLAIN
index คือโครงสร้างแยกจากตารางที่ให้ PostgreSQL หาแถวได้โดยไม่ต้องอ่านทั้งตาราง อธิบาย B-tree, Seq Scan กับ Index Scan, EXPLAIN ANALYZE และต้นทุนตอนเขียนข้อมูล
ปานกลาง10 นาที
- PostgreSQL
- Database
- Index
- B-tree
- EXPLAIN
- Query Performance
การพัฒนาซอฟต์แวร์
JWT กับ Session Cookie ควรใช้แบบไหน
Session cookie เก็บ state ไว้ที่ server ส่วน JWT เก็บ claim ไว้ในตัว token เทียบเรื่อง revocation ที่เก็บใน browser XSS กับ CSRF และ cookie attribute ที่ควรตั้ง
ปานกลาง7 นาที
- JWT
- Cookies
- Sessions
- XSS
- CSRF
- Web Security
การพัฒนาซอฟต์แวร์
แอปที่ใช้งานได้แม้ไม่มีเน็ตทำงานอย่างไร
แอปแบบ offline-first อ่านและเขียนข้อมูลในเครื่องก่อน แล้วค่อย sync ผ่านคิว อธิบายทีละขั้นตั้งแต่กดบันทึก การ retry จนถึงการเลือกข้อมูลเมื่อแก้ชนกัน
ปานกลาง9 นาที
- offline-first
- sync
- IndexedDB
- Service Worker
- WorkManager
- Flutter
- HTTP
การพัฒนาซอฟต์แวร์
HTTP/1.1, HTTP/2 และ HTTP/3 ต่างกันอย่างไร
ทั้งสามเวอร์ชันใช้ semantics เดียวกันตาม RFC 9110 แต่ส่งข้อมูลต่างกัน HTTP/1.1 เป็น text บน TCP, HTTP/2 เป็น binary frame บน TCP, HTTP/3 วิ่งบน QUIC ผ่าน UDP
ปานกลาง9 นาที
- HTTP
- HTTP/2
- HTTP/3
- QUIC
- TCP
- TLS
- Firewalls