উত্তরাধিকার কোডবেসের জন্য মানের মান কমিয়ে দেওয়ার বিরুদ্ধে কীভাবে তর্ক করবেন? [বন্ধ]


28

আমাদের কাছে এমন খারাপ কোড সহ একটি বৃহত লিগ্যাসি কোড বেস রয়েছে যা আপনি কল্পনাও করতে পারবেন না।

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

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

উত্তরাধিকারের জন্য লঙ্ঘনগুলি হ্রাস করার জন্য এখন আলোচনাটি উঠে এসেছিল। কারণ এটি উত্তরাধিকার।

আলোচনাটি পাঠযোগ্যতার নিয়ম সম্পর্কে। কতটা নেস্টেড ifs / for এর জন্য .. এটি থাকতে পারে।

এখন আমি লিগ্যাসি কোডে আমাদের কোডিংয়ের গুণমানকে কম করার বিরুদ্ধে কীভাবে তর্ক করতে পারি?


2
সরঞ্জামের প্রান্তিক হ্রাস সম্পর্কে আলোচনা হয়? ... বা আমি এটি ভুল বুঝেছি? এটি বিভ্রান্তিমূলকভাবে লেখা হয়েছে।
ডাগলিনিস


4
প্রশ্নটির কিছু খুব অস্পষ্ট অংশ রয়েছে। "এই লঙ্ঘনগুলি হ্রাস করুন" - আপনি কি লঙ্ঘনগুলির আসল সংখ্যা (পুরানো কোডটি পুনরায় লিখে), সোনার দ্বারা উত্তরাধিকারের কোড ভিত্তিতে পরীক্ষিত বিধিগুলির সংখ্যা, বা আপনার কোডিং স্ট্যান্ডার্ডের যে নিয়মগুলি অনুসরণ করতে চান তা হ্রাস করতে চান? লিগ্যাসি কোড কিছু পরিবর্তন যখন?
ডক ব্রাউন

4
এছাড়াও আমাদের কাছে ভয়ানক কোড মানের একটি উত্তরাধিকারী পণ্য রয়েছে। যেহেতু এটি নতুন পণ্য দ্বারা প্রতিস্থাপন করা হবে, তাই পুরানো কোড আপ পরিষ্কার করার প্রায় কোনও মূল্য নেই। এর অর্থ: আমরা লিগ্যাসি কোড বেসে একটি নিম্নমান গ্রহণ করি।
বার্নহার্ড হিলার

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

উত্তর:


73

কোড কেবল শেষ করার উপায়। কি শেষ হতে পারে বিভিন্ন হতে পারে, কিন্তু সাধারণত এটি লাভ।

লাভ হলে; তারপরে আপনি যে কোনও কিছুতে সাফল্যের সাথে যুক্তি প্রদর্শন করতে চান যে এটি লাভের উন্নতি করবে - যেমন বিক্রয় বৃদ্ধি, রক্ষণাবেক্ষণ ব্যয় হ্রাস করা, উন্নয়ন ব্যয় হ্রাস, মজুরি হ্রাস করা, পুনরায় প্রশিক্ষণ ব্যয় হ্রাস ইত্যাদি you লাভ উন্নতি; তাহলে আপনি বেশিরভাগই বলছেন যে টয়লেটে টাকা ফেলার এটি একটি মজাদার উপায়।


15
আমি বিশ্বাস করি এই আলোচনার আরও একটি মাত্রা রয়েছে যা পেশাদারিত্ব, অনেক পেশায়, যদি আপনার বস আপনাকে কোণগুলি কাটতে বলেন, আপনি নৈতিক ভিত্তির ভিত্তিতে এটি করতে অস্বীকার করতে পারেন (কখনও কখনও এমনকি আইন আপনাকে ব্যাক আপ করে), আমি তা করি না সফ্টওয়্যার বিকাশকারীদের কেন আলাদা আচরণ করা উচিত তা বুঝুন।
আলেসান্দ্রো তেরুজি

21
@ আলেসান্দ্রো টেরুজি পেশাদারিত্বের বিষয়ে নির্বিশেষে আপনি যে কোনও জায়গায় (ব্যক্তিগত) নৈতিক ভিত্তিতে কিছু করতে অস্বীকার করতে পারেন। গ্যারান্টি দেয় না যদিও আপনি সেই জায়গায় কাজ চালিয়ে যাবেন।
ক্রোমস্টার বলেছেন মনিকা

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

17
এই উত্তরে কোনও ভুল নেই, তবে তবুও এটি আইএমএইচও বেশিরভাগ বাস্তব বিশ্বের পরিস্থিতিতে কার্যকর নয়। একটি কোড বেসের গুণমান উন্নত করা রক্ষণাবেক্ষণ ব্যয় প্রায়শই হ্রাস করবে, বিশেষত দীর্ঘমেয়াদে, তবে এই প্রভাবগুলি খুব কমই পরিমাণমতোযোগ্য। তাই এটি প্রায়শই একটি কৌশলগত সিদ্ধান্ত।
ডক ব্রাউন 13

2
@ ডকব্রাউন আমি অস্থায়ীভাবে সম্মত, তবে আমি মনে করি যে নম্বর-নেস্টেড-ইফএস-চালিত উন্নয়ন, একটি লা ওপি, কোনও উত্তরাধিকারের কোডবেসের উন্নতির দিকে কার্যকর পন্থা নয়।
ব্রায়ান_ও

44

আমি, আমি এবং আমি উভয়ই উত্তরাধিকারের কোডের নির্মাতা এবং রক্ষণাবেক্ষণকারী হয়েছি। যদি আপনার সরঞ্জামটি "হাজার হাজার লঙ্ঘন" উত্পন্ন করে (বা সে ক্ষেত্রে শত শতও), তবে সরঞ্জামটি ভুলে যান, এটি পরিস্থিতিটির জন্য অনুপযুক্ত ...

আমি ধরে নিই যে মূল বিকাশকারীরা দীর্ঘকাল চলেছেন এবং আলোচনার জন্য অনুপলব্ধ। সুতরাং কেউ কেন ডিজাইন এবং কোডিং শৈলীর কারণ এবং কেন তা বোঝে around শত শত বা হাজারো লঙ্ঘন সংশোধন করা এখানে এবং সেখানে কয়েকটি লাইন কোডের পুনর্লিখনের বিষয় নয়। পরিবর্তে, এটি নিঃসন্দেহে রিফ্যাক্টরিং / পুনরায় কার্যকরী-পচন প্রয়োজন। আপনি এটির বর্তমান নকশাটি নিবিড়ভাবে বুঝতে না পেরে কোনও বৃহত বিদ্যমান কোডবেসে এটি করার চেষ্টা করছেন এবং আপনি বাগ / সমস্যা / ইত্যাদির সম্পূর্ণ নতুন সেটটি প্রবর্তন করতে বাধ্য। কীটগুলির একটি নতুন ক্যান আপনার কাছে এখনের চেয়ে আরও খারাপ (বা আপনার সরঞ্জামের চেয়েও খারাপ >> মনে করে << আপনার এখন আছে)।

"হাজার হাজার লঙ্ঘন" মোকাবেলার একমাত্র বুদ্ধিমান পন্থা হ'ল স্ক্র্যাচ থেকে পুনর্লিখন। একটি দীর্ঘ এবং ব্যয়বহুল প্রচেষ্টা, এবং পরিচালনার কাছে বিক্রি করা প্রায় অসম্ভব। এবং এই ক্ষেত্রে তারা সম্ভবত সঠিক ...

লিগ্যাসি কোড সাধারণত সাধারণত টুইট প্রয়োজন। Y2k এর মতো, বা যখন স্টকগুলি 256 তম থেকে দশমিক দিকে চলে যায়। আমি উভয়ই CR * পি লোড করেছি। এবং অন্যান্য অনুরূপ অনেকগুলি স্টাফ। এটি সাধারণত বেশ সুন্দর "পয়েন্টপয়েন্ট" যাতে আপনি মাঝে মাঝে খারাপ শৈলী, খারাপ কার্যকরী ক্ষয়, খারাপ ইত্যাদির মাধ্যমে "পড়তে" পারেন এবং যে জায়গাগুলি সংশোধন করতে হবে তা সংগ্রহ সংগ্রহ করতে পারেন। এবং তারপরে, "সেই জায়গাগুলির মধ্যে" কী ঘটে যায়, অর্থাত্ আরও উচ্চ-স্তরের প্রবাহ কী তা আপনার কাছে রহস্য হতে পারে। কেবলমাত্র আপনি যে স্থানীয়করণের কার্যকারিতা পরিবর্তন করছেন তা বুঝতে পেরেছেন এবং তারপরে পরীক্ষা, পরীক্ষা, কোনও পার্শ্ব-প্রতিক্রিয়া ইত্যাদির জন্য পরীক্ষা ইত্যাদি আপনার স্থানীয়ীকৃত জ্ঞানটি আশা করতে সক্ষম হবে না।

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

মাঝে মাঝে আপনি আপনার লিগ্যাসি কোডবেজটি স্ক্র্যাচ থেকে নতুন করে ডিজাইন করতে এবং পুনরায় লেখতে চাইতে পারেন যখন ব্যবসায়ের (বা অন্যান্য) প্রয়োজনীয়তাগুলি এমন পর্যায়ে পরিবর্তন হয় যে প্যান্টের "প্যাঙ্কস" কেবল পরিবর্তিত প্রয়োজনীয়তাগুলিকে আর সামঞ্জস্য করতে পারে না । এবং এই মুহুর্তে, আপনি সম্ভবত প্রথম স্থানে একটি নতুন কার্যকরী প্রয়োজনীয়তা ডকুমেন্ট লিখে শুরু করতে পারেন, তা নিশ্চিত করে সমস্ত স্টেকহোল্ডার অন বোর্ডে রয়েছে। এটি মূলত সম্পূর্ণ নতুন বলগেম।

একমাত্র এবং একমাত্র >> ভুল << করণীয় হ'ল আপনি নতুন বিকাশ ঘটাতে একইভাবে লিগ্যাসি কোড রক্ষণাবেক্ষণের চিকিত্সা করার চেষ্টা করছেন। এবং এটির একটি ভুল জিনিস হ'ল আপনি যে পথে যেতে চাইছেন ঠিক সেই পথেই বলে মনে হচ্ছে :) এর জন্য আমার কথাটি ধরুন, যা আপনি করতে চান তা নয়।


2
এটি একটি প্রশ্নের উত্তর দেয় "উত্তরাধিকারটি আবার লেখা উচিত"। কিন্তু ওপি সতর্কতাগুলি কীভাবে ঠিক করতে হবে বা পুনর্লিখনটি হওয়া উচিত কিনা তা জিজ্ঞাসা করছে না। প্রশ্নটি মানের মান সম্পর্কে ছিল - মূলত প্রতিটি পরিবর্তনের জন্য প্রয়োজনীয়তা হ'ল বৈধতা সতর্কতার গণনা না বাড়ানো।
বেসিলিভ

9
এটি সরাসরি প্রশ্নটি সম্বোধন করে, যা পুনরায় লেখার বিষয়ে নয় । ওপি 'নতুন বিকাশের পথে আপনি যেমনভাবে লিগ্যাসি কোড রক্ষণাবেক্ষণের সাথে আচরণ করার জন্য তর্ক করতে চান'। এই উত্তরটি বলে "ওহো! আপনার এটি করা উচিত নয়!" ওপি বা আপনি শুনতে চান এমন প্রতিক্রিয়া নাও হতে পারে, তবে প্রশ্নের সম্পূর্ণ প্রতিক্রিয়া।
জোনাথন ইউনিস

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

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

@ সুপের্যাট যদি এটি করা যায় তবে এটি অবশ্যই একটি দুর্দান্ত উপায়। তবে আমার y2k প্রতিকারের বিভিন্ন প্রকল্পের কথা স্মরণ করে, আপনাকে কেবল বিদ্যমান কোডের মাঝখানে "ডুব" দিতে হয়েছিল এবং এর সাথে জগাখিচুড়ি করতে হবে। কোনও পুরানো / নতুন সম্ভাব্য (পুনরায়) ফ্যাক্টরিং করা সম্ভব নয় (বিস্তৃত << পুনঃলিখন ছাড়া)। উদাহরণস্বরূপ, চার-বাইট সিসি-ফর্ম্যাটেড বছরের জন্য তারিখের ক্ষেত্রগুলিতে দুটি বাইট যুক্ত করার পরিবর্তে বৃহত ডাটাবেসগুলিতে পাইকারি আপডেটের প্রয়োজন হবে, কেবল yy> 50 কে 19 yy এবং yy <= 50 কে 20yy হিসাবে ব্যাখ্যা করুন। তবে এর একমাত্র বুদ্ধিমান বাস্তবায়নে আপনার ব্যবহৃত স্থানটি খুব সামান্য পরিবর্তন জড়িত।
জন ফোরকোশ

13

প্রশ্নটি কী কোডটি ভাল বা খারাপ তা নয়। প্রশ্নটি কতটা বিনিয়োগ থেকে আপনি কতটা সুবিধা পাবেন is

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

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


2
আমি একবার একটি প্রকল্পে এসেছি যা দ্রুত সম্পন্ন হয়েছিল (সংকলক সতর্কতাগুলি উপেক্ষা করে)। প্রকল্পটি একটি জগাখিচুড়ি ছিল, একটি বাগ ছিল। একটি সংখ্যা উপচে পড়া ছিল। দলটি 2 সপ্তাহ ধরে অনুসন্ধান করেছিল। আমি সমস্ত সতর্কতা পতাকা চালু করে সংকলক পরিবেশ স্থাপন করেছি (গণনাটি 500 থেকে একাধিক হাজার সতর্কতা পর্যন্ত গেছে)। আমি সমস্ত সতর্কতা দিয়ে গেছে। মাত্র 3 ঘন্টা পরে আমার 0 টি সতর্কতা ছিল। কোনও কারণে কোডটি কাজ করেছিল। তবে কেন আমরা জানতাম না। আমি আমার শাখায় প্রতিটি পরিবর্তন এ কোড প্রতিশ্রুতিবদ্ধ। কিছুক্ষণ অনুসন্ধানের পরে আমি এটি খুঁজে পেয়েছি। একটি সুস্পষ্টভাবে ঘোষিত ফাংশন, যা সি গার্বলকে ফেরতের মান তৈরি করে।
কোডমনেকি

7

যদি এটি না ভেঙে যায় তবে এটি ঠিক করবেন না

এটিকে প্রতিটি সফ্টওয়্যার বিকাশকারী এবং পরিচালকের উপর ট্যাটু করা উচিত যাতে তারা এটিকে কখনও ভুলে না যায়।

হ্যাঁ, এটি সমস্ত আধুনিক কোডিং কনভেনশন ভেঙে দেয়। হ্যাঁ, এটি ফরটারান -77 এ সিটিতে একটি মোড়কের সাহায্যে লেখা রয়েছে যাতে পাইথন থেকে এটি আহবান করা যায়। হ্যাঁ, এগুলি হ'ল অপরিকল্পিত জিওটিও। হ্যাঁ, একটি সাবরোটিন তিন হাজার লাইন দীর্ঘ। হ্যাঁ, ভেরিয়েবলের নামগুলি কেবল ক্রোটের জন্যই তা উপলব্ধি করে। ইত্যাদি ইত্যাদি

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

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

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


2
আপনার মানে ওয়েস্টার্ন ডিজিটাল ? এটা কি এই প্রত্যাহার ছিল ? আপনার গল্পটি ব্যাক আপ করতে আপনি কোনও উত্স সরবরাহ করতে পারেন?
মনিকার সাথে লাইটনেস রেস

3
খুব নিশ্চিত যে তার অর্থ ডিজিটাল সরঞ্জাম কর্পস একটি বিবর্ণ ঝলক যার মধ্যে এখনও হিউলেট প্যাকার্ডের কালো হৃদয়ে গভীরভাবে থাকতে পারে।
জন হাসকল

1
হ্যাঁ - ডিজিটাল ডিইসি নামেও পরিচিত।
নিগেল 222

5

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

এটি একটি অভিন্ন এবং মৃত সহজ পদ্ধতির।

এটি পুরানো লিগ্যাসি কোডটিকে যেমন কাজ করতে দেয় (কারণ এতে কোনও অপ্রয়োজনীয় পরিবর্তন করা হয় না)। এটি নিশ্চিত করে যে নতুন কোডটি উচ্চমানের। কোনও অতিরিক্ত ব্যয় জড়িত না।


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

আমি প্রতিশ্রুতিবদ্ধ বলেছি, লাইন বা ফাংশন নয়। সম্ভবত আপনি সম্পাদনা করার জন্য যথেষ্ট পরিমাণ জগাখিচুড়ি সাফ করেছেন, a.problem জায়গার জন্য বাজেট রাখার জন্য।
বেসিলিভ

3

ঝুঁকি নিয়ন্ত্রণ…।

  • বৃহত্তর উত্তরাধিকার কোডবেজে কোডটি কমপক্ষে সফ্টওয়্যারটির বাস্তব জীবনের ব্যবহার দ্বারা পরীক্ষা করা হয়েছে।
  • এটি বৃহত লিগ্যাসির কোডবেসে কোডটি স্বয়ংক্রিয় ইউনিট পরীক্ষাগুলি দ্বারা আচ্ছাদিত very
  • অতএব বৃহত লিগ্যাসি কোডবেসে শীতের কোনও পরিবর্তনই উচ্চ ঝুঁকিপূর্ণ।

কস্ট ...।

  • কোডটি লেখার সময় একটি কোড চেকারকে পাস করা কোডটি সস্তা
  • পরবর্তী রাজ্যে এটি করা অনেক বেশি ব্যয়বহুল

সুবিধা

  • আপনি আশা করেন যে একটি কোডিং মান ধরে রাখা কোডের আরও ভাল ডিজাইনের দিকে পরিচালিত করে।

  • তবে এটি খুব সম্ভব নয় যে কেউ কোডিং স্ট্যান্ডার্ড চেকিং সরঞ্জাম থেকে সতর্কতাগুলি সরাতে কোড পরিবর্তন করতে বেশ কয়েক সপ্তাহ ব্যয় করেছেন, ফলে কোডটির নকশায় উন্নতি হবে।

  • সাধারণ কোডটি আরও পরিষ্কার এবং এটি বুঝতে সহজতর হতে ঝোঁক, যদি না জটিল কোড সংক্ষিপ্ত পদ্ধতিতে বিভক্ত না হয় তবে যে কেউ তা বোঝে না।

সুপারিশ ...।

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

ব্যক্তিগতভাবে অভিজ্ঞতা…।

  • প্রোগ্রামার হিসাবে কাজ করার অন্য 20 বছরে আমি এমন কোনও ঘটনা কখনও দেখিনি যেখানে নতুন কোডিং স্ট্যান্ডার্ড চেকার থেকে সমস্ত আউটপুট সরিয়ে আনার জন্য অন্ধভাবে পরিবর্তিত হওয়ার ক্ষেত্রে ঠিকাদারদের আয়ের পরিমাণ বাড়ানো ছাড়াও কোনও সুবিধা ছিল যা করার নির্দেশ দেওয়া হয়েছিল।
  • তেমনিভাবে যখন পুরানো কোডটি কোড পর্যালোচনাগুলি পাস করতে হয় (টিকিট / আইএসও 9001 ভুল হয়েছে) যার জন্য নতুন কোডিং স্ট্যান্ডার্ডের মতো দেখতে পুরানো কোডের প্রয়োজন।
  • আমি অনেকগুলি ক্ষেত্রে দেখেছি যেখানে নতুন কোডে কোডিং স্ট্যান্ডার্ড চেকিং সরঞ্জামগুলি ব্যবহার করে চলমান ব্যয় হ্রাস করে দুর্দান্ত সুবিধা হয়েছে।
  • আমি কখনই কোনও সংস্থাকে পুরানো কোড বজায় রাখতে ব্যর্থ হতে দেখিনি যা প্রচুর গ্রাহক সহ একটি পণ্যতে ব্যবহৃত হয়।
  • আমি বাজারে খুব ধীর হয়ে গ্রাহকদের কাছ থেকে আয় না পাওয়ার কারণে সংস্থাটি ব্যর্থ হতে দেখেছি…।

0

সরঞ্জামটির প্রান্তিক হ্রাস সম্পর্কে আলোচনাটি কি? ... বা আমি এটি ভুল বুঝেছি? এটি বিভ্রান্তিমূলকভাবে লেখা হয়েছে। যদি তা না হয় তবে দয়া করে আমার উত্তরটি বাতিল করুন।

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

... এটি ব্যতীত, কেবল জড়িত লোকদের সাথে এটি সম্পর্কে কথা বলুন এবং তাদের কারণগুলিও শুনুন।


0

আমি লিগ্যাসি কোডটি নতুন ক্লিন কোড থেকে আলাদা করার চেষ্টা করব। উদাহরণস্বরূপ Eclipse এগুলি একে অপরকে ব্যবহার করে এমন বিভিন্ন প্রকল্পে রেখে আপনি এটি করতে পারেন। 'ক্লিন'-প্রকল্প এবং 'উত্তরাধিকার'-প্রকল্প

এইভাবে আপনি সোনার উভয় প্রকল্পকে বিভিন্ন মানের মান সহ বিশ্লেষণ করতে পারেন। মানগুলি কেবল নিয়মের গুরুত্বের সাথে পৃথক হওয়া উচিত। নিয়ম নিজেই একই হওয়া উচিত। এইভাবে আপনি 'লিগ্যাসি'-প্রকল্পে দেখতে পাচ্ছেন যে 'পরিষ্কার'-প্রকল্পের মান পূরণের জন্য 'স্থির' হওয়া দরকার

যখনই আপনি কিছু লিগ্যাসি কোড উচ্চতর মানের তুলতে পরিচালিত করেছেন আপনি এটিকে 'পরিষ্কার'-প্রকল্পে স্থানান্তর করতে পারেন।

প্রতিদিনের কাজের মধ্যে আপনি 'ক্লিন'-প্রকল্পের মানগুলিতে যে সমস্ত শ্রেণি স্পর্শ করেন তার পিছনে সময় পিছিয়ে থাকার কারণে আপনি সাফল্য অর্জন করতে পারবেন না। আপনি যখনই লেগ্যাসি কোডটি স্পর্শ করবেন ততবার কিছুটা উন্নত করার চেষ্টা করে আপনার সেখানে ছোট পদক্ষেপে পৌঁছানোর চেষ্টা করা উচিত।

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