লিগ্যাসি কোডের রিফ্যাক্টরিং অনুশীলনের জন্য কোডিং কাটাস


123

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

কাতাসকে পাওয়া যায় এমন অনেক জায়গা রয়েছে। মত ..

http://codekata.pragprog.com/

http://schuchert.wikispaces.com/Katas

http://www.codingdojo.org/

আমি এগুলি কাটাসের দুর্দান্ত সংগ্রহস্থল হিসাবে পেয়েছি ... তাদের কয়েকটিতে আমার প্রচেষ্টা প্রচুর পরিমাণে পুরস্কৃত হয়েছে।

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

এই হিসাবে, আমি কয়েকজন কাতাসের সন্ধান করছি যা আমি উত্তরাধিকারের কোডটি রিফ্যাক্ট করার এবং এটি পরিষ্কার কোডে পরিণত করার দক্ষতা অর্জন করতে পারি।

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


+1 সুন্দর প্রশ্ন, দরকারী তথ্য সরবরাহ সহ
KLE

আমি আশা করি আমি +1 এর বেশি দিতে পারব :) দুর্দান্ত প্রশ্ন। আমি প্রোগ্রামিংয়ের জন্য এই জাতীয় অনুশীলন সম্পর্কে কখনও
ভাবিওনি

লিগ্যাসি কোডের রিফ্যাক্টরিংয়ের জন্য কেউ বিশেষত একটি ছোট সিস্টেম পোস্ট করার জন্য আমি দেখতে পছন্দ করতাম ... এমন কিছু অংশ যেখানে মাইকেল পালকের রিফ্যাক্টরিংগুলি আলোকিত হয়। আমি এখন এক সপ্তাহের চেয়ে এই ফর্মোরের মতো কিছু খুঁজছিলাম। যে কেউ? যে কেউ? :)
ডেরিক বেইলি

দুর্দান্ত প্রশ্ন। @ রায়ান তার উত্তরে যা উল্লেখ করেছে তা অনুশীলন করতে পারেন। আমি গিথুব সংগ্রহস্থলের কাঁটাচামচ করার পরামর্শ দিচ্ছি: github.com/garora/TDD-Katas আপনি ইতিহাসে যেতে পারেন এবং এই কাটাগুলি কীভাবে রিফেক্টর হয় তা পরীক্ষা করতে পারেন।
গৌরব অরোড়া 21

উত্তর:


92

আমি এমন কোনও সাইট জানি না যা তাদের সরাসরি ক্যাটালগ করে, তবে একটি কৌশল যা আমি উপলক্ষে ব্যবহার করেছি তা হ'ল:

  1. সোর্সফোরেজে একটি পুরাতন, ছোট, অবিস্মরণীয় মুক্ত উত্স প্রকল্পটি সন্ধান করুন
  2. এটি ডাউনলোড করুন, এটি সংকলন / বিল্ড / রান করতে পান
  3. ডকুমেন্টেশন পড়ুন, কোডটির জন্য একটি অনুভূতি পান
  4. পরীক্ষার অধীনে এর একটি অংশ পাওয়ার জন্য লেগ্যাসি কোডের সাথে কার্যকরভাবে কাজ করার কৌশলগুলি ব্যবহার করুন
  5. সেই টুকরোটি রিফ্যাক্টর, সম্ভবত বাগগুলি সংশোধন করতে এবং সেই সাথে বৈশিষ্ট্যগুলি যুক্ত করা
  6. 4 থেকে 6 ধাপ পুনরাবৃত্তি করুন

আপনি যখন বিশেষভাবে চ্যালেঞ্জপূর্ণ একটি অংশ খুঁজে পান, আপনার দক্ষতা আরও শক্তিশালী করার জন্য আপনার কাজটি ফেলে দিন এবং কয়েকবার পুনরাবৃত্তি করুন।

এটি কেবল রিফ্যাক্টরিংয়ের অনুশীলন করে না, তবে কোড পঠন, পরীক্ষা এবং বিল্ড প্রক্রিয়াগুলির সাথে ডিল করার মতো অন্যান্য দক্ষতা।

সবচেয়ে কঠিন সমস্যাটি এমন একটি প্রকল্প খুঁজে পাওয়া যা আপনি কাজ করার জন্য যথেষ্ট আগ্রহী The


4
+1 খুব আকর্ষণীয় পরামর্শ। আপনি যেমন বলেছিলেন, ছদ্মবেশী জিনিসটি একটি উপযুক্ত প্রকল্প খুঁজে পাচ্ছে। আমি এটিকে অনেক বিবেচনা করব। সম্ভবত আমি বা অন্যরা যদি খুব দরকারী যে এটি সংরক্ষণ করতে এবং কাটা হিসাবে কোথাও নথিভুক্ত করা যেতে পারে ...
mezoid

3
"লিগ্যাসি কোডের সাথে ডিলিং" - আপনার অর্থ "উত্তরাধিকারের কোডের সাথে কার্যকরভাবে কাজ করা"? amazon.com/Working-Effectively-Legacy-Michael-Feathers/dp/...
TrueWill

1
হ্যাঁ, আমার অর্থ "উত্তরাধিকারের কোডের সাথে কার্যকরভাবে কাজ করা"। ধরার জন্য ধন্যবাদ!
রায়ান 18

21

আমি এমন পুরানো থ্রেডের জবাব দেওয়ার মতো নেক্রোম্যান্সারের মতো অনুভব করছি তবে একটি জিনিস আছে যা একটি উপযুক্ত সংযোজন করতে পারে - লেগ্যাসি কোড রিট্রিট

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

আইডিয়ার লেখক জেবি রেইনসবার্গারের একটি গিটহাবের সংগ্রহশালা রয়েছে যার মধ্যে আপনি ট্র্যাভিয়া গেমের সাথে কাজ করার একটি সহজ উত্তরাধিকার ব্যবস্থা রয়েছে।

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


20

এমিলি বাচে কিছু রিফ্যাক্টরিং কাটাসহ একটি গিথুব সংগ্রহস্থল রয়েছে: এমিলি বাচের রিফ্যাক্টরিং কাটা রেপো । রিফ্যাক্টর থেকে ক্যাটায়াহটজি এবং কাতাটেনিসের রূপ রয়েছে। এছাড়াও, তার গিল্ডেড রোজ কাটার একটি বৈকল্পিক রয়েছে, যা একটি রিফ্যাক্টরিং কাটা হিসাবে নকশা করা হয়েছিল।

এছাড়াও, তার রেপোতে রেসিং কার কাটাস রয়েছে: রেসিং কার কাটা । রেস কার কাটাসে রিফ্যাক্টরিংয়ের জন্য ভাল অনুশীলনও অন্তর্ভুক্ত রয়েছে।

সেই কাটার একাধিক লাউজেজে কোড রয়েছে:

  • সি ++
  • সি শার্প
  • জাভা
  • জাভাস্ক্রিপ্ট
  • পাইথন
  • চুনি

4
এমিলি দ্য কোডিং ডোজো হ্যান্ডবুক বইটি প্রকাশ করেছেন যা কাতাদের তালিকাভুক্ত করে এবং কীভাবে আপনার নিজের কোডিং ডোজগুলি চালু এবং চালাতে হয় তা বর্ণনা করে। আমি বইটি উচ্চভাবে সুপারিশ করছি: leanpub.com/codingdojohandbook
ক্রিশ্চিয়ান মাসলেন

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