ฉันไม่ใช่แฟนของขั้นตอนการจัดเก็บ
ขั้นตอนการจัดเก็บนั้นสามารถบำรุงรักษาได้มากขึ้นเนื่องจาก: * คุณไม่จำเป็นต้องคอมไพล์แอป C # ของคุณใหม่ทุกครั้งที่คุณต้องการเปลี่ยน SQL
คุณจะต้องรวบรวมใหม่อีกครั้งเมื่อประเภทข้อมูลเปลี่ยนแปลงหรือคุณต้องการส่งคืนคอลัมน์เพิ่มเติมหรืออะไรก็ตาม จำนวนครั้งที่คุณสามารถ 'โปร่งใส' เปลี่ยน SQL ออกจากใต้แอพของคุณมีขนาดเล็กโดยรวม
- คุณสามารถใช้รหัส SQL ซ้ำได้
ภาษาการเขียนโปรแกรมรวม C # มีสิ่งที่น่าอัศจรรย์นี้เรียกว่าฟังก์ชั่น หมายความว่าคุณสามารถเรียกใช้บล็อกโค้ดเดียวกันได้จากหลาย ๆ ที่! ! ที่น่าตื่นตาตื่นใจ จากนั้นคุณสามารถใส่รหัส SQL ที่สามารถใช้งานซ้ำได้ภายในหนึ่งในนั้นหรือถ้าคุณต้องการใช้เทคโนโลยีขั้นสูงจริงๆคุณสามารถใช้ไลบรารีที่เหมาะกับคุณ ฉันเชื่อว่าพวกเขาเรียกว่า Object Relational Mappers และเป็นเรื่องธรรมดาในทุกวันนี้
การทำซ้ำรหัสเป็นสิ่งที่แย่ที่สุดที่คุณสามารถทำได้เมื่อคุณพยายามสร้างแอปพลิเคชั่นที่บำรุงรักษาได้!
ตกลงซึ่งเป็นเหตุผลที่เก็บไว้ procs เป็นสิ่งที่ไม่ดี มันง่ายกว่ามากในการสร้างและย่อยสลายโค้ด (แบ่งเป็นส่วนเล็ก ๆ ) ลงในฟังก์ชั่นมากกว่า SQL ไปเป็น ... บล็อกของ SQL?
คุณมีเว็บเซิร์ฟเวอร์ 4 แห่งและแอพ windows จำนวนหนึ่งซึ่งใช้รหัส SQL เดียวกันตอนนี้คุณรู้แล้วว่ามีปัญหาเล็กน้อยกับรหัส SQl ดังนั้นคุณค่อนข้างจะ ...... เปลี่ยน proc ในที่เดียวหรือกดรหัสทั้งหมด เว็บเซิร์ฟเวอร์ติดตั้งแอปเดสก์ท็อปทั้งหมดใหม่ (Clickonce อาจช่วยได้) ในทุกช่องหน้าต่าง
เหตุใดแอพ windows ของคุณจึงเชื่อมต่อโดยตรงกับฐานข้อมูลกลาง ดูเหมือนว่าจะมีช่องโหว่ความปลอดภัยขนาดใหญ่อยู่ตรงนั้นและเป็นคอขวดเมื่อออกกฎการแคชฝั่งเซิร์ฟเวอร์ พวกเขาไม่ควรเชื่อมต่อผ่านบริการเว็บหรือคล้ายกับเว็บเซิร์ฟเวอร์ของคุณ?
ดังนั้นดัน 1 sproc ใหม่หรือ 4 webservers ใหม่
ในกรณีนี้มันเป็นเรื่องง่ายที่จะผลักดันหนึ่ง sproc ใหม่ แต่ในประสบการณ์ของผม 95% ของการเปลี่ยนแปลงการผลักดัน 'ส่งผลกระทบต่อรหัสและฐานข้อมูลไม่ได้ ถ้าคุณผลัก 20 สิ่งไปยังเว็บเซิร์ฟเวอร์ในเดือนนั้นและ 1 ไปยังฐานข้อมูลคุณจะสูญเสียอะไรมากถ้าคุณผลัก 21 สิ่งไปยังเว็บเซิร์ฟเวอร์แทนและศูนย์ไปยังฐานข้อมูล
ตรวจสอบรหัสได้ง่ายขึ้น
คุณอธิบายได้อย่างไร ฉันไม่ได้รับสิ่งนี้ โดยเฉพาะอย่างยิ่งการดูว่าสไปรก์อาจไม่อยู่ในการควบคุมแหล่งที่มาดังนั้นจึงไม่สามารถเข้าถึงได้ผ่านเบราว์เซอร์ SCM บนเว็บและอื่น ๆ
ข้อเสียเพิ่มเติม:
Storedprocs อาศัยอยู่ในฐานข้อมูลซึ่งปรากฏให้โลกภายนอกเป็นกล่องดำ สิ่งง่าย ๆ เช่นต้องการทำให้พวกเขาอยู่ในแหล่งควบคุมกลายเป็นฝันร้าย
นอกจากนี้ยังมีปัญหาของความพยายามเต็มที่ มันอาจสมเหตุสมผลที่จะแบ่งทุกอย่างออกเป็นล้าน ๆ ระดับถ้าคุณพยายามที่จะพิสูจน์ให้ซีอีโอของคุณว่าทำไมมันถึงต้องใช้เงินถึง 7 ล้านดอลลาร์เพื่อสร้างฟอรัมบางส่วน แต่ไม่เช่นนั้นการสร้างโปรเพคไว้สำหรับทุก ๆ ประโยชน์.