মূলত কোনও কাঠামো না দিয়ে কোনও প্রকল্প কীভাবে ঠিক করবেন?


25

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

প্রকল্পের সুনির্দিষ্ট: এটি মাইএসকিউএল এর ব্যাক এন্ড এবং সি # তে লিখিত একটি রিপোর্টিং ইঞ্জিন সহ ভিজ্যুয়াল বেসিক ক্লাসিক (ভিবি 6) তে প্রায় সম্পূর্ণ লিখিত একটি বিক্রয় প্রোগ্রাম। সি # রিপোর্টিং মডিউলটি কাজ করার জন্য একটি আনন্দ, এটি কেবল কয়েক বছর আগে লেখা হয়েছিল এবং এর আগে সমস্ত প্রতিবেদন স্ফটিক প্রতিবেদন 9-এ করা হয়েছিল (হ্যাঁ, আমাদের এখনও কিছু প্রতিবেদন রয়েছে যা এটি নির্ভর করে)।

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

আমি কোডটি প্রচুর পরিমাণে স্পর্শ করতে ভয় পাই কারণ আমি নিশ্চিত নই যে আমি যদি কোনও অস্পষ্ট ক্লায়েন্টের উপর নির্ভর করে এমন কিছু ভেঙে ফেলি, তবে এটি আমার চেয়ে বেশি উপলক্ষে ঘটেছে। এটি পুরো কোড জুড়ে রয়েছে ল্যান্ডমাইনগুলি।

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

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

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

তাহলে আমি কীভাবে সত্যিই এই প্রকল্পটি ঠিক করতে শুরু করব? অন্য ভাষা দিয়ে ভিবি 6 কে সরঞ্জাম দেওয়ার চেষ্টা করবেন? আমার অতিরিক্ত সময়ে প্রোগ্রামটি পুনরায় লেখার চেষ্টা করে দেখুন? নাকি এ পুরোপুরি হতাশ?

হালনাগাদ

এই পোস্টের পরে আমি পুনরায় উদ্দীপনা নিয়ে প্রকল্পে ফিরে গেলাম, তবে এত ধীর গতিতে অগ্রগতি দেখে কয়েক মাসের মধ্যেই হতাশায় ফিরে গেলাম। এরপরে আমি পরের বছর বা তার বেশি সময় ধরে এই চক্রটি আরও 2 বা 3 বার পুনরাবৃত্তি করেছি।

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


4
বেশ খারাপ লাগছে। একটি শুরু হ'ল বর্তমান কোডটির একটি অনুলিপি সংরক্ষণ করা এবং যে পুরানো কোডটি মন্তব্য করা হয়েছে তা সরিয়ে ফেলা হবে (এটি কেবল গোলমাল)। আমি যখন কোনও লিগ্যাসি সিস্টেমে কাজ করি তখন আমি সাধারণত কোডের শীর্ষে একটি তারিখ রাখতাম আমি মন্তব্য করব comment তারপরে অন্তঃসত্ত্বা 6 মাস বা তার বেশি বয়সী কোডটি মন্তব্য করেছিল।
প্রোগ্রামার

4
আমি জ্যামিসন দিয়ে শুরু করব এবং তাক থেকে আমার পথে কাজ করব। । ।
ওয়াইয়াট বার্নেট

1
আপনি কি কখনও কোনও ভিবি প্রোগ্রামার দ্বারা লিখিত সি # প্রকল্প গ্রহণের চেষ্টা করেছেন?
20 אבישגנת

উত্তর:


28

এখন এটি উত্স নিয়ন্ত্রণে রয়েছে, আপনি মন্তব্য করা কোড থেকে মুক্তি পেতে পারেন।

আমি এখানে একটি অনুরূপ পরিস্থিতিতে শুরু করেছি (80KLOC ভিবি 6 অ্যাপ্লিকেশন যার সাথে সোর্স নিয়ন্ত্রণ নেই, কোনও বাস্তব কাঠামো নেই, ইভেন্ট হ্যান্ডলারদের মধ্যে প্রায় সবকিছুই করা হয়েছে)।

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

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

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

আমি সত্যিই মনে করি আপনার সেরা বাজি নিম্নলিখিত পদ্ধতি গ্রহণ করা হয়:

  1. উদ্দীপনা বিবরণ প্রতিটি বিট শিখুন। এটি আপনাকে অজান্তেই কিছু ভেঙে ফেলার সম্ভাবনা কম দেয়।
  2. রিফ্যাক্টর নির্মমভাবে বিচ্ছেদ এবং কাঠামো উন্নত করতে, কিন্তু সেখানে অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিংয়ের মতো একটি নতুন পদ্ধতি প্রয়োগ করার চেষ্টা করবেন না, যেহেতু ভিবি 6 এটি সন্ধান করে।
  3. এটি একটি শেখার অভিজ্ঞতা হিসাবে আচরণ করুন। আপনি কীভাবে জানবেন যে আপনি যদি নিকৃষ্টতম উপায়টি না দেখেন তবে অন্যরকম উপায় আরও ভাল?
  4. আপনার কাছে লেখার কোনও প্রধান মডিউল না থাকলে কোনও নতুন ভাষা / ফ্রেমওয়ার্ক / প্ল্যাটফর্মে পুনর্লিখনকে বিরক্ত করবেন না। তারপরেও, সাবধানে বিবেচনা করুন।

মনে রাখবেন, প্রোগ্রামটির লক্ষ্য হ'ল এমন একটি পণ্য যা আপনার সংস্থাকে অর্থোপার্জন করে। এটি শিল্পের ত্রুটিহীন কাজ হতে হবে না (এবং আমি একজন পারফেকশনিস্ট তাই এটি স্বীকার করা আমার পক্ষে সত্যিই কঠিন)। কখনও কখনও বাস্তববাদকে গ্রহণ করা ভাল।

প্রচুর পরিমাণে লিগ্যাসি কোড বজায় রেখে সেখানে প্রচুর পরিমাণে সিওবিওএল প্রোগ্রামার রয়েছে। আমি সন্দেহ করি তারা সকলেই উন্মাদ হয়ে কিছু নতুন ভাষায় এটি পুনরায় লেখার জন্য কাজ করছে। :)


3
+1 দুর্দান্ত উত্তর: আমি কেবল যুক্ত করতে পারি এটি নিশ্চিত যে আপনি নিজের উপর খুব বেশি প্রত্যাশা রাখছেন না। কোড বজায় রাখা নতুন বিকাশের সাথে তুলনামূলক ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে উন্নত কোড, এমনকি আপনার বর্ণনার মতো অস্ট্রাস্ট্রাক্ট কোড .... গত ৫ বছর আমি 1980 এর দশকের বিভিন্ন কোড বেসগুলিতে এবং মিলিয়ন মিলিয়ন পদক্ষেপগুলিতে কাজ করেছি এসএলওসি ... আমি জানি আপনার ব্যথা ...
ম্যাটনজ

ইন্টারফেসগুলি হ'ল +1 তবে একটি OO বৈশিষ্ট্য ভিবি 6 ঠিক আছে। আপনি যদি দেখতে পান যে অনুরূপ কোডেড অনুলিপি করা হয়েছে কয়েকবার, আপনি একটি ইন্টারফেসে রিফ্যাক্টর করতে সক্ষম হবেন, যদি একটি পূর্ণ শ্রেণি না হয়।
মার্ক হার্ট

3

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


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

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

1
কোডটি যদি পরীক্ষার যোগ্য হওয়ার জন্য লেখা না হয়, তবে আপনি কেবল ইউনিট পরীক্ষা লিখবেন যা সহজ এবং সুস্পষ্ট কেসগুলি আবরণ করে এবং 90% ত্রুটিগুলির কারণ হিসাবে প্রান্তের মামলাগুলি মিস করে। আমি সেখানে ছিলাম, এটি করেছি, প্রচুর সময় এবং প্রচেষ্টা নষ্ট করেছিলাম (অর্থ পড়ুন)। সর্বোত্তম পন্থাটি হ'ল এটি নিশ্চিত করা যে আপনি যে কোডটি পরিবর্তন করেছেন তা সহজেই টেস্টযোগ্য - এর মানে আপনার যে পরিবেশে রয়েছে, যা ইউনিট পরীক্ষার মতো শোনাচ্ছে না।
mattnz

3

ডেভিড আগানের " ডিবাগিং " থেকে একটি নিয়ম মনে আসে: চিন্তাভাবনা এবং চেহারা ছেড়ে দিন। আপনার নিজের হাতে এমন একটি মেশিন রয়েছে যা প্রচুর পরিমাণে পাঠ্য প্রক্রিয়াকরণে সক্ষম। কোন কোডটি আর ব্যবহারযোগ্য নয় তা সুনির্দিষ্টভাবে বের করার জন্য এটি ব্যবহার করুন এবং দয়া ছাড়াই এটিকে সরিয়ে দিন। আপনি যদি কোনও ভুল করেন তবে সোর্স কন্ট্রোল এর জন্য।

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

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


যদি সঠিকভাবে না করা হয় তবে "আধুনিক ভাষায় পোর্টিং" একটি "সি # সিনট্যাক্সে ভিবি প্রোগ্রাম" দেবে - বর্তমানে জাভা অ্যাপ্লিকেশনটিতে সি পোর্ট করা একটি কাজ করছে যা সত্যই "জাভা" জাভা নয় - এটি উভয়ই সবচেয়ে খারাপ এবং উভয়ের মধ্যে সেরা is ........ সঠিকভাবে পোর্টিং হ'ল টেনে আনার ক্ষেত্রে আবার একটি লিখন এবং যায়েল এটি "না করার জিনিস" তালিকার উপরে রাখে।
mattnz

ভাল যুক্তি. সে কারণেই আমি বলেছিলাম "যদি সম্ভব হয় তবে"। আপনি যদি এটি কিছুটা পর্যায়ক্রমে না করতে পারেন এবং পোর্ট করা কোডটি আইডিয়াটিও লিখতে পারেন তবে আপনার চেষ্টা করা উচিত নয়।
কার্ল বিলেফেল্ট

3

আমি এটি বলতে ঘৃণা করি তবে আমি প্যাচ / বর্ধনের একটি অন্তহীন চক্র চালিয়ে যাওয়া এবং আশা করি কিছুই ভাঙ্গার আশা ছাড়াই "সম্পূর্ণ হতাশ" সাথে যাব। আপনি বর্ণনা করেছেন এমন অনেকগুলি ভিবি 6 প্রকল্প আমি দেখেছি এবং সেফেক্টর / পুনর্লিখন / সেগুলিতে পুনরায় লেখার চেষ্টা করে # নেট। ভয়ঙ্করভাবে ব্যর্থ হয়, প্রায়শই বরখাস্ত করার চেষ্টা চালানো লোকদের সাথে।

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

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


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

1

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

আমি একই পরিস্থিতিতে ছিলাম, যেখানে আমাদের একটি পুরানো 16 বিট সি ++ প্রোগ্রাম (150 কে এলওসি) 32 বিট বিশ্বে স্থানান্তরিত করতে হয়েছিল, যেখানে ব্যবহারের মূল জিইউআই ফ্রেমওয়ার্কটি আর উপলভ্য ছিল না। পুনরায় লেখাটি অবাস্তব ছিল তা বুঝতে আমাদের কিছুটা সময় লেগেছে, তবে আমরা সেই জিনিসটি .NET বিশ্বে পোর্ট করার সিদ্ধান্ত নেওয়ার পরে, সি ++, সি ++ / সিএলআই এবং সি # ব্যবহার করে আমাদের এটি ঘটতে প্রায় 9 মাসের প্রয়োজন ছিল (প্রায় 1 টি দেবের সাথে প্রকল্পটিতে পুরো সময় কাজ করে)। এবং জিইউআই অংশের জন্য আমাদের কোনও ইউনিট পরীক্ষা উপলব্ধ ছিল না, সেই সমস্ত অংশের ম্যানুয়ালি পরীক্ষা করেছিলাম।


0

যদিও এটি আপনার অ্যাপ্লিকেশনটির ইউনিট-টেস্টিংয়ের উপরে প্রচুর জোর দিয়েছে, যদিও এটি করা খুব গুরুত্বপূর্ণ একটি বিষয়, ভিবি 6-তে করা বেশ কঠিন কিছু, স্টিভেন ম্যাককনেল কীভাবে এই জাতীয় প্রকল্পটি মোকাবেলা করতে পারেন সে সম্পর্কে একটি দুর্দান্ত বই লিখেছিলেন।

এটি একবার দেখুন:

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

মূলত, তাঁর বক্তব্যটি এটি আস্তে আস্তে নিতে হবে, একসাথে একবারে bit তিনি রিফ্যাক্টরিং কৌশলগুলি ব্যবহার করে যা শুরু করার পরামর্শ দিয়েছিলেন যা কোনও কিছু ভাঙার খুব কম সম্ভাবনা রয়েছে, কখনও কখনও স্বল্পমেয়াদে এটি কিছুটা খারাপ করে তোলে এবং কোডটি ক্লিনার হওয়ার সাথে সাথে আরও উন্নত প্রযুক্তি ব্যবহার শুরু করার জন্য এবং ইউনিট পরীক্ষাগুলি সমর্থন করে।

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