สิ่งที่ Bloomberg เรียนรู้จากการนำ TypeScript มาใช้ในวงกว้าง
(techatbloomberg.com)- Bloomberg Terminal คือผลิตภัณฑ์หลัก: มีแอปมากกว่า 10,000 แอป
→ แสดงข้อมูลแบบเรียลไทม์, ข่าว, การเทรด, การส่งข้อความ ฯลฯ
→ ในปี 2005 ได้ย้ายโค้ดเซิร์ฟเวอร์ Fortran/C/C++ เดิมมาเป็น JS และตั้งแต่ปี 2012 ฝั่งไคลเอนต์ก็ใช้ JS เช่นกัน
→ มีโค้ด JS มากกว่า 50 ล้านบรรทัด และมีนักพัฒนา JS มากกว่า 2,000 คน
→ การย้ายจาก JS ไป TS ในสเกลระดับนี้เป็นเรื่องใหญ่ และในองค์กรขนาดใหญ่ก็มักลังเลกับการเปลี่ยนเทคโนโลยีและขยับตัวช้า
→ แต่ที่น่าสนใจก็คือ พอเริ่มเปลี่ยนไปใช้ TS แล้ว วิศวกรกลับเป็นฝ่ายขยับกันเองและกลายเป็นผู้ผลักดัน
→ ในปีแรกเพียงปีเดียว มี 200 โปรเจกต์ที่ย้ายไปแล้ว และไม่มีโปรเจกต์ไหนย้ายกลับ
- หลักการสำคัญ
→ Scalability: แม้จะขยายตัวต่อเนื่อง ก็ยังต้องรักษาความเร็วในการพัฒนาไว้ได้
→ Ecosystem Coherence: ทุกแพ็กเกจต้องทำงานร่วมกันได้ และไม่ควรมีความยุ่งยากเมื่อต้องอัปเกรด dependency
→ Standards Alignment: ปฏิบัติตามมาตรฐานอย่าง ECMAScript และต้องพร้อมเสมอไม่ว่าอนาคตจะไปทางไหน
- 10 บทเรียน
-
TypeScript อาจมองได้ว่าเป็น JavaScript + Types
-
TS พัฒนาอย่างรวดเร็ว ดังนั้นควรตามคอมไพเลอร์เวอร์ชันใหม่ล่าสุดให้ทัน
-
การตั้งค่า tsconfig ให้สม่ำเสมอมีคุณค่า
-
การระบุ dependency ไว้ตรงไหนนั้นสำคัญ
→ ใช้ Ambient Modules
-
การลดความซ้ำซ้อนของ Type เป็นเรื่องสำคัญ
-
ควรหลีกเลี่ยง implicit type dependency
-
ใน declaration file มีโหมด Export อยู่ 3 แบบ: global, module, implicit exports
→ ถ้าเป็นไปได้ให้ใช้ module
-
การห่อหุ้มภายในของแพ็กเกจอาจถูกละเมิดได้
-
declaration ที่สร้างอัตโนมัติสามารถ inline type มาจาก dependency ได้
-
declaration ที่สร้างขึ้นอาจรวม dependency ที่ไม่จำเป็นต้องมีไว้ด้วย
ยังไม่มีความคิดเห็น