আমি কীভাবে নিজের কোডটি পর্যালোচনা করব? [বন্ধ]


177

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


34
আমি নিশ্চিত না আপনি কমপক্ষে কার্যকরভাবে পারেন না - আপনি কোডরেভিউ.স্ট্যাকেক্সেক্সঞ্জ.কম এ একটি পর্যালোচনা দলকে উত্সাহিত করতে পারেন যদি আপনার কোড মালিকানাধীন না হয়
জে.কে.

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

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

6
@ ইউরিজুবরেভ তবে আপনি যদি সপ্তাহ / মাস / বছর অপেক্ষা করতে না চান?
anatoliiG

12
আপনি একটি পরিবর্তিত মনের অবস্থায় আপনার কোডটি পর্যালোচনা করতে পারেন। অথবা আপনি একটি পরিবর্তিত মনের অবস্থাতে কোড করতে পারেন এবং আপনার স্বাভাবিক বিরক্তিকর কোনও কোড পর্যালোচনা ডেলিগেট করতে পারেন।
এসকে-যুক্তি

উত্তর:


92

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

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

আপনি অবশ্যই অন্যদের কোডও পর্যালোচনা করার সময় অবশ্যই এটি দরকারী


3
চেক-লিস্ট সম্পর্কিত, একটি নির্দিষ্ট বৈশিষ্ট্য থাকা অত্যন্ত দরকারী।
ওয়েন ওয়ার্নার

আমি চেকলিস্ট পছন্দ করি না। তারা সমস্যা, সমাধান এবং অন্যান্য অনেক বিষয় চিন্তা না করে পর্যালোচককে চেকলিস্টে মনোনিবেশ করে। সুতরাং আমি তাদের ন্যূনতম করতে পরামর্শ দিই।
বালোগ পাল

57

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

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

আপনি যদি নিম্নলিখিত প্রকল্পগুলিতে আপনার প্রকল্পের একটি নির্দিষ্ট কার্যকরী কোডের প্রতিক্রিয়া খুঁজছেন ...

  • সেরা অনুশীলন এবং নকশার প্যাটার্ন ব্যবহার
  • নিরাপত্তা বিষয়ক
  • কর্মক্ষমতা
  • অপ্রত্যাশিত ক্ষেত্রে সঠিকতা

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


2
এটি "আমার কোডটি কীভাবে পর্যালোচনা করা যায়" প্রশ্নের একটি দুর্দান্ত উত্তর এবং সাধারণভাবে একটি ভাল পরামর্শ (আমি অবশ্যই এটি করব) - তবে এখনও কিছুটা অফটোপিক।
ম্যাক্স ইয়াঙ্কভ

5
আমি সাধারণত একটি 5 শব্দ উত্তর পছন্দ করি না, কিন্তু এই এক ঠিক তাই অধিকার
ম্যাপেল_শ্যাফ্ট

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

3
পর্যালোচনাতে আসল মানটি কোডের টুকরো পাচ্ছে যা আপনি কখনও কখনও স্পষ্ট এবং অ-স্পষ্টত বা স্ব-ব্যাখ্যা বা এমনকি অ-যৌক্তিকরূপে সঠিক হিসাবে হাইলাইট করা কোনও সমস্যা উপস্থাপন করবেন না । code reviewযদি আপনি ইতিমধ্যে সচেতন না হন তবে সমস্যাটি হ'ল আপনি স্নিপেটটি পোস্ট করতে পারবেন না ।
জেডজেআর

3
@ জেডজেআর ওয়েল, আপনার প্রকল্পের কোডটি কি 100% পর্যালোচনা করা হয়? যদি হ্যাঁ, আপনার ইঞ্জিনিয়ারদের অনেক বেশি ফ্রি সময় আছে। আপনার ২ য় মন্তব্য হিসাবে, আমি যে কোডটিতে আপনি নিখুঁত বলে মনে করেন তার কোড পর্যালোচনা চেয়ে জিজ্ঞাসা করতে সমস্যা দেখছি না।
BЈовић

29

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

আমি দৃ approach়ভাবে আমার পদ্ধতির সুপারিশ।

PS তিনি মজা করছেন না।


27
আমার নামগুলি বিল, জেফ, বব এবং অ্যালিস এবং আমরা এই বার্তাটি অনুমোদন করি।
মাইকেল কে

22

আমি জে-কে-এর মতামতকে সম্মত করি যে একক ব্যক্তি পর্যালোচনা 2 ব্যক্তির পর্যালোচনার মতো দক্ষ নয়। তবে আপনি এটির সেরাটি চেষ্টা করতে পারেন:

স্বল্পমেয়াদী পর্যালোচনা (কোডটি তৈরি হওয়ার কিছুক্ষণ পরে)

আমি স্থানীয় সংগ্রহস্থল হিসাবে গিট ব্যবহার করছি। আমি যখনই কোনও বৈশিষ্ট্য শেষ করেছি বা কোনও বাগ স্থির করেছি তখনই আমি পরিবর্তনগুলি স্থানান্তরে স্থানান্তর করি।

আমি যাচাই করার আগে আমার কোডে আমি কী পরিবর্তন করেছি তা আবার তুলনা এবং পুনর্বিবেচনা:

  • ভেরিয়েবল / পদ্ধতি / শ্রেণিকামগুলি এখনও কী তাদের জন্য ব্যবহৃত হয় তা প্রতিফলিত করে?

দীর্ঘমেয়াদী পর্যালোচনা (কোডটি তৈরি হওয়ার 6 মাস পরে)

আমি নিজেকে জিজ্ঞাসা করি:

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

4
স্বল্পমেয়াদী পর্যালোচনা পরামর্শের জন্য +1। সময়ের সাথে বিভিন্ন পয়েন্টের মধ্যে সমস্ত পরিবর্তন দেখতে গিট ব্যবহার করা কোডটি পরিষ্কার করার ক্ষেত্রে সত্যই সহায়তা করতে পারে।
লিও

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

আমি এর মধ্যে কিছু করার চেষ্টা করি: প্রায় একমাসে আমার কোডটি পর্যালোচনা করুন। আমি 6 মাসের পর্যালোচনাও পছন্দ করি।
ডেভিড জি

18

প্রথমে আপনার কোডটি ব্যবহারিক হিসাবে দীর্ঘ হিসাবে সরিয়ে রাখুন। অন্য কিছু, কোডের কিছু অন্য অংশে কাজ করুন। একদিন পরেও আপনি কী খুঁজে পাবেন তা দেখে আপনি অবাক হয়ে যাবেন।

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

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


15

এই ডিবাগিং কৌশলটি একটি কোড পর্যালোচনা কৌশলতে রূপান্তর করুন: http://en.wikedia.org/wiki/Rubber_duck_debugging

কোডটি যদি নতুন হয়ে থাকে তার মাধ্যমে কাজ করার জন্য আপনাকে একটি সঠিক মানসিকতায় রাখার জন্য ধারণাটি বিস্ময়ের কাজ করে।


3
আমি বিশ্বাস করি হাঁসের কৌশলটি স্বাধীনভাবে একাধিক সাইটে উদ্ভাবিত হয়েছে; এখানে এটি সম্পর্কে একটি দুর্দান্ত গল্প: hwrnmnbsol.livejorter.com/148664.html
রাসেল বোরোগোভ

10
আজকাল, আমার রাবার হাঁস স্ট্যাক এক্সচেঞ্জ জিজ্ঞাসা-প্রশ্ন ফর্ম। একটি ভাল প্রশ্ন লেখার ইচ্ছাটি কৌতুক করে।
কেভিন রেড

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

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

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

13

অন্যান্য উত্তরে উল্লিখিত দরকারী সরঞ্জামগুলি ছাড়াও, আমি মনে করি কোনও কোড পর্যালোচনা করার সময় আপনার মানসিকতাকে এটি কার্যকর করে। এটি নির্বোধ, তবে আমি নিজেকে বলি: "আমি আমার কোড পর্যালোচনা টুপি রাখছি"। আমি QA সঙ্গে একই কাজ।

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

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


আমি মনে করি না যে এটি আপনার নিজের কোড পর্যালোচনা করা সম্ভব
13

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

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

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

তার অর্থ পুরানো কোড পর্যালোচনা করা, এবং নতুন কোড নয়। তার জন্য আপনার অভিজ্ঞতা অর্জন করা দরকার, যা দীর্ঘ সময় নিতে পারে।
BЈовић

9

এটি সাধারণ অনুভূতি বলে মনে হচ্ছে যে স্ব-পর্যালোচনা কার্যকর নয়। আমি দ্বিমত পোষণ করছি এবং আমি মনে করি স্বতঃ-পর্যালোচনা ভালভাবে করা গেলে অনেকগুলি বিষয়কে ধরতে পারে।

আমার কয়েক বছরের অভিজ্ঞতার জন্য এখানে টিপস রয়েছে:

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

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


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

আমি প্রায়শই প্রিন্টআউটগুলি ব্যবহার করি যখন আমার কিছু কোড পর্যালোচনা বা বিশেষত রিফ্যাক্টরের প্রয়োজন হয়। এটা আমার জন্য বিস্ময়কর কাজ করে।
yitznewton

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

8

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

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

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

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


7

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

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

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

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

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


5

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

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


5

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

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

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


1
প্যাট্রিক হিউজেস তার উত্তরে যেমন পরামর্শ দিয়েছেন, পর্যালোচনাকারীর পক্ষে দাঁড়ানোর জন্য রাবার ডাকির মতো প্রক্সি ব্যবহার করা মানসিকতাকে সহায়তা করে।
রাসেল বোরোগোভ

5

এটি 3 মাস দিন, তারপরে ফিরে যান এবং আপনার কোডটি দেখুন। আমি আপনাকে প্রতিশ্রুতি দিচ্ছি, যদি আপনি এটির সাথে কোনও ভুল খুঁজে না পান (বা এই জাঙ্কটি কে লিখেছেন এমন প্রশ্ন!) আপনি আমার চেয়ে ভাল মানুষ!


এটি আমার কৌশলও। 3 মাস যথেষ্ট দীর্ঘ যে আমি তাত্ক্ষণিকভাবে বুঝতে পারি না এমন কিছুর সরলকরণ বা ডকুমেন্টেশন করা দরকার, তবে যথেষ্ট সংক্ষেপে আমি এখনও মনে করি যে এটি সহজে সংশোধন করার জন্য যথেষ্ট কী চলছে।
এরিক পোহল

5

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


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

4

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

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

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


+1 এটি "আপনার বিড়ালের সাথে এটি ব্যাখ্যা করুন" পদ্ধতির পাশাপাশি চলবে। যখন আপনি সহকর্মী ব্যবহার করতে না পারেন তখন আপনার মস্তিষ্কের বিভিন্ন অংশ ব্যবহার করা সহায়ক হতে পারে।
বিএমইচ


3

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

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


3

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

http://en.wikipedia.org/wiki/Software_inspection

কয়েকটি বইও রয়েছে, যেমন গুগল স্ট্রাউস এবং ইবেনোর "সফটওয়্যার ইন্সপেকশন প্রসেস" এর জন্য।

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

http://www.javaspecialists.eu/


0

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


0

এটি আসলে এখনও কোনও উত্তরে রাখা হয়নি (তবে এটি একটি বিদ্যমান উত্তরের মন্তব্য হিসাবে যুক্ত করা হয়েছে)

ভাল রাত্রে ঘুমানোর পরে আপনার কোডটি পর্যালোচনা করুন, যেমন আপনি আগের দিন লিখেছেন কোডটি পর্যালোচনা করে দিন শুরু করুন।

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

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

যখন আমরা ঘুমাই, মস্তিষ্ক আসলে আমাদের যে সমস্যাগুলি হয় সেগুলি নিয়ে কাজ করা বন্ধ করে না, তাই আপনি সম্ভবত সেখানে একটি সমাধান নিয়ে আসতে পারেন, যদিও সেই সমাধানগুলি মাঝে মাঝে অদ্ভুত উপায়ে উপস্থাপন করতে পারে

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