কখন ব্যতিক্রম হ্যান্ডলিং, লগিং লেখা শুরু করবেন


13

আপনি কখন আপনার ব্যতিক্রম হ্যান্ডলিং কোড লেখা শুরু করবেন? আপনি কখন লগিং বিবৃতি লিখতে শুরু করবেন।

এই প্রশ্নটি বিশদ দেওয়ার উদ্দেশ্যে, আসুন আমরা ধরে নিই যে আমরা লগ 4 নেট লগিং সহ নেট নেট প্ল্যাটফর্মে রয়েছি তবে সাধারণভাবে উত্তর দিতে নির্দ্বিধায় অনুভব করি।

সমাধান: একটি উইন্ডোজ ফর্ম প্রকল্প। প্রকল্পগুলি: ইউআই, বিজনেস রুলস, ডেটাহ্যান্ডার্স

সুতরাং, আপনি কি আপনার ডেটাহ্যান্ডলারগুলি লেখার বিষয়ে যা যা আপনার ডেটা ম্যানিপুলেশনগুলি যেমন তৈরি, পড়ুন, আপডেট করুন, প্রথমে মুছুন does

তারপরে আপনার ব্যবসায়িক বিধিগুলি সহ এটি অনুসরণ করুন

এবং তারপরে আপনার ইউআই বা উপরের কোনও অন্য ক্রিয়াকলাপ।

কার্যকারিতা জন্য আপনার আবেদন পরীক্ষা করুন।

এবং তারপরে আপনার ব্যতিক্রম হ্যান্ডলিং কোড এবং শেষ পর্যন্ত আপনার লগিং কোডটি লেখা শুরু করবেন ?

আপনার ব্যতিক্রম হ্যান্ডলিং কোডটি লেখার জন্য সঠিক সময় কখন?

পিএস: ক্লিন কোড বইটিতে তারা বলেছে আপনার ট্রাই-ক্যাচ-অবশেষে ব্লকটি প্রথমে লিখুন। এই, আমাকে এই প্রশ্ন জিজ্ঞাসা করতে অনুরোধ জানানো।

উত্তর:


15

আপনি ব্যতিক্রম হ্যান্ডলিং কোডটি লিখবেন যখন আপনি এমন কিছু লিখছেন যা এমন কিছু কল করে যা ব্যতিক্রম হতে পারে।

উদাহরণস্বরূপ, আপনি যখন এমন কোনও কিছু লিখছেন যা কোনও নেটওয়ার্কে ডেটা প্রেরণ করে, আপনিও কোডটি লিখতে হবে যা সংযোগের সময়সীমা হ্যান্ডলগুলি পরিচালনা করে। ব্যতিক্রমটি আপনি যা করছেন তার সাথে সরাসরি প্রাসঙ্গিক এবং কাজটি আপনার মনে তাজা।

অন্যদিকে, আপনি যদি কোনও পার্সার লিখছেন যা কোনও ত্রুটিযুক্ত প্রোটোকল ডেটা ইউনিটের মুখোমুখি হয়ে ব্যতিক্রমগুলি উত্থাপন করে, তবে পার্সার উত্পাদিত ব্যতিক্রমগুলির জন্য আপনি ব্যতিক্রম-হ্যান্ডলিং কোডটি লিখতে পারবেন না । (তবে অবশ্যই আপনি কীভাবে এবং কখন এবং কেন পার্সার ব্যতিক্রম উত্থাপন করে তা পরীক্ষার জন্য লিখছেন!)

অবশেষে প্রথমে আপনার চেষ্টা-ধরা- লেখার পরামর্শের পিছনের কারণটি দ্বিগুণ: অবশেষে ফাংশনটি তৈরি করে / গ্রহণ করে এমন সংস্থানগুলি সাফ করার জন্য এবং ক্যাচটি লেখার একটি দুর্দান্ত অনুস্মারক যে আপনি যে ফাংশনগুলিতে কল করছেন তা ব্যর্থ হতে পারে, এবং আপনার এই ব্যর্থতাগুলি (যদি প্রয়োজন হয়) পরিচালনা করতে হবে।

আমি সত্য পরে লগিং যোগ করার ঝোঁক। আমি নিশ্চিত যে এটি জ্ঞানী কিনা, তবে এটিই আমার পক্ষে কাজ করেছে। আমি যখন গ্রহণযোগ্যতা পরীক্ষা এবং এই জাতীয় চলমান শুরু করি এবং সমস্যাগুলি আঘাত শুরু করি তখন আমি লগিং যুক্ত করি যাতে আমি ত্রুটিগুলি ট্র্যাক করতে পারি। (এবং তারপরে আমি লগ ইনটি ছেড়ে দিই))


অবশেষে প্রথমে চেষ্টা-ধরা লেখার পিছনে কারণগুলির জন্য +1
কানিনি

1
সি ++ এ, শেষ অবধি নেই এবং খুব ভাল কারণে রয়েছে। RAII অনেক উন্নত।
ডেভিড থর্নলি

3

আমার অভিজ্ঞতায়, আপনি যদি প্রথম থেকেই যথাযথ ত্রুটি পরিচালনা ও লগিং সহ কোডটি না লিখেন তবে সময় চাপের কারণে এটি সম্পন্ন হবে না। কোডিং স্ট্যান্ডার্ড, কীভাবে ত্রুটিগুলি পরিচালনা করা হবে, লগিং, বেসিক আর্কিটেকচার এবং পরীক্ষার সরঞ্জামগুলি সহ বেসিক অ্যাপ্লিকেশন কাঠামো নির্ধারণ করতে ব্যয় করা সময়ের সাথে আমার সবচেয়ে সফল উন্নয়নের প্রচেষ্টা শুরু হয়েছিল।

অন্যথায়, আপনি খুঁজে পাবেন যে 2.0 সংস্করণে আপনার জন্য "ত্রুটি হ্যান্ডলিং উন্নত করুন" এবং "লগিং সিস্টেম তৈরি করুন" এর মতো কাজ রয়েছে। এগুলি নতুন বৈশিষ্ট্যগুলির পক্ষে কাটা হবে এবং আপনার "ভেবে খুব বেশি কিছু করার" কারণ আপনার ত্রুটি-বিচ্যুত হওয়ার ক্ষেত্রে সেই সমস্ত বাগগুলি ঠিক করে দেওয়া। (যা চিরকাল লাগে, কারণ আপনার কোনও লগিং সিস্টেম নেই।


1

আপনি যা করছেন তার উপর নির্ভর করে

ব্যতিক্রম জন্য:

আপনি যদি এমন কিছু লিখছেন যাতে ত্রুটি হওয়ার সম্ভাবনা রয়েছে বা এমন কিছু আছে যেখানে ভাল শীর্ষ স্তরের পয়েন্ট রয়েছে তবে ব্যতিক্রমগুলি সেগুলি লিখতে শুরু করবে you

যদি আপনি এমন কিছু লিখতে থাকেন যা পারফরম্যান্সের প্রয়োজন হয় এবং ত্রুটির কম সম্ভাবনা থাকে ত্রুটি হ্যান্ডলারদের ত্রুটি হ্যান্ডলারগুলি লেখার জন্য কোনও অর্থপূর্ণ স্থানের অভাব থাকে যেখানে পরীক্ষার মাধ্যমে প্রমাণিত হয় যে তাদের প্রয়োজনীয়তা রয়েছে।

উভয় ক্ষেত্রেই, যদি ত্রুটিটি সমাধানের জন্য আপনার কাছে দরকারী কোনও কিছু না থাকে তবে এটিকে বুদবুদ দেওয়া (বিবেচনা করুন)

লগিং জন্য:

আপনার যদি অডিটের ট্রেইল প্রয়োজন হয় তবে আপনাকে প্রথমে লগিং লিখতে হবে। আপনি যদি ত্রুটিগুলি উপরের দিকে পুরোপুরিভাবে ছাড়তে দেন তবে আপনাকে সেখানে কিছু লগিং সরবরাহ করতে হবে যাতে লগটি ক্যাপচার করা যায়।

এই ক্ষেত্রেগুলি বাদ দিয়ে আমি সাধারণত সেই জায়গাগুলিতে লগিং যুক্ত করি যেখানে পরীক্ষা / ব্যবহার প্রমাণিত হয় যে এটি প্রয়োজনীয় এবং আমি সাধারণত এটি সম্পাদন করার পরে একটি কনফিগার করার বিকল্প তৈরি করি।


বিস্তারিত উত্তর দেওয়ার জন্য ধন্যবাদ। লগিংয়ের প্রতি শ্রদ্ধা রেখে, কেন আমার অডিট ট্রেল লাগলে আপনি প্রথমে লগিং দিয়ে শুরু করবেন। এর কার্যকারিতা দিকটি শেষ করার পরে কেন আমি সেগুলি লিখতে পারি না? কোন নির্দিষ্ট কারণ?
কানিনি

আমার কাছে আপনার নিরীক্ষণের প্রয়োজন ফাংশনগুলি লেখার সাথে সাথে লগিংটি লিখতে সহজ, সুতরাং এটি করার জন্য যে আমার প্রয়োজনবোধের কারণ হতে পারে এমন কিছু লিখার আগে আমার কাছে বেস লগিং ফাংশনগুলি প্রয়োজন। আমি যেতে যেতে অডিট না লিখলে আমি উদ্বিগ্ন যে আমি কিছু মিস করব।
বিল

1

আপনি পরিষেবা হিসাবে অডিটিং এবং ব্যতিক্রম হ্যান্ডলিং বাস্তবায়ন করতে পারেন। অ্যাপ্লিকেশন-স্তরের নিরীক্ষণ লগিংয়ের প্রতিটি ব্যবসায়ের লেনদেন সম্পর্কে স্থিতির ডেটা প্রয়োজন। কোনও ব্যবসায় বা লেনদেনের প্রসঙ্গে কোনও অ্যাপ্লিকেশন পর্যবেক্ষণ করার দক্ষতার জন্য পরিষেবার অনুরোধের সাথে সম্পর্কিত লেনদেনের অবস্থান সম্পর্কিত বিশদ বার্তা প্রেরণের জন্য পরিষেবার মধ্যে একটি মনিটরিং ইন্টারফেসের প্রয়োজন। ব্যবসায়ের লেনদেনের গুরুতর পদক্ষেপে প্রতিটি পরিষেবাকে স্থিতি বার্তা প্রেরণ করা প্রয়োজন। তারপরে আপনি যৌগিক অ্যাপ্লিকেশনটির মধ্যে পরিষেবাগুলির সাথে স্থিতি বার্তাগুলির (বার্তার শব্দার্থের উপর ভিত্তি করে - যেমন লেনদেন আইডি) তুলনা করতে একটি রিয়েল-টাইম ভিউয়ার তৈরি করতে পারেন। এটি এসএলএ পরিচালনা, ত্রুটি সনাক্তকরণ এবং সমস্যা নির্ধারণের জন্য ব্যবসায়ের লেনদেনের শেষ থেকে শেষের জন্য ভিউ সরবরাহ করে।

তারপরে একটি নিরীক্ষণ পরিষেবাটি রাষ্ট্রীয় মেশিন হিসাবে প্রয়োগ করা যেতে পারে যা এর কনফিগারেশনে সংজ্ঞায়িত মানদণ্ডের ভিত্তিতে বার্তাগুলিকে গ্রাস করতে এবং রেকর্ড করতে পারে। জেনেরিক ব্যতিক্রম হ্যান্ডলার এছাড়াও এন্টারপ্রাইজ এসওএ-তে ঘটে যাওয়া সমস্যাগুলির কেন্দ্রীয় দৃষ্টিভঙ্গি সমর্থন করতে অডিট পরিষেবাটি ব্যবহার করতে পারে - ব্যতিক্রম-ভিত্তিক পর্যবেক্ষণকে সমর্থন করে। সমাধানে যে কোনও-অ-ঘটনীয় শর্তটি ব্যতিক্রম হ্যান্ডলারের কাছে একটি ব্যতিক্রম বার্তা প্রেরণের জন্য চালিত হয়।


1

আপনার প্রয়োজন হলে এটি লিখুন, তবে শুরু থেকেই তাদের অন্তর্ভুক্তির জন্য নকশা করুন।

অন্য কথায়: এটি তৈরি করুন যাতে লগিংয়ের ক্ষমতাটি হ্যান্ডেল করার একটি উপায় রয়েছে এবং প্রয়োজনের পরে আসল বাদাম এবং বল্টের কার্যকারিতা (এটি কী বার্তা লগ করে) যোগ করুন। ব্যতিক্রমগুলিতে- থ্রোকটি লেখার আগে ক্যাচটি যুক্ত করুন (এবং শেষ পর্যন্ত যদি তা পেয়ে থাকেন)। এটি কোনওটিকে ভুলে যাওয়া এবং নিজের পুনরুক্তি বা সবচেয়ে খারাপ কোনও বাগ / ক্রাশ থেকে বাঁচতে সহায়তা করবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.