সুতরাং কিছু বিকাশকারী / পরিচালকগণ কাজ সম্পন্ন করার জন্য কম কোড লেখার মান দেখতে পান যাতে আমাদের বজায় রাখার জন্য কম কোড থাকে
এটি আসল লক্ষের দিকে দৃষ্টি হারিয়ে যাওয়ার বিষয়।
গুরুত্বপূর্ণ বিষয়গুলি উন্নয়নের জন্য ব্যয় করা সময়কে হ্রাস করে । এটি কোডের লাইনে নয়, সময়ে (বা সমমানের প্রচেষ্টা) মাপা হয়।
এটি এইরকম বলার মতো যে গাড়ি নির্মাতাদের কম স্ক্রু দিয়ে তাদের গাড়িগুলি তৈরি করা উচিত, কারণ প্রতিটি স্ক্রু itুকতে একটি অ-শূন্য পরিমাণ সময় লাগে that যদিও এটি প্যাডেন্টিকভাবে সঠিক, একটি গাড়ির বাজার মূল্য এটি কতগুলি স্ক্রু দ্বারা সংজ্ঞায়িত করা যায় না বা নেই। সর্বোপরি, একটি গাড়ির পারফরম্যান্স, নিরাপদ এবং বজায় রাখা সহজ হওয়া দরকার।
উত্তরটির বাকি অংশগুলি কীভাবে ক্লিন কোড সময় লাভের দিকে নিয়ে যেতে পারে তার উদাহরণ।
লগিং
একটি অ্যাপ্লিকেশন নিন (এ) যার কোনও লগিং নেই। এখন অ্যাপ্লিকেশন বি তৈরি করুন যা একই অ্যাপ্লিকেশন এ তবে লগিং সহ। বি এর সর্বদা কোডের আরও লাইন থাকবে এবং সুতরাং আপনাকে আরও কোড লিখতে হবে।
তবে অনেক সময় সমস্যা এবং ত্রুটিগুলি তদন্ত করতে এবং কী ভুল হয়েছে তা নির্ধারণের জন্য ডুবে যাবে।
অ্যাপ্লিকেশন এ এর জন্য, বিকাশকারীরা কোডটি পড়তে আটকে থাকবে এবং সমস্যাটির ক্রমাগত প্রজনন করতে হবে এবং সমস্যার উত্স খুঁজতে কোডের মাধ্যমে পদক্ষেপ নেবে। এর অর্থ হ'ল বিকাশকারীকে প্রতিটি ব্যবহৃত স্তরে কার্যকরকরণের শুরু থেকে শেষ অবধি পরীক্ষা করতে হয় এবং প্রতিটি ব্যবহৃত তর্ককে পর্যবেক্ষণ করা দরকার needs
সম্ভবত তিনি তাৎক্ষণিকভাবে এটি সন্ধান করার জন্য ভাগ্যবান, তবে সম্ভবত উত্তরটি শেষের দিকে যেতে চলেছেন যা তিনি দেখার কথা ভাবেন।
নিখুঁত লগিং ধরে ধরে অ্যাপ্লিকেশন বিয়ের জন্য, একজন বিকাশকারী লগগুলি পর্যবেক্ষণ করেন, তাত্ক্ষণিক ত্রুটিযুক্ত উপাদানটি সনাক্ত করতে পারেন এবং এখন কোথায় জানেন তা জানেন।
এটি মিনিট, ঘন্টা বা দিন সংরক্ষণের বিষয় হতে পারে; কোডবেজের আকার এবং জটিলতার উপর নির্ভর করে।
রিগ্রেশন
অ্যাপ্লিকেশন এ নিন, যা মোটেও DRY- বান্ধব নয়।
অ্যাপ্লিকেশন বি নিন, যা শুকনো, তবে অতিরিক্ত বিমূর্ততার কারণে আরও লাইনের প্রয়োজন শেষ হয়েছে।
একটি পরিবর্তন অনুরোধ দায়ের করা হয়েছে, যার জন্য যুক্তিতে পরিবর্তন দরকার।
বি অ্যাপ্লিকেশনটির জন্য, বিকাশকারী পরিবর্তন অনুরোধ অনুযায়ী (অনন্য, ভাগ করা) যুক্তি পরিবর্তন করে।
অ্যাপ্লিকেশন এ এর জন্য, বিকাশকারীকে এই যুক্তির সমস্ত দৃষ্টান্ত পরিবর্তন করতে হবে যেখানে তিনি মনে করছেন এটি ব্যবহার হচ্ছে।
- যদি তিনি সমস্ত দৃষ্টান্ত মনে রাখতে সক্ষম হন তবে তাকে একই পরিবর্তনটি বেশ কয়েকবার প্রয়োগ করতে হবে।
- যদি তিনি সমস্ত দৃষ্টান্ত মনে রাখার ব্যবস্থা না করেন, আপনি এখন একটি অসামঞ্জস্যপূর্ণ কোডবেস নিয়ে কাজ করছেন যা নিজেই স্ববিরোধী। যদি বিকাশকারী খুব কম ব্যবহৃত কোডের টুকরোটি ভুলে যান তবে ভবিষ্যতে ভাল হওয়া পর্যন্ত এই বাগ শেষ ব্যবহারকারীদের কাছে স্পষ্ট না হয়ে যেতে পারে। সেই সময়ে, শেষ ব্যবহারকারীরা কি সমস্যার উত্সটি তা চিহ্নিত করতে যাচ্ছেন? তা সত্ত্বেও, বিকাশকারী হয়তো পরিবর্তনটি কীভাবে চাপিয়েছিলেন তা মনে রাখতে পারে না এবং এই ভুলে যাওয়া যুক্তির টুকরোটি কীভাবে পরিবর্তন করতে হয় তা নির্ধারণ করতে হবে। সম্ভবত বিকাশকারী ততক্ষণে সংস্থায় কাজও করেন না এবং তারপরে এখন অন্য কারও কাছে এটিকে স্ক্র্যাচ থেকে বের করতে হবে।
এতে প্রচুর সময় নষ্ট হতে পারে। কেবল বিকাশে নয়, শিকার এবং বাগটি অনুসন্ধানে। অ্যাপ্লিকেশনটি এমনভাবে ভ্রান্তভাবে আচরণ শুরু করতে পারে যা বিকাশকারীরা সহজেই বুঝতে পারে না। এবং এটি দীর্ঘ ডিবাগিং সেশনগুলিতে নেতৃত্ব দেবে।
বিকাশকারী বিনিময়যোগ্যতা
বিকাশকারী একটি তৈরি করা অ্যাপ্লিকেশন এ। কোডটি পরিষ্কার নয় বা পাঠযোগ্য নয়, তবে এটি একটি কবজির মতো কাজ করে এবং উত্পাদন চলছে running আশ্চর্যজনকভাবে, কোনও ডকুমেন্টেশনও নেই।
বিকাশকারী A ছুটির কারণে এক মাস অনুপস্থিত। জরুরি পরিবর্তনের অনুরোধ দায়ের করা হয়েছে। দেব এ ফিরে আসার জন্য এটি আরও তিন সপ্তাহ অপেক্ষা করতে পারে না।
বিকাশকারী বি এই পরিবর্তনটি কার্যকর করতে হবে। তাকে এখন পুরো কোডবেসটি পড়তে হবে, সমস্ত কীভাবে কাজ করে, কেন এটি কাজ করে এবং কী সম্পাদন করতে চেষ্টা করে তা বুঝতে হবে। এটি যুগে যুগে সময় নেয়, তবে ধরা যাক তিনি তিন সপ্তাহের মধ্যে এটি করতে পারেন।
একই সময়ে, অ্যাপ্লিকেশন বি (যা দেব বি তৈরি করেছে) এর একটি জরুরি অবস্থা রয়েছে। দেব বি দখল করা হয়েছে, তবে কোড সিটি না জানলেও দেব সি উপলব্ধ is আমরা কি করি?
- আমরা যদি খ-কে A তে কাজ করে রাখি এবং বি তে কাজ করি, তবে আমাদের দু'জন বিকাশকারী আছেন যারা জানেন না তারা কী করছেন, এবং কাজটি suboptimally সম্পাদিত হচ্ছে।
- আমরা যদি এটিকে বি থেকে দূরে সরিয়ে নিয়ে তাকে বি করি, এবং আমরা এখন সি এ এ রাখি, তবে বিকাশকারী বি এর সমস্ত কাজ (বা এর উল্লেখযোগ্য অংশ) ফেলে দেওয়া হতে পারে। এটি সম্ভাব্য দিন / সপ্তাহের প্রচেষ্টা নষ্ট হয়।
দেব এ তার ছুটি থেকে ফিরে এসে দেখেন যে বি কোডটি বুঝতে পারে না এবং এভাবে এটি খারাপভাবে প্রয়োগ করে। এটি বি এর দোষ নয়, কারণ তিনি সমস্ত উপলব্ধ সংস্থান ব্যবহার করেছেন, উত্স কোডটি পর্যাপ্তভাবে পাঠযোগ্য ছিল না। কোডের পঠনযোগ্যতা স্থির করে এখনই কি সময় ব্যয় করতে হবে?
এই সমস্ত সমস্যা এবং আরও অনেকগুলি সময় নষ্ট করে । হ্যাঁ, স্বল্পমেয়াদে, পরিষ্কার কোডটির এখন আরও বেশি প্রচেষ্টা প্রয়োজন , তবে ভবিষ্যতে যখন অনিবার্য বাগ / পরিবর্তনগুলি সমাধান করার প্রয়োজন হয় তখন এটি লভ্যাংশ প্রদান করে ।
ম্যানেজমেন্টকে বুঝতে হবে যে এখন একটি সংক্ষিপ্ত কাজ আপনাকে ভবিষ্যতে বেশ কয়েকটি দীর্ঘ কাজ সাশ্রয় করবে। পরিকল্পনা ব্যর্থ ব্যর্থ করার পরিকল্পনা করা হয়।
যদি তা হয়, তবে আরও এলওসি রচিত হয়েছে তা প্রমাণ করতে আমি কোন যুক্তিগুলি ব্যবহার করতে পারি?
আমার গোপনীয় বিবরণী তারা কী পছন্দ করবে সে সম্পর্কে ম্যানেজমেন্টকে জিজ্ঞাসা করছে: 100KLOC কোডবেস সহ একটি অ্যাপ্লিকেশন যা তিন মাসের মধ্যে বিকাশ করা যায়, বা 50 কেএলপি কোডবেস যা ছয় মাসে উন্নত করা যায়।
তারা অবশ্যই উন্নয়নের স্বল্প সময় বেছে নেবে, কারণ ম্যানেজমেন্ট কেওএলকে যত্ন করে না । যে পরিচালকরা কেএলকে ফোকাস করেন তারা মাইক্রোম্যানেজিংয়ের সময় তারা কী কী ব্যবস্থাপনার চেষ্টা করছেন তা অবহিত করা হচ্ছে।