1. เขียนการกำหนดค่าบางอย่างที่จำเป็นต้องเปลี่ยนแปลงในไฟล์คุณสมบัติ
ตัวอย่างเช่นจำนวนเธรดที่ใช้เมื่อการดำเนินการพร้อมกันบางอย่างไม่ได้ถูกตั้งค่าให้กำหนดค่าในไฟล์คุณสมบัติ จากนั้นโปรแกรมของคุณสามารถทำงานได้อย่างราบรื่นและไม่มีข้อ จำกัด ทั้งในสภาพแวดล้อมและสภาพแวดล้อมการทดสอบ แต่เมื่อนำไปใช้กับชุดข้อมูลขนาดใหญ่และประมวลผลชุดข้อมูลขนาดใหญ่เป็นโปรแกรมแบบมัลติเธรดจะมีการโยน iOException เหตุผลอาจเป็นไปได้ว่าสภาพแวดล้อมออนไลน์เกิดขึ้นพร้อมกัน หากจำนวนเธรดสามารถกำหนดค่าในไฟล์คุณสมบัติมันเป็นเรื่องง่ายมากที่จะทำให้เป็นแอปพลิเคชันเธรดเดียว เราไม่จำเป็นต้องปรับใช้และทดสอบแอปพลิเคชันซ้ำ ๆ เพื่อแก้ปัญหาอีกต่อไป วิธีนี้ยังเหมาะสำหรับการกำหนดค่า URL เซิร์ฟเวอร์และหมายเลขพอร์ต
ขอแนะนำให้ใช้ไฟล์แอตทริบิวต์เพื่อกำหนดค่าการกำหนดค่าเหล่านี้ภายนอกและรูปแบบไฟล์ก็โอเคกับคุณสมบัติ, Yaml, Hocon และ JSON คลาสต่อไปนี้ใช้การสนับสนุนการฉีดสปริงสำหรับไฟล์ในรูปแบบเหล่านี้รวมถึงการสนับสนุนตัวยึดตำแหน่ง
https://github.com/superhj1987/awesome-libs/blob/master/src/main/java/me/rowkey/libs/spring/config/awesomepropertylaceolderconfigurer.java
2. จำลองสภาพแวดล้อมออนไลน์ให้มากที่สุดในระหว่างการทดสอบ
สถานการณ์ทั่วไปในกระบวนการผลิตคือใช้เพียง 1 ถึง 3 บัญชีสำหรับการทดสอบและหมายเลขนี้ควรเป็น 1,000 ถึง 2,000 เมื่อทำการทดสอบประสิทธิภาพข้อมูลที่ใช้จะต้องเป็นจริงและไม่ได้รับการคัดค้าน การทดสอบประสิทธิภาพที่ไม่ได้ใกล้เคียงกับสภาพแวดล้อมจริงอาจนำประสิทธิภาพการขยายตัวและปัญหามัลติเธรด ที่นี่เรายังสามารถใช้สภาพแวดล้อมที่วางจำหน่ายล่วงหน้าเพื่อแก้ปัญหาบางอย่าง
3. การประมวลผลที่ทนต่อความผิดพลาดจะต้องทำสำหรับการโทรภายนอกและบริการภายในทั้งหมด
ไม่ว่าจะเป็นการโทร RPC หรือการโทรบริการของบุคคลที่สามเราไม่สามารถรับได้เพื่อให้ได้รับความพร้อมใช้งาน 100% ไม่อนุญาตให้ใช้เวลาการโทรบริการและลองใหม่ซึ่งจะส่งผลเสียต่อความมั่นคงและประสิทธิภาพของแอปพลิเคชัน
4. ระบบควรปฏิบัติตามหลักการของการอนุญาตขั้นต่ำเมื่อออกแบบระบบรักษาความปลอดภัย
บริการเว็บมีอยู่ทุกหนทุกแห่งทำให้แฮกเกอร์สามารถใช้ประโยชน์จากการปฏิเสธการโจมตีของบริการได้อย่างง่ายดาย ดังนั้นเมื่อออกแบบระบบคุณต้องปฏิบัติตามหลักการของ "การอนุญาตขั้นต่ำ" และใช้วิธีการอนุญาตและวิธีการอื่น ๆ
5. จำเป็นต้องมีเอกสารต่อไปนี้
เขียนเอกสารการทดสอบหน่วยและมีการครอบคลุมรหัสที่ดี
การออกแบบการออกแบบระดับสูง: อธิบายส่วนประกอบการโต้ตอบและโครงสร้างทั้งหมด
ภาพวาดการออกแบบโดยละเอียด: เฉพาะสำหรับการออกแบบระดับรหัสและกระบวนการตรรกะคีย์บางอย่าง
เอกสารประกอบของระบบ: อธิบายไฟล์องค์ประกอบทั้งหมดไฟล์การกำหนดค่า ฯลฯ ของระบบ
เอกสาร DML และ DDL ระดับฐานข้อมูลโดยเฉพาะคำสั่ง SQL แบบสอบถามจำเป็นต้องผ่าน DBA หรือการตรวจสอบนักพัฒนาหลักก่อนที่จะเปิดตัว
ไม่เพียง แต่สำหรับกระบวนการพัฒนาแบบดั้งเดิม แต่สำหรับการพัฒนาที่คล่องตัวเอกสารเหล่านี้มีความสำคัญไม่เช่นนั้นจะทำให้เกิดความไม่สะดวกอย่างมากในการบำรุงรักษาและการส่งมอบที่ตามมา
6. ทำงานได้ดีในการตรวจสอบการกู้คืนข้อผิดพลาดการสำรองข้อมูลและฟังก์ชั่นคีย์อื่น ๆ ของระบบ
สำหรับโมดูลการทำงานที่สำคัญบางอย่างของระบบพวกเขาจะต้องได้รับการตรวจสอบเพื่อป้องกันไม่ให้พวกเขาส่งผลกระทบต่อการทำงานของระบบและทำให้เกิดการสูญเสียที่ไม่คาดคิด นอกจากนี้ถ้าเป็นไปได้ให้ลองกู้คืนหลังจากตรวจสอบความผิดพลาดและส่งสัญญาณเตือนหากการกู้คืนล้มเหลว สำหรับไฟล์ข้อมูลที่สำคัญบางอย่างควรทำการสำรองข้อมูลซ้ำซ้อนเพื่อป้องกันความล้มเหลวอย่างฉับพลันและการสูญเสียข้อมูล
7. ออกแบบคอลัมน์บางอย่างที่ง่ายต่อการติดตามประวัติและจัดระเบียบเมื่อออกแบบฐานข้อมูล
ตัวอย่างเช่น create_time และ update_time สามารถระบุการสร้างและอัปเดตเวลาของบันทึก create_by และ update_by สามารถระบุผู้ที่สร้างและอัปเดตบันทึก
นอกจากนี้บางครั้งการลบบันทึกก็ไม่ได้ถูกลบออกไปจริงๆ ในเวลานี้มีความจำเป็นในการออกแบบคอลัมน์ที่แสดงถึงสถานะของบันทึกนี้เช่นคอลัมน์ 'active' หรือ 'ไม่ใช้งาน' 'สถานะ'
8. ทำแผนย้อนกลับโครงการ
เมื่อมีการเปิดใช้งานฟังก์ชั่นใหม่หากไม่มีแผนย้อนกลับมันอาจจะรีบและทำให้บริการออนไลน์ไม่สามารถใช้งานได้เป็นระยะเวลาหนึ่ง มีแผนย้อนกลับที่ดีที่ช่วยให้คุณสามารถดำเนินการที่เกี่ยวข้องในลักษณะที่เป็นระเบียบและคืนค่าระบบให้อยู่ในสถานะที่ทำงานได้ภายในเวลาควบคุม
9. ก่อนที่โครงการจะเปิดตัวควรทำการวิเคราะห์เชิงปริมาณ
การวิเคราะห์เชิงปริมาณควรทำสำหรับหน่วยความจำฐานข้อมูลไฟล์แคช ฯลฯ ที่ใช้ในโครงการ มันประมาณการอาชีพอวกาศในอนาคตและให้การอ้างอิงสำหรับการจัดสรรเครื่องและบำรุงรักษา ป้องกันการจัดเก็บที่ไม่เพียงพอเกิดจากการเติบโตอย่างรวดเร็วของปริมาณข้อมูล สิ่งนี้สำคัญมากมิฉะนั้นจะทำให้บริการออนไลน์ไม่สามารถใช้งานได้ง่าย
10. พัฒนาแผนการปรับใช้ระบบ
แพลตฟอร์มสำหรับการปรับใช้ระบบเป็นส่วนสำคัญ คำอธิบายของแพลตฟอร์มการปรับใช้ไม่สามารถ จำกัด อยู่ที่เซิร์ฟเวอร์หนึ่งหรือสองฐานข้อมูลอย่างน้อยก็ต้องรวม
11. เลือกเครื่องมือ/เทคโนโลยีที่เหมาะสมที่สุด
ในหลายกรณีนักพัฒนาใช้ภาษาหรือเครื่องมือที่ต้องการเรียนรู้ในระบบการผลิต โดยปกตินี่ไม่ใช่ตัวเลือกที่ดีที่สุด ตัวอย่างเช่นใช้ฐานข้อมูล NOSQL สำหรับข้อมูลที่มีอยู่แล้วในรูปแบบเชิงสัมพันธ์ ไม่ว่าจะเป็นภาษาหรือเครื่องมือมีสถานการณ์ที่เกี่ยวข้อง เราไม่สามารถหานวัตกรรมและเราไม่สามารถใช้ "ตัวเอง" เป็นมาตรฐานได้
12. มีความรู้เพียงพอในบางสาขาเทคนิคที่สำคัญ
รูปแบบการออกแบบ
JVM จูนมัลติเธรด "ปัญหาพร้อมกัน"
ปัญหาการทำธุรกรรมรวมถึงปัญหาประสิทธิภาพการทำธุรกรรมแบบกระจายรวมถึง GC การคำนวณและแคชอื่น ๆ
ผ่านบทความนี้ฉันหวังว่าเพื่อนที่สามารถช่วยพัฒนาโปรแกรม Java ขอขอบคุณสำหรับการสนับสนุนเว็บไซต์นี้!