ย้อนกลับไปที่ "ข่าวสำหรับผู้พัฒนา"

พบปะผู้พัฒนา - ฉบับ React ที่ Meta (คุณ Andrea Ferrando)

บทความนี้เขียนขึ้นร่วมกับคุณ Andrea Ferrando ซึ่งดำรงตำแหน่งวิศวกรซอฟต์แวร์จาก Meta และคุณ Sean Keegan ซึ่งดำรงตำแหน่งนักพัฒนาผู้มีส่วนร่วมจาก Meta

สำหรับบทสัมภาษณ์ในวันนี้ เชิญพบกับคุณ Andrea Ferrando ซึ่งเป็นวิศวกรส่วนหน้าของ Meta ทีมของเขาพัฒนาแอพตัวจัดการโฆษณาที่ผู้ใช้สามารถสร้าง แก้ไข และติดตามแคมเปญโฆษณาได้

รบกวนแนะนำตัวหน่อย

ผมชื่อ Andrea Ferrando เป็นวิศวกรซอฟต์แวร์ที่มีความหลงใหลในการมอบผลิตภัณฑ์ดิจิทัลและประสบการณ์ของผู้ใช้ที่ยอดเยี่ยม ตอนนี้ผมกำลังพัฒนาแอพตัวจัดการโฆษณา (AMA) ซึ่งช่วยให้ผู้ลงโฆษณาสามารถสร้าง ติดตาม และจัดการแคมเปญของตนในแพลตฟอร์ม Meta ทั้งหมด โดยแอพนี้มีโซลูชั่นที่ครอบคลุมที่จะช่วยให้ผู้ลงโฆษณาเข้าถึงกลุ่มเป้าหมายของตน แอพนี้จึงเป็นเครื่องมือที่สำคัญอย่างยิ่งสำหรับใครก็ตามที่ต้องการโฆษณาอย่างมีประสิทธิภาพ ผมเพิ่งพัฒนา AMA ได้หนึ่งปีกว่าๆ แต่สามารถสร้างผลลัพธ์อย่างแท้จริงต่อการพัฒนาแอพนี้ได้

สิ่งที่จุดประกายให้ผมมีส่วนร่วมกับ React Native คือศักยภาพในการนำประสบการณ์ผู้ใช้ที่ราบรื่นและมีประสิทธิภาพมาสู่ผู้ใช้ทั้งใน iOS และ Android องค์ประกอบที่นำกลับมาใช้ใหม่ได้และความสามารถในการจัดการสถานะได้อย่างง่ายดายทำให้ React Native สามารถสร้างแอพคุณภาพสูงได้อย่างรวดเร็วและมีประสิทธิภาพ นอกจากประโยชน์ข้างต้นแล้ว การมีความสามารถในการเขียนโค้ดเพียงครั้งเดียวและใช้งานได้บนหลายแพลตฟอร์มนับเป็นข้อได้เปรียบอย่างมาก เพราะความสามารถนี้ช่วยให้เราเข้าถึงฐานผู้ใช้ที่ใหญ่ขึ้นและมอบประสบการณ์ที่สอดคล้องกันในทุกอุปกรณ์

คุณใช้งาน React มากน้อยแค่ไหน

ผมใช้ React เป็นประจำทุกวัน และมันได้กลายเป็นส่วนสำคัญในบทบาทของผม ในฐานะหัวหน้าฝ่ายเทคโนโลยีสำหรับผลิตภัณฑ์ที่เน้นลูกค้าเป็นหลักที่ Meta ผมมีหน้าที่รับผิดชอบในการจัดการการพัฒนาผลิตภัณฑ์แบบครบวงจร การกำหนดทิศทาง และการทำงานร่วมกับทีมต่างๆ แบบข้ามแผนกในระดับที่สูงขึ้น แต่ในขณะเดียวกัน ผมก็มีโอกาสมีส่วนร่วมกับ AMA อย่างแข็งขันด้วยการพัฒนาฟีเจอร์สำคัญๆ และมีส่วนร่วมโดยตรง

ช่วยยกตัวอย่างโปรเจ็กต์ที่คุณเคยทำที่ Meta โดยใช้ React หน่อย

นับตั้งแต่เข้ามาทำงานที่ Meta งานของผมมุ่งเน้นไปที่แอพตัวจัดการโฆษณาเพียงอย่างเดียว ทีมของเรามีความเป็นเจ้าของผลิตภัณฑ์แบบครบวงจร ซึ่งก็เกี่ยวข้องกับการพัฒนาฟังก์ชั่นการทำงานในฝั่งแบ็คเอนด์ด้วย แต่ AMA เป็นแอพพลิเคชั่นจาก React แอพพลิเคชั่นเดียวที่ผมสร้าง

ทำไมทีมของคุณถึงเลือกใช้ React และการใช้ React ช่วยให้คุณและทีมของคุณบรรลุเป้าหมายในการพัฒนาได้อย่างไรบ้าง

เราภูมิใจในข้อเท็จจริงที่ว่าแอพตัวจัดการโฆษณาเป็นหนึ่งในแอพพลิเคชั่น React Native แอพแรกในโลก เป็นที่ทราบกันดีว่า React Native มีต้นกำเนิดมาจากแฮกกาธอน Facebook เมื่อปี 2013 และแอพของเราเป็นหนึ่งในผู้บุกเบิกในการใช้เทคโนโลยีนี้ โดยแอพจะให้ข้อมูลเชิงลึกและคำแนะนำแก่ผู้ลงโฆษณาเพื่อช่วยให้แคมเปญโฆษณาประสบความสำเร็จ และ React Native ก็เหมาะกับจุดมุ่งหมายนี้เป็นอย่างยิ่ง ด้วยความสามารถในการพัฒนาที่รวดเร็วสำหรับทั้งแพลตฟอร์ม iOS และ Android รวมถึงความสามารถในการมอบประสิทธิภาพการทำงานที่ยอดเยี่ยม React Native จึงเป็นเครื่องมือสู่ความสำเร็จของ AMA

ช่วงนี้คุณรู้สึกตื่นเต้นหรือภูมิใจกับอะไรเป็นพิเศษ

เมื่อเร็วๆ นี้ผมได้ทุ่มเทความพยายามไปกับโครงสร้างพื้นฐานด้านการแจ้งเตือนแบบพุชของเราอย่างมาก โดยมุ่งเน้นที่การสร้างความมั่นใจด้านความน่าเชื่อถือ

ซึ่งการแจ้งเตือนมีบทบาทสำคัญในแอพพลิเคชั่นมือถือ และในกรณีของ AMA การแจ้งเตือนเหล่านี้มีความสำคัญเป็นพิเศษ เนื่องจากเป็นสิ่งที่จะให้ข้อมูลเชิงลึกแก่ผู้ใช้อย่างทันท่วงที ซึ่งสามารถสร้างความแตกต่างในแคมเปญโฆษณาที่ประสบความสำเร็จได้

อย่างไรก็ตาม การสร้างความสมดุลมีความสำคัญเป็นอย่างยิ่ง ทั้งนี้ก็เพื่อป้องกันไม่ให้ผู้ใช้ได้รับการแจ้งเตือนมากเกินไป นอกจากนี้ วิธีบริหารจัดการการแจ้งเตือนระหว่าง iOS และ Android นั้นแตกต่างกัน และต้องคำนึงถึงกฎความเป็นส่วนตัวสำหรับระบบปฏิบัติการมือถือทั้งสองระบบนี้ด้วย และถึงแม้จะมีความท้าทาย แต่โปรเจ็กต์นี้ก็น่าตื่นเต้นที่ได้ทำ เพราะต้องใช้ทั้งทักษะด้านผลิตภัณฑ์และทักษะทางเทคนิคเพื่อให้แน่ใจว่าผู้ใช้จะได้รับประสบการณ์ที่ดีที่สุด และเพื่อพัฒนาขั้นตอนต่างๆ สำหรับ iOS และ Android ไปพร้อมๆ กับการจัดการการแจ้งเตือนในรูปแบบที่เหมาะสมกับแต่ละแพลตฟอร์ม

React Native ช่วยให้เราสามารถลดความซับซ้อนในกระบวนการพัฒนาด้วยการสรุปตรรกะส่วนใหญ่ที่แตกต่างกันระหว่างมอบหมายการแจ้งเตือนของ iOS และ Android ทำให้เรามีสมาธิกับกระบวนการพัฒนา

การเป็นผู้พัฒนา React ในบริษัทอย่าง Meta มีอะไรน่าตื่นเต้นเป็นพิเศษไหม

การทำงานในฐานะผู้พัฒนาแอพพลิเคชั่น React Native ที่ Meta เป็นประสบการณ์ที่น่าจดจำอย่างแท้จริง ความสามารถในการเข้าถึงฐานผู้ใช้จำนวนมหาศาลด้วยผลงานของคุณและสร้างผลกระทบอย่างมากต่อผู้คนมากมายนั้นเป็นเรื่องน่ายินดีเป็นอย่างยิ่ง แต่การทำงานในสเกลใหญ่ขนาดนี้ก็มาพร้อมกับความท้าทายเฉพาะตัวที่ทำให้งานน่าตื่นเต้นและมีการเปลี่ยนแปลงอย่างต่อเนื่องเช่นกัน

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

อีกแง่มุมหนึ่งที่ท้าทายในการพัฒนาแอพพลิเคชั่นฟรอนท์เอนด์ที่ใช้ทั่วโลกคือการแปลเป็นภาษาท้องถิ่น แม้ว่าการออกแบบและพัฒนาแอพเป็นภาษาอังกฤษจะค่อนข้างตรงไปตรงมา แต่การแปลทุกอย่างเป็นภาษาอื่นๆ มากกว่า 20 ภาษาอาจทำให้เกิดข้อบกพร่องและจุดบกพร่องเล็กๆ ที่ไม่เคยพบก่อนหน้านี้ คำเดียวกันในอีกภาษาหนึ่งอาจยาวกว่ากัน 3-4 เท่า ซึ่งจำเป็นต้องมีการออกแบบอย่างระมัดระวังและมีการพัฒนาที่แม่นยำเพื่อให้แน่ใจว่าข้อจำกัดทั้งหมดจะได้รับการจัดการอย่างถูกต้อง ซึ่งประสบการณ์ก่อนหน้านี้ของผมในการทำงานให้กับธนาคารและสายการบินต่างๆ ทำให้ผมพร้อมสำหรับงานด้านนี้ และผมก็ได้นำประสบการณ์ดังกล่าวจำนวนมากมาใช้กับบทบาทปัจจุบันที่ Meta

สิ่งที่ทำให้ทุกวันนี้คุณมีพลังในการทำงานที่ต้องใช้ React คืออะไร

การทำงานในฐานะผู้พัฒนา React ที่ Meta เป็นโอกาสที่พิเศษอย่างแท้จริง เนื่องจากงานนี้ทำให้คุณได้ใกล้ชิดกับทีม React ทำให้สามารถทำงานร่วมกันและสื่อสารกันได้โดยตรง ซึ่งทำให้คุณอยู่ในตำแหน่งที่ไม่เหมือนกับตำแหน่งไหนๆ ในบริษัท

การจะเป็นวิศวกรที่ประสบความสำเร็จในผลิตภัณฑ์ที่เน้นผู้บริโภคเป็นหลักได้นั้นจำเป็นต้องมีชุดทักษะที่หลากหลาย การเขียนโค้ดที่ชัดเจนและเชื่อถือได้ซึ่งให้ความสำคัญกับประสิทธิภาพมีความสำคัญอย่างยิ่ง เช่นเดียวกับการมุ่งเน้นด้านต่างๆ เช่น ประสบการณ์ของผู้ใช้และความสามารถในการเข้าถึง ซึ่งเป็นแง่มุมที่การทำงานกับภาษาไดนามิกอย่าง React พิสูจน์แล้วว่ามีประโยชน์ เนื่องจากช่วยให้ผู้พัฒนามีสมาธิกับกระบวนการพัฒนาโดยไม่ต้องใช้เวลาประมวลผลมากเกินจำเป็น ประสบการณ์ในการพัฒนาแพลตฟอร์มบนมือถือแบบเนทีฟมาก่อนโดยเฉพาะอย่างยิ่งบนแอพพลิเคชั่นขนาดใหญ่ทำให้ผมเข้าใจว่าระยะเวลาในการสร้างจะบั่นทอนงานในแต่ละวันและทำให้เสียเวลาอันมีค่าได้อย่างไรบ้าง นี่คือเหตุผลที่ผมชอบใช้ DOM เสมือนใน React ซึ่งช่วยให้สามารถอัพเดตและเรนเดอร์องค์ประกอบ UI แบบเรียลไทม์ได้อย่างมีประสิทธิภาพ แม้ว่าจะมีการนำ React ไปใช้อย่างแพร่หลายในหมู่ผู้พัฒนาและบริษัทต่างๆ ทั่วทั้งเว็บ แต่ React ก็ยังคงเป็นมิตรกับผู้ใช้และเข้าถึงได้ง่าย ทั้งนี้เป็นเพราะ React มีรากฐานส่วนหนึ่งเป็น JavaScript/TypeScript (JS/TS) ซึ่งเป็นภาษาที่ผู้พัฒนาใช้กันอย่างแพร่หลาย ผมชอบใช้ TypeScript กับ React โดย TypeScript นั้นรองรับการเขียนแบบคงที่ ซึ่งทำให้ง่ายต่อการตรวจจับจุดบกพร่องในกระบวนการพัฒนาแต่เนิ่นๆ

นอกจากนี้ โดยส่วนตัวแล้วผมชอบองค์ประกอบด้านฟังก์ชั่นการทำงานใน React เพราะเป็นสิ่งที่มีประโยชน์มาก โดยเราสามารถปรับให้เหมาะสมกับประสิทธิภาพการทำงานด้วยการใช้ฟีเจอร์การจำค่า และสามารถปรับปรุงประสิทธิภาพการทำงานของแอพพลิเคชั่นได้อย่างมากด้วยการป้องกันการอัพเดตเรนเดอร์ที่ไม่จำเป็น และโดยเฉพาะอย่างยิ่งความง่ายในการนำองค์ประกอบกลับมาใช้ใหม่มีความสำคัญกับแอพพลิเคชั่นขนาดใหญ่เป็นอย่างยิ่ง ซึ่งทำให้ง่ายต่อการบำรุงรักษา ทดสอบ และจัดการโค้ดเบส

เรื่องเข้าใจผิดเกี่ยวกับ React หรือการพัฒนาซอฟต์แวร์โอเพนซอร์สที่คุณเคยพบเจอในการทำงานที่ผ่านมามีอะไรบ้าง

อันที่จริง ผมไม่ค่อยได้ยินเรื่องเข้าใจผิดเกี่ยวกับ React หรือซอฟต์แวร์โอเพนซอร์สสักเท่าไหร่ บริษัทที่ใหญ่ที่สุดในโลกส่วนใหญ่ใช้และพัฒนาซอฟต์แวร์โอเพนซอร์สในการดำเนินงานแต่ละวัน ส่วนชุมชนผู้พัฒนาขนาดใหญ่ก็พัฒนาโปรเจ็กต์โอเพนซอร์สด้วย

ผมเคยได้ยินข้อกังวลต่างๆ เกี่ยวกับ React Native โดยเฉพาะข้อกังวลที่ว่า React Native ช้าและเหมาะสำหรับโปรเจ็กต์ขนาดเล็กที่มีความสามารถแบบจำกัดเท่านั้น มีบางคนคิดว่าการใช้ JavaScript ของ React Native เพื่อโต้ตอบกับองค์ประกอบแบบเนทีฟส่งผลให้ประสิทธิภาพการทำงานช้าลงเมื่อเทียบกับแอพที่เขียนขึ้นเอง ซึ่งก็มีบางกรณีที่แอพแบบเนทีฟอาจทำงานได้ดีกว่า เช่น การสตรีม แต่สำหรับแอพพลิเคชั่นแบบวันต่อวันส่วนใหญ่ที่แสดงรูปภาพและข้อความเป็นหลักรวมถึงรองรับการโต้ตอบของผู้ใช้แล้ว React Native ก็ทำงานได้ดีเช่นกัน

อะไรคือสิ่งคุณตื่นเต้นที่จะได้เห็นเกี่ยวกับอนาคตของ React

React Native มีสถาปัตยกรรมที่แข็งแกร่งและสามารถจัดการแอพพลิเคชั่นขนาดใหญ่ด้วยการอัพเดตและการเรนเดอร์ UI แบบเรียลไทม์ที่มีประสิทธิภาพ อีกทั้ง React Native มีการจัดการโค้ดที่สะดวกง่ายดาย ทำให้เหมาะอย่างยิ่งสำหรับโปรเจ็กต์ขนาดใหญ่ นอกจากนี้ React Native ยังช่วยให้ผู้พัฒนาเข้าสามารถถึงโมดูลแบบเนทีฟและฟังก์ชั่นการทำงานแบบเนทีฟ ซึ่งจะส่งผลให้มีการพัฒนาแอพพลิเคชั่นที่ครอบคลุม

แหล่งข้อมูลที่เป็นประโยชน์ในการเริ่มต้นใช้งาน React มีอะไรบ้าง แล้วการมีส่วนร่วมเป็นยังไงบ้าง

ตอนที่ผมเริ่มใช้งาน React ในการทำงานก่อนหน้านี้ ผมโชคดีที่ได้ทำงานให้กับบริษัทที่เปิดโอกาสให้ผมเข้าถึงพอร์ทัลการเรียนรู้ออนไลน์ที่สำคัญพร้อมบทเรียนรูปแบบวิดีโอที่สอนโดยผู้เชี่ยวชาญโดยไม่มีค่าใช้จ่าย สำหรับผมแล้ว วิธีเรียนรู้ที่ดีที่สุดคือการดูวิดีโอแนะนำการใช้งานเหล่านี้ ซึ่งอธิบายทุกอย่างที่ผมจำเป็นต้องรู้ทีละขั้นตอน หลังจากเข้าใจพื้นฐานแล้ว ผมพบว่าประสบการณ์จริงจากการทำงานในโปรเจ็กต์จริงๆ มีประโยชน์ต่อการทำความเข้าใจเพิ่มเติมเกี่ยวกับ React อย่างประเมินค่าไม่ได้เลยทีเดียว ถ้าคุณไม่มีโอกาสทำแบบนั้นในที่ทำงาน ผมขอแนะนำให้คุณหาสิ่งที่ตัวเองหลงใหลและพัฒนาแอพพลิเคชั่นสำหรับสิ่งนั้น ส่วนผมเริ่มสร้างเว็บไซต์ส่วนตัวที่มีพอร์ตโฟลิโอของผม นอกจากนี้ ผมพบว่าเอกสารอย่างเป็นทางการสำหรับ React Native นั้นเขียนได้ดีและมีประโยชน์มากในเวลาที่ผมจำเป็นต้องค้นหาข้อมูลบางอย่าง

ผู้คนจะพบคุณและติดตามผลงานของคุณได้จากช่องทางไหนบ้าง

ผมมีบัญชี Github แต่ประสบการณ์การทำงานส่วนใหญ่ของผมมีกรรมสิทธิ์เนื่องจากการรักษาความลับที่เกี่ยวข้องกับงานหรือไม่ก็เป็นโปรเจ็กต์ส่วนตัวที่ไม่ใช่โอเพนซอร์ส ผมชอบเล่นโซเชียลมีเดียและมีผู้ติดตามจำนวนหนึ่งบน Instagram แต่ผมไม่ได้ใช้เป็นแพลตฟอร์มเพื่อพูดคุยเกี่ยวกับการพัฒนา อันที่จริงแล้ว ผมมีไว้คลายเครียดจากการทำงานมากกว่า


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

เกี่ยวกับซีรีส์พบปะผู้พัฒนา - React ที่ Meta

React เป็นหนึ่งในโปรเจ็กต์โอเพนซอร์สที่ได้รับความนิยมมากที่สุดและได้รับการจัดอันดับให้เป็นหนึ่งในเฟรมเวิร์กสำหรับการพัฒนาเว็บที่ "ได้รับความนิยมสูงสุด" อย่างต่อเนื่องในช่วงหลายปีที่ผ่านมา พวกเราที่ Meta เชื่อว่า React เป็นไลบรารีที่โดดเด่นซึ่งช่วยให้ผู้พัฒนาสร้างอินเทอร์เฟซผู้ใช้ได้อย่างง่ายดายและครอบคลุม ทั้งนี้ React เป็นไลบรารีโอเพนซอร์สที่เปิดกว้างสำหรับทุกคน ซึ่งมีผู้พัฒนาหลายล้านคนทั่วโลกใช้งาน โดยมีตั้งแต่เว็บไซต์แบบง่ายๆ ไปจนถึงแอพพลิเคชั่นระดับองค์กร

บล็อกนี้เป็นส่วนหนึ่งของซีรีส์พบปะผู้พัฒนา ซึ่งเราจะเชิญวิศวกรและผู้พัฒนาที่ใช้ React เป็นประจำมาร่วมแบ่งปันประสบการณ์และบอกเล่าเกี่ยวกับผลิตภัณฑ์อันน่าทึ่งที่พวกเขากำลังสร้างโดยใช้ React ที่ Meta เตรียมพบกับบล็อกบทสัมภาษณ์เพิ่มเติมที่เราพบกับวิศวกรคนอื่นๆ และรับฟังสิ่งที่พวกเขาคิดเกี่ยวกับหัวข้อนี้

เรียนรู้เพิ่มเติมเกี่ยวกับโอเพนซอร์สของ Meta ได้ที่เว็บไซต์โอเพนซอร์สของเรา, ติดตามช่อง YouTube ของเรา หรือติดตามเราบน Twitter, Facebook และ LinkedIn