একটি কোড পর্যালোচনাতে ইতিবাচক জিনিসগুলি কীভাবে সন্ধান করবেন?


184

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

আর একজন বিকাশকারী এবং আমি যেখানে ট্রাঙ্কে মার্জ হওয়ার আগে সিস্টেমে করা সমস্ত পরিবর্তনগুলি পর্যালোচনা করতে বেছে নিয়েছি।

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

প্রযুক্তিগতভাবে আমরা একীভূতিকে অস্বীকার করতে পারি, এটি আবার বিকাশে ফিরিয়ে দিয়েছি। বাস্তবে এটি আমাদের বসের দাবি যে এটি সময়মতো প্রেরণ করা উচিত প্রায় সর্বদা শেষ হয়।

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

বর্তমানে এসভিএন-তে বিকাশকারী শাখাগুলিতে উন্নয়ন করা হয়, বিকাশকারী তার প্রস্তুত বলে মনে করার পরে, তিনি আমাদের টিকিট সিস্টেমে টিকিটটি আমাদের ম্যানেজারকে পুনরায় সাইন করেন। ম্যানেজারটি তখন এটি আমাদেরকে অর্পণ করে।

কোড পর্যালোচনাগুলি আমাদের টিমের মধ্যে কিছুটা উত্তেজনা বাড়ে। বিশেষত প্রবীণ সদস্যদের মধ্যে কেউ কেউ পরিবর্তনগুলি নিয়ে প্রশ্ন তোলে (যেমন "আমরা সর্বদা এটি পছন্দ করেছিলাম" বা "পদ্ধতিটির বুদ্ধিমান নাম কেন রাখা উচিত, আমি জানি এটি কী করে?")।

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

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

আমি মনে করি না যে আমার মানগুলি খুব বেশি।

এই মুহুর্তে আমার চেকলিস্টটি হ'ল:

  • কোডটি সংকলন করবে।
  • কোডটি কাজ করবে এমন একটি উপায় রয়েছে।
  • কোডটি বেশিরভাগ সাধারণ ক্ষেত্রে কাজ করবে।
  • কোড বেশিরভাগ এজ কেস নিয়ে কাজ করবে।
  • Inোকানো ডেটা বৈধ না হলে কোড যুক্তিসঙ্গত ব্যতিক্রম ছুঁড়ে দেবে।

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

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

তবে ভালো কিছু খুঁজে পেতে আমার খুব কষ্ট হচ্ছে। "আরে এবার আপনি যা কিছু করেছেন তা বাস্তবে প্রতিশ্রুতিবদ্ধ" সুন্দর বা সহায়কের চেয়ে আরও মজাদার।

উদাহরণ কোড পর্যালোচনা

এইযে, জো নাকি,

লাইব্রেরি \ ACME \ এক্সট্রাক্টআর্ডারমেল ক্লাসে আপনার পরিবর্তনগুলি সম্পর্কে আমার কিছু প্রশ্ন রয়েছে।

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

... (কিছু অন্যান্য বিষয় যা কাজ করে না)

গৌণ পয়েন্ট:

  • "গেটআরারমেলবডি" কেন প্যারামিটার হিসাবে একটি ব্যতিক্রম গ্রহণ করে? আমি কি কিছু রেখে গেলাম? আপনি ব্যতিক্রম ছোঁড়াচ্ছেন না, আপনি কেবল এটি পাশ করে "টুস্ট্রিং" কল করুন। তা কেন?
  • SaveAndSend পদ্ধতিটির পক্ষে ভাল নাম নয়। এই পদ্ধতিটি যদি কোনও মেল প্রক্রিয়াজাতকরণ ভুল হয়ে যায় তবে ত্রুটি মেলগুলি প্রেরণ করে। আপনি কি এটি "সেন্ডেরর মেইল" বা এরকম কিছুতে নাম পরিবর্তন করতে পারেন?
  • দয়া করে কেবল পুরানো কোডটি মন্তব্য করবেন না, সরাসরি এটি মুছুন। আমরা এখনও এটি subversion মধ্যে আছে।

8
খারাপ এবং ভাল কিছু পৌরাণিক ভারসাম্য অর্জন করার জন্য দয়া করে একটি t h! T স্যান্ডউইচ পরিবেশন করবেন না। যদি তারা কিছু ভাল করে থাকে তবে তাদের বলুন, তারা যদি এমন কিছু করে থাকে যার সংশোধন দরকার হয় তবে তাদের জানান। ভাল-মন্দ মিশ্রণ বার্তাটি হ্রাস করে। যদি তারা ইতিবাচকের চেয়ে অনেক বেশি নেতিবাচক প্রতিক্রিয়া পান তবে তারা বুঝতে পারবেন যে তাদের পরিবর্তন করা দরকার। আপনার স্যান্ডউইচ পদ্ধতির প্রতিটি নেতিবাচক জন্য 2: 1 অনুপাত দেয়, তাই তারা নেট ইতিবাচক শেষ, আপনি যে বার্তাটি প্রেরণ করতে চান তা হ'ল।
সিডিকেমুস

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

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

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

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

উত্তর:


124

একটি কোড পর্যালোচনাতে ইতিবাচক জিনিসগুলি কীভাবে সন্ধান করবেন?

গত বছর কিছু গুরুতর মানের সমস্যার পরে, আমার সংস্থা সম্প্রতি কোড পর্যালোচনা চালু করেছে।

দুর্দান্ত, আপনার ফার্মের জন্য মান তৈরি করার একটি সত্যিকারের সুযোগ রয়েছে।

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

আপনার সহকর্মী কোড বিকাশকারীদের উচিত নয় যদি তিনি বিকাশকারীদের কোডগুলিতে কী ভুল করে তা জানাতে সক্ষম হন না। সমস্যাগুলি খুঁজে পাওয়া এবং গ্রাহকদের প্রভাবিত করার আগে এগুলি ঠিক করা আপনার কাজ

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

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

ভাল, এটি দুর্ভাগ্যজনক, আপনি বলেছিলেন আপনি কৌশলী হন being আপনি প্রশংসার জন্য আরও কিছু পেতে পারেন, যদি আপনার আরও বেশি সন্ধান করতে হয়।

কোডটির সমালোচনা করুন, লেখক নয়

আপনি একটি উদাহরণ দিন:

আপনার পরিবর্তন সম্পর্কে আমার কিছু প্রশ্ন আছে

"আপনি" এবং "আপনার" শব্দটি ব্যবহার করা এড়িয়ে চলুন, বলুন, "পরিবর্তে" পরিবর্তিত হয়।

আমি কি কিছু রেখে গেলাম? [...] তা কেন?

আপনার সমালোচনাগুলিতে অলঙ্কৃত বিকাশ যুক্ত করবেন না। রসিকতা করবেন না, হয়। আমি শুনেছি একটি নিয়ম আছে, "এটি যদি আপনাকে বলতে ভাল লাগায় তবে তা বলবেন না, এটি ভাল নয়।"

অন্য কারও ব্যয়ে আপনি নিজের অহংকে বাফ দিচ্ছেন। এটি কেবল তথ্যগুলিতে রাখুন।

ইতিবাচক প্রতিক্রিয়া জানিয়ে বারটি উত্থাপন করুন

আপনার সহকর্মী বিকাশকারীরা যখন উচ্চতর মান পূরণ করেন তখন এটি প্রশংসা করার জন্য বারটি উত্থাপন করে। সুতরাং যে প্রশ্ন মানে,

একটি কোড পর্যালোচনাতে ইতিবাচক জিনিসগুলি কীভাবে সন্ধান করবেন?

একটি ভাল, এবং সম্বোধন মূল্য।

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

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

ভাষা নির্দিষ্ট সেরা অনুশীলন

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

  • এটি কি অভ্যন্তরীণ ভাষার শৈলীর নির্দেশিকার মানদণ্ডগুলি পূরণ করে?
  • এটি কি ভাষার জন্য সবচেয়ে প্রামাণ্য শৈলীর নির্দেশিকাটি পূরণ করে (যা সম্ভবত বাড়ির তুলনায় আরও কঠোর - এবং এইভাবে এখনও অভ্যন্তরীণ শৈলীর সাথে সম্মতিযুক্ত)?

জেনেরিক সেরা অনুশীলন

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

খোঁজা:

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

ফাংশনাল প্রোগ্রামিং

ভাষাটি যদি কার্যক্ষম হয় বা কার্যকরী দৃষ্টান্ত সমর্থন করে তবে এই আদর্শগুলি সন্ধান করুন:

  • গ্লোবাল এবং বিশ্ব রাষ্ট্র এড়ানো
  • ক্লোজার এবং আংশিক ফাংশন ব্যবহার করে
  • পাঠযোগ্য, সঠিক এবং বর্ণনামূলক নাম সহ ছোট ফাংশন
  • একক প্রস্থান বিন্দু, আর্গুমেন্ট সংখ্যা হ্রাস

অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং (ওওপি)

ভাষা যদি ওওপি সমর্থন করে, আপনি এই বৈশিষ্ট্যগুলির যথাযথ ব্যবহারের প্রশংসা করতে পারেন:

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

OOP এর অধীনে সলিড নীতিগুলিও রয়েছে (সম্ভবত ওওপি বৈশিষ্ট্যগুলিতে কিছু অপ্রয়োজনীয়):

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

ইউনিক্স প্রোগ্রামিং নীতি :

ইউনিক্স নীতিগুলি হল পরিমিতি, স্বচ্ছতা, রচনা, বিচ্ছেদ, সরলতা, পার্সিমনি, স্বচ্ছতা, দৃust়তা, প্রতিনিধিত্ব, কমপক্ষে অবাক, নীরবতা, মেরামত, অর্থনীতি, প্রজন্ম, অনুকূলিতকরণ, বৈচিত্র্য এবং এক্সটেনসিবিলিটি।

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

আপনার মানদণ্ড

এগুলি অত্যন্ত তুচ্ছ - এটির জন্য প্রশংসিত হলে আমি অনুভূত বোধ করব:

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

অন্যদিকে, আপনি যেটির সাথে লেনদেন করছেন বলে মনে করে এগুলি মোটামুটি উচ্চ প্রশংসা, এবং এটি করার জন্য আমি বিকাশকারীদের প্রশংসা করতে দ্বিধা করব না:

  • কোড বেশিরভাগ এজ কেস নিয়ে কাজ করবে।
  • Inোকানো ডেটা বৈধ না হলে কোড যুক্তিসঙ্গত ব্যতিক্রম ছুঁড়ে দেবে।

কোড পর্যালোচনা পাস করার জন্য নিয়ম লিখে?

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

কোডটি প্রত্যাখ্যান করার জন্য আমি যে নিয়মটি ভাবতে পারি তা হ'ল এতো মারাত্মক কিছু নেই যে আমি এটিকে উত্পাদন থেকে দূরে রাখব। সত্যই খারাপ নাম এমন একটি জিনিস যা আমি উত্পাদন থেকে দূরে রাখতে ইচ্ছুক - তবে আপনি এটিকে কোনও নিয়ম তৈরি করতে পারবেন না।

উপসংহার

আপনি একাধিক দৃষ্টান্তের নীচে অনুসরণ করা সেরা অনুশীলনগুলির প্রশংসা করতে পারেন, এবং ভাষা সম্ভবত যদি তাদের সমর্থন করে তবে সেগুলির মধ্যেও under


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

9
অনেক ভাল অভ্যাস তালিকাভুক্ত করার সময়, আপনি সম্ভবত ভুল প্রশ্নের উত্তর দিচ্ছেন - কারণ এটি সত্যই একটি xy- সমস্যা। এবং এই ফিডব্যাকগুলিকে মঞ্জুরি দেয় এমন একটি পর্যালোচনা সিস্টেম খুঁজে পাওয়া শক্ত। গুরুত্বপূর্ণ জিনিসগুলি অকেজো শব্দে লুকানো থাকে। কখনও কখনও, একটি প্রশ্নের উত্তর কেবল "এটি করবেন না - এটি ভুল উপায় Your আপনার সমস্যা অন্য কোথাও রয়েছে এবং পর্যাপ্ত সমাধান করা উচিত।" লোকেরা যদি ভাল জিনিসগুলি সন্ধানে মনোনিবেশ করা শুরু করে তবে কোড পর্যালোচনা সময়ের অপচয় হয়ে গেছে become আপনি আপনার সহকর্মীকে মধ্যাহ্নভোজের সময় বলতে পারেন যে তার বাস্তবায়নটি কতটা দুর্দান্ত, এবং তিনি এটির প্রশংসা করতে পারেন।
Eiko

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

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

104

কোনও দৃ conc় সংক্ষিপ্ত উদাহরণ না থাকলে এবং সরাসরি ফোকাসযুক্ত ইস্যুটির সাথে সম্পর্কিত না হলে ভাল কিছু বাছাই করা বিরক্ত করবেন না।

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

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

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

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

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

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


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

7
@ গ্রেগবার্গার্ড্ট আরে, তারা একে অফিসের রাজনীতির জন্য কিছুই বলে না।
plast1k

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

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

2
"নিশ্চিত হয়ে নিন যে আপনি কোডটিকে দোষ দিচ্ছেন, লেখককে নয়"। সম্মতি জানানো হয়েছে, তবে অনিরাপদ / অপরিপক্ক ধরণটি সেভাবে নেবে না।
মেটালমাইকস্টার

95

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

আপনি এড়ানো নিশ্চিত হওয়ার একমাত্র উপায় হ'ল কোড পর্যালোচনা পাস করার নিয়মগুলি লিখে রাখা।

তবে এটি এমন কোনও ব্যক্তি নয় যা চেকিনকে ব্যর্থ বা অনুমোদন দিচ্ছে। তারা কেবল পরীক্ষা করে নিচ্ছে যে নিয়মগুলি অনুসরণ করা হয়েছে।

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

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


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

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

20
-1 আমি "নারড যুদ্ধ" সমালোচনা করা থেকে যেভাবে ঝাঁপিয়ে পড়েছি এবং তারপরে "আপনাকে এড়াতে হবে তা নিশ্চিত করার একমাত্র উপায়" বলে আমি পছন্দ করি।
tymtam

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

15
কোডিং মানগুলির চেয়ে অনেক বেশি কার্যকর হ'ল বিকাশকারী এবং পর্যালোচক যা সঠিক প্রাপ্তবয়স্কদের হিসাবে কাজ করতে পারে।
gnasher729

25

আমি আপনার প্রতিক্রিয়া চিনি কোট করব না কারণ এটি পৃষ্ঠপোষক হিসাবে বিবেচিত হতে পারে।

আমার মতে, সর্বোত্তম অনুশীলন হ'ল কোডটিতে সর্বদা মনোনিবেশ করা এবং কখনই লেখকের দিকে মনোনিবেশ করা না।

এটি একটি কোড পর্যালোচনা, কোনও বিকাশকারী পর্যালোচনা নয়, তাই:

  • "এটি যখন লুপ কখনই শেষ করতে পারে না", না "আপনার লুপ কখনই শেষ করতে পারে না"
  • "এক্স এক্স দৃশ্যের জন্য একটি পরীক্ষার কেস প্রয়োজন", "আপনি এই পরিস্থিতিটি কভার করার জন্য পরীক্ষাটি লেখেন নি"

অন্যদের সাথে পর্যালোচনা সম্পর্কে কথা বলার সময় একই নিয়মটি প্রয়োগ করাও অত্যন্ত গুরুত্বপূর্ণ:

  • "অ্যানি, আপনি এই কোডটি সম্পর্কে কী ভাবেন?", "অ্যান, জনের কোড সম্পর্কে আপনি কী ভাবেন?"

কোড পর্যালোচনা কোনও পারফরম্যান্স পর্যালোচনার সময় নয় - এটি আলাদাভাবে করা উচিত।


3
আপনি আসলে প্রশ্নের উত্তর দিচ্ছেন না। প্রশ্নটি "কোড পর্যালোচনায় ইতিবাচক জিনিসগুলি কীভাবে সন্ধান করবেন?" - এবং এই উত্তরটি কেবল একটি বৈপরীত্য - আপনি উত্তর দিচ্ছেন, "আমি কীভাবে নেতিবাচক প্রতিক্রিয়া দিব"।
অ্যারন হল

15

আমি অবাক হয়েছি এখন পর্যন্ত কোনও উত্তরে এটি উল্লেখ করা হয়নি, এবং কোড পর্যালোচনার সাথে আমার অভিজ্ঞতাটি অস্বাভাবিক, তবে:

আপনি কেন একটি একক বার্তায় পুরো সংযুক্তির অনুরোধটি পর্যালোচনা করছেন?

কোড পর্যালোচনার সাথে আমার অভিজ্ঞতা গিটল্যাবের মাধ্যমে; আমি সবসময় কল্পনা করেছিলাম যে অন্যান্য কোড পর্যালোচনা সরঞ্জামগুলি একইভাবে কাজ করবে।

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

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

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

চমৎকার উত্সাহ, একটি উত্সর্গীকৃত ফাংশন এ মোড়ানো!

অথবা এটি বলতে পারে,

এই অবজেক্টের নাম বস্তুর উদ্দেশ্য সত্যিই মেলে না; এর পরিবর্তে আমরা 'XYZ' এর মতো নাম ব্যবহার করতে পারি?

বা কোনও বিভাগে যদি বড় সমস্যা হয় তবে আমি লিখতে পারি:

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

(উদাহরণ: ফাংশন এবিসি এখানে আসলে তিনটি কাজ করছে: ফুকে বাজানো, বোজকে বাদ দেওয়া এবং জর্ফকে ছাঁটাই করা Those এগুলি আলাদা আলাদা ফাংশন হতে পারে))

উপরের সমস্তটি লেখার পরে, আমি পুরো সংশ্লেষ অনুরোধটির উপর একটি সংক্ষিপ্ত মন্তব্য করতে পারি, এরকম কিছু:

এটি দুর্দান্ত একটি নতুন বৈশিষ্ট্য এবং এটি একবারে মার্জ হয়ে গেলে এটি সত্যই কার্যকর হবে। আপনি কী দয়া করে নামকরণটি ফাংশনটি পরিষ্কার করতে পারেন এবং আমি যে পৃথক মন্তব্যে মন্তব্য করেছি তাতে রেফ্যাক্টরিং পরিচালনা করতে পারি, এবং তারপরে আবার এটি আমাকে জানাতে বলুন? :)


এমনকি মার্জ করার অনুরোধটি সম্পূর্ণ কুকুরের প্রাতঃরাশের হলেও স্বতন্ত্র মন্তব্যগুলি সহজ হতে পারে। তাদের মধ্যে আরও কিছু থাকবে। তারপরে সংক্ষিপ্ত মন্তব্যটি বলতে পারে:

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

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

আমি পুরো পুনর্লিখনের জন্য মুলতুবি থাকা অনুরোধটি বন্ধ করছি।


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


12

আমি সত্যিই অবাক হয়েছি কেউ এটিকে গ্রহণ করেনি, তবে পোস্ট হওয়া নমুনা পর্যালোচনাতে কিছু সমস্যা আছে।

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

ভাল এবং খারাপ পয়েন্ট দেওয়ার ক্ষেত্রে ন্যায্য হওয়ার চেষ্টা করা কেবল অসম্ভবই নয়, সম্পূর্ণ আপনার ভূমিকা থেকেও দূরে।

আপনার পর্যালোচনা থেকে নেওয়া সামগ্রীর সাথে সংস্কারের উদাহরণ এখানে রয়েছে:

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

যদি আপনি এটির মতো পর্যালোচনাটি তৈরি করেন তবে পাঠক আপনাকে ব্যক্তিগতভাবে কতটা ঘৃণা করে না কেন, তিনি এখানে যা দেখতে পাচ্ছেন তা হ'ল পরবর্তী সময়ে যেগুলি উন্নতি করতে হবে তার নোটগুলি। কে? কখন ? কেউ গ্রাহ্য করে না. কি ? কেন? আপনার যা বলা উচিত।

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


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

8

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

আপনার দলের (ম্যানেজার) যোগাযোগ করা উচিত যে বাগ তৈরি করা গেমের একটি অংশ, তবে তাদের সন্ধান এবং ফিক্সিংয়ের ফলে প্রত্যেকের কাজ বাঁচবে ।

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

এটি সত্যই একটি সাংস্কৃতিক জিনিস এবং এটির জন্য প্রচুর আস্থা এবং যোগাযোগের প্রয়োজন। এবং ফলাফলগুলি নিয়ে কাজ করার সময়।


2
"কোড পর্যালোচনার পুরো বিষয়টি হ'ল সমস্যাগুলি খুঁজে পাওয়া" সত্য - তবে এর মধ্যে কোনটিই জিজ্ঞাসা করা প্রশ্নের উত্তর দেয় না।
অ্যারন হল

3
তিনি ভুল এক্স
ইকো

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

6

আমি মনে করি ইতিবাচক কাজটি হ'ল পর্যালোচনা করার আগে কোডিং মান সম্পর্কে কিছু sensক্যমত্য করা। অন্যেরা যখন ইনপুট থাকে তখন তাদের কাছে কিছু কেনার প্রবণতা থাকে।

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

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

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

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


4

এটি কঠোর হতে পারে, তবে পরিমাপ করার ভাল কিছু না থাকলে ভাল প্রতিক্রিয়া দেওয়ার বিষয়ে চিন্তা করবেন না।

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

আরেকটি বিষয়; একটি প্রতিরক্ষামূলক বায়ু থাকতে পারে কারণ তারা মনে করে যেন তাদের কোনও বক্তব্য নেই। কেন তাদের একে অপরের কোড পর্যালোচনা করতে দেওয়া হয় না? তাদের নির্দিষ্ট প্রশ্ন জিজ্ঞাসা করুন এবং তাদের জড়িত করার চেষ্টা করুন। এটি আপনাকে বনাম হওয়া উচিত নয়; এটি একটি দলের প্রচেষ্টা হওয়া উচিত।

  1. আপনার সময় থাকলে এই কোডটি সম্পর্কে আপনি কী পরিবর্তন করবেন?
  2. আপনি কোডবেসের এই অঞ্চলটি কীভাবে উন্নত করবেন?

এখনই এটি জিজ্ঞাসা করুন, এবং এখন থেকে ছয় মাস জিজ্ঞাসা করুন। এখানে একটি শেখার অভিজ্ঞতা আছে।

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


1
"পরিমাপ করার ভাল কিছু না হলে ভাল প্রতিক্রিয়া দেওয়ার বিষয়ে চিন্তা করবেন না" আমার বিশ্বাস করা খুব কঠিন যে তিনি অন্যান্য পেশাদার প্রোগ্রামারদের দ্বারা লিখিত কোড সম্পর্কে কমপক্ষে ইতিবাচক কিছু খুঁজে পাচ্ছিলেন না যখন এখনও সবার প্রত্যাশার উপর চাপ বাড়িয়েছেন কোড। এটি প্রশ্নের উত্তর দেয় না - এটি কেবল একটি বৈপরীত্য।
অ্যারন হল

2
@ অ্যারোনহল: "কোডটি কীভাবে লিখবেন না তা আপনার কোড একটি ভাল উদাহরণ হিসাবে কাজ করতে পারে"। এটা কি যথেষ্ট ইতিবাচক?
gnasher729

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

4

টেনশন ছাড়াই গুণমান

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

"সুসংবাদে খারাপ সংবাদ" স্যান্ডউইচ দেওয়ার পুরানো কৌতুকটি পিছিয়ে যেতে পারে। বিকাশকারীরা এটি কী তা দেখতে পাবে: এটি একটি স্ববিরোধিতা।

আপনার সংস্থাগুলি টপ-ডাউন সমস্যাগুলি

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

আপনার দলকে খুশি করতে আপনার কী করা দরকার তা আমাদের কেন জিজ্ঞাসা করুন? আপনি কি আপনার দল জিজ্ঞাসা বিবেচনা করেছেন?

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

মানের একটি সংস্কৃতি নির্মাণ

নীচের থেকে উপরে উঠতে মানের একটি সংস্কৃতিকে লালন করতে হবে।

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

আপনার দলের সাথে দেখা। আপনার দলে আপনি যে আচরণগুলি দেখতে চান তার নমুনা করুন: নম্রতা, শ্রদ্ধা এবং উন্নতির প্রতিশ্রুতি।

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

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

(যদি আপনার কিছু পুরানো কোড থাকে যা সম্পর্কে আপনি বিব্রত বোধ করেন তবে আপনি এটিকে বের করে দিতে পারেন, সবাইকে অকপট হওয়ার জন্য উত্সাহিত করে the )

সহযোগী কোড পর্যালোচনা

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

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

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

গুণ একটি ভ্রমণ

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

তবে যদি এটি কাজ না করে ...

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


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

4

আরও একটি দীর্ঘ উত্তরের জন্য দুঃখিত, তবে আমি মনে করি না যে অন্যরা এই ইস্যুটির মানবিক উপাদানটিকে পুরোপুরি সম্বোধন করেছে।

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

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

একইভাবে "আমি এটি অন্যভাবে করতাম ..." এটিও সংঘাতমূলক, কারণ বিকাশকারীটির তাত্ক্ষণিক চিন্তাভাবনাটি হ'ল " আমি এইভাবে এটি করেছি ... আপনি এটির সাথে একটি সমস্যা পেয়েছেন? " এবং আবার, এটি এর চেয়ে আরও দ্বন্দ্বপূর্ণ এটি হওয়া দরকার এবং আলোচনাটিকে কোডের উন্নতি থেকে দূরে সরিয়ে নেওয়া উচিত।

উদাহরণ:

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

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

ভাল:

  • "আমাদের কোডিং মানের সাথে মেলে এই পরিবর্তনশীলটির নাম পরিবর্তন করা দরকার।"

  • "পাস্কেলকেস হওয়ার জন্য এই ফাংশনটির নামের 'বি' কে মূলধন করা দরকার" "

  • "এই ফাংশনের কোডটি সঠিকভাবে ইন্টেন্ট করা হয়নি" "

  • "এই কোডটি পাওয়া কোডটির একটি সদৃশ ABC::XYZ()এবং এর পরিবর্তে সেই ফাংশনটি ব্যবহার করা উচিত।"

  • "আপনার চেষ্টা-সহ-সংস্থানগুলি ব্যবহার করা উচিত যাতে ত্রুটি দেখা দিলে এমনকি এই কাজটিতে জিনিসগুলি সঠিকভাবে বন্ধ হওয়ার গ্যারান্টিযুক্ত" " [আমি এখানে কেবল একটি লিঙ্ক যুক্ত করেছি যাতে জাভাজনহীন ব্যবহারকারীরা সম্পদ-সহ কী চেষ্টা করবেন তা জানতে পারে]

  • "আমাদের এন-পাথ জটিলতার মানগুলি পূরণ করার জন্য এই ফাংশনটি রিফ্যাক্ট করা দরকার" "

খারাপ:

  • "আমি মনে করি আপনি ভেরিয়েবলের নামটি আমাদের মানের সাথে মেলে এই কোডটি উন্নত করতে পারেন"

  • " সম্ভবত এই ফাংশনে জিনিসগুলি সঠিকভাবে বন্ধ করার জন্য রিসোর্স উইথ রিসোর্স ব্যবহার করা ভাল" "

  • " এই ফাংশনটির সমস্ত অবস্থার দিকে আরেকবার নজর দেওয়া বাঞ্ছনীয় হতে পারে। এর এন-পাথ জটিলতা আমাদের স্ট্যান্ডার্ডের সর্বাধিক অনুমোদিত জটিলতার চেয়ে বেশি is"

  • "আমাদের স্ট্যান্ডার্ডের 4 এর পরিবর্তে এখানে খালি স্থানগুলি কেন?"

  • "আপনি কেন এমন একটি ফাংশন লিখেছিলেন যা আমাদের এন-পাথ জটিলতার মানকে ভঙ্গ করে?"

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

'ভাল' বিবৃতিগুলি ভোঁতা, তবে তারা বিকাশকারীকে দোষ দেয় না, তারা বিকাশকারীকে আক্রমণ করে না, তারা মুখোমুখি হয় না এবং ত্রুটি কেন বিদ্যমান তা নিয়ে তারা প্রশ্ন করে না। এটি বিদ্যমান; এখানে ঠিক আছে। এগুলি অবশ্যই শেষের 'কেন' প্রশ্নের মতো লড়াইয়ের মতো নয়।


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

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

3

আপনি যে সমস্যাটি দেখছেন তা হ'ল: বিকাশকারীরা অসন্তুষ্ট যে তাদের কোড সমালোচিত। তবে সমস্যা নেই। সমস্যাটি হ'ল তাদের কোড কোনও ভাল নয় (আপনার কোডের পর্যালোচনাগুলি ভাল বলে ধরে নেওয়া যায়)।

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

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

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


+1 দেব সম্ভবত জানেন যে তার উপ-অনুকূল নামকরণের কার্যটি কী করে তবে যখন সে বাসের নীচে যায় তখন কী ঘটে?
মাউগ

3

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

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

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

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

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

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

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


বৈদ্যুতিন পরিবর্তে ব্যক্তিগত ক্ষেত্রে কোড পর্যালোচনার জন্য +1 - এটি সমালোচনা থেকে প্রান্তটি সরিয়ে নেবে
আলেকজান্দ্রবার্ড

3

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

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

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


1

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

দলের চেয়ে কোডের পর্যালোচনাগুলি করার দায়িত্ব বিতরণ করা এবং আরও ভাল উপায় হ'ল উদাহরণস্বরূপ বিকাশকারীদের তাদের কোডটি পর্যালোচনা করার জন্য কে বেছে নেওয়ার সুযোগ দিয়ে them এটি এমন কিছু যা আপনার কোড পর্যালোচনা সরঞ্জামটির সমর্থন করা উচিত।


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

1

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

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

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


1

অবস্থা ...

প্রোগ্রামাররা সমস্যা সমাধানকারী। কোনও সমস্যা বা ত্রুটির সাথে উপস্থাপিত হলে আমরা ডিবাগিং শুরু করার শর্তযুক্ত।

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

কম্পিউটার-উত্পাদিত ত্রুটি বার্তাগুলি খুব কমই প্রশ্ন করা হয় এবং কখনও ব্যক্তিগত মুখ হিসাবে নেওয়া হয় না।

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

উপসংহার ...

সুতরাং, আরও কোড-পর্যালোচনা আইটেমগুলিকে স্বয়ংক্রিয় সরঞ্জামগুলিতে সংহত করা যায়, সেগুলি তত ভাল প্রাপ্ত হবে।

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

উদাহরণ কোড পর্যালোচনা প্রতিক্রিয়া ...

এই কৌশলগুলি সংযুক্ত করে প্রদত্ত উদাহরণটির একটি পুনর্লিখন:

  • বিষয়:

    • গ্রন্থাগার \ ACME \ ExtractOrderMail Class।
  • মূল সমস্যা ...

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

0

বিদ্যমান কোডটি (যা বোঝার মতো বলে মনে হচ্ছে) সম্পর্কে আপনার কাছে যদি কিছু ভাল না থাকে তবে বিকাশকারীকে এটির উন্নতিতে জড়িত করার চেষ্টা করুন।

ক্রিয়ামূলক পরিবর্তন বা বাগফিক্সের প্যাচে, একই প্যাচটিতে বান্ডিলযুক্ত অন্যান্য পরিবর্তনগুলি (নামকরণ, রিফ্যাক্টরিং, যাই হোক না কেন) নেওয়া সহায়ক নয় helpful এটি এমন পরিবর্তন হওয়া উচিত যা বাগটি সংশোধন করে বা বৈশিষ্ট্য যুক্ত করে, অন্য কিছুই নয়।

কোথায় পুনঃনামকরনের, refactoring এবং অন্যান্য পরিবর্তন হয় নির্দেশিত, আগে বা পরে, একটি পৃথক প্যাচ তাদের না।

  • এটি বেশ কুৎসিত, তবে আমি অনুমান করি এটি আমাদের অন্য সমস্ত কদর্য কোডের সাথে সামঞ্জস্যপূর্ণ। আসুন পরে এটি পরিষ্কার করুন (আদর্শ হিসাবে কোনও কার্যকরী পরিবর্তন নয়))

    আপনি যদি পুনর্নির্মাণে যোগ দেন তবে তাদের সহায়তা করে এবং তাদের আপনার কোড পর্যালোচনা করতে দিন । এটি আপনাকে খারাপের চেয়ে ভাল কিছু কেন ভাল বলে মনে করার এবং গঠনমূলক সমালোচনাকে ভালভাবে গ্রহণ করার উদাহরণ দেখানোর সুযোগ দেয়।

যদি আপনাকে কোনও নতুন বৈশিষ্ট্যে ইউনিট পরীক্ষা যুক্ত করার দরকার হয় তবে, তারা মূল প্যাচে যায়। তবে আপনি যদি কোনও বাগ স্থির করে থাকেন তবে পরীক্ষাগুলি একটি পূর্ব প্যাচে যেতে হবে এবং পাস না করা উচিত যাতে আপনি বাগটি ঠিক করে ফিক্সটি প্রদর্শন করতে পারেন।

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

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


পৃথক প্যাচে থাকুক বা না থাকুক না কেন, একটি ভাঙ্গা উইন্ডো নীতিটি লেগ্যাসি কোড দিয়ে ইনস্টল করা দরকার, সেই নীতিটি "ভাঙা উইন্ডো ঠিক করে না" বা "কেবলমাত্র [পদ্ধতি / শ্রেণি / ফাইলগুলিতে?] যা বর্তমান প্যাচটি স্পর্শ করে" "। আমার অভিজ্ঞতায়, বিকাশকারীদের ভাঙ্গা উইন্ডোজ ঠিক করা থেকে বিরত রাখা দলের মনোবলের পক্ষে বিষাক্ত।
দেউই মরগান

1
সত্য, তবে তাদের এক-লাইন পরিবর্তন পর্যালোচনা পাস করার আগে মডিউলটিতে প্রতিটি ভাঙা উইন্ডো ঠিক করতে বাধ্য করা সমানভাবে বিষাক্ত।
বেহুদা

একমত! বাহিনীকে আরোপিত করার পরিবর্তে দলটি যে নীতিমালা ছিনিয়ে এনেছে তা হ'ল একমাত্র ধরণ যা কাজ করতে পারে, আমি অনুভব করি।
দেউই মরগান

0

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

মনে রাখবেন কোড পর্যালোচনাগুলি ভাল বা খারাপ কী তা কেবল আলোচনা নয়। এগুলি স্পষ্টতই "আমরা যারা ইয়ার্ডের কাঠি ব্যবহার করছি তারা", একটি "যিনি সিদ্ধান্ত নেন" এবং সুতরাং - সবচেয়ে कपटीভাবে - একটি পদমর্যাদায়।

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

আপনি যদি ঠিক থাকেন, কোনও উইগল রুম না করে, এটি নির্দেশ করা একটি আক্রমণ someone কেউ গণ্ডগোল করেছে। যদি না: আপনার অন্য এমবিএ যিনি এটি পান না। যেভাবেই হোক, আপনি খারাপ লোক হতে চলেছেন।

তবে, যদি পর্যালোচনাটি যা দেখছে এবং কেন , তা স্পষ্ট এবং একমত হয়েছে, তবে আপনার খারাপ লোক না হওয়ার একটা উপযুক্ত সুযোগ রয়েছে। আপনি দারোয়ান নন, কেবল প্রুফরিডার। এই চুক্তিটি পাওয়া [1] সমাধান করা একটি কঠিন সমস্যা। আমি আপনাকে পরামর্শ দিতে চাই, তবে এখনও এটির ঝুলন্ত আমি পাইনি ...

[1] কেবলমাত্র লোকেরা "ঠিক আছে" বলেছে বা এটি নিয়ে লড়াই করা বন্ধ করেছে বলে এটি সমাধান করা হয়নি। এক্স বলতে চাইছেন এমন কেউই আমাদের বুদ্ধি, অভিজ্ঞতা, মানব-শক্তি, সময়সীমা ইত্যাদির জন্য ব্যবহারিক নয়, এমনটি হতে চান না তবে এর অর্থ এই নয় যে এটি আসলে এক্স করার কোনও নির্দিষ্ট উদাহরণে আসে ...


-1

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

অন্যান্য লোকের কোডটি দেখতে শিক্ষামূলক। কোডটি এমন বিন্দুতে বোঝা যেখানে আপনি এর দুর্বল স্থানটি চিহ্নিত করতে পারেন এবং বোঝাতে হবে যে দুর্বলতা আপনাকে অনেক কিছু শিখতে পারে !

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


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

2
@ দেবীমোরগান আমি "নবীনদের কিছুক্ষণের জন্য পর্যালোচনা নেওয়া উচিত নয়" এর সাথে আমি একমত নই। Newbies পর্যালোচনাগুলি করা তাদের পক্ষে একটি কোড বেসের সাথে পরিচিতি অর্জনের একটি দুর্দান্ত উপায়। এই বলেছিল, তাদের একমাত্র পর্যালোচক হওয়া উচিত নয় ! এবং এটি বলেছিল, আমি যে কোনও ক্ষেত্রে বেশিরভাগ সময় কেবলমাত্র একজন পর্যালোচক থাকার বিষয়ে সতর্ক থাকি।
হতাশ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.