পুনরায় নামকরণ, রিফ্যাক্টরিং এবং টিমের সাথে পরিবর্তনগুলি ভাঙার জন্য সেরা অনুশীলন


10

দলীয় পরিবেশে রিফ্যাক্টরিং এবং নামকরণের জন্য কয়েকটি সেরা অভ্যাসগুলি কী কী? আমি কিছু পরিস্থিতি মাথায় রেখে এনেছি:

  1. সাধারণত উল্লেখ করা লাইব্রেরি যদি উল্লেখ করা হয় যে কোনও লাইব্রেরি বা প্রকল্পে এটি একটি উল্লেখযোগ্য পরিবর্তন প্রবর্তন করে তবে তা উল্লেখ করা হয়। যেমন ইচ্ছামত কোনও পদ্ধতির নাম পরিবর্তন করা।

  2. যদি প্রকল্পগুলির নাম পরিবর্তন করা হয় এবং সমাধানগুলি অবশ্যই তাদের আপডেট হওয়া উল্লেখ সহ পুনর্নির্মাণ করতে হবে।

  3. যদি প্রকল্পের কাঠামোটি ফোল্ডারগুলি প্রবর্তন করে এবং বিদ্যমান প্রকল্পগুলি বা সমাধানগুলিকে নতুন অবস্থানে সরিয়ে "আরও সংগঠিত" হিসাবে রূপান্তর করা হয়।

কিছু অতিরিক্ত চিন্তা / প্রশ্ন:

  1. এই বিষয়টির মতো পরিবর্তন হওয়া উচিত বা ব্যথার ফলে কাঠামোটি খারাপ হয়ে যাওয়ার ইঙ্গিত দেয়?

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

  3. এটি কি এমন কিছু যা নির্ধারিত ভিত্তিতে করা যেতে পারে বা এটি এমন কিছু যা সম্ভব প্রায়শই ঘন ঘন করা উচিত? যদি একটি রিফ্যাক্টরিং খুব দীর্ঘ সময়ের জন্য বন্ধ করে দেওয়া হয় তবে এটি পুনর্মিলন করা ক্রমশ শক্তিশালী তবে একই সাথে অন্য জায়গায় ঘটে যাওয়া পরিবর্তনের কারণে এক ঘন্টার ইনক্রিমেন্টে 1 ঘন্টা ব্যয় করা হয় build

  4. এটি কি কোনও আনুষ্ঠানিক যোগাযোগ প্রক্রিয়ার বিষয় বা এটি জৈব হতে পারে?


1
প্রত্যেকটি বিল্ডটি ভাঙার জন্য প্রত্যেককে $ 1 চার্জ করুন ... আপনি অবাক হবেন যে এটি কতটা গাফিল ভুলকে আটকায়।
বেরিন লরিটস

+1 কারণ আপনার মন্তব্যটি 3 টি উত্সাহিত করেছে - এবং ভিন্ন - উত্তরগুলি।
কার্ল ম্যানাস্টার

উত্তর:


13

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

সুতরাং মার্টিন ফাউলারের কাছ থেকে এক নম্বর সম্পর্কিত পরামর্শটি আপনার ইন্টারফেসগুলি (প্রকল্পের নাম এবং কাঠামো) অকালে প্রকাশ করবেন না

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

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


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

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

5

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


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

4

নোট করুন যে এটি একটি বিল্ড সার্ভার থাকার প্রাথমিক কারণগুলির মধ্যে একটি, যা পরীক্ষা চালায়।

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

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