আমি জানি না এমন ভাষায় কোডটি পর্যালোচনা করা কী কার্যকর?


108

আমি একজন অভিজ্ঞ বিকাশকারী, তবে অনেক কোড পর্যালোচনা করিনি। আমাকে পাইথনে লিখিত কোডটি পর্যালোচনা করতে বলা হচ্ছে তবে আমি পাইথনটি জানি না।

আমি জানি না এমন ভাষায় কোডটি পর্যালোচনা করা কি আদৌ কোনও ধারণা রাখে?


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


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

9
নিবন্ধন করুন কাউকে আপনার কোড ব্যাখ্যা করা প্রায়শই সার্থক হয় এমনকি এটি কেবল একটি টেডি বিয়ার
কিলিয়ান ফট

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

উত্তর:


120

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

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


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

8
এছাড়াও আপনার যদি ভাল ডোমেইন জ্ঞান থাকে এবং কোডটি যথাযথভাবে নাম দেওয়া / মন্তব্য করা থাকে তবে আপনি এখনও উচ্চ স্তরে ভুল / ভুল বোঝাবুঝি / অনুপস্থিত কার্যকারিতা সনাক্ত করতে পারেন (যদিও সিনট্যাক্সের কারণে আপনি ভুলগুলি খুঁজে পেতে পারেন না)
ড্যান

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

2
@ ক্লেমেনডিকে বুলিয়ান প্রসঙ্গে অ্যাসাইনমেন্টগুলি পাইথনের (কমপক্ষে সাধারণত) সিনট্যাক্স ত্রুটি। পাইথনটি ভাল লিখেছেন বলে ফেনসপোস্ট ত্রুটিগুলি কম হওয়ায় সম্ভবত আপনি অ্যারে / তালিকা সূচকগুলির সাথে সরাসরি কাজ করেন নি। (আপনি যখন করেন তখনও এটি সাধারণত থাকে enumerate)) আমি মনে করি আপনার মন্তব্যটি কেন নিজের পরিচিত নয় এমন একটি ভাষা পর্যালোচনা করার চেষ্টা করছেন তার একটি দুর্দান্ত উদাহরণ।
jpmc26

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

59

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

  • ফর্ম্যাটিং, ইনডেন্টেশন
  • ব্যাপ্তি
  • loops
  • অপারেশন টাইপ করুন

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

আমাদের শীর্ষ ব্যবহারকারীদের কয়েকজনের ভাষাগুলিতে শীর্ষ উত্তর রয়েছে তারা হয় সক্রিয়ভাবে ব্যবহার করেন না, জানেন না। এমনকি আমার শীর্ষ দশের মধ্যে দু'টি ভাষায় আমি জানি না আমার মেশিনটি সংকলন / চালাতে পারে।

আমি এমনকি বলব যে এটি কারও সিউডো কোড পর্যালোচনা করার মতোই হবে। আপনি যে জিনিসগুলি বোঝেন তার সাথে প্রাসঙ্গিক বিষয়গুলি যতক্ষণ পর্যবেক্ষণ করতে এবং মন্তব্য করতে পারবেন ততক্ষণ আপনি ভাল থাকবেন, এবং এটি প্রাসঙ্গিক হয়ে উঠবে।


2
এমনকি আমি পিএইচপি প্রোগ্রামে একটি উত্তর লিখেছি । এটি সর্বাধিক উত্তর নয়, তবে আমি এখনও বজায় রেখেছি যে মূল লুপ ঘোষণাটি কুৎসিত।
হোসচ 250

4
আমি এটি # পর্যালোচনা, এটি লেখার এবং যা লিখেছি তা পর্যালোচনা সংমিশ্রনের মাধ্যমে সি # শিখেছি।
রাবারডাক

5
যদি আপনি পাইথন না জানেন, তবে আপনি ভাষায় ইনডেন্টেশনের গুরুত্বের প্রশংসা করতে পারবেন না ...
ফ্লোরিস

2
আপনার শীর্ষস্থানীয় উত্তরগুলির মধ্যে 2/10 সম্পর্কে আপনার জানা ভাষা নয় in কারা বলবেন যে ভোটাররা তাদের সম্পর্কে কিছু জানেন?
মার্টিন স্মিথ

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

44

সাধারণ উপদেশ

আমার মতে নীচের লাইনটি এখানে:

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

পাইথন নির্দিষ্ট বিবেচনা এবং উদাহরণ

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

আসুন একটি সহজ উদাহরণ তাকান। এই কোডটি নিন:

f = open('/home/me/something.txt')
try:
    content = f.read()
finally:
    f.close()

এই কোডটি নিয়ে সমস্যাটি দেখুন? আপনি যদি পাইথনের সাথে কাজ না করে থাকেন তবে সম্ভবত আপনি তা করেন না। সমস্যাটি হল পাইথনে অনেক পছন্দসই স্টাইল রয়েছে যা ঠিক একই জিনিসটি করে:

with open('/home/me/something.txt') as f:
    content = f.read()

এটি কনটেক্সট ম্যানেজার। আপনি কি জানেন যে তারা কী জন্য ভাল? আপনি কি জানেন যে এটি কখন ব্যবহার করা উপযুক্ত হবে? আপনার নিজের তৈরি করা কখন উপযুক্ত হবে জানেন? কোন? তারপরে আপনি সম্ভবত পাইথন পর্যালোচনা করার জন্য প্রস্তুত নন।

আরেকটি উদাহরণ তাকান।

def add_fifty(other_list):
   result = list()
   for i in other_list:
       result.append(i + 50)
   return result

x = range(10)
y = add_fifty(x)

সমস্যা দেখুন? সমস্যাটি এই পদ্ধতিটি সম্পূর্ণ অপ্রয়োজনীয় । যখন অপারেশনটি এই সহজ হয় তখন আপনার সম্ভবত সম্ভবত একটি বোঝা ব্যবহার করা উচিত:

x = range(10)
y = [i + 50 for i in x]

যদি আপনি এটি না দেখেন তবে আপনি পাইথনের বৈশিষ্ট্য এবং প্রতিমাগুলির সাথে পরিচিত নন।


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

1
@ gnasher729 "সত্যই, আমি মনে করি পাইথন যে বিষয়গুলিকে জোর দেয় তার ফলে আমার কোড অন্য ভাষাগুলিতে আরও ভাল দেখায়, অন্যভাবে নয়।" =) অন্যান্য ভাষাগুলিতে আমি কেবল জানি যা দূর থেকেও অনুরূপ হতে পারে N নেট এর লিনকিউ এবং জাভা 8 এর স্ট্রিম এস। রুবির কিছু থাকতে পারে এবং আমি নিশ্চিত যে কার্যকরী ভাষাগুলি কোনও কিছুর সাথে কাছে আসে। উদাহরণটির সাথে আমার বক্তব্যটি হ'ল আপনি পাইথনের সাথে পরিচিত না হলেও আপনি এটি করতে জানেন না, তাই আপনি "খারাপ" সংস্করণটিকে চ্যালেঞ্জ জানাতেও জানতেন না।
jpmc26

@ x = 1 .. 10; @y = মানচিত্র {$ _ + 50} @ x;
পাইপ

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

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

21

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

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


1
এটি আমার উত্তর ছিল। আমি কেবল এটি যোগ করেছি, যে কোনও দিন দেওয়া পাইথন রুটিন এবং পাইথন গুরুদের যে কোনও গ্রুপের সাথে ... সেই কোডটি গ্যারেজ।
dwoz

এবং প্রায়শই, "বোকা" কে কিছু বোঝানোর নিছক কাজ "দোহ!" কোনও বিশেষজ্ঞ "মুহুর্তের মুহুর্ত যখন তারা হঠাৎ বুঝতে পারেন যে কোডটি তার নির্দেশিত কাজটি করছে না বা কোনও কী প্রান্ত-কেস মিস করে। এটি জ্ঞানের বিস্তার শুরু করার জন্য একটি শালীন উপায়।
ট্রিপহাউন্ড

21

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

কোড পর্যালোচনা কোনও নকশাক প্রোগ্রামারদের নকশা উন্নতি এবং সাধারণ ভুল সনাক্তকরণ সম্পর্কে।

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

আপনি কোন ভাষায় প্রোগ্রাম করেছেন তা আপনি বলেননি, তবে কোড কোড পর্যালোচনায় আপনি কী কী অবদান রাখতে পারবেন তা আমি দেখতে পাই না, যদি আপনি ভাষাটি প্রোগ্রাম না করে থাকেন তা না জানলে।


23
সত্যিই, আপনার কাছে এমন একটি সরঞ্জাম রয়েছে যা ভাল নামের থেকে ভেরিয়েবলগুলিকে আলাদা করতে পারে? আমি একটি দেখার আগ্রহী হতে হবে।
Žদ্রো

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

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

3
@ সিমোনফারসবার্গ এটি যা বলছি তা নয়। এমনকি সিনিয়র প্রোগ্রামাররা একটি ভাল কোড পর্যালোচনায় কিছু শিখতে পারে। তবে যদি কেবলমাত্র মন্তব্যগুলি "আপনি এখানে একটি পরিবর্তনশীলকে ভুল বানান" বলে মন্তব্য করেছেন - তবে তারা তাদের সময় নষ্ট করছে।
BЈовић

2
@ না, না, এটি আপনি যে সবচেয়ে খারাপ খুঁজে পেতে পারেন তা নয়, তবে এটি "সবচেয়ে ক্ষুদ্রতম জিনিসটি এখনও সার্থক" বলে খুব কাছাকাছি।
ভ্যাটাইন

11

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

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


7

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

কিছু দক্ষতা আপনি ভাষা না জেনে ভাগ করতে পারেন:

  • ডোমেইন সংক্রান্ত জ্ঞান.
  • সাধারণ অবজেক্ট-ভিত্তিক নকশা।
  • সাধারণ প্রোগ্রামিং অনুশীলন: নামকরণ, স্পষ্টতা এবং আরও অনেক কিছু।

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

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


5

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

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

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

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


2

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


1

কয়েকটি পর্যবেক্ষণ:

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

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

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


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

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

0

এটি নির্ভর করে পর্যালোচনার লক্ষ্য কী; অর্থাত্ কার্যকর দ্বারা আপনি কী বোঝাতে চাইছেন ।

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

তবে আপনি সম্ভবত অন্যান্য অনেক সমস্যা সনাক্ত করতে পারবেন না। সুতরাং যদি তারা আপনার পর্যালোচনাটি এটি একটি ভালভাবে তৈরি / কার্যক্ষম কর্মসূচী না হয় তবে এটি হতাশ হবে of

ফলাফলটি আপনার করা সময়ের পক্ষে উপযুক্ত বা না তা মূলত প্রকল্পের উপর নির্ভর করে।

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