मैं अपने PHP वेब ऐप के प्रवाह का ट्रैक खो रहा हूं, इसके साथ काम करना कठिन होता जा रहा है


14

मैं कुछ वर्षों से प्रोग्रामिंग कर रहा हूं, और समय के साथ सी # और जावास्क्रिप्ट से बहुत परिचित हो गया हूं। मेरे पास कुछ बड़ी सी # और जावास्क्रिप्ट परियोजनाएं हैं जिन्हें मुझे नेविगेट करने में कोई परेशानी नहीं है। मैंने हाल ही में PHP के साथ बिना किसी पूर्व अनुभव के काम के लिए PHP और AngularJS प्रोजेक्ट शुरू किया है।

चीजों के PHP पक्ष का प्रवाह मुश्किल होता जा रहा है (जावास्क्रिप्ट पक्ष बड़ा है, लेकिन इसके माध्यम से काम करना आसान है), जब मैं कोशिश करता हूं और इसके माध्यम से सोचता हूं तो मैं धागे की एक उलझी हुई गेंद की कल्पना करता हूं। प्रमुख डिज़ाइन की गलतियाँ जो मैंने शुरू की थीं, वे शुरू हो रहे हैं और मेरे डिज़ाइन को आगे बढ़ने के लिए प्रभावित कर रहे हैं। कुछ भी नया लागू करने में अधिक समय और अधिक समय लगता है।

मैं एक तंग समय सीमा पर हूं और अच्छा, DRY, SOLID, कोड लिखना कठिन और कठिन लग रहा है। यह कोड को कॉपी / पेस्ट करने के लिए और अधिक मोहक होता जा रहा है ताकि डिजाइन समय के अनुसार यह व्यवहार में थोड़ा बदलाव ला सके। जब भी मुझे एक संदर्भ स्विच (एक परियोजना से वापस इस एक पर) करना होता है, तो कोड बेस में वापस आने में काफी समय लग रहा है, जब भी मैं इस परियोजना पर काम करने के लिए वापस जाता हूं तो मुझे डर लगता है।

इसके उपाय के लिए मैं क्या कदम उठा सकता हूं? अतिरिक्त समय लगने के साथ-साथ न्यायोचित होने की आवश्यकता हो सकती है, मेरा बॉस एक डेवलपर नहीं है और विकास या सॉफ्टवेयर जीवन चक्र से परिचित नहीं है, इसलिए समझाना सामान्य से अधिक कठिन हो सकता है।



1
धन्यवाद @gnat हालांकि, मुझे अपने बॉस के लिए मामला बनाने में कम दिलचस्पी है क्योंकि मैं समझ रहा हूं कि वास्तव में मुद्दों को कैसे ठीक किया जाए। मेरे बॉस के लिए एक मामला बनाना अच्छा नहीं होगा अगर मुझे मुद्दों को पहचानने और बदलने का एक अच्छा तरीका नहीं पता है।
डगलस गास्केल

जवाबों:


11

आप तकनीकी ऋण ले रहे हैं। जितना अधिक आप डेडलाइन के साथ मैला कोड को उचित ठहराते हैं, उतनी ही समय सीमा आपको कम और कम प्राप्त होती दिखाई देगी।

समझें कि आप इससे पूरी तरह से दूर हो सकते हैं। कोई भी आपको एक गड़बड़ और गेंद को पकड़ने के लिए नहीं जा रहा है। आप बस एक दिन जा रहे हैं अव्यवस्था से घिरा हुआ।

उस बिंदु पर आप या तो अपना रिज्यूमे अपडेट करेंगे और इसे मेरी समस्या बना देंगे या आप ऋण का भुगतान करने और कोड को साफ करने में कुछ समय बिताने का निर्णय लेंगे।

यदि आप सफाई मार्ग को समझते हैं तो यह "डिज़ाइन पर अधिक समय बिताने" के बारे में नहीं है। यह कुछ आलसी आदतों को तोड़ने और कचरा बाहर निकालने के बारे में है।

गंदा कोड थोक फेंकना एक बुरा विचार है। उस काम के कारण नहीं जो उसमें चला गया, बल्कि इसलिए कि वर्किंग कोड एक विचार को पकड़ता है। गंदे कोड को ट्रैश करने से पहले आइडिया को क्लीन कोड में ले जाएं।

इकाई परीक्षण होने से इससे मदद मिलती है लेकिन यदि आपने अपने परीक्षण उसी सावधानी से बनाए हैं जो आप उस गड़बड़ी में डालते हैं जिसकी उन्हें ठीक करने की आवश्यकता होती है।

कठोरता में मत देना। यदि आप इसे बदल नहीं सकते हैं तो यह सॉफ्टवेयर नहीं है।


1
"कोई भी आपको गड़बड़ करने और आपको आउट करने के लिए पकड़ने वाला नहीं है।" ... जब तक आप कोड की समीक्षा नहीं करते। ;)
jpmc26

1
@ jpmc26 यदि आपको लगता है कि कोड समीक्षा आपको इस भाग्य से बचाएगी तो आप गलत हैं। जब आप दूसरों से सीखने के इच्छुक हों तो कोड समीक्षाएं आपकी मदद करती हैं। जब आप एक समय सीमा पर ध्यान केंद्रित नहीं करते हैं। काम करना, गन्दा करना, कोड को बार-बार राय देना होगा। मैंने देखा है कि प्रबंधक एक चौथाई फ़्लिप करके इन विवादों को हल करते हैं। यदि आप गुणवत्ता के बारे में परवाह नहीं करते हैं तो कोई भी आपको इसे बाहर खींचने में सक्षम नहीं होगा। यह न सोचें कि आप दूसरों पर भरोसा कर सकते हैं ताकि आपको गड़बड़ करने से रोक सकें। अगर यह बात आती है, तो वे आपको प्रलेखन अद्यतन करने के लिए असाइन करेंगे।
candied_orange

यदि आप मेरी टिप्पणी पढ़ते हैं और सोचते हैं कि मैं कह रहा था कि कोड समीक्षाएं जादू-टोने की तरह हैं और इंद्रधनुष ऐसे हैं जो बिना किसी प्रयास या इच्छा के सब कुछ ठीक कर देंगे, तो आप अविश्वसनीय रूप से गलत हैं। लेकिन वे किसी को आपको इस पर कॉल करने का मौका देते हैं।
jpmc26

1
@ jpmc26 यदि आपने मेरा उत्तर पढ़ा और सोचा कि मैं कह रहा था कि अभी कोई उम्मीद नहीं है, तो आप अविश्वसनीय रूप से गलत हैं। मैं प्रोग्रामर को कॉल करने के लिए किसी भी प्रक्रिया पर भरोसा करने के बजाय स्वच्छ कोड के लिए व्यक्तिगत जिम्मेदारी लेने के लिए बुला रहा हूं। केवल एक चीज मैटर करती है। आप या तो परवाह करते हैं या आप नहीं करते हैं।
कैंडिड_ओरेंज

बेशक, लेकिन यहां तक ​​कि सबसे अच्छा प्रोग्रामर हर अब और फिर गूंगा निर्णय करेगा। किसी अन्य व्यक्ति के साथ कोड की समीक्षा आपको अपना कोड किसी और के सामने रखने का मौका देती है जो उन्हें पहले पकड़ सकता है। यह पूरी बात है । यह कठिन अपने आप से समस्या स्थलों को देखने के लिए जब तक आप वास्तव में कुछ बदलने के लिए कोशिश करते हैं और यह मुश्किल हो जाता है। यदि आपको परवाह नहीं है तो बेशक कोड समीक्षाएं और कोई भी अन्य तकनीक बेकार है।
jpmc26

9

कुछ भी नया लागू करने में अधिक समय और अधिक समय लगता है।

यह तुम्हारा औचित्य है। 'ऊपर उठो, कुछ कौवा खाओ, और समझाओ कि क्यों चीजें अधिक समय ले रही हैं और आपको सिस्टम को फिर से तैयार करने में थोड़ा समय बिताने की जरूरत है।

यदि आप ऐसा नहीं करते हैं, तो आपको कम-से-कम, कम से कम रिफ्लेक्टर की आवश्यकता होगी। कार्य पहले से अधिक समय ले रहे हैं जितना आप उन्हें चाहते हैं - कुछ अतिरिक्त समय हर बार जब आप कोड आधार को छूने की कोशिश करते हैं और कुछ बेहतर बनाते हैं। एक एकीकरण परीक्षण जोड़ें। एक अमूर्त निकालें।

"मैं एक बड़ी परियोजना को कैसे रिफलेक्टर करता हूं?" है, "एक समय में एक टुकड़ा"।

संपादित करें

संबंधित पोस्ट पढ़ रहा था, और इस ब्लॉग पोस्ट पर आया: http://ronjeffries.com/xprog/articles/refactoring-not-on-the-backlog/TLDR : अपनी परियोजना में एक विशाल रिफैक्टर 'चरण' बनाने का प्रयास न करें; परियोजना के मालिकों से खरीदारी करने की संभावना नहीं है, और आपके पास अपनी पसंद के समय में आपके द्वारा किए गए समय के दौरान क्या करना है, इसके बारे में आप अनभिज्ञ होंगे । इसके बजाय, उस नए कोड या बगफिक्स के लिए समय निकालें जिससे आप अभी काम कर रहे हैं। जब आपको उन्हें ठीक करने का अवसर मिले तो बदबू न आने दें।


3
ठीक ऐसा ही मैंने अतीत में अपने हेरिटेज के साथ किया था। अच्छी बात: एक बार जब आपको मोड़ मिल गया, तो परियोजना परी की धूल की तरह चमकने लगी।
22

-2

Sonarqube PHP का समर्थन करता है ताकि आप अपने वर्तमान ऋण और नए लीक को ट्रैक करने में मदद कर सकें। http://docs.sonarqube.org/display/PLUG/PHP+Plugin

Drupal https://sonarqube.com/dashboard?id=drupal के साथ लाइव नमूना


1
अफसोस की बात है कि मैं अपने कार्य उपकरण पर JVM स्थापित नहीं कर सकता। यह अन्यथा एक महान उपकरण की तरह दिखता है।
डगलस गास्केल

एक डेवलपर कार्य केंद्र के लिए यह बहुत कठिन है।
आर्किमिडीज ट्रैजानो

मेरे पास स्थानीय प्रशासन, या कोई भी स्थापित अनुमति नहीं है, या किसी भी गैर-श्वेत सूचीबद्ध अनुप्रयोगों के लिए अनुमतियाँ नहीं हैं। यह बहुत बुरा हुआ करता था .... दुख की बात है।
डगलस गास्केल

मैं सहानुभूति नहीं कह सकता, लेकिन मैं सहानुभूति रखता हूं।
आर्किमिडीज ट्रेजानो

नीचे उतारा गया क्योंकि यह सिर्फ एक टूल का विज्ञापन / लिंक है, ओपी के सवाल का जवाब नहीं।
जेम्स स्नेल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.