নন-প্রোগ্রামারদের কপি-পেস্ট প্রোগ্রামিংয়ের ঝুঁকিগুলি ব্যাখ্যা করার জন্য একটি ভাল এবং সংক্ষিপ্ত উপায় কী? [বন্ধ]


27

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

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

আপডেট: এখানে বেশ কয়েকটি সত্যই ভাল উত্তর রয়েছে; আমি কেন স্কট হুইটলকের উত্তরটি বেছে নিয়েছি তা মন্তব্যে ব্যাখ্যা করেছি, তবে আপনি যদি ক্রেতাদের সাথে কারও সাথে পরিচিত না হয় এমন গ্রাহকদের সাথে কথা বলছেন তবে আমি হুইসনেম এর উত্তরের জন্য খুব সুপারিশ করব।


হুমমম, এটা একটা শক্ত। এটি ক্লাসিক গাড়ি / বিল্ডিং / ফ্যাক্টরি
উপমাগুলিতে

3
মার্কিন কমন আইনে রিপাবলিকান এবং ডেমোক্র্যাট পার্টির রেফারেন্স থাকার কথা ভাবুন এবং তারপরে তৃতীয় অংশ যুক্ত করার পরে একটি পক্ষের নতুন নামকরণ করুন ... অনেক আইনকেই আবার নতুন করে লিখতে হবে।
চাকরি

এর সাদৃশ্য সম্পর্কে: কপি-পেস্টিং কোড (অনিরাপদ, খারাপ কাঠামোবদ্ধ ইত্যাদি) যা আপনি উইকি, ফোরাম ইত্যাদি থেকে বুঝতে পারেন না তা হ'ল ই-মেইল সংযুক্তিগুলি (ভাইরাস, স্পাইওয়্যার, স্প্যাম ইত্যাদি) খোলার মতো is তৃতীয় পক্ষের?
সাকিস্ক

@ ফিফ: অনুলিপি-অনুলিপি কোড আবর্জনা কোড নয়। আপনার লেখা অফিসের লোকটি ভাল কোড হতে পারে। অনুলিপি-কোডযুক্ত কোডের সমস্যাটি এটি খুব তাড়াতাড়ি একটি অযৌক্তিক রক্ষণাবেক্ষণ / ডিবাগিং দুঃস্বপ্নে পরিণত হয়।
হোয়াটসাম

1
@ ফাইফ: তারপরে প্রথম বন্ধনীযুক্ত অংশটি জ্যাপ করুন
16-50

উত্তর:


36

এটি এরকম ... আপনার বাড়িতে একটি ঘড়ি আছে। গ্রেট! আপনার সময়টি কী তা আপনি জানেন তবে আপনি এটির জন্য সর্বদা সেই এক ঘরে যেতে হবে।

তবে অবশ্যই আপনি সর্বদা সেই ঘরে না গিয়ে সময়টি কী তা জানতে চান, তাই আপনি আরও কিছু ঘড়ি কিনেছেন এবং এগুলি আপনার বাড়ির চারপাশে বিতরণ করেন। এই ঘড়ি প্রতিটি স্বাধীন। তারা সবাই তাদের নিজস্ব সময় রাখে। এর অর্থ:

  • দিবালোকের সঞ্চয়ের সময়ের কারণে যখন সময় পরিবর্তন হয় তখন আপনাকে সেগুলি সব পরিবর্তন করতে হবে
  • এমনকি যখন তারা পুরোপুরি প্রস্তুত হয়ে যায় তখনও তারা কিছুটা আলাদা এবং খুব কমই পুরোপুরি একমত হয়। সময়ের সাথে সাথে তারা প্রবাহিত হয়।

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

অনুলিপি-পেস্ট প্রোগ্রামিং আরও স্বাধীন ঘড়ি কেনার মত। এটি স্কেল হয় না।


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

38

ভাবুন আপনি কোনও বিমানের নকশা করছেন। আপনি একটি একক ইঞ্জিন জেট পেয়েছেন। এটি ভাল বিক্রি হয়। এখন আপনি মহাসাগর জুড়ে দীর্ঘ ulsদ্ধত্যের জন্য একটি 4 ইঞ্জিন বিমান তৈরি করতে যাচ্ছেন।

এখন, আপনি প্রতিটি পৃথক ইঞ্জিনের জন্য প্রকৌশল বিশদ এবং অঙ্কনের একটি সম্পূর্ণ সেট তৈরি করেন না, তাই না? না, আপনি চারটি জায়গায় একই ইঞ্জিন ব্যবহার করেন। এখন ভাবুন যদি আপনার কাছে 4 সেট অঙ্কন থাকে এবং আপনাকে কিছু পরিবর্তন করতে হবে। এখন আপনাকে অবশ্যই এটি চারটি ইঞ্জিনের অঙ্কনে পরিবর্তন করতে হবে। আপনি যদি ফাঁক হয়ে যাচ্ছিলেন বলে আপনি যদি ভুলভাবে 4 র্থ ইঞ্জিনের কিছু পরিবর্তন করতে ভুলে যান তবে কি হবে?

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

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

কোড অনুলিপি করা এবং আটকানো উপাদানগুলির অংশগুলির নকল অঙ্কনগুলির সাথে অনুরূপ, এটি কোনও স্ক্রু বা ইঞ্জিন হোক। আপনি মৌলিক টুকরোগুলিকে বিমূর্ত করতে চান যা যথাসম্ভব পুনরায় ব্যবহার করা হয়।

ইঞ্জিনগুলি সদৃশ করবেন না, কেবল কোডটি লিখুন যা ইঞ্জিনগুলিকে ডানাতে মাউন্ট করে।


11
এখন, কল্পনা করুন যে আপনি 4 নম্বর ইঞ্জিনটি অন্য তিনটি থেকে পৃথক different এই পার্থক্য কি উদ্দেশ্য ছিল? টেকঅফের অবিলম্বে বাম দিকে ঘোরার কারণে তৈরি একটি নির্দিষ্ট টর্ককে মোকাবিলার জন্য ডিজাইন করা হয়েছে? নাকি অনুলিপি করার ক্ষেত্রে ভুল ছিল?
ডেভিড থর্নলি

5
দুর্দান্ত উপমা ... তবে কারও যদি অনুলিপি / পেস্ট কোড বুঝতে অসুবিধা হয় ... জেট ইঞ্জিনগুলি ঠিক ততটাই কঠিন হতে পারে :)
স্টিভেন ইভার্স

এই সাদৃশ্যটির জন্য আপনার জেট ইঞ্জিনের পরিবর্তে শক্ত জ্বালানী রকেট সম্পর্কে কথা বলা উচিত। এইভাবে, আপনি "দেখুন? ঠিক রকেট বিজ্ঞানের মতোই" দিয়ে শেষ করতে পারেন।
স্পষ্টত

এটি কোনও উপমা নয়। ব্লুপ্রিন্টগুলি আক্ষরিকভাবে যান্ত্রিক নিদর্শনগুলির কোড।
অনুপ্রেরণা

7

একই সংস্থান বনাম একই সংস্থান অনুলিপি করার ক্ষেত্রে আপনাকে এটিকে ব্যাখ্যা করতে হবে।

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


7

"আরে দেখুন সমস্ত সার্জারি কিছুটা ঠিক একই রকম ?, তাই যদি আমি অপারেশন করার জন্য বিভিন্ন সার্জনের কাছ থেকে বিভিন্ন পদ্ধতির জন্য অস্ত্রোপচারের নির্দেশগুলি এলোমেলোভাবে অনুলিপি করি তবে আপনি আপত্তি করবেন না ?"


1
গ্রেট !!! ছুরি ঠিক আছে দিয়েই সার্জারি করা হয়? আপনার উপর মস্তিষ্কের শল্য চিকিত্সা করার জন্য আমাকে কসাইয়ের ছুরি ব্যবহার করতে দিন।
আদিত্য পি

1
@ আদিত্যগেমপ্রোগ্রামার: যখন আপনার একমাত্র হাতিয়ার কসাই ছুরি হয় তখন সমস্ত কিছুই হ্যামের মতো লাগে।
জোয়ে অ্যাডামস

6

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

সাদৃশ্য অনুসন্ধানে, প্রথমে আমাদের অনুলিপি এবং পেস্ট প্রোগ্রামিংয়ের বিপদগুলি বিবেচনা করতে হবে :

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

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

বিমূর্তি সংজ্ঞা স্থাপনের এবং তারপরে কার্যকর হয় সেই সংজ্ঞাগুলি ব্যবহার করার পরিকল্পনার চারপাশে is সংজ্ঞা ছাড়াই পৃথিবী কেমন হবে?

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

টুকরা অনুলিপি করার সময় কেবল অনুলিপি করার জায়গা থাকে। অন্যথায়, প্রতিটি অনুলিপি একটি সম্পূর্ণ নতুন শাখা - পরীক্ষা করা, রক্ষণাবেক্ষণ এবং পৃথকভাবে আপগ্রেড করার জন্য একটি সম্পূর্ণ নতুন শাখা তৈরি করে।

বিমূর্তি সমস্ত শাখা একত্রে একটি ট্রাঙ্কে বেঁধে রেখে এবং ছোট শাখা বা এমনকি পাতায় পরিবর্তনগুলি বিচ্ছিন্ন করে লড়াই করে।


2
আমি ছাঁচ সাদৃশ্য পছন্দ করি, বাকিগুলি, আমি ভীত, নন-টেক ব্যবহারকারীদের সাথে খুব বেশি সহায়তা করতে যাচ্ছি না।
ম্যাথিউ এম।

@ ম্যাথিউ - আপনি প্রথম বুলেট পয়েন্টগুলি উল্লেখ করছেন কিনা তা আমি জানি না, তবে আমি বলছিলাম না যে এগুলি সাদৃশ্য ছিল, আমি বিকাশকারীকে ভাল উপমা সম্পর্কে চিন্তাভাবনা করার চিন্তাভাবনা বলে মনে করি।
নিকোল

4

আমি মনে করি আপনি নকল কোড সম্পর্কে কথা বলছেন, অনুলিপি কাস্টিং নয় (স্নিপেটস এবং অনুরূপ ব্যবহার করে)।

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

আরেকটি উপমা: নগদ মেশিন। আপনার কাছে একটি নগদ মেশিন রয়েছে যা বিভিন্ন কার্ড পরিবেশন করতে পারে এবং সর্বদা তাদের ভালভাবে পরিবেশন করে। সদৃশ কোডটি বিভিন্ন নগদ মেশিন তৈরি করে, তাই প্রত্যেককেই আলাদা একটিতে যেতে হবে এবং কখনও কখনও মেশিনটি আপনাকে একটি বিএসওডও দেয়।

জেফ http://www.codinghorror.com/blog/2009/04/a-modest-proposal-for-the-copy-and-paste-school-of-code-reuse থেকে অনুলিপিটি আটকানো সম্পর্কে একটি দুর্দান্ত নিবন্ধ রয়েছে । এইচটিএমএল

পিএস আমি জানি গুটেনবার্গের আগে প্রিন্টিং প্রেস ছিল।


2

নন প্রোগ্রামারদের কাছে আমি ধরে নিই আমরা ব্যবসায়িক লোকদের সাথে কথা বলছি, তাই আমি সংক্ষিপ্ত হয়ে অর্থের বাস্তবতা জড়িত করব।

  1. কোডের প্রতিটি লাইন আপনার অর্থ ব্যয় করে (লিখিত বা অনুলিপি করা হোক না কেন)
  2. প্রতিটি বাগ আপনার প্রতি লাইনের চেয়ে অনেক বেশি ব্যয় করে।
  3. কোডের প্রতিটি লাইন সম্ভাব্য বাগ যুক্ত করে
  4. সদৃশ কোড = ডুপ্লিকেট করা বাগ
  5. সদৃশ বাগগুলি একই পরীক্ষামূলক চক্রের মধ্যে প্রায় কখনই খুঁজে পাওয়া যায় না।

কাটা এবং পেস্ট করুন = পোড়া অর্থ।


1

আমি কি প্রশ্নের উত্তর দিতে পারি না তবে বলতে পারি যে এখানে আপনার সত্যিই কোন উপমা প্রয়োজন নেই এবং প্রতিটি বিকাশের প্রতিমা বা প্যাটার্নের জন্য সঠিক সাদৃশ্য সন্ধান করার চেষ্টা করা বিপথগামী বলে মনে হয় এবং প্রায়শই উত্পাদনশীল হয়। এটি সমতল পা দিয়ে যোগ করার চেষ্টা করার মতো ...

অনুলিপি / পেস্ট করার কারণগুলির কয়েকটি কারণ রয়েছে, এটি নতুন বাগানো অঞ্চলে বিদ্যমান বাগগুলি প্রচার করে, এমন কিছু পরিবেশে যেখানে এটি কার্য সম্পাদন বর্ধন হিসাবে বিবেচিত হত, এটি আসলে এখন ধীরে ধীরে (কেউ আগ্রহী হলে আমি উদাহরণ সরবরাহ করতে পারি, তবে এটি জেআইটিতে নেমে আসে এবং আপনি কী সত্যই মনে করেন যে আপনি একটি আধুনিক সংকলকটির চেয়ে বেশি স্মার্ট?)

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

সম্পাদনা: নীচের মন্তব্যের আলোকে, এটি তৃতীয় পক্ষের পক্ষ থেকে তৃতীয় পক্ষের কোড পর্যালোচনা করা কোড (বা সম্ভবত চতুর্থ পক্ষ :) :) আমি আশাবাদী যুক্ত করতে পারি এমন কিছু দরকারী জিনিস রয়েছে।

প্রথমত, যখন তৃতীয় পক্ষের জন্য কোডটি তৈরি করা হয়েছিল, তখন তাদের কি কোনও মেট্রিক ছিল? উদাহরণস্বরূপ কোডের লাইন (এলওসি)।

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

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

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

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

অনুলিপি এবং আটকানো কোড সম্ভবত চক্রবৃত্তীয় জটিলতা বাড়িয়ে তুলবে কারণ এতে পুনরাবৃত্তি যুক্তি অন্তর্ভুক্ত থাকবে যা তার নিজস্ব নামযুক্ত ব্লক (বা পদ্ধতি) এ বিমূর্ত করা যেতে পারে।

যুক্তিযুক্ত মনে হচ্ছে?


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

এটি জানার জন্য দরকারী এবং আশা করা যায় যে এটি আমার পক্ষে অনেক সহজ হয়ে যায় :) আমি একটি সম্পাদনা যুক্ত করব।
আয়ান

দুঃখিত, দীর্ঘ সম্পাদনা করুন, তবে আমি মনে করি যে টিএলডিআর হ'ল অনুলিপি এবং আটকানো কোডটি একটি কোড গন্ধ যা চক্রবৃত্তীয় জটিলতা (অন্যান্য বিষয়গুলির মধ্যে) বৃদ্ধি এবং ইকফারটি একক রূপক ব্যবহার করে বর্ণনা করা খুব সহজ।
আয়ান

1

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

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

এটি আসল কোডের পূর্বে এবং তার উদাহরণ পরেও সত্য দেখাতে ক্ষতিগ্রস্থ হবে না যা সদৃশ অপসারণের জন্য পুনরায় সঞ্চারিত হয়েছে।


আমি লেসলি নিলসন স্টাইলটি সরবরাহ করতে দ্বিতীয় অনুচ্ছেদের মহড়া দেওয়ার পরামর্শ দিই :-)
কার্ল বিলেফেল্ট ২৯'১১

1

সুরক্ষা এবং কোডের সততা সম্পর্কিত উদ্বেগও রয়েছে।

এখানে প্রদর্শিত হিসাবে , ক্লিপবোর্ডে স্থানান্তরিত ইউনিকোড অক্ষরগুলিতে দূষিত ডেটা এম্বেড করা সম্ভব।

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


0

আমি এখানে যেতে দেখতে দেখতে বেশ কয়েকটি বিভিন্ন রুট দেখতে পেয়েছি:

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

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

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


0

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

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


0

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


0

কোকোমো দামের মডেল।

http://en.wikipedia.org/wiki/COCOMO

প্রচেষ্টা প্রয়োগ (ই) = এ * (কেএলকি) ** বি, যেখানে বি> 1.0

এই অভিজাত বলতে কোডের লাইনের সংখ্যার চেয়ে দ্রুত বৃদ্ধি / বজায় রাখা / সমর্থন / পুনর্লিখনের প্রচেষ্টা ।


0

এই খারাপ অভ্যাসের আরও একটি গুরুত্বপূর্ণ বিষয় রয়েছে যা এখনও কেউ বিবেচনায় নেই: অন্য কারও কাছ থেকে অন্ধভাবে (সম্পূর্ণ বা আংশিক) কোড অনুলিপি করে ( তাদের অনুমতি ছাড়াই ) আপনি কপিরাইট আইন ভঙ্গ করতে পারেন


0

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

এটির সাথে তিনটি বড় সমস্যা রয়েছে:

  1. এটি কখনই বাগ-মুক্ত কোডে ফলাফল করে না। কখনো।
  2. কোডটি লেখার সময় তারা যদি বুঝতে না পারত তবে ডিবাগ করার সময় তারা কখনই এটি বের করতে পারত না। অতিরিক্ত ব্যয় করে কেবল অন্য কেউ তাদের তৈরি করা জঞ্জাল পরিষ্কার করতে পারে।
  3. তারা যে কোডটি লিখছেন তা নিয়ে চিন্তা করা এড়ালে তারা শিখতে এড়ায়। যদি তারা শেখা এড়ায় তবে তারা কখনই কোনও ভাল প্রোগ্রামার হতে পারবেন না। যদি তারা কখনই কোনও ভাল প্রোগ্রামার হতে না পারে তবে তারা কেন আপনার দলে রয়েছেন?

0

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

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