सुबह: कॉफ़ी, स्टैंडअप और लीगेसी कोड का विश्लेषण
\n\nकल्पना करें: सुबह के 9:30 बजे हैं, एस्प्रेसो का कप कीबोर्ड के पास ठंडा हो रहा है, और आप पहले से ही VS Code खोल रहे हैं। JavaScript डेवलपर का एक सामान्य दिन कोड लिखने से नहीं, बल्कि संदर्भ स्विचिंग से शुरू होता है। आप Slack चेक करते हैं, पुल-रिक्वेस्ट पर टिप्पणियाँ पढ़ते हैं और दैनिक स्टैंडअप की तैयारी करते हैं।
\n\nस्टैंडअप (15 मिनट) में, आप तीन सवालों के जवाब देते हैं: कल क्या किया गया, आज क्या योजना है, क्या कोई बाधाएँ हैं। JavaScript डेवलपर के लिए यह बहुत महत्वपूर्ण है — टीम के साथ समन्वय कोड को दोबारा लिखने में लगने वाले घंटों को बचाता है।
\n\nसुबह की दिनचर्या: कोड-रिव्यू
\n\nजब एशिया के सहकर्मी पहले ही कोड जमा कर चुके होते हैं, आप GitHub खोलते हैं और code review करते हैं। JS पर एक सामान्य कोड जो समीक्षा के लिए आता है:
\n\n// खराब उदाहरण: ऑब्जेक्ट का म्यूटेशन\nfunction updateUser(user, newName) {\n user.name = newName;\n return user;\n}\n\n// अच्छा उदाहरण: इम्यूटेबिलिटी\nfunction updateUser(user, newName) {\n return { ...user, name: newName };\n}\n\n\nआप टिप्पणी करते हैं: "साइड-इफेक्ट से बचने के लिए स्प्रेड-ऑपरेटर का उपयोग करना बेहतर है।" यह कोई नुक्ताचीनी नहीं है — एक बड़े प्रोजेक्ट में स्वच्छ JavaScript कोड बग से बचाता है।
\n\nमुख्य भाग: कोड के लिए समय (10:00 – 13:00)
\n\nस्टैंडअप के बाद "गोल्डन टाइम" आता है — बिना मीटिंग के 3-4 घंटे। JavaScript डेवलपर इस दौरान क्या करता है? फीचर्स लिखता है, बग्स फिक्स करता है, रिफैक्टर करता है।
\n\nकार्य का उदाहरण: पेजिनेशन का कार्यान्वयन
\n\nमान लीजिए, आपको यूज़र लिस्ट पेज पर पेजिनेशन जोड़ना है। आप React (या कोई अन्य फ्रेमवर्क) का उपयोग करते हैं:
\n\n// React पर पेजिनेशन कंपोनेंट\nfunction Pagination({ currentPage, totalPages, onPageChange }) {\n const pages = Array.from({ length: totalPages }, (_, i) => i + 1);\n\n return (\n <div className="pagination">\n <button \n disabled={currentPage === 1}\n onClick={() => onPageChange(currentPage - 1)}\n >\n पीछे\n </button>\n {pages.map(page => (\n <button\n key={page}\n className={page === currentPage ? 'active' : ''}\n onClick={() => onPageChange(page)}\n >\n {page}\n </button>\n ))}\n <button\n disabled={currentPage === totalPages}\n onClick={() => onPageChange(currentPage + 1)}\n >\n आगे\n </button>\n </div>\n );\n}\n\n\nआप कंपोनेंट को लोकल रूप से टेस्ट करते हैं, एज केस (पहला/आखिरी पेज, खाली लिस्ट) चेक करते हैं। JS डेवलपर का कार्य दिवस यूनिट टेस्टिंग के बिना अधूरा है:
\n\n// Jest का उपयोग करके टेस्ट\ntest('पहले पेज पर "पीछे" बटन डिसेबल हो जाता है', () => {\n render(<Pagination currentPage={1} totalPages={5} onPageChange={() => {}} />);\n const backButton = screen.getByText('पीछे');\n expect(backButton).toBeDisabled();\n});\n\n\nदोपहर का भोजन और संदर्भ स्विचिंग (13:00 – 14:00)
\n\nदोपहर का भोजन पवित्र है। लेकिन कई JavaScript डेवलपर इस समय तकनीकी ब्लॉग पढ़ते हैं या कॉन्फ्रेंस की प्रस्तुतियाँ देखते हैं। सलाह: ऐसा न करें। मस्तिष्क को आराम चाहिए। 20 मिनट टहलना बेहतर है — इससे दूसरे हाफ में उत्पादकता बढ़ेगी।
\n\nदोपहर के बाद: बग्स, ऑप्टिमाइज़ेशन और संचार (14:00 – 17:00)
\n\nदूसरा हाफ "गंदे काम" का समय है। आप बग्स बंद करते हैं, क्वेरीज़ को ऑप्टिमाइज़ करते हैं और टीम से बात करते हैं।
\n\nउदाहरण: प्रदर्शन डीबगिंग
\n\nएक सहकर्मी शिकायत करता है कि पेज धीमा है। आप DevTools, Performance टैब खोलते हैं, और भूला हुआ setInterval के कारण मेमोरी लीक देखते हैं:
\n\n// समस्याग्रस्त कोड\nfunction startPolling() {\n setInterval(() => {\n fetch('/api/status')\n .then(res => res.json())\n .then(data => updateUI(data));\n }, 1000);\n}\n\n// सुधार: इंटरवल क्लियर करना न भूलें\n