Airbnb ปล่อยเครื่องมือแปลงโค้ดจำนวนมหาศาลให้กลายมาเป็น TypeScript ได้อย่างรวดเร็ว

0
https://o.aolcdn.com/images/dims?quality=85&image_uri=https%3A%2F%2Fo.aolcdn.com%2Fimages%2Fdims%3Fcrop%3D5184%252C3456%252C0%252C0%26quality%3D85%26format%3Djpg%26resize%3D1600%252C1067%26image_uri%3Dhttps%253A%252F%252Fs.yimg.com%252Fos%252Fcreatr-images%252F2020-02%252F44cdc7a0-5305-11ea-bfab-7620dc34b758%26client%3Da1acac3e1b3290917d92%26signature%3D8e08a64d8167f27d7af2429bfa485ddb7e06581d&client=amp-blogside-v2&signature=99094dfd619d5442d856fdb388817ae90853f4e6
ANKARA, TURKEY - DECEMBER 30: Logos of Airbnb are seen with a house mock-up onto it, on December 30, 2019 in Ankara, Turkey. (Photo by Metin Aktas/Anadolu Agency via Getty Images)

ทีมวิศวกรจาก Airbnb ได้ปล่อยเครื่องมือ ts-migrate ที่จะช่วยแปลงจากโค้ด JavaScript ให้กลายมาเป็น TypeScript ได้ ซึ่งโค้ด TypeScript ที่ออกมานั้นจะถูกแปลงออกมาโดยมี annotation อธิบายประกอบตามที่จำเป็น ซึ่งกระบวนการ automate นี้มีประสิทธิผลที่ดีกว่าการเริ่มต้นเขียนใหม่หมดตั้งแต่แรก โดยทีม Airbnb ได้รายงานว่าสามารถดำเนินการแปลงโค้ดได้มากกว่า 50,000 บรรทัดภายในเวลา 1 วัน

“จากกระบวนการเริ่มต้นของพวกเราในการแปลงเป็น TypeScript นั้นจะทำแบบ manual ซึ่งพวกเราได้เห็นรูปแบบกระบวนการที่ทำซ้ำๆ กันที่คิดว่าสามารถทำให้เป็นแบบ automate ได้ พวกเราจึงสร้าง codemods สำหรับแต่ละขั้นตอนและรวมสิ่งเหล่านั้นให้ครอบคลุมกระบวนการแปลงในแต่ละส่วนออกมา ทำให้พวกเราได้สร้างเครื่องมือที่มีชื่อว่า ts-migrate ออกมา” ทีมวิศวกร Airbnb กล่าว

ทีมวิศวกร Airbnb ได้พิจารณาว่าการนำเอาโค้ด JavaScript หรือโค้ด TypeScript บางส่วนมาแปลงให้กลายมาเป็น TypeScript ทั้งหมดภายในขั้นตอนเดียวนั้นเป็นกลยุทธ์ที่ดีกว่าการค่อยๆ ทยอยทำทีละส่วนหรือทีละไฟล์ โดยอธิบายเพิ่มเติมว่าการที่ค่อยๆ ทยอยย้ายไปเป็น TypeScript ทีละส่วนนั้นอาจจะต้องใช้เวลาที่นานกว่าหากจะต้องจัดการกับโค้ดขนาดใหญ่อย่างเช่นของ Airbnb และในทางตรงกันข้าม กลยุทธ์การแปลงแบบพร้อมกันทีเดียวนี้ยังการันตีความสอดคล้อง (consistency) กันในระหว่างแต่ละ project อีกด้วย (จะไม่มีการผสมระหว่าง JavaScript และ TypeScript) ดังนั้น นักพัฒนาระบบจะไม่จำเป็นต้องเขียนโปรแกรมโดยใช้ทั้ง 2 ภาษาอีกต่อไป

Source : https://www.infoq.com/news/2020/08/airbnb-typescript-migration/