আপনি কীভাবে ইচ্ছাকৃত খারাপ কোডটি মোকাবেলা করবেন?


21

ইচ্ছাকৃতভাবে খারাপ কোড সম্পর্কে অনেক গল্প রয়েছে, কেবলমাত্র থেইডেইডাব্লুটিএফ-তে নয়, তবে এসও-তেও। সাধারণ ক্ষেত্রে অন্তর্ভুক্ত:

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

এই পয়েন্টগুলি কম-বেশি বিদ্বেষপূর্ণ মনোভাব প্রদর্শন করে (এমনকি কখনও কখনও দুর্ঘটনার পরেও), বিশেষত প্রথম পয়েন্টটি প্রায়শই প্রায়ই ঘটে।

এই ধরনের নির্মাণের সাথে একজনকে কীভাবে ডিল করা উচিত? সমস্যাটিকে উপেক্ষা করুন, বা কেবল আপত্তিজনক কোডটি সরাবেন? তাদের পরিচালককে অবহিত করুন, বা "বৈশিষ্ট্য" প্রবর্তনকারী ব্যক্তির সাথে কথা বলবেন?


10
এটি "কখনও কখনও দুর্ঘটনার দ্বারা" বা এটি "ইচ্ছাকৃত খারাপ"? আমি দেখতে পাচ্ছি না যে এটি উভয়ই কীভাবে হতে পারে।

উত্তর:


7

বেশিরভাগ খারাপ কোডটি বোঝার অভাবের কারণে হয় এবং এর সমাধান হল শিক্ষা।

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

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

শিপিং হাতির দাঁত টাওয়ার পারফেকশনের চেয়ে গুরুত্বপূর্ণ, তবে সম্বোধনের দুটি পয়েন্ট রয়েছে। সুস্পষ্ট ঘাটতিগুলি সমাধান করা আপনার 20% চেষ্টার সাথে ফলাফলের 80% পায় এবং এই জাতীয় কম-ঝুলন্ত ফল খুব কম উপেক্ষা করার মতো। তবে আরও গুরুত্বপূর্ণ, আপনি যদি অন্তর্নিহিত (রাজনৈতিক) কারণটির দিকে মনোযোগ না দেন তবে সম্ভবত এটি ইচ্ছাকৃতভাবে খারাপ কোড লেখা হবে এবং আরও সমস্যার কারণ হতে পারে — এবং সম্ভবত শিপিং রোধ করবে।


28

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


2
একমত। কেউ ইচ্ছাকৃতভাবে খারাপ কোড লেখেন না। তারা একটি সমস্যা সমাধান করছে, এবং তারা এটি তাদের সেরা পদ্ধতিতে সমাধান করছে। তারা বিপথগামী, নিম্নস্তর, অজ্ঞ, ইত্যাদি হতে পারে But
ড্যান রে

8
আইনী না হলেও অন্তত একটি নৈতিক বাধ্যবাধকতা রয়েছে।
ক্রিস কৃষক

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

11

নির্ভর করে সংস্থার সংস্কৃতিতে। প্রায়শই না করা, সমস্ত খারাপ কোড সংশোধন করা এবং পরিষ্কার করা কেবল আপনার কাজ নয়।

থেকে কর্মক্ষেত্রে পরিকল্পনাটি , overengineering উপর জেমি Zawinski ভাবনা, যা এই অবস্থায় প্রয়োগ করা যেতে পারে:

দিন শেষে, জিনিস জিনিস শিপ! আপনার কোডটি পুনরায় লেখার জন্য এবং এটিকে পরিষ্কার করার পক্ষে দুর্দান্ত এবং তৃতীয়বারের মতো এটি বাস্তবে সুন্দর হবে। তবে এটি বিন্দু নয় - আপনি কোড লেখার জন্য এখানে নন; আপনি পণ্য জাহাজ এখানে।

এখানে প্রচুর পরিমাণে খারাপ কোডার এবং কোড রয়েছে এবং বর্তমান প্রকল্প / টাস্ক ব্যয় করে আপনি যখন এটিকে জুড়ে আসেন তখন কেবল সেগুলি ঠিক করার চেষ্টা করছেন, যদি পণ্য "কাজ করছে" তবে এটি উপযুক্ত হবে না। প্রায়শই, আমরা সকলেই কেবল নালী-টেপ প্রোগ্রামার।

জোয়েল স্পলস্কির পোস্টটিও দেখুন: ড্যাক্ট টেপ প্রোগ্রামার


+1 আমি শিপিং পণ্যগুলির ধারণার একটি সত্যই অনুরাগী। আমি মনে করি যে অনেকগুলি প্রযুক্তিগত প্রোফাইলের মধ্যে কেবল এই ধারণাটি নেই।

আমাকেও +1 করুন। এখানে অনেকগুলি "ক্লিন কোড" রয়েছে kind বইয়ের বিভিন্ন প্রজাতি ইত্যাদি যা গুরুত্বপূর্ণ কী তা সম্পর্কে একটি স্কিউ ভিউ সমর্থন করে। কোডের মানটি কেবল তাই গুরুত্বপূর্ণ। বিজয়ীরা হলেন না যাঁদের সেরা পণ্য রয়েছে। এটি যাদের যথেষ্ট ভাল পণ্য রয়েছে তারা যথেষ্ট দ্রুত প্রেরণ করে।
জুনাস পুলাক্কা

4
আমি মনে করি আপনি প্রশ্নের বিন্দুটি মিস করেছেন - লোকটি ইচ্ছাকৃতভাবে খারাপ কোড সম্পর্কে কথা বলেছিল , কেবল খারাপ প্রোগ্রামারদের দ্বারা লিখিত কোড নয়।
হিলা

@ হিলা আমি বিশ্বাস করি যে আমার কোডটি এখনও খারাপ কোডটি উদ্দেশ্যমূলক ছিল কি না তা ধারণ করে holds নির্ধারিত প্রকল্প / টাস্ক তালিকায় থাকা কোনও সমস্যা না থাকলে, সমস্ত খারাপ কোড সংশোধন করা এবং পরিষ্কার করা কোনও নালী-টেপ প্রোগ্রামারের দায়িত্ব নয় । সেখানকার সংস্কৃতিটি একাডেমিক নয় এবং পরিষ্কার / সুন্দর কোড লিখতে। এটি শিপিং এবং কোনও পণ্য / ব্যবসায়কে সমর্থন করার বিষয়ে। আমি ব্যক্তিগতভাবে আমার কাছে আসা সমস্ত খারাপ কোডটি ঠিক করতে পছন্দ করব, তবে আমি আমার সময়টির 100% সময় দিতে পারি না - তখন আমাকে দেওয়া কার্য / প্রকল্পটি আমি কখনই শেষ করতে পারব না।
spong

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

4

সেই মনোভাবটি আরও খারাপ কিছু হওয়ার লক্ষণ।

  • পরিচালনা কি বিকাশকারীদের প্রতিযোগিতা উত্সাহিত করে?

  • কোথায় দল চেতনা?

  • টিম নিজেই বাদ দিয়ে অন্য কারও দ্বারা দায়িত্ব অর্পণ করা হয়েছে?

  • ...

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

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

বেশিরভাগ ক্ষেত্রে, সেই গঠনমূলক আচরণ প্রকৃত সমস্যাটিকে (সবচেয়ে খারাপটি) আলোকের নিচে রাখে এবং তারপরে আপনি এটিতে কাজ করতে পারেন।

যদি সত্যিই এটি কাজ করে না। দল থেকে সেই বিকাশকারীকে সরান।


4

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


2

এই ধরনের নির্মাণের সাথে একজনকে কীভাবে ডিল করা উচিত? সমস্যাটিকে উপেক্ষা করুন, বা কেবল আপত্তিজনক কোডটি সরাবেন? তাদের পরিচালককে অবহিত করুন, বা "বৈশিষ্ট্য" প্রবর্তনকারী ব্যক্তির সাথে কথা বলবেন?

প্রসঙ্গের উপর নির্ভর করে, এর মধ্যে যে কোনও একটি হতে পারে সবচেয়ে উপযুক্ত। অন্যান্য সম্ভাবনার মধ্যে রয়েছে, একটি আলাদা প্রকল্পে স্থানান্তর করতে বলা, একটি নতুন চাকরি পাওয়া এবং প্রশ্নবিদ্ধ নৈতিকতা এবং / অথবা বৈধতা সম্পর্কিত বিভিন্ন ক্রিয়াকলাপ।

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

আপনি যদি এটির সত্যিকারের পরিস্থিতিটির কথা বলছেন তবে আপনার ম্যানেজারের সাথে একটি শান্ত কথা বলা আপনার কী করা উচিত সে সম্পর্কে তাদের পরামর্শ জিজ্ঞাসা করা উচিত। যদি সম্ভব হয় তবে আপনি কী করতে পারেন / করতে পারেন তা আঙুলের দিকে নির্দেশ না করার বিষয়ে কথোপকথনের চেষ্টা করুন । সম্ভব হলে নাম বলবেন না। আপনার ম্যানেজারের ইতিমধ্যে সমস্যাটির একটি কালি প্রবেশ করার যথেষ্ট সুযোগ রয়েছে chance

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

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