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

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

เมื่อไม่กี่เดือนที่ผ่านมา 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 ว่าเราต้องจัดการกับปัญหาเหล่านี้ เราได้สัมภาษณ์นักพัฒนาแอปกว่า 18 คนร่วมกับเพื่อนร่วมงานของฉันอย่าง Kadir Topal เพื่อหาแนวทางใหม่ๆ ในการปรับปรุงประสบการณ์การใช้งาน เป้าหมายของเราคือการตรวจสอบและเริ่มหาทางแก้ไขจุดเจ็บปวดที่สำคัญที่สุดของนักพัฒนาแอป

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

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

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

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

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

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

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

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

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

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

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

บทสรุป

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

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

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