বস পর্যালোচনা করানো সম্পর্কে টিপস যে কোড পর্যালোচনা একটি ভাল জিনিস [বন্ধ]


20

ধরা যাক যে একটি হাইপোথিটিকাল সংস্থায় কাজ করে যার বেশ কয়েকটি বিকাশকারী রয়েছে যা খুব কমই প্রকল্পগুলিতে একসাথে কাজ করেছিল এবং বস বিশ্বাস করেন না যে কোড পর্যালোচনা সময় এবং ব্যয়ের জন্য মূল্যবান।

এই দৃশ্যে উপস্থাপন করা যেতে পারে এমন বিভিন্ন যুক্তি কী কী যা কোড পর্যালোচনার সুবিধাটি চিত্রিত করবে? তদুপরি, এখানে কোড পর্যালোচনার বিরুদ্ধে সম্ভাব্য যুক্তিগুলি কী কী এবং কীভাবে এগুলি মোকাবেলা করা যেতে পারে?

উত্তর:


25

এই জাতীয় বেসিক জিনিসগুলির জন্য নিজেকে যদি ন্যায়সঙ্গত করতে হয় তবে আপনার একটি বড় সমস্যা রয়েছে।

আপনি বিশেষজ্ঞ, আপনার দলের সিদ্ধান্ত নেওয়া উচিত যে আপনি কোন অনুশীলন ব্যবহার করেন। হতে পারে আপনার খুব গুরুত্বপূর্ণ নীতিটি আপনার বসকে বোঝানো শুরু করা উচিত।

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

(এর অর্থ এই নয় যে আপনি অবশ্যই আপনার কোম্পানিতে কী এবং কেন জিনিসগুলি করতে পারেন তা পরামর্শ করতে পারবেন না)। একজন দুর্দান্ত বসের উচিত তার কর্মীদের এন্টারপ্রাইজ কৌশলটিতে অংশ নিতে উত্সাহিত করা)

তবে এখানে আমি কীভাবে পিয়ার কোড পর্যালোচনাগুলি দেখছি:

প্রোগ্রামিং একটি অত্যন্ত নিবিড় বৌদ্ধিক কাজ, তাই একজন ব্যক্তি সবকিছু নিখুঁত নিশ্চিত করতে পারে না। সুতরাং কোড পর্যালোচনা নিশ্চিত করে যে:

  • অ্যাপ্লিকেশন প্রেরণের আগে দুর্বলতা বা বাগগুলি পাওয়া যায়
  • বিকাশকারীদের মধ্যে অবিচ্ছিন্ন পারস্পরিক শিক্ষা (প্রায় বিনামূল্যে) অর্জন করা হয়
  • সহজ অ্যাপ্লিকেশন রক্ষণাবেক্ষণের জন্য কোড শ্রদ্ধার মান
  • কোড প্রয়োজনীয়তার সাথে মেলে

প্রত্যেকে এর প্রত্যক্ষ সুবিধা নিচ্ছে:

  • বিকাশকারী যা তার জ্ঞান বৃদ্ধি করে এবং তার নিজের / তার দলের সঙ্গীদের কাছে পাস করতে পারে
  • গ্রাহক / ব্যবহারকারীর কম বাগ রয়েছে এবং রক্ষণাবেক্ষণে কম ব্যয় হয়
  • মনিব যাতে আরও খুশি গ্রাহক / ব্যবহারকারী এবং প্রশিক্ষণে কম ব্যয় করে

1
আপনি উল্লেখ করতে পারেন এটি প্রায় 65% ত্রুটিযুক্ত ক্যাচ করে, এবং কেবল এটিই নয় তবে এটি ইউনিট পরীক্ষাগুলি যেগুলি সাধারণত পরীক্ষা করে না তা প্রচুর পরিমাণে ধরা পড়ে।
স্পুড 86

ভাগ করার জন্য আপনার কাছে কি অধ্যয়নের কোনও লিঙ্ক রয়েছে, তাই ভবিষ্যতে আমি এটি ব্যবহার করতে পারি?

2
গ্রেগ উইলসনের "বিটস অফ এভিডেন্স" নামক উপস্থাপনাটির স্লাইড 21 থেকে তিনি দাবি করেছেন "কঠোর পরিদর্শন প্রথম পরীক্ষা শুরুর আগে 60-90% ত্রুটি মুছে ফেলতে পারে।" (ফাগান 1975) "তাঁর দুর্দান্ত উদ্ধৃতি রয়েছে। :)
স্কট হুইটলক

7

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

সহকর্মীরা সম্ভবত কোড পর্যালোচনার সময় সম্ভাব্য বাগ বা পারফরম্যান্স সম্পর্কিত সমস্যাগুলি সনাক্ত করতে সক্ষম হন। এটি QA এবং উন্নয়নের প্রচেষ্টা হ্রাস করে। কোড রিভিউতে জড়িত অতিরিক্ত ব্যয়ের জন্য এটি ক্ষতিপূরণ দিতে পারে।

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

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


4

এখানে দুর্দান্ত উত্তর। আমি যুক্ত করব কিছু জিনিস:

যখন আপনাকে অন্য কারও কাছে কোডটি ব্যাখ্যা করতে হবে, প্রায়শই ব্যাখ্যা চলাকালীন বিকাশকারী হঠাৎ বুঝতে পারে তার একটি ত্রুটি রয়েছে। আমি বারবার এমনটি ঘটতে দেখেছি যে দেব তার ট্র্যাকগুলিতে মৃতদেহ বন্ধ করে দেয় এবং বলে যে "ওহ অপেক্ষা করো এটি ভুল" এর আগে পর্যালোচকটি বাগটি দেখার জন্য যথেষ্ট ভালভাবে বুঝতে পেরেছে।

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

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

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

সিনিয়রদের দ্বারা লিখিত আরও পরিশীলিত কোড থেকে জুনিয়ররা শিখতে পারে (যারা উদাহরণস্বরূপ ত্রুটি ফাঁদে ফেলা এবং প্রান্তের কেসগুলি আরও ভালভাবে বোঝে) এবং সিনিয়ররা জুনিয়রদের দ্বারা ব্যবহৃত নতুন কৌশলগুলি থেকে শিখতে পারে যা তারা এখনও প্রকাশ করেনি exposed

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

হার্ড-কোডেড মানগুলিতে ডুবে থাকা এত সহজ নয় যে সময়ের সাথে সাথে পরিবর্তিত হবে কেবল জিনিসটি এখন কাজ করার জন্য। এটি ভবিষ্যতের বাগগুলি যেমন প্রতি অর্থবছরের শুরুতে পরিবর্তিত জিনিসগুলির প্রতিরোধ করে।

আমি মাঝে মাঝে কীভাবে কিছু করতে পারি এবং একটি নতুন কৌশল শিখেছি যা অন্যের স্টাফ পর্যালোচনা কোড থেকে আমি যা চেয়েছিলাম ঠিক সেটাই হয়েছিল।

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


2

পাশাপাশি অন্যেরা জ্ঞান ভাগ করে নেওয়ার পাশাপাশি, কোড পর্যালোচনা চলাকালীন যে বাগগুলি খুঁজে পাওয়া যেত এবং সেগুলি ঠিক করতে কত সময় নিয়েছিল তা পরিমাপ করুন - এর মধ্যে সমস্যাটি গবেষণা এবং প্যাচযুক্ত সংস্করণ প্রকাশের পাশাপাশি ব্যয় করা সময় অন্তর্ভুক্ত রয়েছে ত্রুটি ঠিক করার সময়

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

এটি আপনার বসকে দেখিয়ে দেবে যে কোড পর্যালোচনাগুলি ব্যয়ের জন্য মূল্যবান।


2

কোড পর্যালোচনাগুলি:

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

কনস

  • তার জন্য আমাদের সময় নেই

যদি এটি সত্য হয় তবে কীভাবে আমাদের কাছে সর্বদা একই গ্রাহকের জন্য দু'বার তিনবার জিনিস করার সময় হবে বলে মনে হয় তবে প্রথমবার এটি করার জন্য আমাদের পর্যাপ্ত সময় কখনও নেই।


0

আপনার যদি কোনও নথির রেফারেন্স দরকার হয় তবে আমি সম্মানিত "কোড কমপ্লিট" ছাড়া আর দেখতে পাচ্ছি না। এতে, বইটি বর্ণনা করেছে যে ইউনিট পরীক্ষা বনাম পিয়ার পর্যালোচনাতে কত ত্রুটি ধরা পড়ে। বিস্ময়কর ইউনিট পরীক্ষাগুলি, যদি মেমোরি আমাকে সঠিকভাবে পরিবেশন করে তবে সমস্ত বাগের মধ্যে কেবলমাত্র 30% ডলার ধরুন, যখন আনুষ্ঠানিক পিয়ার পর্যালোচনাগুলি ~ 70% catch

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


0

একটি ডেমো চালানো সম্পর্কে কীভাবে (এক সপ্তাহের "মিকি মাউস" টাইপ প্রকল্প) সমান্তরালভাবে দুটি দল দ্বারা চালিত হয়, একটি কোড পর্যালোচনা ব্যবহার করে, অন্যটি নয়।

সপ্তাহের শেষে, প্রতিটি দলের কাজের কাজের মূল্যায়ন করুন, আমি নিশ্চিত যে কোড পর্যালোচকরা আরও উন্নত হবে।


প্রতিটি দলে 4 জন লোক = 8 জন = 2 মাসের বেতন। এটি অনেক সংস্থায় দক্ষ প্রচেষ্টার জন্য যথেষ্ট পরিমাণ সময় নেবে :)
মাইকেল ডুরান্ট

0

স্টিভ ম্যাককনেলের কনস্ট্রাক্স থেকে বেটার সফটওয়্যার প্র্যাকটিসেস এবং সফ্টওয়্যার সফটওয়্যার ডেভলপমেন্টের লো হ্যাঙ্গিং ফ্রুট (এলএইচএফ) এর জন্য বিজনেস কেস এটিকে সম্বোধন করে । পরেরটি থেকে "এলএইচএফ যা উচ্চ ব্যবস্থাপনার দ্বারা প্রতিরোধ করা হবে না" পরিদর্শন তালিকাভুক্ত করে।


0

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

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

আমি এটিকে সফ্টওয়্যার কারুশিল্প করার একটি বৃহত্তর ছবির অংশ করব

  • কোড পর্যালোচনা
  • পরীক্ষা
  • retrospectives
  • জ্ঞান ভাগাভাগি
  • শিক্ষা
  • বই পর্যালোচনা
  • দুপুরের খাবারের বক্তৃতা

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

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