12 คะแนน โดย xguru 2021-03-02 | 7 ความคิดเห็น | แชร์ทาง WhatsApp
  • SPA + API + JSON ทำให้วงจรการพัฒนาและการปล่อยใช้งานช้าลง

  • ข้อโต้แย้งคือการใช้ WebSocket แบบสองทางช่วยให้ทำ server rendering, rapid prototyping, SEO ที่ตรงไปตรงมา และการพัฒนาฟีเจอร์อย่างรวดเร็วได้

→ ส่ง HTML ที่เปลี่ยนแปลง หรือข้อความสั้นๆ ผ่านซ็อกเก็ต

→ ให้เซิร์ฟเวอร์เป็นผู้ตรวจสอบแทนความซับซ้อนของการตรวจสอบค่าฝั่งไคลเอนต์และอ็อบเจ็กต์ข้อผิดพลาดต่างๆ

→ ตรวจสอบการเชื่อมต่อของผู้ใช้ได้จากการที่การเชื่อมต่อซ็อกเก็ตยังทำงานอยู่หรือไม่

→ รองรับทั้งแชตหลายผู้ใช้หรือการทำงานร่วมกันบนเอกสารได้อย่างง่ายดาย

  • การกลับมาของ Rails: Turbolinks, Stimulus, StimulusReflex, CableReady และ ViewComponent ของ GitHub

  • Hotwire ของ Basecamp ก็เป็นเทคโนโลยีแบบเดียวกัน

7 ความคิดเห็น

 
chanhee 2021-03-03

ดูเหมือนว่า serverside blazor ของ dotnet จะทำงานคล้ายกันนะครับ แต่พอเอาไปใช้จริงในโปรดักชัน ก็มักจะเจอหลายกรณีที่ค่อนข้างชวนให้ปวดหัว...

นอกจากการแพ็กทั้งเซิร์ฟเวอร์และไคลเอนต์ไปแจกจ่ายพร้อมกันบน Electron แล้ว ก็ยังนึกไม่ออกว่าแนวทางนี้มีข้อดีอะไรเป็นพิเศษ

 
kunggom 2021-03-04

ช่วยเล่าประสบการณ์การใช้งานที่เป็นรูปธรรมให้ฟังหน่อยได้ไหม?

 
andrewchaa 2021-03-03

แต่พอสร้าง API endpoint ไว้แล้ว ก็ใช้ได้ทั้งบนมือถือ เว็บ และเดสก์ท็อป เลยมีความอเนกประสงค์ที่ดีอยู่แล้ว เลยไม่แน่ใจว่าจะเรียก WebSocket ว่าเป็นอนาคตได้ไหมครับ

 
colus001 2021-03-02

Elixir Phoenix LiveView หรือ RoR Stimulus Reflex ก็เป็นแนวคิดที่คล้ายกัน

ก็มีเรื่องเล่ากันว่า Chris McCord เริ่มทำด้วย Rails ก่อน แต่เพราะปัญหาเชิงโครงสร้างเลยย้ายไปใช้ Elixir

 
iolothebard 2021-03-02

เสียงหมุนวนไปมา...

 
xguru 2021-03-02

ก็ถือว่าเป็นมุมมองแบบนี้อีกแบบหนึ่ง

เห็นด้วยว่าพอ Javascript ถูกใช้ไปทั่วทุกที่ ก็มีคำอย่าง SPA, SSR และอื่น ๆ เพิ่มขึ้นมาเต็มไปหมด และทุกอย่างก็ซับซ้อนเกินไปมาก

เรื่องการสื่อสารสองทางก็ดูเหมือนว่า WebSocket น่าจะถูกนำมาใช้มากขึ้น แต่ส่วนตัวคงต้องหวังว่าจะมีอะไรที่ใช้งานสะดวกกว่า Hotwire ออกมา

 
galadbran 2021-03-04

(อาจเป็นเพราะผมยังไม่ค่อยเข้าใจดี) แต่ช่วงนี้มีจุดหนึ่งที่ผมรู้สึกว่าค่อนข้างตลกอยู่เหมือนกัน คือในเว็บแอป React+Laravel ถ้ามีการเปลี่ยนแปลงแค่ฝั่งเซิร์ฟเวอร์ สิ่งที่ deploy ก็มีแค่ตัวบ่งชี้เวอร์ชันกับโค้ดที่เปลี่ยนไม่กี่บรรทัด แต่พอฝั่งฟรอนต์เอนด์เปลี่ยน ต้อง build แอปฝั่งฟรอนต์ และขนาดที่ deploy ก็มักจะใหญ่ขึ้นค่อนข้างมาก เลยอดขำไม่ได้ครับ แถมยังทำ custom แบบเร่งด่วนชั่วคราวได้ยากด้วย อาจเป็นเพราะมันถูกนำไปเทียบกับประสบการณ์การพัฒนาเมื่อก่อนของผมด้วยก็ได้