ในหน้านี้
ธุรกิจลูกค้าสองแห่งต่างมีฟิลด์ชื่อ “active” สำหรับรายหนึ่งหมายถึงลูกค้าซื้อของในปีที่ผ่านมา อีกรายหมายถึงสัญญาบริการยังมีผล คอนเน็กเตอร์ร่วมย้ายฟิลด์ทั้งสองได้ถูก แต่กฎร่วมที่ถือเป็นสถานะธุรกิจเดียวกันอาจผิดสำหรับรายหนึ่ง นี่เป็นตัวอย่างสมมติ ไม่ใช่รายงานการนำไปใช้
การอภิปรายแพลตฟอร์มร่วมกับการนำไปใช้ในพื้นที่ เล่าบริษัทที่ใช้โครงสร้างพื้นฐานซ้ำมากแต่ยังทำงานจำนวนมากในสภาพแวดล้อมลูกค้าแต่ละราย เปอร์เซ็นต์ของเขาเฉพาะบริษัท คำถามสถาปัตยกรรมทั่วไปคือกลไกร่วมหยุดตรงไหนและความหมายเฉพาะเริ่มตรงไหน
แยกข้อกำหนดการขนส่งจากข้อกำหนดทางธุรกิจ
ข้อกำหนดการขนส่งระบุได้ว่า: ยืนยันตัวกับต้นทาง อ่านระเบียนที่เปลี่ยน รักษาตัวระบุ ลองใหม่อย่างปลอดภัย และแสดงความล้มเหลว พฤติกรรมเหล่านี้ทำครั้งเดียวและทดสอบซ้ำได้ มีค่าเพราะทุกการเชื่อมต่อต้องมีทางข้อมูลที่ไว้ใจได้
ข้อกำหนดทางธุรกิจบอกว่าระเบียนใดมีอำนาจ สถานะหมายถึงอะไร ลงมือได้เมื่อไร และใครแก้ข้อผิดพลาดได้
- การขนส่งร่วม ตัวตน · ลองใหม่ · ID เหตุการณ์
ส่งเหตุการณ์ที่ใช้ได้
- นโยบายเฉพาะ ความหมาย · ยินยอม · เวลา
ตัดสินว่าอนุญาตการกระทำไหม
- การกระทำที่อนุญาต เขียน · ตรวจสอบ
บันทึกผล
ข้อกำหนดทางธุรกิจขึ้นกับเวิร์กโฟลว์ อาจใช้ต้นทางและปลายทางเดียวกับลูกค้ารายอื่นแต่ต้องตอบต่าง
ดูการเชื่อมร้านไปอีเมล แพลตฟอร์มให้การรับเหตุการณ์ กันซ้ำ และร่องรอยตรวจสอบได้ เจ้าของเวิร์กโฟลว์ต้องนิยามว่า “subscribed” คือสิทธิ์เพื่อจุดประสงค์การตลาดเฉพาะไหม การซื้อกันข้อความตะกร้าไหม และความยินยอมที่เปลี่ยนกระทบข้อความที่เข้าคิวแล้วอย่างไร สิ่งเหล่านี้ไม่ใช่ฟีเจอร์คอนเน็กเตอร์ที่เดาจากชื่อฟิลด์ได้
ภาพแมป Tajo ด้านล่างคัดลอกสามฟิลด์ตรง ๆ ไม่มีแถวใดกำหนดสิทธิทำการตลาด การนำวิธีส่งข้อมูลกลับมาใช้ช่วยลดงาน แต่เจ้าของเวิร์กโฟลว์ยังต้องกำหนดว่าสถานะใดอนุญาตการกระทำใด ตารางที่เรียบร้อยชี้ช่องว่างนี้ได้ แต่เติมให้ไม่ได้
ตรวจการซิงค์ก่อนทำงาน
ซิงค์ข้อมูลลูกค้าที่อัปเดตไปยังแพลตฟอร์มอีเมลของฉัน
ซิงค์ลูกค้า
| ฟิลด์ต้นทาง | ฟิลด์ปลายทาง | กฎ |
|---|---|---|
email | EMAIL | โดยตรง |
first_name | FIRSTNAME | โดยตรง |
last_name | LASTNAME | โดยตรง |
การดูตัวอย่างด้วยข้อมูลจำลองผ่านแล้ว
แมป 3 ฟิลด์ · ไม่มีการเขียนไปยังปลายทาง
เค้าโครงตัวอย่างอิงเครื่องมือแมปของ Tajo การดูตัวอย่างด้วยข้อมูลจำลองและฉบับร่างที่บันทึกไว้ยังไม่เปิดการซิงค์
| ชั้นร่วม | ชั้นเฉพาะ |
|---|---|
| ยืนยันตัวและต่ออายุโทเค็น | ผู้ใดเข้าถึงเวิร์กโฟลว์นี้ได้ |
| ส่งเหตุการณ์และลองใหม่ | เหตุการณ์ใดนับเป็นการเปลี่ยนสถานะธุรกิจ |
| ตัวระบุเสถียรและกันซ้ำ | ระเบียนใดเป็นลูกค้าจริงคนเดียวกัน |
| บันทึกและทางกู้คืน | ใครแก้สถานะที่โต้แย้งและอย่างไร |
| ตรวจข้อกำหนดทางเทคนิค | ค่าฟิลด์หมายถึงอะไรและเมื่อไรใช้ลงมือได้ |
ตารางเป็นขอบเขตการออกแบบ ไม่ใช่คำอ้างว่าทุกระบบแบ่งได้สะอาดขนาดนี้
การใช้ซ้ำพังเมื่อซ่อนความเห็นต่าง
แพลตฟอร์มทั่วไปมักเพิ่มฟิลด์ตั้งค่าสำหรับทุกข้อยกเว้น ตอนแรกดูเหมือนรักษาการใช้ซ้ำ ต่อมาไม่มีใครบอกได้ว่าค่าตั้งเป็นตัวเลือกเทคนิค ข้อจำกัดกฎหมาย หรือการตัดสินธุรกิจ แกนร่วมกลายเป็นรีโมตคุมการเลือกที่มันไม่ได้เป็นเจ้าของ
หาสิ่งที่ต้องคงจริงและเสถียร “ห้ามใช้เหตุการณ์ต้นทางเดียวสองครั้งกับระเบียนปลายทางเดียว” อยู่ในเครื่องร่วมได้ “ส่งส่วนลดเมื่อลูกค้ากลายเป็น active” แชร์ไม่ได้จนคำว่า active กลุ่มที่อนุญาต และนโยบายข้อเสนอมีเจ้าของ เครื่องทำตามนโยบายที่อนุมัติได้ แต่ไม่ควรสร้างเอง
ยังช่วยดูแล หาก API เปลี่ยน ทีมแพลตฟอร์มอัปเดตตัวแปลงและทดสอบ หากนิยามลูกค้าที่มีสิทธิ์เปลี่ยน เจ้าของธุรกิจอัปเดตนโยบายและตัวอย่างทดสอบโดยไม่ต้องรอเขียนระบบส่งใหม่ ขอบเขตชัดพาการเปลี่ยนไปหาคนที่มีอำนาจ
ใช้กลไกซ้ำโดยไม่ทำความหมายแบน
กฎเฉพาะมีต้นทุน แพลตฟอร์มที่ไม่มีข้อกำหนดร่วมที่ใช้ซ้ำจะเป็นกองสคริปต์เฉพาะ คำตอบคือหากลไกที่ซ้ำก่อนย่อความหมายที่ซ้ำ องค์ประกอบร่วมที่ดีอาจรับเงื่อนไขมีชนิด เวลาเหตุการณ์ และขีดจำกัดการกระทำ โดยนิยามธุรกิจของเงื่อนไขยังเฉพาะที่
ทดสอบขอบเขตด้วยกรณีจริง เอาเหตุการณ์ปกติ ซ้ำ การแก้ที่มาช้า และสิทธิ์ถอน ถามว่าชั้นไหนรับผิดชอบแต่ละคำตอบ หากมอบหมายความล้มเหลวไม่ได้ การย่อกำลังซ่อนเจ้าของ หากลูกค้าใหม่ทำให้ enum “active” ร่วมต้องมีหลายความหมายไม่เกี่ยวกัน ชนิดร่วมกว้างเกิน
บทความการนำไปใช้คู่กัน ตรวจว่าความสามารถทำงานในเวิร์กโฟลว์จริงไหม บทนี้ถามว่าอะไรสร้างครั้งเดียวได้โดยไม่ลบความหมายเวิร์กโฟลว์
ส่วนติดต่อระหว่างชั้นต้องชัดพอปฏิเสธสมมติฐานผิด เครื่องร่วมอาจต้องมี ID เหตุการณ์ เวลาต้นทาง ผู้กระทำ และจุดประสงค์ที่ประกาศก่อนรับคำขอลงมือ เวิร์กโฟลว์เฉพาะส่งนโยบายว่าการกระทำนั้นอนุญาตไหม หากไม่มีจุดประสงค์ เครื่องควรปฏิเสธ หากนโยบายกำกวม เจ้าของเฉพาะต้องแก้ นี่เป็นวิธีรักษาการใช้ซ้ำโดยไม่ส่งอำนาจธุรกิจให้โค้ดทั่วไป บันทึกข้อกำหนดด้วยตัวอย่างที่รับหนึ่งและที่ปฏิเสธหนึ่ง แล้วทดสอบทั้งคู่ทุกครั้งที่ชั้นใดเปลี่ยน
คอนเน็กเตอร์ที่ใช้ซ้ำควรทำให้ความหมายเฉพาะแสดงง่ายและทำปลอดภัยขึ้น ไม่ควรทำให้คำสัญญาสองอย่างต่างกันดูเหมือนกันเพียงเพราะฟิลด์ชื่อเดียว
คำถามที่พบบ่อย
แพลตฟอร์มเชื่อมต่อควรใช้ซ้ำอะไรโดยทั่วไป?
กลไกเสถียร เช่น รูปแบบยืนยันตัว การส่งข้อมูล การกันทำซ้ำ การลองใหม่ บันทึก และตรวจสัญญา มักแชร์ได้เมื่อข้อกำหนดพื้นฐานตรงกัน
อะไรควรเฉพาะธุรกิจ?
ความหมายฟิลด์ อำนาจแหล่งข้อมูล กฎความยินยอม ความต้องการเรื่องเวลา และใครลงมือตามสถานะได้ ต้องกำหนดสำหรับธุรกิจและเวิร์กโฟลว์นั้น
ทีมทดสอบขอบเขตอย่างไร?
ลองแสดงเวิร์กโฟลว์ใหม่ด้วยองค์ประกอบเดิม หากทำแล้วเปลี่ยนความหมายธุรกิจหรือซ่อนข้อยกเว้นในค่าตั้งค่าทั่วไป ให้เก็บตรรกะไว้เฉพาะและทำส่วนติดต่อให้ชัด