เพิ่มประสิทธิภาพโค้ดในโลกที่ไม่ต้องการเพิ่มประสิทธิภาพ
เผยแพร่แล้ว: 2019-11-22การเพิ่มประสิทธิภาพก่อนวัยอันควรเป็นรากเหง้าของความชั่วร้ายทั้งหมด
เป็นเรื่องธรรมดาในหมู่นักพัฒนา มันสมเหตุสมผล การเพิ่มประสิทธิภาพก่อนเวลาอันควรอาจหมายถึงการทำงานซ้ำซาก และเวลาเป็นทรัพยากรที่มีจำกัดที่สุดของนักพัฒนา อาจหมายถึงการใช้เวลาอันมีค่าเพื่อเพิ่มประสิทธิภาพให้กับสถานการณ์ที่ยังไม่มีสำหรับผู้ใช้ผลิตภัณฑ์ อาจหมายถึงการเขียนโค้ดที่เข้าใจยากขึ้นด้วยประสิทธิภาพที่เพิ่มขึ้นไม่ชัดเจน
ในขณะที่เข้าร่วมทีมตรวจสอบธีมของ WordPress เมื่อประมาณหนึ่งปีที่แล้ว ฉันก็เจอคำแนะนำนั้นอีกครั้ง การเพิ่มประสิทธิภาพก่อนวัยอันควรเป็นรากเหง้าของความชั่วร้ายทั้งหมด คำตอบคือผู้เขียนธีมที่ต้องการลดจำนวนและน้ำหนักของสคริปต์ที่ธีมต้องโหลด ด้านหนึ่ง ผู้เขียนธีมสามารถโหลดสคริปต์ 1.29 kb โดยไม่มีการขึ้นต่อกันเพื่อทำงานให้เสร็จ อีกทางเลือกหนึ่งคือการใช้สคริปต์ที่ขึ้นกับ jQuery ที่รวมอยู่ใน WordPress หลักเป็นจำนวนทั้งหมด 105 kb เนื่องจากไซต์ WordPress "ส่วนใหญ่" กำลังโหลด jQuery อยู่
สำหรับฉัน คำตอบนั้นง่าย ใช้สคริปต์ที่เล็กกว่า เว้นแต่ว่ามีการโหลดสคริปต์หลักที่ส่วนหน้าแล้ว ฉันไม่ได้คิดในแง่ของการปรับให้ เหมาะสมก่อนเวลาอันควร ฉันคิดว่ามันเป็นการเพิ่มประสิทธิภาพแบบเก่าธรรมดาและธรรมดาทุกวัน
นักพัฒนาไม่ควรสับสนระหว่างการปรับให้ เหมาะสมก่อนเวลาอันควร กับแนวคิดของการตัดสินใจในการออกแบบที่ชาญฉลาดตั้งแต่ช่วงต้นของกระบวนการ และไม่ควรรอจนถึงขั้นตอนสุดท้ายของการพัฒนาเพื่อเริ่มปรับให้เหมาะสม ซึ่งเป็นช่วงเวลาที่มุ่งเน้นที่การนำผลิตภัณฑ์ออกสู่ผู้ใช้ปลายทาง นั่นเป็นสัญญาณของกระบวนการออกแบบผลิตภัณฑ์ที่ไม่ดี
ในปีที่ผ่านมา บทสนทนานั้นติดอยู่กับฉัน มันช่วยให้ฉันรู้จักแนวโน้มที่น่าสะพรึงกลัวมากขึ้น ไม่ใช่แค่ในชุมชนนักพัฒนา WordPress เท่านั้น แต่รวมถึงการพัฒนาเว็บโดยทั่วไปด้วย บ่อยครั้งมากที่นักพัฒนาซอฟต์แวร์ถูกถอดออกจากผู้ใช้ทั่วไป และเทคโนโลยีที่ผู้ใช้พึ่งพาการเพิ่มประสิทธิภาพนั้นเป็นเพียงสิ่งที่คิดในภายหลัง แต่ควรอยู่ในระดับแนวหน้าของนักพัฒนาทุกคน
การใช้คำเสนอราคาในทางที่ผิดเกินจริงได้ช่วยผลักดันแนวโน้มของการวัดน้ำหนักหน้าเป็นเมกะไบต์แทนที่จะเป็นกิโลไบต์ มักใช้เป็นข้ออ้างในการไม่ทำการเพิ่มประสิทธิภาพใดๆ ในขั้นตอนการพัฒนา ในขณะเดียวกันก็ชดเชยด้วยการบีบอัดไฟล์และการแคชในการผลิต
ส่วนหนึ่งของการเขียนโค้ดคุณภาพคือการเพิ่มประสิทธิภาพโค้ดนั้นในทุกขั้นตอนของกระบวนการพัฒนา มันเกี่ยวกับการตัดสินใจอย่างหนักในการตัดสิ่งที่ไม่จำเป็นออกไปเมื่อซอฟต์แวร์มารวมกัน การแคชควรเป็นทางเลือกสุดท้ายหลังจากทำความสะอาดทุกอย่างแล้ว
การเพิ่มประสิทธิภาพก่อนวัยอันควรเป็นเรื่องเกี่ยวกับการพยายามปรับให้เหมาะสมเมื่อไม่มีกำไรที่ชัดเจนหรือการทำงานกับการปรับให้เหมาะสมระดับจุลภาคที่เปลี่ยนแปลงการออกแบบของซอฟต์แวร์เพื่อประโยชน์เพียงเล็กน้อยหรือไม่มีเลย ไม่ได้หมายถึงการมองข้ามการเพิ่มประสิทธิภาพที่ชัดเจนในระหว่างการพัฒนา
ไม่ใช่ทุกคนที่ใช้ Gigabit Internet
นักพัฒนาส่วนใหญ่ที่ฉันรู้จักใช้การเชื่อมต่ออินเทอร์เน็ตที่เร็วมาก โดยมักมีความเร็วในการดาวน์โหลด 1 Gbps และข้อมูลไม่จำกัด ในสถานการณ์ดังกล่าว เป็นเรื่องง่ายที่จะลืมว่าชิ้นส่วนขนาดใหญ่ของโลกยังคงมีการเชื่อมต่อที่ช้าพร้อมตัวพิมพ์ใหญ่ข้อมูล
บางคนอาจเชื่อมโยงการเชื่อมต่อที่ช้ากับประเทศโลกที่สามซึ่งผู้คนนับล้านใช้เทคโนโลยีโทรศัพท์มือถือ 2G อย่างไรก็ตาม มีพื้นที่ขนาดใหญ่ในสหรัฐอเมริกาและประเทศที่พัฒนาแล้วอื่นๆ ที่ไม่มีสายเคเบิลโดยตรงหรือสาย DSL ซึ่งมักมีให้ใช้งานในเมืองและชานเมือง

การยกเลิกการเชื่อมต่อนี้ชัดเจนโดยตรงเมื่อผู้พัฒนารายอื่นเริ่มแชทกับฉัน ในช่วงสองสามปีที่ผ่านมา เป็นเรื่องปกติมากขึ้นที่พวกเขาขอวิดีโอแชท มันไม่ได้ถูกถามด้วยซ้ำว่าสิ่งนี้เป็นไปได้หรือไม่ (วิดีโอแชทไม่น่าเชื่อถือที่สุดสำหรับฉัน) ความสามารถในการวิดีโอแชทได้ตลอดเวลาถือเป็นเรื่องธรรมดา
มีสองตัวเลือกบริการอินเทอร์เน็ตในพื้นที่ที่ฉันอาศัยอยู่: ดาวเทียมหรือผ่านสายโทรศัพท์ แม้แต่บริษัทโทรศัพท์ในท้องถิ่นก็ยังปฏิเสธที่จะให้บริการ DSL ในพื้นที่นี้ เนื่องจากมีค่าใช้จ่ายด้านโครงสร้างพื้นฐานสำหรับสายโทรศัพท์ที่มีอายุหลายสิบปี เนื่องจากการเข้าถึงอินเทอร์เน็ตผ่านดาวเทียมมีค่าใช้จ่ายสูง ซึ่งโดยทั่วไปแล้วจะมีข้อจำกัดของข้อมูล หลายคนจึงต้องเผชิญกับการเรียกผ่านสายโทรศัพท์ บริษัทโทรศัพท์มือถือกำลังเปลี่ยนเกมในระดับหนึ่ง โดยถือว่าบริการมีความน่าเชื่อถือ แต่มีจุดอ่อนในเส้นทางนั้น ซึ่งอาจรวมถึงข้อจำกัดด้านข้อมูลหรือฮอตสปอต
สำหรับประเทศที่มีเทคโนโลยีก้าวหน้าเช่นนี้ ผู้คนจำนวนมากแทบไม่ทันประเทศอื่นเมื่อทศวรรษที่แล้ว
ในขณะที่ฉันโชคดีพอที่จะเลือกที่ที่ฉันอาศัยอยู่และไม่มีอะไรมาขวางกั้นฉันจากการย้ายไป ส่วนใหญ่ไม่มีทางเลือกนั้น พวกเขาติดอยู่กับสิ่งที่ดีที่สุดที่พวกเขาสามารถจ่ายได้ แม้แต่ในพื้นที่ชนบท อินเทอร์เน็ตเป็นส่วนที่หลีกเลี่ยงไม่ได้ในชีวิตประจำวัน และนักพัฒนาก็ไม่ได้ทำให้คนเหล่านี้ง่าย
แม้ว่าเรื่องนี้จะเป็นเรื่องเล็กน้อย แต่ก็เป็นความจริงโดยสิ้นเชิงของชีวิตในชนบทในกระเป๋าของสหรัฐฯ
ข้อดีของการใช้ชีวิตในป่าดงดิบของแอละแบมาคือมันได้เปลี่ยนมุมมองของฉันในฐานะนักพัฒนา หมายความว่าฉันต้องตั้งคำถามทุกครั้งที่ตัดสินใจโค้ดสำหรับปลั๊กอินและธีมทุกตัวที่ฉันสร้าง เมื่อใช้ตัวพิมพ์ใหญ่ ฉันต้องแน่ใจว่าไม่ได้ใช้ทรัพยากรมากเกินไป
เหนือสิ่งอื่นใด การมี data cap ได้เปลี่ยนวิธีการใช้อินเทอร์เน็ตของฉัน ตอนนี้ฉันใช้ตัวบล็อกโฆษณา ฉันมีส่วนขยายเพื่อฆ่าวิดีโอจากการโหลดอัตโนมัติ ฉันปิดการใช้งาน JavaScript บนไซต์ขนาดใหญ่ที่ฉันจำเป็นต้องใช้ บางไซต์ดูน่าสนใจ แต่ฉันไม่เคยกลับมาดูเพราะเป็นแหล่งข้อมูล
เมื่อคุณอาศัยอยู่ในสถานที่ที่ทุกไบต์มีความสำคัญ คุณมักจะหลีกเลี่ยงการสูญเสียมัน
แม้ว่าจะไม่ประสบความสำเร็จเสมอไป ตั้งแต่เปลี่ยนมาใช้ชีวิตในเมืองเล็กๆ ฉันก็พยายามสร้างแอปพลิเคชันในลักษณะที่ให้บริการผู้ที่ไม่มีสิทธิพิเศษเพียงพอที่จะเข้าถึงอินเทอร์เน็ตได้อย่างรวดเร็ว
ประเด็นนี้คือการทำให้แน่ใจว่านักพัฒนาซอฟต์แวร์ตระหนักดีว่าการเพิ่มประสิทธิภาพนั้นสำคัญ มีความสำคัญในทุกขั้นตอนของกระบวนการพัฒนา เป็นเรื่องสำคัญเพราะคนเหล่านี้ที่มีการเชื่อมต่อช้าและ data caps ยังต้องซื้อผลิตภัณฑ์ ใช้บริการ อ่านเนื้อหา และทำสิ่งอื่น ๆ ทั้งหมดที่ผู้คนทำบนเว็บ
หากคุณเป็นนักพัฒนาซอฟต์แวร์ที่กำลังคิดจะเพิ่มตัวเลื่อนนั้น กลไกการเลื่อนสำหรับมือถือ หรืออุปกรณ์อื่นๆ ที่ลื่นไหล ให้นึกถึงผู้ที่ต้องรอให้ฟีเจอร์นั้นโหลด ตรวจสอบว่าการขึ้นต่อกันไม่ได้โหลดทรัพยากรเพิ่มเติมมากเกินไป ทำวิจัยเพื่อดูว่าคุณสามารถค้นหาการใช้งานที่มีน้ำหนักเบากว่าได้หรือไม่ แต่ก่อนอื่น ให้ถามตัวเองว่าจำเป็นหรือไม่
ธีมและปลั๊กอินที่นักพัฒนา WordPress สร้างไม่ควรเป็นคอขวดสำหรับเว็บไซต์ เราสามารถทำได้ดีกว่า
