রক্ষণাবেক্ষণ সম্পর্কে শিক্ষার্থীদের প্রশিক্ষণের উন্নতি কীভাবে? [বন্ধ]


18

রক্ষণাবেক্ষণ পেশাগত সফ্টওয়্যার বিকাশের একটি বড় অংশ। প্রকৃতপক্ষে, রক্ষণাবেক্ষণ প্রায় সর্বদা একটি সফ্টওয়্যার জীবনচক্রের দীর্ঘতম অংশ, কারণ এটি প্রকল্পের রিলিজ থেকে মূলত শেষ অবধি অবধি স্থায়ী হয়।

তদতিরিক্ত, প্রকল্পগুলি রক্ষণাবেক্ষণে চলছে সামগ্রিক সংখ্যক প্রকল্পের একটি বৃহত অংশকে প্রতিনিধিত্ব করে। Http://www.vlegaci.com/298/interesting-statistics-%E2%80%93-numbers-of-programmers-in-mainenter-vs-de વિકાસment/ এর মতে , রক্ষণাবেক্ষণে প্রকল্পের অনুপাত প্রায় 2 / 3।

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

  • বিদ্যমান কোড বজায় রাখুন
  • রক্ষণাবেক্ষণযোগ্য কোড তৈরি করুন

আমার প্রশ্নটি এখানে এই আলোচনার প্রতিধ্বনি করে এবং রক্ষণাবেক্ষণযোগ্যতা শেখানোর জন্য একটি ভাল উপায় সন্ধানের লক্ষ্য।

  • কীভাবে আমরা রক্ষণাবেক্ষণের শিক্ষা দিতে পারি?
  • আপনি কি ধরনের অনুশীলনের পরামর্শ দেবেন?
  • আপনি যদি রক্ষণাবেক্ষণ সম্পর্কে ভাল প্রশিক্ষণ প্রাপ্ত হন তবে আপনি কোন বিশেষ ধরণের কোর্সটি গ্রহণ করেছেন?

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



পিএস: সেখানে আমার উত্তরটি দেখুন, আপনি স্প্যাগেটি পরীক্ষাটি সার্থক হতে পারেন
পিএইচডি

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

একটি উত্তর পোস্ট করেছে ... আশা করি এটি আপনার জন্য মান যোগ করবে :)
পিএইচডি

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

উত্তর:


8

কীভাবে আমরা রক্ষণাবেক্ষণের শিক্ষা দিতে পারি?

এটি অনুশীলনের বিষয়।

নিয়ন্ত্রিত উপায়ে এটি সম্পর্কে অনুশীলনের সবচেয়ে সোজা উপায় হ'ল নিম্নরূপ রক্ষণাবেক্ষণ প্রকল্পটি নিম্নরূপে অনুকরণ করা

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

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

  • কোর্সওয়ার্ক ১.
    বাগগুলি ঠিক করুন, অনুপস্থিত ইউনিট পরীক্ষা, ডকুমেন্টেশন এবং বৈশিষ্ট্য যুক্ত করুন।
  • কোর্স ওয়ার্ক 2.
    রিফ্যাক্টর।
  • কোর্স ওয়ার্ক ৩.
    পরের বছরের শিক্ষার্থীদের দ্বারা ব্যবহারের জন্য মূল প্রকল্পগুলির রক্ষণাবেক্ষণ / উন্নতি
    - প্রকল্পের সংস্করণ ২.০ এবং প্রকল্প এ - ক্ষতিগ্রস্থ সংস্করণ ২.০ , যথাক্রমে। ক্ষতিগ্রস্থ সংস্করণটি
    উন্নত করার অর্থ এর থেকে আরও ভাল শিক্ষামূলক ক্ষতি করা হচ্ছে। :)

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

প্রতি মিনিটে ডাব্লুটিএফ এর


11

দাবি অস্বীকার: আমি স্রেফ আমার সিএস ডিগ্রি পেয়েছি। আমি কোন শিক্ষক নই.

এটি সুস্পষ্ট মনে হতে পারে তবে আমি মনে করি কোড রক্ষণাবেক্ষণ শেখানোর সর্বোত্তম উপায় হ'ল শিক্ষার্থীদের কোড রক্ষণাবেক্ষণ সম্পাদন করা। আমি এখানে কি করব:

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

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


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

1
ফোলার্স রিফ্যাক্টরিংয়ের
mjfgates

2

রক্ষণাবেক্ষণ একটি গুণ নয়, দক্ষতা নয়। রক্ষণাবেক্ষণযোগ্য প্রকল্পগুলি তৈরির অনেকগুলি পথ রয়েছে তবে সেগুলি উত্পাদনের গ্যারান্টিযুক্ত কোনও সূত্র নেই।

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

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

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

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


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

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

1

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

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

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


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

1
আপনি একটি ভাল বক্তব্য রাখেন, তবে এটি একথাও ন্যায্য যে একটি প্রকল্প অন্যটির চেয়ে কম বা কম রক্ষণাবেক্ষণযোগ্য। অযোগ্য বা -যোগ্য শেষ হওয়া শব্দগুলি নিখুঁত বা আপেক্ষিক হতে পারে এবং এটি খুব পরিষ্কার বলে মনে হয় যে ওপি এটি আপেক্ষিক অর্থে ব্যবহার করছে।
কালেব

0

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

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

এমন কিছু দুর্দান্ত বই রয়েছে যা আপনি রাইটিং পরিষ্কার, রক্ষণাবেক্ষণযোগ্য কোড সম্পর্কে পড়তে পারেন। ক্লিন কোড মাথায় আসে।

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


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

1
-1: @ সুসটারপ্যাট এর পরামর্শটি আরও ভাল শোনাচ্ছে।
জিম জি।

0

ভাল কোড = কম রক্ষণাবেক্ষণ এবং বৈশিষ্ট্যগুলি বাড়ানো / যুক্ত করা সহজ।

খারাপ কোড = রক্ষণাবেক্ষণ দুঃস্বপ্ন

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

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

ব্যায়াম:

1) একটি প্রাক-লিখিত খারাপ কোড রয়েছে (যেমন) সদৃশ কোড, একটি পদ্ধতিতে "বন্ধক প্রদানের গণনা করতে" বলে একটি প্রকল্পে 9 টি জায়গায় লেখা আছে

"সমস্ত বন্ধকী প্রদানের ক্ষেত্রে 1.2% সারচার্জ যুক্ত করতে" বৈশিষ্ট্যটি বাড়ানোর জন্য শিক্ষার্থীকে বলুন।

এখন শিক্ষার্থী সমস্ত 9 টি স্থানে কোডটি সনাক্ত এবং ঠিক করার ব্যথা দেখতে পাবে। "বন্ধকী অর্থ প্রদান" গণনা করা হয় এমন 9 টি স্থানে তিনি সমস্ত জায়গা সনাক্ত করতে পারেননি এমন অনেক সম্ভাবনা রয়েছে।

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

বিটিডাব্লু, আমি সফ্টওয়্যারটির রক্ষণাবেক্ষণের জন্য শিক্ষার্থীদের উন্মুক্ত করার আপনার পদ্ধতিকে পছন্দ করেছি।


-1

@ ম্যাটম্যাটজ: যেহেতু প্রচুর উত্তর এবং আমার পোস্ট করা লিঙ্কটিতে কিছু ভাল পয়েন্টার রয়েছে আমিও এমন কিছু যুক্ত করব যা আশা করি ইতিমধ্যে পোস্ট করা উত্তরগুলির পুনরাবৃত্তি নয়।

প্রথমত, একটি "রক্ষণাবেক্ষণযোগ্যতা" সংজ্ঞায়িত করতে হবে - সকলের দ্বারা গৃহীত একটি একক সংজ্ঞা নেই - সফ্টওয়্যার আর্কিটেকচারের মতো। সুতরাং আপনি যেটিকে সবচেয়ে গুরুত্বপূর্ণ বলে মনে করেন তা চয়ন করুন এবং সমস্ত পরিবেষ্টন করুন এবং এটিকে সর্বোচ্চ 3-4 লাইনে লিখুন। তারপরে আপনি কয়েকটি মেট্রিকের বিষয়ে কথা বলতে পারেন - নিজের কোডটি (বা অন্য কারওর) পুনরায় প্রত্যাহার করার / সময় প্রতি মিনিট / ঘন্টা ইত্যাদি ডাব্লুটিএফ এর সংখ্যা ইত্যাদি সম্পর্কে হালকা রাখুন (হাস্যকর) - যা আপনার কাছে যা আছে তা আরও গ্রহণযোগ্য করে তুলবে তার পরে বলতে।

কিছু অনুশীলন (এটি প্রতিক্রিয়াগুলির সাথে কিছুটা ওভারল্যাপিং লাগতে পারে, দয়া করে তা ক্ষমা করুন)

ক্লাসটি দুটি ভাগে বিভক্ত করুন - একটি বিভাগকে একটি সাধারণ কোডিং অ্যাসাইনমেন্ট দিন যা 1-2 দিনের মধ্যে করা দরকার। সর্বোচ্চ। হার্ড নির্দিষ্ট সময়সীমা. তাদের সমস্ত পরিস্থিতিতে কাজটি করতে হবে - গাইডলাইন - "ওয়ার্কিং কোড" হিসাবে তারা উপযুক্ত মনে করবে। অন্যান্য গ্রুপের শিক্ষার্থীদের জন্য একই দায়িত্ব কিন্তু (নামকরণ) কনভেনশনগুলির একটি তালিকা এবং নকশা সম্পর্কে কিছু গাইডলাইন এবং অনুসরণ না করা হলে কীভাবে পয়েন্টগুলি কেটে নেওয়া হবে with এটি প্রতারণামূলক নয়, এমনকি যদি এটির মতো মনে হয়;) এখন তাদের কোডগুলি অদলবদল করুন অর্থাৎ গোষ্ঠী 1 এখন গ্রুপ 2 কী করেছে এবং এর বিপরীতে কাজ করে। এখন আসল কোডিং অ্যাসাইনমেন্টে একটি পরিবর্তনের পরামর্শ দিন এবং তাদের একই সময় ফ্রেমে এটি করতে বলুন। পুনর্নির্মাণ করুন এবং তাদের জিজ্ঞাসা করুন এটি কতটা সহজ / কঠিন ছিল এবং আলোচনা / মতামতের জন্য মেঝেটি খুলুন। পয়েন্টটি অবশ্যই ঘরে বসে থাকবে - উচ্চ সম্ভাবনা 50% বর্গ খুশি হবে এবং এটি সহজ এবং 50% এটি কঠিন খুঁজে পেয়েছিল found আপনি তাদের 3 সপ্তাহের পরে তাদের নিজস্ব জিনিসটিতে কাজ করতে এবং দেখতে পারেন যে তারা এটি 1 দিনের মধ্যে করতে পারে কিনা;)

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

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

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

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


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