"สาขาวิชา" มีโปรแกรมเมอร์ Java ต้องปฏิบัติตามอะไร?
1. เพิ่มความคิดเห็นในรหัสของคุณ คุณ "ลืม" กี่ครั้งเพื่อเพิ่มความคิดเห็น? ความคิดเห็นจะไม่เพิ่มฟังก์ชั่นฟังก์ชั่นใด ๆ ให้กับโปรแกรมของคุณ แต่คุณเคยเห็นรหัสที่เขียนเมื่อ 2 สัปดาห์ก่อนและคุณจำไม่ได้ว่ามันทำอะไร? คุณโชคดีที่รหัสที่ไม่เกี่ยวกับการเขียนแบบไม่มีใครเขียนด้วยตัวเองและคุณจะยังคงมีความประทับใจที่เหลืออยู่ในใจ น่าเสียดายที่ส่วนใหญ่รหัสถูกเขียนโดยคนอื่นและบุคคลนั้นมีแนวโน้มที่จะออกจาก บริษัท มีสุภาษิตที่เป็นไปด้วยดี: "มีผลประโยชน์ร่วมกัน" ดังนั้นโปรแกรมเมอร์ควรคำนึงถึงกันและกัน (และตัวคุณเอง) และแสดงความคิดเห็นเกี่ยวกับรหัสของคุณ
2. อย่าทำสิ่งต่าง ๆ ที่ซับซ้อน นักพัฒนามีแนวโน้มที่จะใช้วิธีการที่ซับซ้อนเพื่อแก้ปัญหาง่ายๆ เราแนะนำ EJB ในระบบที่มีผู้ใช้เพียง 5 คนเท่านั้นที่จะใช้ชุดเฟรมเวิร์กสำหรับแอปพลิเคชันที่ไม่ต้องการเฟรมเวิร์กโดยใช้ไฟล์แอตทริบิวต์โซลูชั่นเชิงวัตถุและการใช้เธรด แต่ไม่จำเป็น ทำไมถึงทำเช่นนี้? บางคนอาจไม่ทราบว่ามีทางออกที่ดีกว่า แต่บางคนอาจทำตามวัตถุประสงค์เพื่อเรียนรู้สิ่งใหม่ ๆ หรือเพียงเพราะมันสนุก สำหรับผู้ที่ไม่รู้จักวิธีแก้ปัญหาที่ดีกว่าให้ฟังคำแนะนำของโปรแกรมเมอร์ที่มีประสบการณ์มากขึ้น สำหรับผู้ที่มีความซับซ้อนในการออกแบบอย่างหมดจดเพื่อจุดประสงค์ส่วนตัวฉันขอแนะนำให้คุณเป็นมืออาชีพมากขึ้น
3. จำไว้ว่า - โปรดจำไว้ว่า "น้อยกว่านั้นมากขึ้น" ไม่ดีกว่าเสมอไป ดูตัวอย่าง "ง่าย" ต่อไปนี้:
if (newstatuscode.equals ("sd") && (selloffdate == null || todaydate.compareto (selloffdate) <0 || (lastuseddate! = null && todaydate.compareto Equals ("obs") && (obsdate == null || วันนี้ date.compareto (obsdate) <0))) {newstatuscode = "nyp";มันยากแค่ไหนที่จะชี้ให้เห็นว่าเงื่อนไขนี้คืออะไร? ลองนึกภาพอีกครั้งว่าบุคคลที่เขียนรหัสนี้ไม่ได้ทำตามมาตรา 1 - เพิ่มความคิดเห็นในรหัส
การย่อยสลายจะง่ายกว่าถ้าเงื่อนไขเป็น 2 ถ้าข้อความหรือไม่? ตอนนี้มาดูรหัสที่แก้ไขแล้ว:
if (newStatusCode.equals ("sd") && (selloffdate == null || วันนี้ date.compareto (selloffdate) <0 || (enduseddate! = null && todaydate.Compareto nyp ";} else ถ้า (newstatuscode.equals (" obs ") && (obsdate == null || วันนี้วันนี้ compareto (obsdate) <0)) {newstatuscode =" nyp ";}การอ่านนี้ดีกว่านี้หรือไม่? แน่นอนเราเขียนข้อความซ้ำ ๆ
4. อย่า "การเขียนโค้ดยาก" อย่างไรก็ตามความเป็นไปได้อีกประการหนึ่งคือการทำตามกฎนี้เราจะไม่ตกอยู่ในภาวะที่กลืนไม่เข้าคายไม่ออกของ "ช่วงเวลา" ใช้เวลานานแค่ไหนในการกำหนดตัวแปรสุดท้ายคงที่และเพิ่มบรรทัดของรหัส? ตัวอย่างเช่น:
Public Class A {สตริงสุดท้ายคงที่ S_CONSTANT_ABC = "ABC";ตอนนี้ทุกครั้งที่เราจำเป็นต้องเปรียบเทียบสตริง "ABC" กับตัวแปรเราเพียงแค่อ้างถึง A.S_Constant_ABC โดยไม่จำได้ว่ามันคืออะไร การปรับเปลี่ยนค่าคงที่นี้ก็สะดวกมากเพียงแค่เปลี่ยนในที่เดียวโดยไม่ต้องค้นหาในรหัสทั้งหมด
5. อย่าคิดค้นเฟรมเวิร์กของคุณเอง เฟรมเวิร์กมากมายเป็นโซลูชั่นที่สมบูรณ์แบบมากและใช้ในหลายพันระบบ เราเพียงแค่ต้องให้ความสนใจกับเฟรมเวิร์กยอดนิยมล่าสุดและอย่างน้อยก็คุ้นเคยกับพวกเขาบนพื้นผิว หนึ่งในตัวอย่างที่ประสบความสำเร็จและใช้กันอย่างแพร่หลายคือเฟรมเวิร์ก Struts ซึ่งเป็นเฟรมเวิร์กเว็บโอเพ่นซอร์สที่เป็นตัวเลือกที่ยอดเยี่ยมสำหรับการสร้างระบบเว็บ แต่คุณต้องจดจำศีลของบทความ 2 (หมายเหตุของนักแปล: ข้อความต้นฉบับคือ "บทความ 3" ไม่ถูกต้อง) - อย่าซับซ้อนเรื่องง่าย ๆ หากระบบที่คุณต้องการพัฒนามีเพียง 3 อินเทอร์เฟซอย่าใช้ struts ดังนั้นผู้เขียนจึงกล่าวว่าจำเป็นต้องมี "การควบคุม" มาก)
6. บอกว่าไม่พิมพ์สายและการเชื่อมต่อสตริง แต่เรามักจะลืมลบบรรทัดเหล่านี้หรือไม่เต็มใจที่จะลบพวกเขา สิ่งนี้มีแนวโน้มที่จะนำไปสู่บรรทัดของรหัสที่เราต้องการลบโดยไม่ได้ตั้งใจ อย่าประมาทอันตรายของ System.out.println ดูรหัสต่อไปนี้:
Badcode ระดับสาธารณะ {การคำนวณโมฆะสาธารณะแบบคงที่ withprint () {double somevalue = 0d; () {double somevalue = 0d; การคำนวณ Withoutprint ();}}ดังที่เห็นได้ในตารางด้านล่างเวลาดำเนินการของวิธีการคำนวณโดยใช้ OutPrint () คือ 0.001204 s
(หากคุณต้องการทราบวิธีการทำตารางเช่นนี้โปรดอ่านบทความอื่น "Java Profiling with WSAD" การทำโปรไฟล์ Java กับ WSAD)
เพื่อหลีกเลี่ยงการเสีย CPU วิธีที่ดีที่สุดคือการแนะนำวิธีการห่อหุ้มดังนี้:
Badcode ระดับสาธารณะ {สาธารณะคงที่ int debug_mode = 1; = somevalue + i; โมฆะคงที่หลัก (สตริง [] n) {badCode.CalculationWithPrint (badCode.production_mode);การเชื่อมต่อสตริงเป็นอีกวิธีหนึ่งในการสูญเสีย CPU ดูตัวอย่างต่อไปนี้:
public void concatenatestrings (String startingString) {สำหรับ (int i = 0; i <20; i ++) {startingString = startingString+startingString; .จากตารางด้านล่างเราจะเห็นว่าการใช้ StringBuffer มีค่าใช้จ่ายเพียง 0.01 s ในขณะที่ใช้การเชื่อมต่อสตริงต้องใช้ 0.08 วินาที
7. ให้ความสนใจกับ GUI GUI มีความสำคัญต่อความสำเร็จของแอปพลิเคชันของคุณ ผู้จัดการไอทีมักจะเพิกเฉยต่อความสำคัญของ GUI โปรแกรมเมอร์ Java ต้องพึ่งพาความรู้ HMTL ที่ จำกัด ฉันเคยเห็นแอพพลิเคชั่นจำนวนมากที่ "เป็นมิตรกับคอมพิวเตอร์" มากกว่า "ใช้งานง่าย" และหายากสำหรับนักพัฒนาที่มีความเชี่ยวชาญในการพัฒนาซอฟต์แวร์และการพัฒนาส่วนต่อประสานผู้ใช้ หากคุณเป็นโปรแกรมเมอร์ Java ที่ได้รับมอบหมายให้ทำการพัฒนาอินเทอร์เฟซคุณต้องปฏิบัติตาม กฎ 3 ข้อต่อไปนี้:
. ไปดูอินเทอร์เฟซที่คล้ายกับระบบแอปพลิเคชัน
b. สร้างต้นแบบก่อน ขั้นตอนนี้สำคัญมาก ลูกค้าต้องการดูสิ่งที่พวกเขาต้องการใช้ล่วงหน้า นอกจากนี้คุณยังสามารถรับข้อเสนอแนะแทนการทำงานอย่างหนักเพื่อสร้างสิ่งที่ลูกค้าไม่ชอบ
c. ลองหมวกของผู้ใช้ กล่าวอีกนัยหนึ่งให้ดูข้อกำหนดจากมุมมองของผู้ใช้ ตัวอย่างเช่นอินเทอร์เฟซทางสถิติสามารถเพจหรือไม่ ในฐานะนักพัฒนามีแนวโน้มที่จะเพิกเฉยต่อการเพจเพราะมันจะลดปัญหาได้มาก
8. จัดทำเอกสารล่วงหน้า สิ่งนี้สามารถทำได้ในเทพนิยาย แต่ก็ยากที่จะทำในความเป็นจริง ไม่ว่าเวลาจะแน่นแค่ไหนไม่ว่ากำหนดเวลาจะอยู่ใกล้แค่ไหนคุณต้องตรวจสอบให้แน่ใจว่าความต้องการทางธุรกิจจะถูกบันทึกไว้ (หมายเหตุของนักแปล: แนวคิดนี้ตรงข้ามกับการพัฒนาที่คล่องตัวทุกคนควรคิดอย่างอิสระและแยกแยะความผิดพลาด)
9. การทดสอบหน่วย, การทดสอบหน่วย, การทดสอบหน่วย (การทดสอบหน่วย. การทดสอบหน่วย. การทดสอบหน่วย) . นี่เป็นกฎพื้นฐานที่สุดในการเขียนโปรแกรมและไม่สามารถเพิกเฉยได้ หากเพื่อนร่วมงานของคุณสามารถสร้างแผนการทดสอบสำหรับรหัสของคุณมันจะดีกว่า เมื่อทำแผนการทดสอบหน่วยให้ทำตามหลักการต่อไปนี้:
.
b. เก็บความคิดเห็นสำหรับการทดสอบหน่วย
c
10. จำไว้ว่าคุณภาพไม่ใช่ปริมาณ ฉันรู้ว่าบางครั้งฉันไม่สามารถออกไปทำงานได้ตรงเวลาเนื่องจากปัญหาผลิตภัณฑ์กำหนดเวลาหรือเหตุฉุกเฉินอื่น ๆ แต่ผู้จัดการจะไม่ชื่นชมหรือให้รางวัลแก่คุณสำหรับปัญหาทั่วไปเกินไปพวกเขาจะขอบคุณสำหรับงานที่มีคุณภาพ หากคุณทำตามหลักการของคอลัมน์ด้านบนคุณจะเขียนโปรแกรมที่แข็งแกร่งและปราศจากข้อบกพร่องมากขึ้น นี่คือสิ่งที่คุณควรทำมากที่สุด
บทความนี้สรุปกฎ 10 ข้อที่สำคัญที่สุดที่โปรแกรมเมอร์ Java ควรให้ความสนใจ แค่รู้ว่าไม่เพียงพอให้ติดตามพวกเขา ฉันหวังว่ากฎเหล่านี้จะช่วยให้เรากลายเป็นโปรแกรมเมอร์มืออาชีพมากขึ้น