একটি কোড পর্যালোচনা যা কেবল কোড মন্তব্য ব্যবহার করে একটি ভাল ধারণা?


16

পূর্বশর্ত

  • দলটি ডিভিসিএস ব্যবহার করে
  • আইডিই মন্তব্য পার্সিং সমর্থন করে (যেমন টোডো ইত্যাদি)
  • কোডক্লাবোব্রেটারের মতো সরঞ্জামগুলি বাজেটের জন্য ব্যয়বহুল
  • জেরিটের মতো সরঞ্জামগুলি ইনস্টল করার জন্য খুব জটিল বা ব্যবহারযোগ্য নয়

কর্মধারা

  • লেখক কেন্দ্রীয় রেপো বৈশিষ্ট্য শাখায় কোথাও প্রকাশ করেছেন
  • পর্যালোচক এটি আনতে এবং পর্যালোচনা শুরু করে
  • কিছু প্রশ্ন / ইস্যু রিভিউর ক্ষেত্রে "আরইভি" এর মতো বিশেষ লেবেলে মন্তব্য তৈরি করুন। এই জাতীয় লেবেল উত্পাদন কোডে থাকা উচিত নয় - কেবল পর্যালোচনা পর্যায়ে:

    $somevar = 123;
    // REV Why do echo this here?
    echo $somevar;
    
  • পর্যালোচক পোস্ট মন্তব্য সমাপ্ত করার সময় - এটি কেবল বোকা বার্তা "মন্তব্য" দিয়ে প্রতিশ্রুতিবদ্ধ এবং ফিরে ধাক্কা দেয়

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

আইডিই সমর্থন

আমি জানি, গ্রাহক এবং নেটবিনে কাস্টম মন্তব্য ট্যাগগুলি সম্ভব। অবশ্যই এটি ব্লেব্লেস্টর্ম পরিবারে থাকা উচিত।

গ্রহনটিতে কাস্টম ফিল্টারযুক্ত টাস্ক-এর উদাহরণ

প্রশ্নাবলি

  1. আপনি কি মনে করেন যে এই পদ্ধতিটি কার্যকর?
  2. আপনি কি অনুরূপ কিছু জানেন?
  3. এতে কী উন্নতি করা যায়?

ভাল প্রশ্ন তবে ন্যাপকিনের সাথে এর কিছু করার নেই - দুর্দান্ত শিরোনাম নয়।
MarkJ

@ মারকজে কীভাবে এর নাম রাখবেন? আমি হ্যান্ডিক্রাফ্ট, কটেজ, ঘরে তৈরি বোঝাচ্ছি। রাশিয়ান ভাষায় আমাদের কাছে "на коленке" বাক্যাংশ আছে। কিছু স্থিতিশীল নয়, আদর্শ নয়, নন-সলিড জাতীয় নয়, তবে এটি কার্যকর works
গ্যারেক্স

2
@ মারকজে, গ্যারেक्स: এই নতুন শিরোনাম সম্পর্কে কী? আপনি যদি এই প্রশ্নের জন্য উপযুক্ত না মনে করেন তবে নির্দ্বিধায় উদ্বিগ্ন হন।
আরসেনি মরজেনকো

@ মাইনমা, ঠিক আছে
গেরেক্স

1
আটলশিয়ান ক্রুসিবিলে 10 জন বিকাশকারীদের জন্য মূলত বিনামূল্যে। এটি আমি ব্যবহার করেছি সেরা কোড পর্যালোচনা সরঞ্জাম হিসাবেও ঘটে। মন্তব্যগুলির দৃষ্টিভঙ্গি কার্যক্ষম তবে স্থিতি ট্র্যাক করা শক্ত করে তুলতে পারে।
অ্যান্ড্রু টি ফিনেল

উত্তর:


14

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

এখনও কয়েকটি ত্রুটি রয়েছে:

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

  • আমি বিশ্বাস করি না যে পর্যালোচনাকারীর কাছে রিভিউয়ের কাছ থেকে পর্যাপ্ত প্রতিক্রিয়া রয়েছে তা জানতে রিভিউ পয়েন্টগুলি কীভাবে বাস্তবায়িত হয়েছিল

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

    এলিস একটি বিকল্প সিনট্যাক্সের পরামর্শ দেয় এবং কোডটি এরিকের কাছে জমা দেয়। তিনি এই বিকল্প বাক্য গঠন ব্যবহার করে কোডটি পুনরায় লিখেছেন যে তিনি সঠিকভাবে বুঝতে সক্ষম বলে বিশ্বাস করেন, এবং সম্পর্কিত // BLAমন্তব্যটি সরিয়ে দেন ।

    পরের সপ্তাহে, তিনি দ্বিতীয় পর্যালোচনার জন্য কোডটি পান। এরিক কীভাবে সমাধান করেছে তা দেখার জন্য তিনি কি তার প্রথম পর্যালোচনা চলাকালীন এই মন্তব্যটি করেছিলেন তা মনে রাখতে সক্ষম হবেন?

    আরও আনুষ্ঠানিক পর্যালোচনা প্রক্রিয়ায়, অ্যালিস তত্ক্ষণাত্ দেখতে পেলেন যে তিনি একটি মন্তব্য করেছেন এবং প্রাসঙ্গিক কোডের ভিন্নতা দেখতে পেয়েছেন, যাতে লক্ষ করা যায় যে এরিক তাকে যে সিনট্যাক্সটি সম্পর্কে বলেছেন তা ভুল বুঝতে পেরেছে।

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

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

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

  • এটি মুখোমুখি পর্যালোচনা প্রতিস্থাপন করে না (তবে একই সমস্যা একই সাথে অন্য যে কোনও আনুষ্ঠানিক পর্যালোচনা যা মুখোমুখি করা হয় না তা প্রযোজ্য)।

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

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

    // BLA This is a very long comment which is way beyond 80 characters, so it actually
    // fills more then one line. Since the next lines start with slashes, but not "BLA"
    // keyword, the IDE may not be able to show those lines, and display only the first one.
    
  • এবং অবশেষে একটি ছোট এবং খুব ব্যক্তিগত নোট হিসাবে: একটি কীওয়ার্ড হিসাবে "বিএলএ" চয়ন করবেন না। কুরুচিপূর্ণ লাগছে। ;)


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

1
"মানুষ মানুষ" হ্যাঁ :( ইতিমধ্যে আমাদের কাছে এই লক্ষ লক্ষ টোডো রয়েছে ID আইডিইগুলিতে এই জাতীয় বৈশিষ্ট্যটি কেবল অস্বীকার করা যেতে পারে?
গেরেক্স

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

"সিনট্যাক্সের সাথে ছোটখাটো সমস্যা" এটি কি ইস্যু নয়? এই REV গুলি কেবল প্যানেল থেকে এটিতে যাওয়ার জন্য কিছু চিহ্নিতকারী হিসাবে রয়েছে।
গ্যারেक्स

1
@ কেআরএক্স: তারপরে আপনার দলের সদস্যদের মুখোমুখি রেন্ডিভেউজের তারিখ সম্পর্কে সম্মতি জানাতে ইমেল ব্যবহার করা উচিত ;-)
ডক ব্রাউন

4

আমি সহকর্মী নথির সাথে কোডটিতে মন্তব্যগুলি পরিপূরক করব। এটি ফলাফলগুলি সংক্ষিপ্ত করে এবং মন্তব্যগুলি সরানোর পরে লাইভ করবে। এর সুবিধাগুলি হ'ল:

  • সংহতি। যদি ব্যক্তিটি নিয়মিতভাবে এটি পরীক্ষা করতে ব্যর্থ হয় যে কোনও পয়েন্টারটি পাস হয়েছে তা বাতিল নয় (বা আপনি যে ভাষাটি ব্যবহার করছেন তাতে কোনও সাধারণ সাধারণ ত্রুটি) তবে পর্যালোচক সেই লক্ষ্যে কয়েক হাজার আরইভি মন্তব্য রেখে দিতে পারে এবং নথিতে বলতে পারে " আমি 37 টি জায়গা খুঁজে পেয়েছি যেখানে পয়েন্টারগুলিকে প্রথমে সমস্তগুলি তালিকাভুক্ত না করে চেক করা হয়নি
  • প্রশংসা জন্য জায়গা। REV this is a nice designঠিক মত মন্তব্য একটি মতামত মত লাগে, কিন্তু আমার কোড পর্যালোচনা প্রায়শই অনুমোদনের পাশাপাশি সংশোধন অন্তর্ভুক্ত
  • ইন্ট্যার্যাক্টিভিটির। আপনার নমুনা মন্তব্যটি "আপনি এটি কেন করলেন?" এবং এটি খুব সাধারণ একটি। একটি মন্তব্য-কেবল পদ্ধতির কোনও কথোপকথন সমর্থন করে না। ব্যক্তি তাদের কোড পরিবর্তন করতে এবং মন্তব্য মুছতে বা মন্তব্য মুছতে পারেন। তবে "আপনি এই কাজটি কেন করলেন?" এবং "দয়া করে এটি পরিবর্তন করুন, এটি ভুল" একই জিনিস নয়।
  • একটি রেকর্ড রাখা পরবর্তী পর্যালোচক কোডটি বাস্তবে পরিবর্তিত হয়েছে কিনা, বা মন্তব্যগুলি সবেমাত্র সরিয়ে ফেলা হয়েছে কিনা তা পরীক্ষা করতে পারে। তারা এটিও পরীক্ষা করে দেখতে পারে যে মন্তব্যগুলি "বোর্ডে নেওয়া হয়েছে" এবং পরবর্তী বিকাশের ক্ষেত্রে বিকাশকারীরা আর একই ভুল করছেন না।

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


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

"কমপ্যাক্টনেস" - আমি মনে করি এটি "// আরইভি ডুডের মতো একটি মন্তব্যে করা যেতে পারে, আমাদের 37 টি জায়গা রয়েছে যেখানে পয়েন্টারগুলি প্রথমে এটি সহ চেক করা হয়নি Please অনুগ্রহ করে
আরটিএফএম

"প্রশংসা জন্য জায়গা" - আমরা হারিয়ে পর্যালোচনা ইতিহাস করে স্কোয়াশিং - সম্ভব, কিন্তু স্কোয়াশিং হারিয়ে যাবে পরে :( আমি ইতিমধ্যে একটি বিষয় দেখুন।
gaRex

"ইন্টারেক্টিভিটি" - লেখক প্রাথমিকের নীচে অন্য মন্তব্যে উত্তর দিতে পারেন। ঠিক যেমন উইকিপিডিয়া স্টাইলে।
গ্যারেক্স

"ব্যক্তি ... মন্তব্য মুছতে পারে" - এটি একটি সমস্যা। +1
গেরেক্স

2

অন্যরা এই পদ্ধতির সীমাবদ্ধতা সম্পর্কে কথা বলেছেন। আপনি উল্লেখ করেছেন যে জারিতের মতো সরঞ্জামগুলি ইনস্টল করা শক্ত ছিল - আমি আপনাকে ফ্যাব্রিকেটর (http://www.phabricator.com) এ একবার দেখার পরামর্শ দিই। এটি সেই কোড পর্যালোচনা সিস্টেম যা ফেসবুক বছরের পর বছর ধরে ব্যবহার করে আসছে এবং সম্প্রতি উন্মুক্ত উত্স ছিল। এটি ইনস্টল করা কঠিন নয়, দুর্দান্ত কর্মপ্রবাহ রয়েছে এবং অন্যান্য মন্তব্যে উল্লিখিত সমস্ত সমস্যা সমাধান করে।


কি দারুন! আমাদের আমাদের পুনর্নির্মাণের পরিবর্তে এটি চেষ্টা করা দরকার।
গেরেক্স

"জারিট" আমি এটি ইনস্টল করেছি - এটি এত কঠিন ছিল না। আমি শুধু এটি ব্যবহার করতে ব্যর্থ! এবং এটিতে কুরুচিপূর্ণ UI এবং কর্মপ্রবাহ রয়েছে।
গেআরেক্স

@ আরআরএক্স আমরা রেডমাইনের সমান্তরালে রিভিউবোর্ড ( রিভিউবোর্ড.অর্গ ) ব্যবহার করি । তারা বিভিন্ন উদ্দেশ্যে পরিবেশন করে যাতে ঠিক আছে। এবং আপনি সমস্যাগুলি পুনর্নির্মাণের জন্য আরবি সেটআপ করতে পারেন ...
জোহানেস এস

@JohannesS। আপনি কোন ভিসি ব্যবহার করছেন? এছাড়াও তাদের একীকরণ সম্পর্কে আপনার কাছে কি কিছু প্রস্তুত বা উইকি রয়েছে? এরকম একটা পেয়ে ভালো লাগল।
গেরেক্স

@gaRex দেরী জবাবের জন্য দুঃখিত। আমরা এসভিএন ব্যবহার করি তবে আরবি গিটকেও সমর্থন করে (আসলে, আরবি লোকেরা নিজেরাই গিট ব্যবহার করে)। আমি আরবির ওয়েবসাইটে একবার দেখার পরামর্শ দিই। একটি অনলাইন ডেমো উপলব্ধ আছে (উদাহরণস্বরূপ ডেমো.রেভিউবোর্ড.আর.আর / 10/1 দেখুন )
জোহানেস এস।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.