เมื่อพูดถึง Microservices วงจรชีวิตของการพัฒนาบริการควรเป็นอิสระเช่นกัน * * * *
SLDC ที่แตกต่างกันและทีมพัฒนาที่แตกต่างกัน
ในระบบ MS จริงอาจมีหลายทีมที่เกี่ยวข้องกับการพัฒนาระบบนิเวศซึ่งแต่ละแห่งมีหน้าที่ให้บริการอย่างน้อยหนึ่งรายการ ในทางกลับกันทีมเหล่านี้อาจตั้งอยู่ในสำนักงานต่าง ๆ เมืองประเทศแผน ... บางทีพวกเขาอาจไม่รู้จักกันสิ่งที่ทำให้การแบ่งปันความรู้หรือรหัสยากมาก (ถ้าเป็นไปได้) แต่สิ่งนี้อาจจะสะดวกมากเพราะรหัสที่ใช้ร่วมกันแสดงถึงการใช้เหตุผลร่วมกันและสิ่งที่สำคัญที่ต้องจำก็คือสิ่งใดก็ตามที่เหมาะสมสำหรับทีมเฉพาะไม่จำเป็นต้องทำเพื่อทีมอื่น ตัวอย่างเช่นเมื่อได้รับลูกค้า DTO อาจแตกต่างกันไปขึ้นอยู่กับบริการที่กำลังเล่นอยู่เนื่องจากลูกค้าถูกตีความ (หรือมองเห็น) แตกต่างจากบริการแต่ละบริการ
ความต้องการที่แตกต่างเทคโนโลยีที่แตกต่าง
SLDC ที่แยกได้ยังช่วยให้ทีมสามารถเลือกสแต็กที่เหมาะสมกับความต้องการมากที่สุด การกำหนด DTOs ที่ใช้ในเทคโนโลยีเฉพาะจะเป็นการจำกัดความสามารถของทีมที่จะเลือก
DTO ไม่ใช่กฎเกณฑ์ทางธุรกิจและสัญญาบริการ
DTOs อะไรจริงๆ วัตถุธรรมดาที่ไม่มีเป้าหมายอื่นนอกจากย้ายข้อมูลจากด้านหนึ่งไปอีกด้านหนึ่ง กระเป๋าของ getters และ setters ไม่ใช่ "ความรู้" ที่คุ้มค่าที่นำมาใช้ใหม่โดยรวมเพราะไม่มีความรู้เลย ความผันผวนของพวกเขายังทำให้ผู้สมัครที่ไม่ดีสำหรับการแต่งงาน
ตรงกันข้ามกับสิ่งที่ Dherik ระบุไว้มันจะต้องเป็นไปได้สำหรับบริการที่จะเปลี่ยน DTO โดยไม่ต้องเปลี่ยนบริการอื่นในเวลาเดียวกัน บริการควรเป็นผู้อ่านที่ทนต่อผู้เขียนที่มีความอดทนและไม่สามารถทนได้ มิฉะนั้นจะทำให้เกิดการเชื่อมต่อในลักษณะที่ทำให้สถาปัตยกรรมการบริการไม่มีความหมาย อีกครั้งและตรงข้ามกับคำตอบของ Dherik ถ้าบริการทั้งสามต้องการ DTO ที่เหมือนกันทุกประการเป็นไปได้ว่ามีบางอย่างผิดปกติในระหว่างการย่อยสลายบริการ
ธุรกิจที่แตกต่างการตีความที่แตกต่าง
ในขณะที่อาจมี (และจะมี) แนวคิดการตัดต่อระหว่างบริการ แต่ก็ไม่ได้หมายความว่าเราต้องกำหนดแบบจำลองมาตรฐานเพื่อบังคับให้บริการทั้งหมดตีความในลักษณะเดียวกัน
กรณีศึกษา
บอกว่า บริษัท ของเรามีสามแผนกบริการลูกค้า , การขายและการจัดส่งสินค้า สมมติว่าแต่ละรายการเผยแพร่บริการหนึ่งรายการขึ้นไป
บริการลูกค้าเนื่องจากโดเมนภาษาบริการการดำเนินการรอบแนวคิดของลูกค้าที่ลูกค้าเป็นบุคคล ยกตัวอย่างเช่นลูกค้ามีการจำลองเป็นชื่อ , นามสกุล , อายุ , เพศ , อีเมล , โทรศัพท์ฯลฯ
ตอนนี้พูดว่าการขายและการส่งสินค้าเป็นตัวอย่างการบริการตามภาษาของโดเมนนั้น ๆ ในภาษาเหล่านี้ลูกค้าแนวคิดจะปรากฏขึ้นเช่นกัน แต่มีความแตกต่างเล็กน้อย กับพวกเขาลูกค้า ไม่ได้ (จำเป็น) บุคคล สำหรับ การขายลูกค้าเป็นจำนวนเอกสารบัตรเครดิตและอยู่เรียกเก็บเงินสำหรับการจัดส่งสินค้าชื่อเต็มและที่อยู่จัดส่งเกินไป
ถ้าเราบังคับให้ขายและการจัดส่งสินค้าที่จะนำมาใช้ในรูปแบบข้อมูลที่ยอมรับของบริการลูกค้าเราจะบังคับให้พวกเขาในการจัดการกับข้อมูลที่ไม่จำเป็นว่าจะจบลงด้วยการแนะนำซับซ้อนที่ไม่จำเป็นถ้าพวกเขามีการรักษาตัวแทนทั้งหมดและให้ลูกค้าข้อมูลในซิงค์กับการบริการลูกค้า .
ลิงก์ที่เกี่ยวข้อง
* ที่นี่เป็นจุดแข็งของสถาปัตยกรรมนี้
proto
ไฟล์สำหรับ gRPC หรือavro
schema สำหรับ Kafka และสร้าง DTO ในบริการทั้งคู่ แต่ฉันจะไม่แชร์ไลบรารีที่ใช้ร่วมกันระหว่างสองโครงการ