Swift में क्लीन कोड: शुरुआती लोगों के लिए सिद्धांत और उदाहरण

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

Swift में क्लीन कोड: शुरुआती लोगों के लिए सिद्धांत और उदाहरण

\n\n

प्रत्येक iOS या macOS डेवलपर को देर-सबेर एक समस्या का सामना करना पड़ता है: जो कोड कल ठीक काम कर रहा था, वह आज अपठनीय हो जाता है। यह Swift भाषा की गलती नहीं है - यह क्लीन कोड के सिद्धांतों की उपेक्षा का परिणाम है। क्लीन कोड केवल सौंदर्यशास्त्र नहीं है। यह प्रोजेक्ट की रखरखाव क्षमता, डिबगिंग के समय को कम करने और टीम में आरामदायक काम करने का आधार है। इस लेख में, हम Swift उदाहरणों के साथ क्लीन कोड के प्रमुख सिद्धांतों पर चर्चा करेंगे, जो आपको ऐसा कोड लिखने में मदद करेंगे जो न केवल कंप्यूटर बल्कि लोगों के लिए भी समझने योग्य हो।

\n\n

1. नामकरण: वेरिएबल, कॉन्स्टेंट और फ़ंक्शन

\n\n

पहला और सबसे महत्वपूर्ण सिद्धांत - नाम को "क्यों?" प्रश्न का उत्तर देना चाहिए, न कि "कैसे?" का। Swift में, सख्त टाइपिंग के कारण, आप नाम में प्रकार को छोड़ सकते हैं, लेकिन इरादे को नहीं।

\n\n

खराब उदाहरण:

\n
var d: Double = 3.14\nvar arr = [String]()\nfunc calc(a: Double, b: Double) -> Double {\n    return a * b\n}
\n\n

अच्छा उदाहरण (क्लीन कोड):

\n
let piValue: Double = 3.14159\nvar userNames: [String] = []\nfunc calculateRectangleArea(width: Double, height: Double) -> Double {\n    return width * height\n}
\n\n

Swift में नामकरण के नियम:

\n
    \n
  • वेरिएबल और फ़ंक्शन के लिए camelCase का उपयोग करें।
  • \n
  • संक्षिप्ताक्षरों से बचें ( btn → submitButton )।
  • \n
  • बूलियन वेरिएबल के लिए उपसर्ग is, has, should का उपयोग करें (उदाहरण के लिए, isUserLoggedIn)।
  • \n
  • फ़ंक्शन के नाम क्रिया से शुरू होने चाहिए: fetchData(), saveToCache()।
  • \n
\n\n

2. फ़ंक्शन: एक कार्य - एक फ़ंक्शन

\n\n

एकल जिम्मेदारी का सिद्धांत (Single Responsibility) न केवल क्लास पर बल्कि फ़ंक्शन पर भी लागू होता है। यदि कोई फ़ंक्शन एक से अधिक काम करता है - तो उसे विभाजित करने की आवश्यकता है।

\n\n

खराब उदाहरण: फ़ंक्शन सब कुछ एक साथ करता है

\n
func processUserData(user: User) {\n    // वैलिडेशन\n    guard user.email.contains("@") else { return }\n    // डेटाबेस में सेव करना\n    Database.shared.save(user)\n    // नोटिफिकेशन भेजना\n    NotificationCenter.default.post(name: .userDidRegister, object: nil)\n    // UI अपडेट करना\n    DispatchQueue.main.async {\n        self.label.text = "स्वागत है, \\(user.name)"\n    }\n}
\n\n

अच्छा उदाहरण: छोटे फ़ंक्शन में विभाजन

\n
func registerUser(_ user: User) {\n    guard validateUser(user) else { return }\n    saveUserToDatabase(user)\n    postRegistrationNotification()\n    updateUI(for: user)\n}\n\nprivate func validateUser(_ user: User) -> Bool {\n    return user.email.contains("@") && !user.name.isEmpty\n}\n\nprivate func saveUserToDatabase(_ user: User) {\n    Database.shared.save(user)\n}\n\nprivate func postRegistrationNotification() {\n    NotificationCenter.default.post(name: .userDidRegister, object: nil)\n}\n\nprivate func updateUI(for user: User) {\n    DispatchQueue.main.async {\n        self.welcomeLabel.text = "स्वागत है, \\(user.name)"\n    }\n}
\n\n

सुझाव: यदि आप फ़ंक्शन के लिए कोई छोटा नाम नहीं सोच सकते हैं, तो संभवतः वह बहुत अधिक काम कर रहा है।

\n\n

3. टिप्पणियाँ: कम बेहतर है, लेकिन सटीक

\n\n

क्लीन कोड में, टिप्पणियाँ खराब कोड का संकेत हैं। अच्छे कोड को स्वयं का दस्तावेजीकरण करना चाहिए। हालांकि, अपवाद हैं: जटिल व्यावसायिक तर्क, लीगेसी के साथ काम करना या सार्वजनिक API।

\n\n

अनावश्यक टिप्पणी (खराब):

\n
// काउंटर को 1 से बढ़ाएँ\ncounter += 1
\n\n

उपयोगी टिप्पणी (अच्छा):

\n
// मुद्रा के साथ काम करते समय राउंडिंग त्रुटियों से बचने के लिए Decimal का उपयोग करें\nlet price = Decimal(string: "19.99") ?? .zero
\n\n

टिप्पणियों के साथ काम करने के नियम:

\n
    \n
  • स्पष्ट बातें न लिखें - कोड स्वयं पढ़ा जाता है।
  • \n
  • सेक्शन को चिह्नित करने के लिए // MARK: - का उपयोग करें
  • \n

ब्लॉग

पुस्तक अनुशंसाएँ