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

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

เมื่อไม่กี่เดือนก่อน 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, เฟรมเวิร์ก, เครื่องมือ และ Polyfills ในหลายกรณี การตามทันข่าวสารอยู่เสมอเป็นปัญหาที่สำคัญที่สุด การทำเช่นนี้ได้เปลี่ยนการตีความของเราสำหรับคำถามดังกล่าว และตอนนี้เราทราบว่าเราจำเป็นต้องอัปเดตแบบสำรวจของเราโดยแบ่งตอบออกเป็นส่วนต่างๆ ที่ไม่ค่อยกำกวม

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

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

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

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

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

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

บทสรุป

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

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

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