কীভাবে কোড পর্যালোচনা দক্ষতার সাথে পর্যবেক্ষণ করবেন?


28

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

আমার কাছে দেখে মনে হচ্ছে একক মন্তব্য ছাড়া কোড পর্যালোচনা বলে কোনও জিনিস নেই।

একটি দল নেতৃত্ব হিসাবে আমি কীভাবে সঠিকভাবে পর্যবেক্ষণ করতে পারি যে আমার দলটি একটি সঠিক কোড পর্যালোচনা প্রক্রিয়া করছে এবং আমি কীভাবে তাদের প্রক্রিয়াটির সুবিধাগুলি আরও বাড়িয়ে তুলতে সাহায্য করতে পারি?

হালনাগাদ

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

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

সুতরাং আমি কপির পেস্টগুলি সনাক্ত করতে "jscpd" নামে একটি লাইব্রেরি যুক্ত করেছি। বিল্ডটি অনুলিপি অনুলিপি করা হয়েছে। এটি অবিলম্বে একটি সমস্যা নির্মূল করে।

পরবর্তী আমরা কোডেক্লিমেট চেষ্টা করতে যাচ্ছি।

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

সাধারণভাবে মনে হয় যে আমরা সঠিক দিকে যাচ্ছি।


1
আপনি টিএফএস ব্যবহার করছেন এমন ক্ষেত্রে আপনি কোড পুনর্নবীকারের নাম অন্তর্ভুক্ত করতে এটি কনফিগার করতে পারেন।
কৃষ্ণান্দু সরকার


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

3
আপনি কি এই পর্যালোচনাগুলির মধ্যে উপস্থিত হন? এক সময় নেমে আসার সময় হতে পারে? কয়েকটি জিনিস নিজেই চিহ্নিত করুন এবং প্রতিটি পর্যালোচককে স্বতন্ত্রভাবে জিজ্ঞাসা করুন তিনি কেন সে সবগুলি মিস করেছেন?
মাউগ

2
আপনি কি দেখতে পান যে সুস্পষ্ট সমস্যাগুলি পর্যালোচনা দ্বারা চিহ্নিত করা যায় নি? আপনি কি (গুরুত্বপূর্ণ) মন্তব্য যুক্ত করবেন?
usr ডিরেক্টরির

উত্তর:


70

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

তবে আমার অভিজ্ঞতায় আমি সন্দেহ করি যে এখানে আরও কিছু চলছে।

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

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

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

একটি ভাঙ্গা প্রক্রিয়াটির উপরে একটি সরঞ্জাম জোর করা প্রক্রিয়াটিকে আরও ভাল করে তুলবে না।


5
এই (এবং আরও অনেকের!) সমস্যার সঠিক পদ্ধতির জন্য +1
অলিভিয়ার ডুলাক

7
শেষ বাক্যটির জন্য +1। এটি এমন কিছু যা প্রায় কেউই বুঝতে পারে না তবে এটি অত্যন্ত গুরুত্বপূর্ণ।
জনয়ে

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

43

আমি এক-লাইনের উত্তর পোস্ট করা পছন্দ করি না তবে এটি যথাযথ বলে মনে হয়:

প্রক্রিয়া অংশগ্রহণ করুন।


15
আমি এক লাইনের উত্তরও অপছন্দ করি। ভাগ্যক্রমে আপনি দুটি লাইন নিয়েছিলেন - এবং আমার উত্তর। +1
মওগ

1
আমি. তবে যখন আমি না থাকি .. জিনিসগুলি ঘটে। ঠিক এটাই আমাকে প্রথম স্থানে সন্দেহজনক করে তুলেছিল। আমি অন্যের পর্যালোচনা পুনরায় পর্যালোচনা শুরু, এবং খারাপ জিনিস খুঁজে।
লোক মোগ্রাবি

6

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


2

কয়েকটি জিনিস (সত্যি বলতে, এগুলির বেশিরভাগ উত্তর জুড়ে রয়েছে তবে আমি সেগুলি এক জায়গায় রাখতে চাইছিলাম)

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

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

  • প্রক্রিয়াটি কী করতে চায় তা দলের সাথে আলোচনা করুন। যদি তারা এটির কোনও বিন্দু না দেখেন (যেমন শুরুতে হতে পারে) তার সুবিধার প্রমাণ হিসাবে উত্পাদন সংক্রান্ত সমস্যা এবং প্রয়োজনীয় সংশোধনগুলি ব্যবহার করুন

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


2

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

  • কোডটি যা করার কথা বলেছিল তা করে তাই এটি প্রয়োজনীয়তা পূরণ করে তা পরীক্ষা করে দেখুন

  • বিকাশকারীরা একটি সুসংগত শৈলীতে কোডিং করছে তা নিশ্চিত করার জন্য কোড শৈলী

  • অনুকূলকরণ যেমন ফাংশন কলগুলির সংখ্যা

  • আর্কিটেকচার এবং পুনরায় ব্যবহারযোগ্যতা

  • ব্যতিক্রম হ্যান্ডলিং এবং লগিং

  • কারিগরি debtণ: বিকাশকারী যখন এটির উপর কাজ শুরু করেছিলেন তখন তার চেয়ে ভাল অবস্থার কোড

  • কোডটি দেখুন এবং তৈরি করুন (আমি এটি দরকারী মনে করি তবে আমার দলের অন্যান্য ডেভসরা পরীক্ষকদের কাছে এটি ছেড়ে যেতে পছন্দ করে)

  • একটি স্বয়ংক্রিয় সরঞ্জাম ব্যবহার করে (আমি সোনারকিউব ব্যবহার করেছি )। কোডের উন্নতি যেমন পরীক্ষার কভারেজ বাড়ানো আপনার বিল্ড প্রক্রিয়ায় এটি সংহত করা আমি দরকারী মনে করি

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

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

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


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

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

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

এবং এখানে আমি ভেবেছিলাম যে কোড পর্যালোচনা কোডটি ডিজাইনের নথির সাথে মিলেছে কিনা তা পরীক্ষা করে জড়িত: - /
মাওগ

1
ধন্যবাদ, এরই মধ্যে আমি এটি করছি। এটি কীভাবে প্রভাবিত হয়েছিল আমি কয়েক সপ্তাহের মধ্যে আপডেট করব।
লোক মোগ্রাবি

0

আমি আপনাকে বলব কীভাবে আমার দল কোডের পর্যালোচনাটিকে তার কার্যপ্রবাহে দ্রুত সংহত করে।

প্রথমে, আমি আপনাকে একটি প্রশ্ন জিজ্ঞাসা করি। আপনি কি কোনও সংস্করণ নিয়ন্ত্রণ ব্যবস্থা ব্যবহার করছেন (যেমন মার্কারি, গিট)?

যদি আপনার উত্তর হ্যাঁ হয়, তবে এগিয়ে যান।

  1. প্রত্যেকে মাস্টার ব্রাঞ্চে (ট্রাঙ্ক) কোনও কিছুর (এমনকি ছোট ফিক্সগুলি) চাপানো থেকে নিষেধ করুন *
  2. পৃথক শাখায় নতুন বৈশিষ্ট্য (বা সংশোধন) বিকাশ করুন
  3. যখন বিকাশকারীরা বিশ্বাস করেন যে শাখাটি মাস্টারে সংহত হওয়ার জন্য প্রস্তুত, তারা একটি "টান অনুরোধ" তৈরি করবে
  4. প্রত্যেককে তাদের নিজের অনুরোধের অনুরোধটি মার্জ করতে নিষেধ করুন *
  5. অন্য বিকাশকারীকে টানার অনুরোধটি মূল্যায়ন করুন এবং নতুন কোডটি পর্যালোচনা করুন
  6. কোডটি যদি পর্যালোচনাটি পাস করে, ভাল, টানার অনুরোধটি একত্রিত করা যেতে পারে, অন্যথায় সংশোধন করা যেতে পারে
  7. কোড পর্যাপ্ত পরিপক্ক হওয়া পর্যন্ত step ধাপ পুনরাবৃত্তি করুন (শুরু না করেই করা যেতে পারে) **
  8. সম্পন্ন হয়ে গেলে, আপনার সমস্ত নতুন কোড একটি নাম সহ কারও দ্বারা পর্যালোচনা করা হবে (কমপক্ষে সংক্ষেপে)

এখন আপনার কার্যপ্রবাহে একটি সুনির্দিষ্ট পয়েন্ট রয়েছে যেখানে কোড পর্যালোচনা সম্পন্ন হয়।

সেখানে অভিনয়।

* সার্ভার-সাইড হুক সহ স্বয়ংক্রিয়ভাবে প্রয়োগ করা যেতে পারে

** এই পদ্ধতিটি পুরোপুরি গিটহাব দ্বারা সমর্থিত (অন্যদের মধ্যে), এবং এটি ব্যবহার করা মোটামুটি সহজ, এটি পরীক্ষা করে দেখুন


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

1
@ PaŭloEbermann- কে দেখতে পাচ্ছি। আমি আশঙ্কা করছি এটি পরিস্থিতিতে একটি অনিবার্য পরিণতি, আপনার প্রয়োজনীয় সমস্ত কিছু করার জন্য যদি আপনার পর্যাপ্ত সময় না থাকে তবে মানের ক্ষতি হবে, এক উপায় বা অন্য। সিল, যদি এটি "কখনও কখনও" কাজ না করে, তার মানে এটি "বেশিরভাগ সময়" কাজ করে, না?
অ্যাগোস্টিনো

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

আমার অনুরূপ নিষেধ ছিল, এবং এটি বলা বাহুল্য: উন্নয়ন প্রায় বন্ধ হয়ে গেল। এই নিয়ম পুরো 2 সপ্তাহ স্থায়ী হয়েছিল, তারপরে পরিচালকদের তাদের পরিকল্পনাগুলি সামঞ্জস্য করতে হয়েছিল।
BЈовић

@ BЈовић আপনার দলের নিয়মিত কোড রিভিউ করছেন ছিল আগে ? এই কৌশলটি অনেকে বিশেষত ওপেন সোর্স ইকোসিস্টেম ব্যবহার করেন। এটি আপনার দলের পক্ষে কাজ করে নি তার অর্থ এই নয় যে অন্যের পক্ষে কাজ করতে পারে না।
অ্যাগ্রোস্টিনো

-2

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

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