मेरे पास एक मजबूत जावा / ग्रूवी पृष्ठभूमि है और मुझे एक टीम सौंपी गई है जो एक प्रशासनिक सॉफ्टवेयर के लिए काफी बड़ा सी कोड बेस बनाए रखती है।
कुछ दर्द बिंदु, जैसे डेटाबेस में ब्लॉब से निपटने या पीडीएफ और एक्सेल में रिपोर्ट उत्पन्न करने के लिए जावा वेब सेवा के लिए बाह्यीकृत किया गया है।
हालाँकि, एक जावा देव के रूप में, मैं कोड के कुछ पहलुओं से थोड़ा भ्रमित हूँ:
- यह क्रिया है (विशेषकर जब 'अपवाद' से निपटने के लिए)
- बहुत सारी विशाल विधियाँ हैं (कई 2000+ लाइनें विधि)
- कोई उन्नत डेटा संरचना नहीं है (मुझे सूची, सेट और मानचित्र बहुत याद आते हैं)
- चिंता की कोई जुदाई नहीं (SQL खुशी से कोड के चारों ओर मिश्रित है)
परिणामस्वरूप मुझे लगता है कि व्यापार तकनीकी कोड के टन में छिपा हुआ है और मेरा दिमाग ऑब्जेक्ट ओरिएंटेड और एक चुटकी फंक्शनल प्रोग्रामिंग के साथ आकार में है, कम से कम नहीं है।
परियोजना का अच्छा पक्ष यह है कि कोड सीधे आगे है: कोई फ्रेमवर्क नहीं है, रनटाइम पर कोई बाइट कोड हेरफेर नहीं है, कोई एओपी नहीं है। और सर्वर एक साथ 10000+ उपयोगकर्ताओं को एक ही मशीन के साथ जवाब दे सकता है, जिसमें जावा की तुलना में कम मेमोरी का उपयोग करके "हैलो वर्ल्ड" की आवश्यकता होती है।
मैं सीखना चाहता हूं कि आमतौर पर स्वीकृत आधुनिक सिद्धांतों के अनुसार सी कोड कैसे लिखा जाए। क्या आधुनिक सी को कैसे लिखा और संरचित किया जाना चाहिए, इसके बारे में कोई सामान्य रूप से स्वीकृत सिद्धांत हैं?
कुछ-कुछ 'इफेक्टिव जावा' पुस्तक के समतुल्य की तरह, लेकिन सी के लिए।
उत्तरों और टिप्पणियों के प्रकाश में संपादित करें:
- मैं अपनी मानसिकता को C कोड में ढालने की कोशिश करूंगा और इसे OOP पर मिरर करने की कोशिश नहीं करूंगा।
- मैंने टिप्पणी से अनुशंसित कोडिंग शैली गाइड को स्कैन करना शुरू कर दिया है (जीएनयू कोडिंग मानक और लिनक्स कर्नेल कोडिंग स्टाइल)।
- फिर मैं अपने सहकर्मियों को इस कोड शैली का प्रस्ताव देने की कोशिश करूंगा। सबसे कठिन हिस्सा सह-कर्मियों को यह समझाने के लिए हो सकता है कि विशाल विधि को छोटे भागों में विभाजित किया जा सकता है और यह दोहराने के लिए कि त्रुटि हैंडलिंग कोड की समान 4 पंक्तियों को एक विधि की मदद से टाला जा सकता है।