রিফ্যাক্টর বা অ্যাপ্লিকেশন সম্পূর্ণ করতে মনোনিবেশ করুন


23

আপনি যাওয়ার সাথে সাথে কি আপনার অ্যাপ্লিকেশনটি রিফ্যাক্টর করবেন বা প্রথমে অ্যাপ্লিকেশনটি সম্পূর্ণ করার দিকে ফোকাস করবেন? রিফ্যাক্টরিংয়ের অর্থ অ্যাপ্লিকেশন অ্যাপ্লিকেশনটির অগ্রগতি হ্রাস পাবে।

অ্যাপ্লিকেশন সম্পূর্ণ করার অর্থ আপনি পরে খুব সহজেই অ্যাপটি বজায় রাখা খুব কঠিন পেতে পারেন?

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


1
আপনি আপনার পরিস্থিতি সম্পর্কে কিছু অতিরিক্ত তথ্য সরবরাহ করতে পারেন? উদাহরণস্বরূপ, এটি একটি ব্যক্তি প্রকল্প বা আপনি একটি দলে আছেন? এটি কি বাণিজ্যিক পণ্য, ঘরে বসে, বা উন্মুক্ত উত্স? কার্যকারিতা এবং নকশা কি চালায়?
mlschechter

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

উত্তর:


23

এটাকে সফল কর. তারপরে এটি দ্রুত তৈরি করুন। শেষ পর্যন্ত, এটি সুন্দর করুন।

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

আপনার যদি রিফ্যাক্টর করতে খুব অসুবিধা হয় তবে এটি সম্ভবত একটি কোড-গন্ধ - আমি আপনাকে সলিড নীতিমালাটি দেখার পরামর্শ দিই


এটি তৈরি করতে জন্য +1 কাজ । তারপরে এটি দ্রুত তৈরি করুন । শেষ পর্যন্ত, এটি সুন্দর করুন
কার্তিক শ্রীনিবাসন

আমার বক্তব্যও। আপনি যদি না বুঝতে পারেন যে আপনার নকশা আপনাকে কাজ শেষ করতে বাধা দেয় তবে আপনি এটি তৈরির আগে রিফ্যাক্টর করবেন না।
Gus

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

আমি বরং বলব: এটিকে কার্যকর করুন, এটি ঠিক করুন, দ্রুত করুন - এই ক্রমে।
নিক্লাস এইচ

এটি বরং এর মতো হবে: এটিকে কাজ করুন , দ্রুত করুন , এটিকে আবার কাজ করুন , সুন্দর করুন , আবার কাজ করুন । যদি সেই মুহুর্তে আপনার আবার এটিকে দ্রুত করা দরকার হয় তবে আপনি এটি ভুল করেছেন।
ফ্লোরিয়ান এফ

8

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

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


5

আমি যাবার সময় সর্বদা রিফ্যাক্টর, বিশেষত টিডিডি ব্যবহার করে।

  1. পরীক্ষা লিখুন

  2. পরীক্ষা পাস করুন

  3. Refactor

এটি আপনার তৈরি বাগের জন্য কম বাগ এবং আরও ভাল কোড রাখতে সহায়তা করবে। এটি সম্পন্ন হয়ে গেলে আপনার বজায় রাখতে কম কোড থাকতে দেয় let


5

শুরুর দিকে এবং প্রায়শই! এটি না করার ক্ষেত্রে আপনি যে সময় "সংরক্ষণ" করেন তা পরবর্তী বৈশিষ্ট্যে হ্যাক করার চেষ্টা করা এবং অতিরিক্ত জটিল বা বিশৃঙ্খল কোডগুলিতে বাগগুলি অনুসন্ধান করার জন্য অনেক সময় ব্যয় করা হয়।


2

রিফ্যাক্টরিং আপনার ঘরটি তোলার মতো।

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

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

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

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

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

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


1

আপনার বিক্রয় / গ্রাহক সন্তুষ্টি পেতে যেখানে আপনার হওয়া উচিত বলে মনে করেন আপনার কাছে বৈশিষ্ট্যগুলি যুক্ত করার বা বাগগুলি ক্রাশ করার সুযোগ রয়েছে, তা করুন। নতুন কিছু চাহিদা কম হয়ে গেলে আপনি রিফ্যাক্টরিংয়ের সাথে ভারসাম্য বজায় রাখতে পারেন। এক পর্যায়ে আপনাকে নিশ্চিত করতে হবে যে আপনি কোড লিখছেন লোকেরা। সমস্ত জিনিস সমান হচ্ছে, আমি বরং 1000 এর চেয়ে 100 ঘন্টা কোড ফেলে দেব no কেউ যদি না চায় তবে আপনি যা করবেন।


0

আপনি কোথায় আছেন তার উপর নির্ভর করে!

অন্যান্য বিষয়গুলি যা ভাবতে হবে:

আপনি কতটা নিশ্চিত, আপনি কার্যত নকশা ঠিক পেয়েছেন? কিছু ব্যবহারকারীর প্রতিক্রিয়া পাওয়ার পরে আপনি কি আবার ডিজাইনিং শেষ করতে পারবেন?

আমি পুনর্লিখনের চেয়ে মুক্তি দিতে পছন্দ করব। আপনি কার্যকরী নকশাকে পেরেক দিয়ে গেছেন তা নিশ্চিত হওয়ার পরে অপ্টিমাইজ করুন।


0

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


0

আপনি যদি খারাপ ডিজাইনটি রিফ্যাক্টর করতে চান তবে আপনাকে সত্যিই আঘাত করে, আপনি নির্ভর করে আরও কোড তৈরি করার চেয়ে এখনই এটি ঠিক করুন better পরে রিফ্যাক্টরিং করা আরও কঠিন এবং আরও ব্যয়বহুল হবে; সম্ভাবনা হ'ল আপনি আর এটি করতে পারবেন না।

অন্যদিকে, যদি আপনার একমাত্র সমস্যাটি কুৎসিত হয় তবে আপনি প্রথমে আপনার সফ্টওয়্যারটি সম্পূর্ণ করতে চাইতে পারেন কারণ কোনও কাজই খুব কমই মারবে ।


0

আপনি আপনার অ্যাপ্লিকেশনটি সম্পূর্ণ করার জন্য কাজ করার কারণে রিফ্যাক্টরিং খুব গুরুত্বপূর্ণ হবে।

+ + হবে VES

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

  2. কর্মক্ষমতা উন্নত করুন: অ্যাপ্লিকেশনটির যথাযথ রিফ্যাক্টরিং অবশ্যই প্রয়োগের কার্যকারিতা উন্নত করতে সহায়তা করবে

  3. রক্ষণাবেক্ষণ: সর্বশেষ তবে কম নয়, দীর্ঘমেয়াদে বজায় রাখা আরও সহজ হবে

-VE

  1. সময় গ্রাসকারী: এটি একটি অনেক বেশি সময় আপনার অগ্রগতি প্রতিটি পর্যায়ে গ্রাসকারী হবে। সুতরাং সমাপ্তিতে বিলম্ব হতে পারে

শেষের সারি

প্রকল্পের ধরণের উপর নির্ভর করে আপনি বর্তমান মানের জন্য যা দাবি করছেন তা কোডের মান বা সমাপ্তির উপর অগ্রাধিকার দিতে পারেন ।



ধনাত্মক এবং নেতিবাচক।
ফ্লোরিয়ান এফ

0

আমার ব্যক্তিগত অভিজ্ঞতার ভিত্তিতে, আমি সাধারণত অ্যাপ্লিকেশনগুলিকে প্রথমে শর্ত দিয়ে শেষ করতে যেতাম যে পৌঁছানোর কোনও সময়সীমা রয়েছে। আপনি সম্পূর্ণ করার পরে আপনি এটি পুনরায় চুলক করতে পারেন।

এটি শেষ করুন এবং এটি রিফ্যাক্টর। তবে যদি তাড়াহুড়ো বা সময়সীমার কোনও সময়সীমা না থাকে তবে আমি প্রস্তাব দিয়েছি এটি রিফ্যাক্টরিং করা ভাল।

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