কোড পুনরায় ব্যবহার দর্শনের মোকাবেলা কিভাবে?


10

একটি নতুন প্রকল্প শুরু করার সময় আমি ক্রমাগত নিজেকে কোড পুনরায় ব্যবহার সম্পর্কে ভাবতে দেখি।

আমার কোডটি আমার পুনরায় ব্যবহারযোগ্য করে তুলতে হবে?
আমি কি এটিকে আবেদনের সুযোগের মধ্যে সীমাবদ্ধ করব বা আমার প্রকল্পের বাইরে এটি পুনরায় ব্যবহারযোগ্য করে তুলতে হবে?

কখনও কখনও, আমি মনে করি কোড পুনর্ব্যবহারযোগ্যতা একটি সাধারণ ডিজাইনের পথে দাঁড়াতে পারে। দয়া করে আপনার নিজের বোঝাপড়া এবং কোড পুনরায় ব্যবহারেরযোগ্যতার পদ্ধতির ভাগ করুন।


উত্তর:


21

কোডটি পুনরায় ব্যবহারের আগে কাজ করতে হবে। সুতরাং এটি বোঝায় যে নকশা এবং (প্রাথমিক) ফাংশন কোড পুনরায় ব্যবহারের বিবেচনার আগে আসা উচিত।

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


2
প্রথম বাক্যে "ছিল" কি টাইপড "টাইপ" হয়েছে?

@ ডেলান - কি "ছিল"? :-) এটি ধরার জন্য ধন্যবাদ।

9

KISS এবং YAGNI মনে রাখবেন:

কোড re-usability better to be consideredএকবার আপনার নকশা নথি প্রস্তুত । এটি আপনাকে কোডের বিভাগ / অংশগুলি দেখতে দেবে যা সম্ভাব্যভাবে নকল হতে চলেছে।

সুতরাং, যখন আপনার পরিষ্কার নকশা নেই তখন আপনার কাজের মধ্যে KISS এবং YAGNI পদ্ধতির প্রয়োগ করুন!


1

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

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

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

    2b। আমি যদি অন্যটি (মূল) প্রকল্পে পরিবর্তন আনা করি তবে আমি নতুন লাইব্রেরিটি ব্যবহার করতে এটি রিফ্যাক্টর করব [তবে সাধারণত যদি আমি সেই প্রকল্পটি পুনরায় স্পর্শ না করতে পারি তবে] তা করব না]

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


যখন আপনি চারটি বা পাঁচটি একইরকম থাকতে পারেন তখন কেন কোনও কিছুর একক বাস্তবায়ন ব্যবহার করবেন? আপনার "দ্রুততম" পদ্ধতিটি খুব কাছের মেয়াদে কেবল দ্রুততম।
কালেব

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

1

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

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


0

এটি অতিরিক্ত না। এবং যদি আপনি নিশ্চিত না হন তবে আপনি কোথায় কী ব্যবহার করতে পারবেন তা দেখার জন্য পর্যাপ্ত প্রকল্পগুলি না লিখে আবেদন করার সুযোগটি আটকে দিন scope

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