কোনও পদ্ধতির নামে কোনও বানানের ভুল সংশোধন করা


73

আমি আমাদের কোডবেসে সাধারণত যে পদ্ধতিগুলি ব্যবহার করি তার একটি হ'ল বানান (এবং এটি আমার পূর্বেও ছিল)।

এটি সত্যই আমাকে বিরক্ত করে না কারণ এটি ভুল বানানযুক্ত ছিল তবে আরও গুরুত্বপূর্ণ এটি প্রথম বার যখন টাইপ করি তখন সর্বদা আমার নামটি ভুল হয়ে যায় (এবং তারপরে আমাকে "ওহ, ঠিক আছে, এটির সাথে ভুল বানানো উচিত ...")

আমি আসল পদ্ধতিটি ঘিরে কয়েকটি পরিবর্তন করছি। আমার কি কেবল ফ্রিকিং পদ্ধতির নাম পরিবর্তন করার সুযোগ নেওয়া উচিত?


12
আপনি কি নাম পরিবর্তন করতে পারেন? আপনি যদি নিয়ন্ত্রণ করেন না এমন কোড দ্বারা এটি ব্যবহার করা হয়, আপনি পিছনের সামঞ্জস্যতা বিরতি ন্যায়সঙ্গত করা প্রয়োজন।

16
* বানান ভুল। এবং আপনাকে যে পদ্ধতিটি বলা হবে সেখানেই এটি পরিবর্তন করতে হবে।
জনপি

2
* ভুল স্পেল্ট ... বা অন্য কোনও বানান হতে পারে?
হুরাসকোল

2
@ জনপি এখানে তিন জন ছিল, এখন একটি স্থির এবং দুটি এখনও ভুল। কাকতালীয়ভাবে ওপির নামটি বেশ সুন্দরভাবে স্যুট করে। :)
বিভ্রান্ত

3
আমাদের অবশ্যই কোনও কিছুকে ভুলভাবে ঠেকতে দেওয়া উচিত!
মাগাস

উত্তর:


136

আমার কি কেবল ফ্রিকিং পদ্ধতির নাম পরিবর্তন করার সুযোগ নেওয়া উচিত?

একেবারে।

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


33
"সঠিকভাবে নামকরণের পদ্ধতিতে এগিয়ে" ধারণাটি সহজ এবং উজ্জ্বল। ভাঙা উইন্ডোজ তত্ত্বের পাশাপাশি আকর্ষণীয় লিঙ্ক।
dev_feed

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

10
@ ভু - এহ? কোন ভাষা কোনও নতুন পদ্ধতি যুক্ত করে তুলবে (এবং একই সঠিক আচরণের জন্য কোনওটির প্রয়োগ পরিবর্তন করা) পিছনের দিকে সামঞ্জস্যপূর্ণ নয়?
তেলস্তিন

3
@ টেলাস্টিন কখনও কখনও ওয়েব পরিষেবাদি বলার জন্য পদ্ধতি যুক্ত করা কঠিন হতে পারে। কিছু ক্লায়েন্ট উদাহরণস্বরূপ ডাব্লুএসডিএল পরিবর্তনের দিকে ঝুঁকছেন, হঠাৎ সার্ভারের সাথে কথা বলতে রাজি হন না। এটি ক্লায়েন্টে বাস্তবায়নের সমস্যা, তবে ক্লায়েন্ট যদি গুরুত্বপূর্ণ হয় তবে আপনি বিরক্ত করতে চান না এটি আপনাকে খুব ভালভাবে আপনার ইন্টারফেস পরিবর্তন করা থেকে রোধ করতে পারে।
jwenting

17
@ টেলাস্টিন যদি ভুলভাবে ভুল পদ্ধতিটির নাম ইন্টারফেসে থাকে (যেমন ডেলফি / জাভা / সি # তে ব্যবহৃত ইন্টারফেস টাইপ হিসাবে), তবে নামের একটি সঠিক বানানযুক্ত সংস্করণ যুক্ত করা সম্ভবত সম্ভবত ইন্টারফেসের বিদ্যমান সমস্ত বাস্তবায়নকে ভেঙে ফেলবে।
বিভ্রান্ত

52

এমন কেস রয়েছে যেখানে আপনার যেমন রিফ্যাক্টরিংগুলি করা এড়ানো উচিত:

  1. পদ্ধতিটি যদি সর্বজনীন ইন্টারফেসে ব্যবহৃত হয়। একটি ক্যানোনিকাল উদাহরণস্বরূপ ভুল বানানটিতে হয় রেফারার মধ্যে HTTP- র Referer , ভুল বানান, রাখা হচ্ছে কারণ এখন বানান পরিবর্তন অনেকগুলি প্রতিক্রিয়া হবে।

  2. কোড বেসটি কোনও পরীক্ষার আওতায় না থাকলে। কোনও রিফ্যাক্টরিং পরীক্ষার কোডে করা উচিত যাতে রিগ্রেশন টেস্ট করতে সক্ষম হয়। কোড বেসটি যা পরীক্ষার অধীনে নেই তা পুনরুদ্ধার করা বিশেষত ঝুঁকিপূর্ণ। আপনার যদি অনেক সময় থাকে তবে পরীক্ষা যোগ করে শুরু করুন; আপনি যদি সময়ের চাপে কাজ করেন, সময়মতো শিপিং করতে চাইলে সূক্ষ্ম বাগগুলি প্রবর্তনের ঝুঁকি নেওয়া ভাল কাজ নয়।

  3. যদি পদ্ধতিটি কোনও অস্বাভাবিক উপায়ে ব্যবহার করা যেতে পারে , যা এটির ব্যবহারগুলি ব্যবহারিকভাবে অসম্ভব করে তোলে (সিটিআরএল + এফ বা একটি স্বয়ংক্রিয় রিফ্যাক্টরিং সরঞ্জাম দ্বারা)। উদাহরণস্বরূপ, সি # তে একটি পদ্ধতি রিফ্লেকেশনের মাধ্যমে কল করা যায়, ভিজ্যুয়াল স্টুডিওর পুনর্নামকরণ ডায়ালগটিকে অকার্যকর করে তোলে। জাভাস্ক্রিপ্টে, ভিতরে কল eval()করা ফাংশনটিও খুঁজে পাওয়া শক্ত। পিএইচপি-তে, ভেরিয়েবল ভেরিয়েবলগুলি সমস্যার কারণ হতে পারে।

  4. যদি প্রকল্পের আকার বিশাল হয় এবং পদ্ধতিটি অন্য দলগুলি ব্যবহার করতে পারে। এটি প্রথম পয়েন্টের অনুরূপ, যেমন আপনি অন্য দলগুলিকে সরবরাহ করেন এমন ইন্টারফেসটিকে পাবলিক ইন্টারফেস হিসাবে বিবেচনা করা যেতে পারে।

  5. আপনি যদি একটি জীবন-সমালোচনামূলক প্রকল্প নিয়ে কাজ করেন। সম্ভাবনাগুলি হ'ল, পদ্ধতিটির নাম পরিবর্তন করার জন্য কয়েক মাসের কাগজের কাজকে ন্যায্যতা দেওয়ার জন্য ভুল বানান খুব গুরুত্বপূর্ণ নয় এবং এটি নিশ্চিত করে যে এটি কোনও রোগীকে তার দশগুণ অনুমোদিত তেজস্ক্রিয়তা বা কোনও শাটলকে তার গতির সাথে ভুল গণনা করতে দেবে না।

অন্য যে কোনও পরিস্থিতিতে, পদ্ধতির নাম পরিবর্তন করে নির্দ্বিধায়।


1
প্রতিচ্ছবি উল্লেখ করা মন্তব্যের জন্য +1, এটি আমাকে একাধিকবার কামড়েছে।
ডেভশো

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

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

8
@ ব্যবহারকারী 2357112: আমি কখনও বলিনি যে সামান্যতম রিফ্যাক্টরিং কাউকে মেরে ফেলবে। এটি কাউকে হত্যার বিষয়ে নয়, তবে বাগের ঝুঁকির 0.001% ঝুঁকি হ্রাস করার জন্য সমস্ত কিছু করা সম্ভব। এটির জন্য ফর্মাল প্রোফাইফ দরকার। এর জন্য পরীক্ষার কয়েকটি স্তর প্রয়োজন। এটির জন্য আনুষ্ঠানিকতা দরকার। এটি নিষিদ্ধ করে "আমি এই পদ্ধতির দ্রুত নাম পরিবর্তন করতে চাই, আশা করি এটি কার্যকর হবে!" আচরণ। জীবন-সমালোচনামূলক প্রকল্পগুলি এমন কৌশলগুলি ব্যবহার করে যা কোনও ব্যবসায়ের অ্যাপ্লিকেশনের জন্য সময় এবং অর্থের সম্পূর্ণ অপচয় হিসাবে বিবেচিত হবে। এ কারণেই তারা এত নির্ভরযোগ্য (এবং ব্যয়বহুল)।
আরসেনি মউরজেনকো

5
@ ব্যবহারকারী 2357112: মাইনমা ​​যেমন এটি উল্লেখ করেছে, এটি নৈমিত্তিক ব্যবসায়িক অ্যাপ্লিকেশনগুলির বিষয়ে নয়। এটি এমন বিশেষ ধরণের সফ্টওয়্যার সম্পর্কিত যা ব্যাপকভাবে পরীক্ষিত / যাচাই করা হয়। পদ্ধতিটি যদি কোথাও প্রতিবিম্ব দ্বারা ডাকা হয়? যদি কিছু প্রাক / পোস্ট সংকলন সরঞ্জাম এর সাথে কিছু করে? ডকুমেন্টেশন সম্পর্কে কি? অন্যান্য দল এটি ব্যবহার সম্পর্কে কি? তারা কি প্রতিবিম্ব ব্যবহার করে? কি যদি ... বাস্তব জীবন কখনও কখনও বেশ জটিল হতে পারে। এবং কখনও কখনও বুলেট-প্রুফ পদ্ধতিতে কোনও পরিণতি হয় কিনা তা যাচাই করার চেয়ে কোনও পদ্ধতির নামটি ছোঁয়া রাখা ভাল।
ডাগলিনিজ

30

আমি কয়েক মাস আগে এটি করেছি (বিভিন্ন কারণে)। আমি যে পদক্ষেপগুলি নিয়েছি (ভাষা পার্ল ছিল):

  1. পদ্ধতিটির নতুন নাম দিন। নতুন নামে নতুন নাম রাখুন (এটি কোনও কোড ভাঙবে না, কারণ পদ্ধতিটি যে কোনও নামে ডাকা যেতে পারে)।
  2. নামটি পরিবর্তনের জন্য এবং কেন, এখন থেকে নতুন নামটি ব্যবহার করতে বলার বিষয়ে অন্যান্য বিকাশকারীদের অবহিত করুন।
  3. পুরানো নামের কোড বেসটি গ্রেপ করুন, যেকোন ঘটনা ঠিক করুন।
  4. পুরানো নামের কোনও ব্যবহার লগইন করুন (পুরানো নামটি ব্যবহার করা এখনও এই সময়ে কাজ করা উচিত)। এই মামলাগুলি স্থির করুন।
  5. লগটিতে আর কোনও এন্ট্রি উপস্থিত না হওয়া পর্যন্ত অপেক্ষা করুন (৪. করার সময়)।
  6. উপনামটি ভেঙে দিন। পুরানো নামটি ব্যবহার করে এমন একটি পদ্ধতি তৈরি করুন যা নাম পরিবর্তন সম্পর্কে একটি বার্তা সহ মারাত্মক ব্যতিক্রম ছুঁড়ে দেয়।
  7. কিছুক্ষণ পরে, পুরাতন নাম সহ পদ্ধতিটি সরিয়ে দিন।

    অবশ্যই, আপনার মাইলেজটি পৃথক হবে।


একটি উন্নতি - পুরানো নামের ব্যবহারকারীদের খুঁজে পেতে গ্রেপের উপর নির্ভর করবেন না, ফরোয়ার্ডারের মধ্যেও লগইন করুন।
বেন ভয়েগট

@ বেনওয়েগট কি # 4 যা করে না?
বব

6

কোনও বিদ্যমান কোডটি না ভাঙার একটি ভাল উপায় হ'ল নতুন পদ্ধতির নামটিকে পুরনো শৃঙ্খলাবদ্ধ করা such

private void MyNewMethodName()
{
    TheOldMethodName();
}

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

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


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

1
@ আইভোলিমন এটি সত্যিই ভাল পরামর্শ। এই পদ্ধতিতে লোকেরা নতুন পদ্ধতিটি ব্যবহার করে আরও বেশি মাথা পেতে থাকে এবং এটি পুরানো পদ্ধতির অপ্রচলিত কল থেকে নতুনটির মধ্যে থেকে একটি সতর্কতা সরিয়ে দেয়। আমি আমার উত্তরে এটি যুক্ত করব।
রুমি

1

পদ্ধতিটির নামকরণ:

  • রিফ্যাক্টরিংয়ের মাধ্যমে এটি করুন যাতে না হয় আপনি যা চান তার চেয়ে বেশি কাজ করতে পারেন
  • যদি আপনার আইডিই স্বতঃ-সমাপ্তিকে সমর্থন করে, তবে সেই পদ্ধতিটি উল্লেখ করার সময় এটি ব্যবহার করুন

এগুলি দুটি বিকল্প যা আপনার পক্ষে যেতে পারে। আমি স্বতঃ-সমাপ্তি পছন্দ করব (উদ। নাম বদলে যাচ্ছি; কেবল নিশ্চিত হয়ে নিন যে আপনি কী সেই পদ্ধতিটি কল করেছেন তা খুঁজে বের করেছেন এবং প্রতিটি জায়গায় সরাসরি উল্লেখগুলি পরিবর্তন করুন। রিফ্যাক্টরিং সে জন্য আপনার বন্ধু হবে তবে এটি করার সময় সর্বাধিক সতর্ক থাকুন।


0

আমি সাধারণত হ্যাঁ সুপারিশ করব, নাম পরিবর্তন করুন।

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

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