เจาะลึกปัญหายอดนิยมของนักพัฒนาเว็บ

ข้อมูลเชิงลึกเกี่ยวกับปัญหาที่พบบ่อยที่สุดของนักพัฒนาแอป ซึ่งรวบรวมจากการพูดคุยแบบตัวต่อตัวหลายครั้ง

เมื่อไม่กี่เดือนก่อน Paul Kinlan ได้โพสต์เกี่ยวกับปัญหาที่นักพัฒนาแอปพบมากที่สุดในปี 2021 เราจึงคิดว่าควรเริ่มบทความนี้ด้วยข้อมูลอัปเดตเกี่ยวกับ 2 ไตรมาสที่ผ่านมา ตัวเลขมีการเปลี่ยนแปลงเล็กน้อย แต่อันดับยังคงเหมือนเดิม

ความท้าทาย ไตรมาส 1 ปี 2021 ไตรมาส 2 ปี 2021 ไตรมาส 3 ปี 2021 ไตรมาส 4 ปี 2021
การติดตามการเปลี่ยนแปลงของแพลตฟอร์มเว็บหรือมาตรฐานเว็บ 27% 26% 27% 22%
การติดตามเครื่องมือหรือเฟรมเวิร์กใหม่และที่มีอยู่จำนวนมาก 26% 26% 25% 21%
การทำให้การออกแบบหรือประสบการณ์การใช้งานทำงานเหมือนกันในเบราว์เซอร์ต่างๆ 26% 28% 24% 21%
การทดสอบในเบราว์เซอร์ต่างๆ 23% 24% 20% 20%
ทำความเข้าใจและใช้มาตรการรักษาความปลอดภัย 23% 25% 20% 19%

ดังที่ Paul ได้กล่าวไว้ในบล็อกโพสต์ เราจำเป็นต้องแก้ไขปัญหาเหล่านี้ Kadir Topal เพื่อนร่วมงานของฉันและฉันได้สัมภาษณ์นักพัฒนาซอฟต์แวร์มากกว่า 18 คน ซึ่งเป็นส่วนหนึ่งของความพยายามที่ยิ่งใหญ่กว่าในการดำเนินการดังกล่าว เป้าหมายของเราคือการตรวจสอบและเริ่มทำความเข้าใจแนวทางในการแก้ไขปัญหาที่สำคัญที่สุดของนักพัฒนาแอป

การสนทนาของนักพัฒนาแอป

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

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

สิ่งหนึ่งที่นักพัฒนาแอปทุกคนมีเหมือนกันคือทุกคนใช้ CMS หรือเฟรมเวิร์กในการทำงาน มีการพูดถึง Wordpress, React, Bootstrap, Angular และ Tailwind แต่ไม่มีนักพัฒนาซอฟต์แวร์รายใดใช้แพลตฟอร์มเว็บแบบ Vanilla ในเวอร์ชันที่ใช้งานจริง การเลือกเฟรมเวิร์กเมื่อเริ่มโปรเจ็กต์เป็นเรื่องที่ท้าทาย และนักพัฒนามักจะพิจารณาข้อกำหนดที่ไม่ใช่ทางเทคนิคด้วย เช่น การจ้างนักพัฒนาซอฟต์แวร์เพื่อทำงานกับเฟรมเวิร์กนั้นจะทำได้ง่ายหรือไม่ เราไม่สามารถปรับปรุงปัญหาของนักพัฒนาซอฟต์แวร์ได้หากเฟรมเวิร์กและ CMS ไม่รวมอยู่ในโซลูชัน

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

อีกด้านหนึ่งที่ยังไม่ชัดเจนคือคำจำกัดความของมาตรฐานเว็บ เมื่อถามถึงตัวอย่างเกี่ยวกับการปฏิบัติตามมาตรฐาน นักพัฒนาแอปหลายรายชี้ให้เห็นถึงความยากลำบากในการปฏิบัติตามแนวทางปฏิบัติแนะนำแทน นี่เป็นอีกหนึ่งประเด็นที่เราต้องชี้แจงในแบบสำรวจ

นักพัฒนาแอปมองหาแนวทางปฏิบัติแนะนำเมื่อใช้ Use Case และรูปแบบที่เฉพาะเจาะจง บล็อกโพสต์และ StackOverflow เป็นแหล่งข้อมูลสำหรับแนวทางปฏิบัติแนะนำ แต่นักพัฒนามักสงสัยว่าข้อมูลที่อ่านเป็นแนวทางปฏิบัติแนะนำจริงหรือไม่ และเป็นข้อมูลล่าสุดเกี่ยวกับฟีเจอร์และ API ล่าสุดหรือไม่ และต้องการอ่านข้อมูลดังกล่าวจากแหล่งข้อมูลที่เป็นทางการมากขึ้น

การติดตามฟีเจอร์และ API ที่ช่วยให้เกิด Use Case ใหม่ๆ เป็นปัญหาที่เล็กกว่า นักพัฒนาแอปประสบปัญหามากขึ้นเกี่ยวกับฟีเจอร์, API และการเปลี่ยนแปลงแพลตฟอร์มที่ส่งผลให้แนวทางปฏิบัติแนะนำเปลี่ยนไป

นักพัฒนาแอปส่วนใหญ่เห็นพ้องต้องกันว่าความเข้ากันได้เป็นหนึ่งในความท้าทายที่ยิ่งใหญ่ที่สุด สถานการณ์กำลังดีขึ้นผ่านความพยายามต่างๆ เช่น Compat 2021 และ Interop 2022 แต่เห็นได้ชัดว่านักพัฒนาแอปยังไม่เห็นว่าปัญหานี้ได้รับการแก้ไขแล้ว

นักพัฒนาแอปส่วนใหญ่ใช้ Polyfill ไม่ทางใดก็ทางหนึ่ง อย่างไรก็ตาม ในหลายกรณี นักพัฒนาแอปจะเห็นการใช้งานอย่างชัดเจน เนื่องจากเครื่องมืออย่าง Babel หรือเฟรมเวิร์กสามารถเพิ่ม Polyfill ได้โดยอัตโนมัติ สำหรับผู้ที่จัดการ Polyfill ด้วยตนเอง การพิจารณาว่า Polyfill "ดี" หรือไม่นั้นอาจเป็นปัญหาได้ นักพัฒนาแอปกล่าวถึงการใช้จำนวนการติดตั้งใน NPM และผู้สร้าง Polyfill เป็นสัญญาณ นักพัฒนาแอป 2-3 รายกล่าวถึงการทำงานเพื่อนำ Polyfill ที่ไม่จำเป็นออกเนื่องจากหยุดรองรับ IE 11

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

บทสรุป

การพัฒนาเว็บสมัยใหม่มีองค์ประกอบที่เปลี่ยนแปลงอยู่ตลอดเวลามากมาย เช่น มาตรฐาน, เบราว์เซอร์, ไลบรารี, Polyfill, CMS, เฟรมเวิร์ก, แนวทางปฏิบัติแนะนำ และเครื่องมือ ความหลากหลายนี้เป็นหนึ่งในสิ่งที่ดีเกี่ยวกับเว็บ แต่ในขณะนี้ นักพัฒนาแต่ละรายต้องทำความเข้าใจแต่ละส่วนและวิธีที่ส่วนต่างๆ เข้ากันได้

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

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