স্বীকৃত উত্তর ছাড়াও আমি ক্রস-কাটিংয়ের উদ্বেগের জন্য আরেকটি উদাহরণ উল্লেখ করতে চাই: রিমোট করা। বলুন যে আমি আমার ইকোসিস্টেমের অন্যান্য উপাদানগুলিকে স্থানীয়ভাবে কল করতে চাই যেন তারা প্রক্রিয়াধীন রয়েছে। কিছু কিছু ক্ষেত্রে তারা এমনকি করতে পারে। তবে এখন আমি ক্লাউড বা ক্লাস্টারে বিতরণ করা আমার পরিষেবাগুলি চালাতে চাই। অ্যাপ্লিকেশন বিকাশকারী হিসাবে এই দিকটি সম্পর্কে আমার কেন যত্ন করা উচিত? কোন দিকটি কল করতে হবে এবং কীভাবে, সঞ্চারিত ডেটা সিরিয়ালাইজ করা প্রয়োজন হলে এবং রিমোট কল করার বিষয়ে যত্ন নিতে পারে। সবকিছু যদি প্রক্রিয়াধীন হয় তবে দিকটি কেবল স্থানীয় কলটি ফরোয়ার্ড করবে। আহ্বায়ক পক্ষের দিকটি ডেটাটি ডিসেরায়ালাইজ করবে, লোকাল কল করবে এবং ফলাফলটি ফিরিয়ে দেবে।
এখন আমি আপনাকে লগ আউটপুটের মতো "তুচ্ছ" জিনিসগুলির সম্পর্কে একটি ছোট্ট গল্প বলি: মাত্র কয়েক সপ্তাহ আগে আমি একটি ক্লায়েন্টের জন্য একটি জটিল, তবে খুব বেশি বড় কোড বেস (কোডের প্রায় 250K লাইন) রিফেক্টর করি না। কয়েক শতাধিক ক্লাসে এক ধরণের লগিং ফ্রেমওয়ার্ক ব্যবহার করা হত, আরও কয়েক শতাধিকতে। তারপর কয়েক হাজার লাইনের ছিলSystem.out.println(*)
যেখানে সত্যিই লগ আউটপুট করা উচিত ছিল। তাই আমি কোড বেস জুড়ে ছড়িয়ে ছিটিয়ে থাকা কোডের কয়েক হাজার লাইন ফিক্সিংয়ের সাথে শেষ করেছি। ভাগ্যক্রমে পুরো পদক্ষেপের গতি বাড়ানোর জন্য আমি ইন্টেলিজ আইডিইএ (কাঠামোগত অনুসন্ধান এবং প্রতিস্থাপন) এর কিছু চালাক কৌশল ব্যবহার করতে পারি, তবে ছেলে আপনি কি মনে করেন না এটি তুচ্ছ! অবশ্যই, দৃ context়তার সাথে প্রাসঙ্গিক-নির্ভর ডিবাগ লগিং সর্বদা একটি পদ্ধতি শৃঙ্খলে উপস্থিত হবে, তবে অনেক গুরুত্বপূর্ণ ধরণের লগিং যেমন ট্রেসিং মেথড কল (এমনকি শ্রেণিবদ্ধভাবে এমনকি একটি চমত্কারভাবে ইন্টেন্টেড আউটপুট সহ) হ্যান্ডলড বা অবিবাহিত ব্যতিক্রম উভয় লগিং, ব্যবহারকারীর নিরীক্ষণ (লগিং কলগুলিতে ব্যবহারকারীর ভূমিকার উপর ভিত্তি করে সীমাবদ্ধ পদ্ধতিগুলি) এবং তাই সোর্স কোডটিকে দূষিত না করে সহজেই দিকগুলিতে প্রয়োগ করা যেতে পারে। প্রতিদিনের অ্যাপ্লিকেশন বিকাশকারীকে এ সম্পর্কে চিন্তাভাবনা করার বা কোড বেস জুড়ে ছড়িয়ে থাকা লগার কলগুলি দেখার প্রয়োজন হয় না।
অন্যান্য ক্রস কাটা উদ্বেগগুলির জন্য আমি একই ধরণের ব্যাখ্যা নিয়ে আসতে পারি। আইএমও ছড়িয়ে ছিটিয়ে থাকা এবং জটানো থেকে কোড পরিষ্কার ও মুক্ত রাখা পেশাদারিত্বের বিষয়, anythingচ্ছিক কিছু নয়। সর্বশেষে তবে অন্তত তা কোড পাঠযোগ্য, রক্ষণাবেক্ষণযোগ্য, পুনরুদ্ধারযোগ্য রাখে। আমেন।