আপনি যে কোডটি বুঝতে পারছেন না সেটিকে কীভাবে পর্যালোচনা করবেন?


25

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

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

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

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

কখনও কখনও আমার পরামর্শ স্বাগত জানানো হয় কিন্তু অনেক বার আমি বললাম মত "এই এরকম ভাল উপায় এই বা" যে প্রযোজ্য নয় ভাষা " এই বা যে প্রকৃতির অনুরূপ কিছু ভাষা"।

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

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

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

আমি অনুমান করি যে কোনও পরামর্শদাতাকে নিয়োগ দেওয়া এবং আমাদের কিছু কোড পর্যালোচনা দেওয়ার জন্য সম্ভাবনা রয়েছে।

আপনি এই পরিস্থিতিতে আমি কি সুপারিশ করবেন।


6
আপনি তা খুঁজে পেতে হার্ড ভিবি কোড বুঝবেন কিভাবে? তুমি কি নিশ্চিত? আমাকে আবার জিজ্ঞাসা করুন আপনি কি নিশ্চিত! :)
অন্ধকার রাত

4
আপনার ভিবি শেখার আগ্রহ নেই? তাহলে আপনার সম্ভবত ভিবি কোডের কোড পর্যালোচনা সম্পাদনের কাজটি প্রত্যাখ্যান করা উচিত!
জ্যাকবিবি

উত্তর:


22

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

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


5
+1 আপনি যা শিখতে চান তার চেয়ে আপনার কী শিখতে হবে তা শিখুন। সাধারণত, উভয় শিখুন - ভাষা শেখা একটি দ্রুত জিনিস।
অর্বলিং করছেন

1
+1: "তাদের আপনাকে দেখিয়ে দিন" সম্পর্কিত বিষয়ে, এই নীতিগুলি ব্যাখ্যা করার জন্য তাদের কাছে কিছু বই আছে বা তাই যেখানে এই নীতিগুলি ব্যাখ্যা করা হয়েছে, তা জিজ্ঞাসা করার জন্য হালকা উপায় হল যাতে আপনিও শিখতে পারেন। এটি একই, কেবল আক্রমণাত্মক। এবং মানুষ আক্রমণ করা পছন্দ করে না।
জোরিস মেজ

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

1
@ জেফ ও: আমি ভদ্রতা সর্বদা একটি সুযোগ হিসাবে বিবেচনা করি না। কাজের পরিবেশে, আপনি যা চান তা পাওয়ার এটি একটি গুরুত্বপূর্ণ সরঞ্জাম is বা এমন কোনও বার্তা পাওয়া যাতে পাল্টা কঠিন। ভদ্র হওয়ার জন্য কেউ আপনাকে নাম বলতে পারে না ...
জোরিস

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

13

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

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


4
জেনিটর থিয়োরির জন্য +1 - আমি সাধারণত একটি "সাউন্ডিং বোর্ড" হিসাবে উল্লেখ করি, যে কেউ শুনতে এবং প্রশ্ন করতে পারে সে ভাল, এমনকি তারা যদি সেখানে দাঁড়িয়ে থাকে তবে এটি সহায়তা করে।
pm

1
কীটি সবাইকে কথা বলছে এবং একসাথে কাজ করে যাচ্ছে। আপনার দলকে ডিফেন্সিভের উপর রাখবেন না - নিজের পক্ষে কাজ করা প্রত্যেকের চেয়ে বেশি দ্রুত উত্পাদনশীলতা থামবে না।
IAbstract

7

সংক্ষিপ্ত সংস্করণ

  1. মনে রাখবেন যে কোড রিভিউগুলি রেভিউ এবং রিভিউকার উভয়েরই শেখার সুযোগ।
  2. প্রশ্ন হিসাবে বাক্যাংশ প্রতিক্রিয়া।
  3. জ্ঞানের অভাব আপনাকে প্রতিক্রিয়া জানাতে বাধা দেবেন না (যতক্ষণ আপনি # 2 করছেন)।
  4. "অগ্রাধিকার পর্যালোচনা" এড়িয়ে চলুন বা কমপক্ষে এটি পরিষ্কার করার চেষ্টা করুন যে তারা আপনার নিজের ব্যক্তিগত পছন্দ এবং তাদের অবশ্যই সম্মত হওয়ার দরকার নেই।
  5. "আর্মচেয়ার কোড পর্যালোচক" হওয়ার পরিবর্তে প্যাচগুলি জমা দেওয়ার চেষ্টা করুন।

দীর্ঘ সংস্করণ

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

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

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

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

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


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

7

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

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

এমন একটি ভাষায় নতুন বিকাশের নির্দেশনা যা আপনারা কেউই বুঝতে পারছেন না (সি #) আপনাকে অর্থ প্রদান করতে দীর্ঘ সময় নিতে যাচ্ছে না বিশেষত যদি আপনি প্রত্যেকে তাদের সাথে খারাপ অভ্যাসগুলি নিয়ে আসেন।

নকশায় মনোনিবেশ করুন (এটি উল্লেখ করা হয়েছে।) যদি তাদের বর্তমান কোডটি বজায় রাখতে সমস্যা হয়, তবে ভিবির জন্য কয়েকটি রিফ্যাক্টরিং সরঞ্জামগুলি দেখুন। মৌলিক অনুশীলনের অনেকগুলি একই রকম।


5

আপনি সত্যই জানেন না এমন স্টাফগুলি আপনি 'প্রুফ রিড' করতে পারেন তবে আপনি পর্যাপ্তভাবে এটি পর্যালোচনা করতে পারবেন না । আমি সি তে অত্যন্ত পারদর্শী, সি ++ আরও ভাল জানি তবে আমি সি # তে কিছু পর্যালোচনা করার স্বপ্ন দেখব না।

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

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

আপনি যে বিষয়টি বিবেচনা করতে চাইতে পারেন তা হ'ল বিভাগ ও দলীয় নেতৃত্ব স্থাপনের বিষয়ে আপনার কর্তাদের সাথে কথা বলা, যাতে আপনি আপনার ডোমেনে কার্যকর হতে পারেন, অন্য কেউ তাদের ডোমেনে কার্যকর থাকতে পারেন।

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


4

আপনি যে কিছু বুঝতে পারেন না তার জন্য দিকনির্দেশনা সরবরাহ করা অন্ধদের অন্ধদের নেতৃত্ব দেওয়ার অনুরূপ কারণ আপনি ভাল জানেন।

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

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


4

খারাপ খবরটি হ'ল কোড রিভিউগুলিতে কার্যকরভাবে অংশ নিতে আপনাকে ভিবি শিখতে হবে। কোনও ধরণের প্রকল্পে (উত্পাদনের জন্য প্রয়োজনীয় নয়) ভিবি ব্যবহার করাও সহায়ক হবে।

সুসংবাদটি হ'ল একবার আপনি এটিটি সম্পন্ন করার পরে, আপনি যা কিছু শিখেছেন তার কিছু কার্যকর হবে যখন আপনি সি # তে চলে যান।


9
ভিবি পড়ার বিষয়টি ভিবি জানার মতো নয় । পুরানো ভিবি কোডটি জাভায় পুনরায় লেখার জন্য আমি যথেষ্ট পরিমাণে ভিবি পড়েছি। আমি ভিবি লিখি (এবং পারি না)। আমি মনে করি পর্যাপ্ত ভিবি শেখার একটি মাঝারি ক্ষেত্র রয়েছে ।
এস .লট

1
@ এস.লট - ভালভাবে উচ্চারণযুক্ত এবং যে কোনও দুটি এলোমেলো ভাষার ক্ষেত্রে বেশ প্রযোজ্য।
টিম পোস্ট

2
@ S.Lott: আপনি জাভা এটা পুনর্লিখন যথেষ্ট ভাল ভিবি পড়তে পারেন, তাহলে আপনি কি ভিবি জানেন, এবং এটা লিখতে পারেন। আপনি যেতে যেতে জিনিসগুলি সন্ধান করতে পারেন, তবে এটি কেবল কয়েক সপ্তাহ অবধি স্থায়ী হবে।
ল্যারি কোলেম্যান

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

@ এস.লোট: ভুলে যাওয়ার সেরা চেষ্টা করেও আমি ভিবিকে বেশ ভাল জানি quite যদি ভিবির অদ্ভুততা / সীমাবদ্ধতাগুলি আপনার কাছে বিভ্রান্তিকর হয় তবে অন্য ভাষায় কোড পোর্ট করার সময়ও কি সমস্যা তৈরি হবে না?
ল্যারি কোলম্যান

3

পিয়ার পর্যালোচনা করার সময় আপনার যে চিন্তাভাবনা সর্বদা রাখা উচিত তা হ'ল:

"এই কোডটি চালিয়ে যাওয়ার জন্য আমি পরবর্তী একজন!"

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

আপনি যদি ভিবিতে প্রোগ্রাম করতে না পারেন, আপনি কোডটি বজায় রাখতে পারবেন না এবং আপনি পিয়ার রিভিউর হওয়ার যোগ্য নন।


1

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

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

আমি বিদ্যমান নির্দেশিকা বাছাই করে শুরু করব (আমি কোনও ভিবি নেট কোডিং মান জানি না তবে গুগল আমাকে দিয়েছে:

ব্যবহারের সরঞ্জাম মত stylecop জন্য ভিবি .net

এনডিপেন্ডের সাথে উত্সগুলি বিশ্লেষণ করুন (এতে সাইক্লোমেটিক জটিলতা, দৈর্ঘ্য, গভীরতা ইত্যাদি সম্পর্কে নিয়ম রয়েছে)

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


1

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

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

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

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


0

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

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


0

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

মনে করুন যে পাইথন 2-এ ইনপুট () ফাংশনটি ইনপুটটি ফেরত দেওয়ার আগে বাস্তবে এটি মূল্যায়ন করেছিল যাতে নন-স্ট্রিং ইনপুট ধরণের পার্স করা আরও সহজ হয়। তারপরে কোডটি সালিসি কোড এক্সিকিউশনটির পক্ষে ঝুঁকির __import__('os').execl('/bin/sh', '/bin/sh')মুখোমুখি হবে, ব্যবহারকারীকে লিনাক্স সিস্টেমের মতো পাইথন প্রক্রিয়াটিকে শেল হিসাবে রূপান্তরিত করার মতো কিছু প্রবেশ করতে দেয় । পরিবর্তে, কাঁচা_পিন্ড () ব্যবহার করা উচিত অপ্রয়োজনীয় ইনপুট ডেটা পেতে।

ভাষার সমস্ত বৈশিষ্ট্য সম্পর্কে অবগত না হয়ে একটি কোড পর্যালোচনা করার চেষ্টা কেবল আপনাকে ভাষার কোনও নির্দিষ্ট পদ্ধতি করার আরও ভাল উপায় উপলব্ধি করতে বাধা দিতে পারে না; এটি ক্ষতিকারক সুরক্ষা ত্রুটিগুলিও ডেকে আনতে পারে।

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