1 पॉइंट द्वारा GN⁺ 2024-06-16 | 1 टिप्पणियां | WhatsApp पर शेयर करें

Software Architecture पुस्तक परिचय

पुस्तक की विशेषताएँ

  • रिस्क-आधारित डिज़ाइन: जब रिस्क कम हो तो सरल डिज़ाइन, और जब रिस्क बड़ा हो तो गहन डिज़ाइन पर ज़ोर देता है।
  • आर्किटेक्चर का लोकतंत्रीकरण: इसका लक्ष्य है कि हर डेवलपर आर्किटेक्चर को समझ सके।
  • घोषणात्मक ज्ञान: सिस्टम डिज़ाइन और निर्माण के बारे में स्पष्ट अवधारणाएँ प्रदान करता है।
  • इंजीनियरिंग पर ज़ोर: तकनीकी पहलुओं पर फोकस करके सिद्धांत-आधारित डिज़ाइन निर्णय लेने में मदद करता है।
  • व्यावहारिक सलाह: विभिन्न abstraction levels के models के माध्यम से व्यावहारिक डिज़ाइन तरीकों को प्रस्तुत करता है।

पुस्तक की संरचना

Part I: रिस्क-आधारित Software Architecture

  • Software Architecture की परिभाषा: यह सिस्टम की रूपरेखा का काम करता है और quality attributes को प्रभावित करता है।
  • रिस्क-आधारित मॉडल: रिस्क की पहचान करने, उनकी प्राथमिकता तय करने, और उपयुक्त डिज़ाइन तकनीकों को लागू करके रिस्क कम करने का तरीका समझाता है।
  • मॉडल उपयोग सलाह: समस्या समाधान के लिए मॉडल का उपयोग करना, constraints को सावधानी से जोड़ना, और पूरी टीम में आर्किटेक्चर कौशल वितरित करने के तरीके प्रस्तुत करता है।

Part II: आर्किटेक्चर मॉडलिंग

  • अवधारणात्मक मॉडल संरचना: domain model, design model, और code model से मिलकर बनी है।
  • encapsulation boundaries बनाना: component या module के आंतरिक कामकाज को छिपाकर अन्य समस्याओं के समाधान पर ध्यान केंद्रित करने में मदद करता है।
  • प्रभावी मॉडल निर्माण: quality attributes और functionality पर ज़ोर देने वाली विभिन्न आर्किटेक्चर तकनीकों को एकीकृत करके व्यावहारिक मॉडल बनाने और debug करने के तरीके समझाता है।
  • मॉडल उपयोग सलाह: मॉडल के फायदे और नुकसान दोनों को कवर करते हुए, उन्हें प्रभावी ढंग से उपयोग करने के तरीके बताता है।

ईबुक और हार्डबैक

  • ईबुक: Google Play पर DRM-free संस्करण के रूप में बिक्री पर ($9.99)।
  • हार्डबैक: Amazon पर उपलब्ध।

पुस्तक पर समीक्षाएँ और अतिरिक्त सामग्री

  • समीक्षाएँ: IEEE Software आदि में विभिन्न reviews और essays उपलब्ध हैं।
  • अतिरिक्त सामग्री: continuous design, architecture styles, modeling जैसे विभिन्न विषयों पर वीडियो और प्रकाशन उपलब्ध हैं।

GN⁺ की राय

  • रिस्क-आधारित दृष्टिकोण का महत्व: रिस्क के आधार पर किया गया डिज़ाइन किसी प्रोजेक्ट की सफलता की संभावना बढ़ाने में बहुत उपयोगी है।
  • आर्किटेक्चर का लोकतंत्रीकरण: अगर हर डेवलपर आर्किटेक्चर को समझे, तो पूरी टीम की दक्षता बढ़ सकती है।
  • व्यावहारिक सलाह: यह पुस्तक सिद्धांत की तुलना में अधिक व्यावहारिक सलाह देती है, इसलिए इसे वास्तविक प्रोजेक्ट्स में तुरंत लागू किया जा सकता है।
  • तकनीकी फोकस: तकनीकी हिस्सों पर फोकस करके डेवलपर्स को वास्तविक समस्याएँ हल करने में मदद करती है।
  • अतिरिक्त सीखने की सामग्री: विभिन्न अतिरिक्त सामग्रियों के माध्यम से अधिक गहराई से सीखना संभव है।

1 टिप्पणियां

 
GN⁺ 2024-06-16
Hacker News की राय
  • प्रोजेक्ट मैनेजमेंट जोखिम और software engineering जोखिम में फर्क करना चाहिए। कई बार engineering skills, management जोखिमों को हल नहीं कर पातीं।
  • code quality, organization, testing, documentation, और standard tools का उपयोग दोनों में मदद करता है।
  • "बस से टकरा जाना" परिकल्पना का अक्सर उपयोग इसलिए किया जाता है ताकि ऐसा software बनाया जा सके जिसे दोहराया जा सके और आसानी से समझा जा सके।
  • नकारात्मक अर्थ से बचने के लिए "लॉटरी जीत जाना" जैसा अभिव्यक्ति इस्तेमाल करना बेहतर है।
  • architecture के लिए architecture सबसे खराब है। यह बेवजह complexity बढ़ाता है।
  • अच्छी architecture का अंतिम लक्ष्य लागत कम करना है। अगर development और maintenance में ज़्यादा समय लगे, तो वह असफल architecture है।
  • यह जानने की जिज्ञासा है कि 2010 में प्रकाशित यह किताब आज कितनी प्रासंगिक बची है।
  • "Design It" किताब workshop activities के कारण engineers के लिए उपयोगी है, और यह किसी खास technical architecture style की तरफ झुकी हुई नहीं है।
  • John Ousterhout की 'A Philosophy of Software Design' उपयोगी किताब है। इसमें समझने में आसान सलाह और बहुत से उदाहरण हैं।
  • "risk-dependent" शायद इससे बेहतर नाम होगा। यह जिज्ञासा भी है कि programmers को "[X]-based" जैसी अभिव्यक्ति इतनी क्यों पसंद है।
  • उस खास किताब के बारे में जानकारी नहीं है, लेकिन लेखक का "intellectual control" पर लिखा गया लेख बहुत insightful है।
  • कुछ साल पहले कंपनी में इसका book club किया था, लेकिन यह बहुत repetitive लगा।
  • यह जानने की जिज्ञासा है कि क्या यह गंभीर open source projects शुरू करने वालों या solopreneurs के लिए अच्छा resource है। साथ ही solo developers के लिए उपयोगी किताबों या resources की सिफारिश मांगी गई है।
  • software architecture सामान्य architecture जैसी है, लेकिन software में Isaac Newton जैसी कोई शख्सियत नहीं रही, इसलिए civil engineering जैसी कोई विधा मौजूद नहीं है। सबसे निकट का नाम Claude Shannon हो सकता है।
  • मनमाने terms पढ़ने पर आपत्ति है। गणितीय model चाहिए। इंसानों द्वारा बनाए गए अस्पष्ट terms, ideas को अनुवादित करने की एक तरह की hacking भर हैं।