আমি একজন অভিজ্ঞ বিকাশকারী, তবে অনেক কোড পর্যালোচনা করিনি। আমাকে পাইথনে লিখিত কোডটি পর্যালোচনা করতে বলা হচ্ছে তবে আমি পাইথনটি জানি না।
আমি জানি না এমন ভাষায় কোডটি পর্যালোচনা করা কি আদৌ কোনও ধারণা রাখে?
আমি একজন অভিজ্ঞ বিকাশকারী, তবে অনেক কোড পর্যালোচনা করিনি। আমাকে পাইথনে লিখিত কোডটি পর্যালোচনা করতে বলা হচ্ছে তবে আমি পাইথনটি জানি না।
আমি জানি না এমন ভাষায় কোডটি পর্যালোচনা করা কি আদৌ কোনও ধারণা রাখে?
উত্তর:
কোনও বোধ? হ্যাঁ. এমনকি যদি আপনি কোনও প্রোগ্রামিং ভাষার শব্দার্থবিদ্যা সম্পর্কে কিছুই জানেন না , আপনি এখনও অক্ষরগুলি পড়তে পারেন এবং অসামঞ্জস্যপূর্ণ ফর্ম্যাটিং, অনুপস্থিত মন্তব্যগুলি, খারাপভাবে নির্বাচিত শনাক্তকারী, স্পষ্ট নকল ইত্যাদি লক্ষ্য করতে পারেন can
আপনার সময়ের মূল্য শোধ করার জন্য যথেষ্ট জ্ঞান, বা যথেষ্ট জ্ঞান ? আমি নিশ্চিত নই. এটি আপনার অবস্থান, আপনার দলের কর্মপ্রবাহে কোড পর্যালোচনার গুরুত্ব এবং আরও কয়েকটি কারণের উপর নির্ভর করে যা আমরা যথেষ্ট পরিমাণে পরিমাপ করতে পারি না।
enumerate
)) আমি মনে করি আপনার মন্তব্যটি কেন নিজের পরিচিত নয় এমন একটি ভাষা পর্যালোচনা করার চেষ্টা করছেন তার একটি দুর্দান্ত উদাহরণ।
কোড রিভিউ স্ট্যাক এক্সচেঞ্জের নিয়মিত অবদানকারী হিসাবে , আমি ভাষা-অজ্ঞাত সম্পর্কিত সমস্যাগুলিতে ভোগা অনেক প্রশ্নের মুখোমুখি হয়েছি, উদাহরণস্বরূপ:
এবং তালিকাতে আরও অনেক কিছুই আছে. তবে, যদিও ভাষাটি আমার জানা দরকার নেই, আমি এখনও সেগুলি / পয়েন্টগুলি পর্যালোচনা করতে পারি।
আমাদের শীর্ষ ব্যবহারকারীদের কয়েকজনের ভাষাগুলিতে শীর্ষ উত্তর রয়েছে তারা হয় সক্রিয়ভাবে ব্যবহার করেন না, জানেন না। এমনকি আমার শীর্ষ দশের মধ্যে দু'টি ভাষায় আমি জানি না আমার মেশিনটি সংকলন / চালাতে পারে।
আমি এমনকি বলব যে এটি কারও সিউডো কোড পর্যালোচনা করার মতোই হবে। আপনি যে জিনিসগুলি বোঝেন তার সাথে প্রাসঙ্গিক বিষয়গুলি যতক্ষণ পর্যবেক্ষণ করতে এবং মন্তব্য করতে পারবেন ততক্ষণ আপনি ভাল থাকবেন, এবং এটি প্রাসঙ্গিক হয়ে উঠবে।
আমার মতে নীচের লাইনটি এখানে:
পাইথন না জানার নির্দিষ্ট পরিস্থিতির জন্য আমি বিশেষত এ থেকে সতর্ক থাকব । পাইথনের প্রচুর বাক্যাংশ এবং মানক অনুশীলন রয়েছে যা শেষ পর্যন্ত ভাল পাইথনকে অন্য ভাষাগুলির থেকে প্রত্যাশার চেয়ে খুব আলাদা দেখায়। (বস্তুত, আমি কিছু পাইথন উপর জোর দেয় আমার কোড চেহারা করেছ মনে ভাল মধ্যে অন্যান্য ভাষায় প্রায় অন্য উপায়, এবং।) বিয়ন্ড 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]
যদি আপনি এটি না দেখেন তবে আপনি পাইথনের বৈশিষ্ট্য এবং প্রতিমাগুলির সাথে পরিচিত নন।
তারা আপনাকে পাইথন কোডটি অবশ্যই পর্যালোচনা করতে বলেছে কারণ আপনি পাইথন জানেন না । একটি ম্যানেজমেন্ট তত্ত্ব আছে যে এটি একটি দলে "বোকা" থাকা দরকারী useful আমি আপনাকে খারাপ নাম বলছি না :) ধারণাটি এমন যে কোনও দল গ্রুপের চিন্তায় ভুগতে পারে এবং টানেলের দৃষ্টি তৈরি করতে পারে। এ থেকে বেরিয়ে আসার একটি উপায় হ'ল দলে এমন কাউকে অন্তর্ভুক্ত করা যাকে অন্য দলের সদস্যরা "বোকা" হিসাবে বিবেচনা করবেন, অর্থাত্, এমন কেউ যিনি বিষয়টি জানেন না। নিজেকে জানাতে আপনি প্রশ্ন জিজ্ঞাসা করবেন, এবং প্রশ্নগুলি এমন দৃষ্টিকোণ থেকে আসবে যা অন্য দলের সদস্যরা সম্ভবত বিবেচনা করেন নি।
আপনি পাইথন জানেন না, তাই পাইথন কোডারদের কাছে যা সাধারণ মনে হতে পারে তা আপনার কাছে অদ্ভুত বলে মনে হতে পারে। আপনি এমন একটি উন্নতির পরামর্শ দিতে পারেন যা টিম কখনই বিবেচনা করে না।
কোড পর্যালোচনা অবৈধ বানান এবং ভুল ফর্ম্যাটিং সহ ভেরিয়েবলগুলির সন্ধান সম্পর্কে নয়। আপনি যদি এই জাতীয় জিনিসগুলি খুঁজতে কোড পর্যালোচনা ব্যবহার করেন তবে আপনার সময় নষ্ট করা বন্ধ করুন এবং একটি সরঞ্জাম ব্যবহার করুন।
কোড পর্যালোচনা কোনও নকশাক প্রোগ্রামারদের নকশা উন্নতি এবং সাধারণ ভুল সনাক্তকরণ সম্পর্কে।
যেহেতু আমি সি ++ তে প্রোগ্রাম করি এবং পাইথনটি আমি যথেষ্ট পরিমাণে জানি না, তাই পাইথন কোডটি পর্যালোচনা করার সাহস করব না। তবে আমি একটি জাভা কোড পর্যালোচনা সাহায্য করতে পারে।
আপনি কোন ভাষায় প্রোগ্রাম করেছেন তা আপনি বলেননি, তবে কোড কোড পর্যালোচনায় আপনি কী কী অবদান রাখতে পারবেন তা আমি দেখতে পাই না, যদি আপনি ভাষাটি প্রোগ্রাম না করে থাকেন তা না জানলে।
কোড পর্যালোচনা (আসলে ত্রুটিগুলির সন্ধানের পাশাপাশি) কোড যুক্ত বা পরিবর্তন হওয়ার জন্য এক দলের সদস্যের থেকে অন্যের কাছে একটি ভাল ভূমিকা। আপনি যদি একজন অভিজ্ঞ বিকাশকারী হন তবে বেশিরভাগ কী চলছে তা বোঝার জন্য আপনার যথেষ্ট পড়া উচিত to
একটি দল নেতার দৃষ্টিকোণ থেকে একটি কোড পর্যালোচনা দেখুন: সেখানে এমন কেউ আছেন যা বুঝতে পারে যে অ্যাপ্লিকেশনটি কী করা উচিত (ব্যবসায়িক যুক্তি), সেখানে এমন কেউ আছেন যে কোডটি বুঝতে পারে (বাস্তবায়ন যুক্তি), এবং সম্ভবত বেশ কয়েকজন লোক সেখানে এই সমস্ত কীভাবে একসাথে খাপ খায় তার একটি ধারণা থাকা দরকার।
আপনার অবশ্যই একমাত্র পর্যালোচক হওয়া উচিত নয় , তবে আপনাকে পর্যালোচকদের একজন হওয়ার পক্ষে অনেকগুলি ভাল কারণ রয়েছে । কোনও ভাষা পর্যালোচনাতে উত্তর দেওয়া দরকার এমন অনেক প্রশ্নের পক্ষে ভাষা না জানা বাধা নয় not উদাহরণস্বরূপ, আমি এই সাইটে সি # ট্যাগের শীর্ষ 20 জন উত্তরদাতাদের মধ্যে একজন এবং আমি সি # তে হ্যালো ওয়ার্ল্ড সংকলিত এতটা পাইনি।
কিছু দক্ষতা আপনি ভাষা না জেনে ভাগ করতে পারেন:
এটি একটি নতুন পণ্য গতিতে আসা ভাল উপায়। আমি সবেমাত্র একটি নতুন দলে যোগ দিয়েছি, যেখানে আমি ভাষাগুলি বেশ ভালভাবে ব্যবহার করা জানি, তবে ডোমেনটি জানি না। কোড রিভিউগুলিতে অংশ নেওয়া আমাকে ডোমেনের দিকটি আরও ভালভাবে শিখতে সহায়তা করেছে, যদিও আমি এখনও এই লাইনগুলিতে খুব বেশি অবদান রাখতে সক্ষম হইনি।
আপনার ক্ষেত্রে, অন্য ভাষার পর্যালোচকরা যে মন্তব্যগুলি দেখছেন সেগুলি আপনি দেখতে পাওয়ায় একটি নতুন ভাষার মূর্খতা শেখার একটি ভাল উপায় হবে। এগুলি এমন ধরণের জিনিস যা অন্য যে কোনও উপায়ে শেখা খুব কঠিন, কারণ আপনার কোডটি অজগর বা না তা আপনার দোভাষী আপনাকে পাত্তা দিচ্ছেন না।
এটি একটি উইন-উইন পরিস্থিতি হতে পারে। আমি যতদূর বলতে পারি যে আপনি একটি বিশেষ মূল্যবান পর্যালোচক হতে পারেন কারণ আপনি জ্ঞান অভিশাপ দ্বারা কলুষিত হয়নি এমন পাইথন কুমারী ।
এটিকে এভাবে ভাবুন: যদি কোডটি যথেষ্ট স্পষ্ট হয় যে পাইথন কুমারী এমনকি এটি বুঝতে পারে, তবে এটি অবশ্যই ভাল কোড হবে। আপনার যে অংশগুলি বোঝার ক্ষেত্রে সমস্যা রয়েছে সেগুলি আবার কাজ বা আরও ভাল মন্তব্য করার প্রার্থী হতে পারে।
স্পষ্টতই, এটি আপনার পক্ষেও উপকারী হবে কারণ আপনি যেতে যেতে একটি নতুন ভাষা বেছে নেবেন। (আশা করি, আপনার দেওয়া কোডটি শিখার জন্য একটি ভাল উদাহরণ)) পাইথনের জন্য এই ব্যবস্থাটি বিশেষভাবে কাজ করা উচিত, এমন একটি ভাষা যা "এক্সিকিউটেবল সিউডোকোড" হিসাবে খ্যাতি অর্জন করে। যদি আপনি একজন অভিজ্ঞ বিকাশকারী হন তবে পাইথন প্রোগ্রামটির সংক্ষেপণ বুঝতে আপনার খুব বেশি সমস্যা হবে না।
সতর্কবাণীটি হ'ল আপনার ভাষা-নির্দিষ্ট গোচা থেকে উদ্ভূত বাগগুলি পাওয়া যাবে বলে আশা করা যায় না । তবে বাগ পর্যালোচনা কেবল কোড পর্যালোচনার উদ্দেশ্য নয়। যদি অন্য কিছু না হয় তবে আপনার সহকর্মীর কোডে কী ধরণের জিনিস চলছে তা সম্পর্কে সচেতন হয়ে আপনি জ্ঞান স্থানান্তরে অংশ নিচ্ছেন।
আমাকে একবার এমন প্রকল্পের নিরীক্ষণের জন্য বলা হয়েছিল যা একজন সাব কন্ট্রাক্টরারের হাতে নেওয়া হয়েছিল এবং গুরুতর পারফরম্যান্সের সমস্যা আছে বলে মনে হয়েছিল। আমি মোটামুটি দ্রুত প্রতিষ্ঠিত করেছি যে সমালোচনামূলক গুণকটি একটি একক পার্ল মডিউল ছিল। আমি এর আগে পার্ল জুড়ে কখনও আসিনি এবং সংস্থাটিতে এটির জানা আমাদের কেউ ছিল না, তাই আমি নিজে এটি বোঝার চেষ্টা শুরু করেছিলাম। আমি বিশদটি যতটা বুঝতে পেরেছি তা কখনই পাইনি, তবে এটি খুব স্পষ্ট ছিল যে এটি যে অ্যালগরিদমটি ব্যবহার করছিল সেটি ডেটা আকারে চতুর্ভুজ ছিল এবং এটিই সমস্ত সমস্যার কারণ ছিল। সুতরাং হ্যাঁ, আপনি যে ভাষায় পুরোপুরি বুঝতে পারছেন না সে ভাষায় কোড পড়ার বিষয়টি অবশ্যই ফলদায়ক হতে পারে। বোনাসটি হ'ল আপনি নতুন কৌশলগুলি শিখতে থাকুন।
কয়েকটি পর্যবেক্ষণ:
1) আপনি যদি অভিজ্ঞ বিকাশকারী হন তবে আপনি পাইথনটি বেছে নেবেন (বা কমপক্ষে আপনার যতটুকু জানা দরকার) কেবল এটির সাথে কাজ করে। এটি "করার দ্বারা শেখার" একটি কেস হবে। এটি প্রথমে শক্ত হবে তবে ভাষাটি বেছে নেওয়ার সাথে সাথে আরও সহজ হয়ে উঠবে। এটিকে অন্য ভাষা শেখার একটি সুযোগ হিসাবে ভাবেন (লোকেরা "নিমজ্জনের মাধ্যমে" প্রায়শই "বিদেশী" ভাষা শিখেন))
2) এসই সাইটে প্রচুর মূল্যবান লোক রয়েছে যারা "অ-প্রযুক্তিগত" তবে ব্যাকরণ, যোগাযোগ এবং যুক্তি সম্পর্কে দক্ষ। এই জাতীয় ব্যক্তিরা সাবজেক্টগুলিতে একটি "সতেজ চোখ" এনে দেয় এবং অন্যরা মিস করে এমন অনেকগুলি "কোনও ব্রেইনার" সমাধান করে না কারণ তারা উপাদানগুলিতে খুব "বাঁধা" থাকে। আপনার অ "প্রযুক্তিগত" (অর্থাত পাইথন নন) দক্ষতার জন্য যেমন যুক্তি এবং সামগ্রিক প্রোগ্রামিং বুদ্ধি সম্পর্কে আপনার পরামর্শ নেওয়া হচ্ছে।
এবং যদি আপনি প্রচুর কোড পর্যালোচনা না করেন তবে প্রায় কোনও কোড পর্যালোচনা অভিজ্ঞতা আপনাকে বিকাশকারী হিসাবে সহায়তা করবে। এটি আপনার দক্ষতা এবং প্রয়োজন এবং দলের মধ্যে একটি ভাল ম্যাচের মত দেখাচ্ছে।
এটি নির্ভর করে পর্যালোচনার লক্ষ্য কী; অর্থাত্ কার্যকর দ্বারা আপনি কী বোঝাতে চাইছেন ।
আপনি সম্ভবত কিছু সমস্যা সনাক্ত করতে সক্ষম হবেন। আপনি যদি তাদের সাথে পর্যালোচনা করতে পেরেছেন এবং তারা কেবল আশা করছেন যে আপনি এটি একবার দেখেছেন তবে কিছুকে সম্ভবত সহায়তা করা সম্ভব হবে এবং অবশ্যই কিছু নিশ্চিত হওয়া উচিত। কাঠামোর অনেক ধারণাগুলি ভাষার মধ্যে একই রকম। একজন বিশেষ করে মন্তব্যটি পর্যালোচনা করতে সক্ষম হচ্ছেন। এটি যথেষ্ট পরিমাণে মন্তব্য করা উচিত যে সেই নির্দিষ্ট ভাষার কোনও প্রোগ্রামার এখনও কী ঘটছে তার একটি ভাল অনুভূতি পেতে সক্ষম হওয়া উচিত। যদি তা না হয় ... তবে তাদের মন্তব্যের অভাব কোথায় তা আপনি তাদের বলতে পারেন। যদি এটি ভাল মন্তব্য করা হয় ... তবে আসলে কী চলছে তার কোডটি পড়ার চেয়ে আপনি কী চলছে তার টীকাগুলির মাধ্যমে আপনি তাদের কাঠামোর বেশ কিছুটা পর্যালোচনা করতে সক্ষম হবেন।
তবে আপনি সম্ভবত অন্যান্য অনেক সমস্যা সনাক্ত করতে পারবেন না। সুতরাং যদি তারা আপনার পর্যালোচনাটি এটি একটি ভালভাবে তৈরি / কার্যক্ষম কর্মসূচী না হয় তবে এটি হতাশ হবে of
ফলাফলটি আপনার করা সময়ের পক্ষে উপযুক্ত বা না তা মূলত প্রকল্পের উপর নির্ভর করে।