আমি আমার উত্তরটি একটি ব্যতিক্রমের পরে যা আসে তার দিকে আরও নির্দেশিত করব: এটি কী জন্য ভাল এবং সফ্টওয়্যারটির কীভাবে আচরণ করা উচিত, আপনার ব্যবহারকারীরা ব্যতিক্রমটি দিয়ে কী করা উচিত? আমি আমার ক্যারিয়ারের প্রথম দিকে যে দুর্দান্ত কৌশলটি পেয়েছিলাম তা হ'ল সর্বদা 3 অংশে সমস্যা এবং ত্রুটিগুলি প্রতিবেদন করা: প্রসঙ্গ, সমস্যা এবং সমাধান। এই ডিসিপলাইনটি ব্যবহার করে ত্রুটিটি বিপুলভাবে পরিচালনা করা পরিবর্তন করে এবং সফ্টওয়্যারটি অপারেটরদের ব্যবহারের জন্য আরও ভাল করে তোলে।
এখানে কয়েকটি উদাহরণ দেওয়া হল।
Context: Saving connection pooling configuration changes to disk.
Problem: Write permission denied on file '/xxx/yyy'.
Solution: Grant write permission to the file.
এই ক্ষেত্রে, অপারেটর ঠিক কী করতে হবে এবং কোন ফাইলটি অবশ্যই প্রভাবিত করবে তা জানে। তারা আরও জানে যে সংযোগ পুলিংয়ের পরিবর্তনগুলি নেয় নি এবং পুনরাবৃত্তি করা উচিত।
Context: Sending email to 'abc@xyz.com' regarding 'Blah'.
Problem: SMTP connection refused by server 'mail.xyz.com'.
Solution: Contact the mail server administrator to report a service problem. The email will be sent later. You may want to tell 'abc@xyz.com' about this problem.
আমি সার্ভার সাইড সিস্টেমগুলি লিখি এবং আমার অপারেটরগুলি সাধারণত টেক সচেতন প্রথম লাইনের সমর্থন। আমি ডেস্কটপ সফ্টওয়্যারগুলির জন্য পৃথকভাবে বার্তাগুলি লিখব যাগুলির ভিন্ন শ্রোতা রয়েছে তবে একই তথ্য অন্তর্ভুক্ত রয়েছে।
যদি কেউ এই কৌশলটি ব্যবহার করে তবে বেশ কয়েকটি দুর্দান্ত জিনিস ঘটে। সফ্টওয়্যার বিকাশকারীরা প্রায়শই তাদের নিজস্ব কোডটিতে সমস্যাগুলি কীভাবে সমাধান করতে হয় তা জানার জন্য সবচেয়ে ভালভাবে স্থাপন করা হয় তাই কোডটি লেখার সাথে সাথে এইভাবে এনকোডিং সমাধানগুলি ব্যবহারকারীর পক্ষে সুবিধামত উপকার হয় যেগুলি ব্যবহারকারীরা প্রায়শই সম্পর্কিত তথ্য হারিয়ে যাচ্ছেন না কারণ তারা অসুবিধায় পড়েছেন সফ্টওয়্যারটি ঠিক কী করছে। যে কেউ কখনও ওরাকল ত্রুটি বার্তাটি পড়েছেন তিনি জানতে পারবেন যে আমি কী বোঝাতে চাইছি।
দ্বিতীয় বিস্ময়কর বিষয়টি মনে পড়বে যখন আপনি নিজের ব্যতিক্রমের কোনও সমাধান বর্ণনা করার চেষ্টা করছেন এবং আপনি "চেক এক্স এবং যদি একটি বি বি সি লিখছেন তখন" লিখছেন। এটি একটি খুব স্পষ্ট এবং সুস্পষ্ট চিহ্ন যে আপনার ব্যতিক্রমটি ভুল জায়গায় পরীক্ষা করা হচ্ছে। আপনার প্রোগ্রামারের কোডগুলিতে কোডের তুলনা করার ক্ষমতা রয়েছে যাতে "যদি" স্টেটমেন্টগুলি কোডে চালানো উচিত, তবে ব্যবহারকারীকে এমন কোনও কিছুর সাথে জড়িত কেন যা স্বয়ংক্রিয় করা যায়? সম্ভাব্যতাগুলি কোডের গভীর থেকে এবং কেউ অলস কাজ করে এবং বিভিন্ন পদ্ধতি থেকে আইওএক্সেপশন ফেলে দেয় এবং কলিং কোডের একটি ব্লকে সেগুলি থেকে সম্ভাব্য ত্রুটিগুলি ধরা পড়ে যা সঠিকভাবে কী ভুল হয়েছে তা বর্ণনা করতে পারে না, নির্দিষ্টটি কীপ্রসঙ্গটি হল এবং কীভাবে এটি ঠিক করা যায়। এটি আপনাকে সূক্ষ্ম শস্যের ত্রুটিগুলি লিখতে, আপনার কোডে সঠিক জায়গায় এগুলি ধরতে এবং পরিচালনা করতে উত্সাহ দেয় যাতে অপারেটরের যে পদক্ষেপগুলি করা উচিত সেগুলি আপনি যথাযথভাবে উচ্চারণ করতে পারেন।
একটি সংস্থায় আমাদের শীর্ষস্থানীয় অপারেটর ছিল যারা সফ্টওয়্যারটি সত্যিই ভালভাবে জানতে পেরেছিলেন এবং তাদের নিজস্ব "রান বই" রেখেছিলেন যা আমাদের ত্রুটি প্রতিবেদনকে বাড়িয়ে তোলে এবং সমাধানের পরামর্শ দেয়। এটি সনাক্ত করতে সফটওয়্যারটি ব্যতিক্রমগুলিতে রান বইয়ের উইকি লিঙ্কগুলি সহ শুরু করেছিল যাতে একটি প্রাথমিক ব্যাখ্যা পাওয়া যায় এবং সময়ের সাথে সাথে অপারেটরদের আরও উন্নত আলোচনা এবং পর্যবেক্ষণের লিঙ্ক পাওয়া যায়।
আপনি যদি এই কৌশলটি ব্যবহার করার অনুধাবন করে থাকেন তবে নিজের তৈরি করার সময় কোডে আপনার ব্যতিক্রমগুলির কী নাম রাখা উচিত তা আরও স্পষ্ট হয়ে ওঠে। আপনি যে অপারেটরটির সাথে আরও সম্পূর্ণরূপে বর্ণনা করতে চলেছেন তার জন্য নন-পুনরুদ্ধারযোগ্য কনফিগারেশন রিডফেইডএক্সেপশন কিছুটা শর্টহ্যান্ড হয়ে যায়। আমি ভার্বোজ হতে পছন্দ করি এবং আমি মনে করি যে পরবর্তী বিকাশকারী যারা আমার কোডটি ব্যাখ্যা করতে স্পর্শ করেন তাদের পক্ষে এটি আরও সহজ হবে।