আমাকে বেশ কয়েকটি প্রকল্প উদ্ধার করার "সুযোগ" দেওয়া হয়েছিল এবং এক্সিকিউটিভরা পুরো দেব দলকে প্রতিস্থাপন করেছিল কারণ অ্যাপটিতে অনেকগুলি ত্রুটি ছিল এবং ব্যবহারকারীরা সমস্যা এবং দৌড়াতে ক্লান্ত হয়ে পড়েছিলেন। এই কোড বেসগুলিতে শীর্ষস্থানীয় মতামতযুক্ত উত্তরের মতো অ্যাপ্লিকেশন স্তরে হ্যান্ডলিংকে কেন্দ্রিয় ত্রুটি ছিল। যদি উত্তরটি সর্বোত্তম অনুশীলন হয় তবে এটি কেন কাজ করে না এবং পূর্ববর্তী দেব দলকে সমস্যাগুলি সমাধান করার অনুমতি দেয় না? সম্ভবত কখনও কখনও এটি কাজ করে না? উপরের উত্তরগুলিতে একক ইস্যু ঠিক করতে কতক্ষণ ডিভস ব্যয় করা হবে তা উল্লেখ করা হয়নি। সমস্যাগুলি সমাধান করার সময় যদি মূল মেট্রিক হয় তবে ট্রাই.সেক ব্লক সহ ইনস্ট্রুমেন্টিং কোডটি একটি ভাল অনুশীলন।
আমার দলটি ইউআই-তে উল্লেখযোগ্য পরিবর্তন না করে কীভাবে সমস্যাগুলি সমাধান করেছিল? সরল, প্রতিটি পদ্ধতি চেষ্টা করে চালিত হয়েছিল .c এবং সংস্করণ। এই তথ্যের সাহায্যে বিকাশকারীরা সবচেয়ে বেশি ব্যতিক্রম সনাক্ত করতে ত্রুটিগুলির উপর বিশ্লেষণ চালাতে পারে! অথবা সর্বাধিক সংখ্যক ত্রুটিযুক্ত নামস্থান। এটি বৈধতাও দিতে পারে যে মডিউলটিতে ঘটে যাওয়া একটি ত্রুটি সঠিকভাবে পরিচালনা করা হয়েছে এবং একাধিক কারণে নয়।
এর আর একটি সুবিধা হ'ল বিকাশকারীরা ত্রুটি লগিং পদ্ধতিতে একটি ব্রেক-পয়েন্ট সেট করতে পারে এবং একটি ব্রেক-পয়েন্ট এবং "স্টেপ আউট" ডিবাগ বোতামের একক ক্লিকের সাহায্যে তারা সেই পদ্ধতিতে রয়েছে যা আসলটিতে সম্পূর্ণ অ্যাক্সেস ব্যর্থ হয় ব্যর্থতার বিন্দুতে অবজেক্টস, তাত্ক্ষণিক উইন্ডোতে সুবিধামত উপলব্ধ। এটি ডিবাগ করা খুব সহজ করে তোলে এবং সঠিক লাইনটি খুঁজে পেতে সমস্যাটিকে নকল করার জন্য পদ্ধতিটি শুরুতে পুনরায় প্রয়োগের টেনে আনার অনুমতি দেয়। কেন্দ্রীভূত ব্যতিক্রম হ্যান্ডলিং কোনও বিকাশকারীকে 30 সেকেন্ডের মধ্যে একটি ব্যতিক্রম প্রতিলিপি করতে দেয়? না।
বিবৃতি "একটি পদ্ধতি কেবল তখনই একটি ব্যতিক্রম ধরা উচিত যখন এটি কিছু বুদ্ধিমান উপায়ে পরিচালনা করতে পারে।" এটি সূচিত করে যে বিকাশকারীরা প্রকাশের আগে ঘটতে পারে এমন প্রতিটি ত্রুটি ভবিষ্যদ্বাণী করতে বা তাদের মুখোমুখি হতে পারে। এটি যদি শীর্ষ স্তরের সত্য হয় তবে অ্যাপের ব্যতিক্রম হ্যান্ডলারটির প্রয়োজন হবে না এবং ইলাস্টিক অনুসন্ধান এবং লগস্ট্যাশের কোনও বাজার থাকবে না।
এই পদ্ধতির সাহায্যে ডিভগুলিকে উত্পাদনে অন্তর্বর্তী সমস্যাগুলি সন্ধান করতে এবং ঠিক করতে দেয়! আপনি কি প্রযোজনায় কোনও ডিবাগার ছাড়াই ডিবাগ করতে চান? অথবা আপনি বরং কল নেবেন এবং বিরক্ত ব্যবহারকারীদের ইমেল পাবেন? সমস্যা সমাধানের জন্য প্রয়োজনীয় সবকিছু ঠিক আছে বলে অন্য কেউ জানেন না এবং ইমেল, আইএম, বা স্ল্যাক সমর্থন না করেই এটি আপনাকে সমস্যার সমাধান করতে দেয়। 95% ইস্যুগুলির কখনই পুনরুত্পাদন করা প্রয়োজন।
সঠিকভাবে কাজ করার জন্য এটি সেন্ট্রালাইজড লগিংয়ের সাথে একত্রীকরণ করা দরকার যা নেমস্পেস / মডিউল, শ্রেণীর নাম, পদ্ধতি, ইনপুট এবং ত্রুটির বার্তা এবং একটি ডাটাবেসে সঞ্চয় করতে পারে যাতে কোন পদ্ধতিটি সবচেয়ে বেশি ব্যর্থ হয় তাই হাইলাইট করার জন্য এটি একত্রিত করা যায় যাতে এটি হতে পারে প্রথম স্থির।
কখনও কখনও ডেভেলপাররা ক্যাচ ব্লক থেকে স্ট্যাকগুলি আপকে ছুঁড়ে ফেলতে পছন্দ করে তবে এই পদ্ধতিরটি ন্যাশনাল কোডের চেয়ে 100 গুণ কম ধীর হয় যা ছোঁড়ে না। লগিং সহ ক্যাচ এবং রিলিজ পছন্দ করা হয়।
এই প্রযুক্তিটি এমন অ্যাপ্লিকেশনটি দ্রুত স্থিতিশীল করতে ব্যবহৃত হয়েছিল যা 2 বছরেরও বেশি সময় ধরে 12 দেবগণ দ্বারা নির্মিত একটি ফরচুন 500 কোম্পানির বেশিরভাগ ব্যবহারকারীদের জন্য প্রতি ঘন্টা ব্যর্থ হয়। এটি ব্যবহার করে 3000 বিভিন্ন ব্যতিক্রম চিহ্নিত করা হয়েছিল, স্থির, পরীক্ষা করা হয়েছিল এবং 4 মাসের মধ্যে স্থাপন করা হয়েছিল। এটি গড়ে 4 মাসের জন্য প্রতি 15 মিনিটে স্থির হয়ে যায়।
আমি সম্মত হয়েছি যে কোডটি ইনস্ট্রুমেন্ট করার জন্য প্রয়োজনীয় সমস্ত কিছু টাইপ করা মজাদার নয় এবং আমি পুনরাবৃত্তি কোডটি না দেখাই পছন্দ করি, তবে প্রতিটি পদ্ধতিতে 4 টি লাইন কোড যুক্ত করা দীর্ঘমেয়াদী উপযুক্ত।