2 คะแนน โดย GN⁺ 2024-10-16 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • แนะนำวิศวกรรมเว็บเบราว์เซอร์

    • เว็บเบราว์เซอร์ถูกใช้งานในชีวิตประจำวัน แต่หลักการทำงานของมันมีความซับซ้อน หนังสือเล่มนี้อธิบายวิธีสร้างเว็บเบราว์เซอร์พื้นฐานแต่ครบถ้วนด้วยโค้ด Python เพียงไม่กี่พันบรรทัด ครอบคลุมตั้งแต่ระบบเครือข่ายไปจนถึง JavaScript
  • คำนำ

    • ให้ภาพรวมเกี่ยวกับประวัติของเว็บเบราว์เซอร์และเว็บ
  • ภาค 1: การโหลดหน้า

    • การดาวน์โหลดเว็บเพจ
      • อธิบายวิธีดาวน์โหลดเว็บเพจผ่าน URL และคำขอ HTTP
    • การวาดบนหน้าจอ
      • อธิบายวิธีสร้างหน้าต่างและวาดลงบนแคนวาส
    • การจัดรูปแบบข้อความ
      • อธิบายวิธีตัดคำขึ้นบรรทัดใหม่และปรับระยะห่างระหว่างบรรทัด
  • ภาค 2: การแสดงเอกสาร

    • การสร้างต้นไม้ HTML
      • อธิบายวิธีแยกวิเคราะห์และแก้ไข HTML
    • เลย์เอาต์ของหน้า
      • อธิบายวิธีใช้เลย์เอาต์แบบ inline และ block
    • การใช้สไตล์ของผู้เขียน
      • อธิบายวิธีแยกวิเคราะห์และใช้ CSS
    • การจัดการปุ่มและลิงก์
      • อธิบายวิธีจัดการไฮเปอร์ลิงก์และ browser chrome
  • ภาค 3: การรันแอปพลิเคชัน

    • การส่งข้อมูลไปยังเซิร์ฟเวอร์
      • อธิบายวิธีส่งฟอร์มและการโต้ตอบกับเว็บเซิร์ฟเวอร์
    • การรันสคริปต์แบบโต้ตอบ
      • อธิบายวิธีเปลี่ยนแปลง DOM และตอบสนองต่อเหตุการณ์
    • การปกป้องข้อมูล
      • อธิบายเกี่ยวกับคุกกี้และการล็อกอิน รวมถึง XSS และ CSRF
  • ภาค 4: เบราว์เซอร์สมัยใหม่

    • การเพิ่มเอฟเฟกต์ภาพ
      • อธิบายวิธีการ blend, clip และ composite
    • การจัดตารางงานและเธรด
      • อธิบาย event loop และ rendering pipeline
    • แอนิเมชันและการคอมโพสิต
      • อธิบายแอนิเมชันที่ลื่นไหลโดยใช้ GPU
    • การรองรับการเข้าถึงเนื้อหา
      • อธิบายการป้อนข้อมูลด้วยแป้นพิมพ์ การซูม และ accessibility tree
    • การรองรับเนื้อหาแบบฝัง
      • อธิบายวิธีรองรับรูปภาพ, iframes และการสคริปต์
    • การนำผลการคำนวณเดิมกลับมาใช้
      • อธิบาย invalidation, editing และความถูกต้อง
  • บทสรุป

    • อธิบายสิ่งที่ไม่ได้ครอบคลุมและสภาพแวดล้อมที่เปลี่ยนแปลงอยู่เสมอ
  • ภาคผนวก

    • มีอภิธานศัพท์ บรรณานุกรม แนะนำผู้เขียน รายชื่อผู้มีส่วนร่วม และรายชื่อคอร์สเรียนที่อ้างอิงจากหนังสือเล่มนี้

สรุปโดย GN⁺

  • หนังสือเล่มนี้มีประโยชน์สำหรับผู้ที่ต้องการเข้าใจหลักการทำงานของเว็บเบราว์เซอร์ ผ่านกระบวนการสร้างเบราว์เซอร์ด้วย Python จึงได้เรียนรู้เทคนิคหลากหลาย เช่น ระบบเครือข่าย การแยกวิเคราะห์ HTML และการใช้ CSS
  • ช่วยให้เข้าใจทั้งประวัติของเว็บเบราว์เซอร์และความสามารถของเบราว์เซอร์สมัยใหม่ โดยเฉพาะเนื้อหาเกี่ยวกับความปลอดภัยของเว็บและการเข้าถึง ซึ่งให้ความรู้ที่นำไปใช้ในการทำงานจริงได้
  • หนังสือเล่มนี้อาจทั้งน่าสนใจและเป็นประโยชน์สำหรับนักพัฒนาเว็บหรือวิศวกรซอฟต์แวร์ และจะช่วยอย่างมากในการทำความเข้าใจกลไกการทำงานภายในของเว็บเบราว์เซอร์

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

 
GN⁺ 2024-10-16
ความคิดเห็นจาก Hacker News
  • ส่วน "Stuff I didn't do" คือจุดเด่นที่ยอดเยี่ยมของหนังสือเล่มนี้

    • งานด้านเลย์เอาต์ยากมาก
    • CSS ทำให้เลย์เอาต์ซับซ้อนยิ่งขึ้น
    • CSS, HTML, JavaScript ปัจจุบันเป็นซอฟต์แวร์ที่ซับซ้อนมาก
    • การถอดรหัสวิดีโอถูกออฟโหลดไปยังฮาร์ดแวร์ จึงช่วยลดการใช้แบตเตอรี่
  • เริ่มทำงานกับเบราว์เซอร์แบบ headless ตั้งแต่ 15 ปีก่อน และใช้ SpiderMonkey เป็นตัวแปลภาษา JS

    • ได้เพิ่มการติดตั้ง DOM แบบกำหนดเองและ Flash runtime
    • โปรเจ็กต์นี้สนุกมาก
    • สนใจหนังสือเล่มนี้
  • หนังสือเล่มนี้เป็นแหล่งข้อมูลที่ครอบคลุมจนชวนให้นึกถึง MITRE ATT&CK

  • เป็นเรื่องสดใหม่ที่ Browser Engineering กำลังกลายเป็นเทรนด์

    • ตอนนี้ Google, Apple, Mozilla เป็นผู้นำอยู่
    • อยากให้มีเอนจินเบราว์เซอร์อิสระเพิ่มขึ้น
  • มีบทความที่อธิบายว่าทำไมผู้เขียนถึงเลือก Python

    • บางส่วนคอมไพล์ Python เป็น JS แล้วรันในเบราว์เซอร์
  • หนึ่งในผู้เขียนเข้ามากล่าวขอบคุณและพร้อมตอบคำถาม

  • กำลังมองหาโปรเจ็กต์สนุก ๆ และกำลังสนุกกับหนังสือเล่มนี้

    • หนังสือการ์ตูนที่อธิบายการทำงานของ Chrome ก็เป็นแหล่งเริ่มต้นที่ดีเช่นกัน
  • น่าสนใจมากที่มีการสร้างแหล่งข้อมูลแบบนี้ขึ้นมา

    • เบราว์เซอร์ดูเหมือนกล่องดำลึกลับที่ยากจะถอดรหัส
    • โปรเจ็กต์อย่าง Ladybird กำลังทลายกำแพงนั้น
    • อยากมีส่วนร่วมสักวันหนึ่ง และหนังสือเล่มนี้เป็นจุดเริ่มต้นที่ยอดเยี่ยม
  • กำลังเรียนรู้เกี่ยวกับโครงสร้างภายในของเบราว์เซอร์ และหนังสือเล่มนี้มีประโยชน์มาก

    • ช่วยให้เข้าใจการทำงานของเบราว์เซอร์ได้อย่างเป็นสัญชาตญาณ
  • เป็นหนังสือที่ดี และขอแนะนำให้แบ่งบทที่ 9 ออกเป็นสองบทแยกกัน

    • ควรแยกเนื้อหาเรื่องการรัน JavaScript ออกจากการโต้ตอบของ DOM และอีเวนต์