हम कोड के बारे में "आईडी" डेटा पंक्तियों की गुजरता है की एक बहुत कुछ है, ये ज्यादातर चींटियों या guids हैं। मैं प्रत्येक डेटाबेस तालिका की आईडी के लिए विभिन्न संरचना बनाकर इस कोड को सुरक्षित बना सकता हूं। फिर टाइप चेकर गलत आईडी पास होने पर मामलों को खोजने में मदद करेगा। के लिएक्या प्रत्येक डेटा तालिका की प्राथमिक कुंजी के लिए कस्टम प्रकार बनाना एक अच्छा विचार है?
DeletePerson(int personId)
DeleteCar(int carId)
बेहतर होगा:
struct PersonId
{
private int id;
// GetHashCode etc....
}
DeletePerson(PersionId persionId)
DeleteCar(CarId carId)
किसी को भी वास्तविक जीवन अनुभव है
जैसे व्यक्ति मेज एक स्तंभ PersonId कॉल करता है और हम जैसे कोड है है डोंग के इस?
यह भूमि के ऊपर के लायक है?
या अधिक दर्द तो इसके लायक है?
कृपया डॉन '(यह भी यह आसान प्राथमिक कुंजी के डेटाबेस में डेटा प्रकार बदलने के लिए होगा, कि जिस तरह से मैं पहली जगह में इस आदर्श के बारे में सोचा है) टी ओआरएम का उपयोग सिस्टम डिज़ाइन में कुछ और बड़ा परिवर्तन का उपयोग करें क्योंकि मुझे पता है कि एक ओआरएम बेहतर विकल्प होगा, लेकिन यह वर्तमान में मेरी शक्ति के तहत नहीं है। हालांकि मैं उपरोक्त जैसे मॉड्यूल में मामूली परिवर्तन कर सकता हूं, वर्तमान में मैं काम कर रहा हूं।
अद्यतन: नोट इस एक वेब अनुप्रयोग और आईडी स्मृति में रखा जाता है नहीं कर रहे हैं और WCF के साथ के बारे में पारित कर दिया है, इसलिए वहां किनारे पर तार से/कोई रूपांतरण नहीं है। ऐसा कोई कारण नहीं है कि डब्ल्यूसीएफ इंटरफ़ेस व्यक्ति आईडी प्रकार आदि का उपयोग नहीं कर सके। PersonsId प्रकार इत्यादि का उपयोग WPF/Winforms UI कोड में भी किया जा सकता है।
केवल अंतर्निहित "untyped" सिस्टम का बिट डेटाबेस है।
इस समय बिताने लेखन कोड की लागत/लाभ यह है कि संकलक बेहतर जांच कर सकते हैं, या समय अधिक इकाई परीक्षण लेखन खर्च करने के लिए बंद हो गया है। मैं परीक्षण पर समय बिताने के पक्ष में और नीचे आ रहा हूं, क्योंकि मैं कोड बेस में कम से कम कुछ यूनिट परीक्षण देखना चाहता हूं।
टाइप चेकर आपको यह जांचने में कैसे मदद करेगा कि कोई अवैध आईडी पास की गई है या नहीं? यदि आपका कोड एक GUID पास करने का प्रयास कर रहा है जहां एक इंट की अपेक्षा की जाती है, तो उसे किसी भी तरह बम करना चाहिए। मुझे यकीन नहीं है कि आप जो भी प्राप्त करने की कोशिश कर रहे हैं वह आपको और अधिक सुरक्षा प्रदान करने जा रहा है, लेकिन यह आपके कोड को अनावश्यक रूप से अव्यवस्थित करेगा। – Chris
@ क्रिस, क्षमा करें, मैं एक व्यक्ति के इन्सटेट होने पर एक कैरिड के मामले को पकड़ने की कोशिश कर रहा हूं, जब दोनों इनट्स हैं। –