আমার দলে, আমরা আনুষ্ঠানিক কোড পর্যালোচনা করি না। আমরা প্রায়শই জোড় জোড় প্রোগ্রামিং এবং ঘোরানো জোড়া যথেষ্ট তা ভাবার প্রবণতা।
আমাদের কি আনুষ্ঠানিক কোড পর্যালোচনা করা বিবেচনা করা উচিত? সুবিধা কি হবে?
আমার দলে, আমরা আনুষ্ঠানিক কোড পর্যালোচনা করি না। আমরা প্রায়শই জোড় জোড় প্রোগ্রামিং এবং ঘোরানো জোড়া যথেষ্ট তা ভাবার প্রবণতা।
আমাদের কি আনুষ্ঠানিক কোড পর্যালোচনা করা বিবেচনা করা উচিত? সুবিধা কি হবে?
উত্তর:
আমরা কোড পর্যালোচনা কিছুটা আলাদা (সম্ভবত) করি।
আমরা সমস্ত প্রোগ্রামার একসাথে (প্রতি শুক্রবার) আসি এবং এক সপ্তাহের মধ্যে আমরা কী করেছি তা দেখুন। তারপরে আমরা কোন প্রকল্পগুলি পর্যালোচনা করতে চাই তা বেছে নিয়েছি যাতে প্রতিটি কাজ / অগ্রগতি প্রকল্পে কমপক্ষে একজন বা কয়েকজন লোক থাকে। তারপরে কয়েক ঘন্টা বা তার পরে আমরা যে পরিবর্তনগুলি হয়েছিল সেগুলি লক্ষ্য করি, ভুলগুলি অনুসন্ধান করি, অন্যান্য প্রকল্পগুলি কীভাবে কাজ করে ইত্যাদি ইত্যাদি পরে আমরা আলোচনা করব, ভুলগুলি বলব, এটি কীভাবে করা উচিত (আমরা বাগগুলি ঠিক করি না আমরা কেবল সেগুলি দেখিয়েছি) এবং FIXME সহ কোডটি স্প্যাম করুন)। সব মিলিয়ে এটি আমাদের জন্য সাধারণত (10 প্রোগ্রামার) প্রায় 2 ঘন্টা সময় নেয়।
অনুকূল:
উল্লিখিত হিসাবে জোড় প্রোগ্রামিংয়ের বিরুদ্ধে আমার যা আছে তা নিশ্চিত (এটি কেবলমাত্র আমার ব্যক্তিগত মতামত) যে টিম যত দীর্ঘ একসাথে কাজ করে - তত দ্রুত তা পায়।
আমি আশা করি এটি কিছু চিন্তাভাবনা নিয়ে আসবে। শুভকামনা।
আপনি এই বিনামূল্যে বইয়ের মাধ্যমে পড়তে চাইতে পারেন:
http://smartbear.com/best-kept-secrets-of-peer-code-review/
অবশ্যই, তাদের কাছে ধাক্কা দেওয়ার মতো পণ্য রয়েছে তবে সেখানে এখনও প্রচুর দরকারী তথ্য রয়েছে।
জুড় প্রোগ্রামিং কীভাবে কিছু একই সুবিধা প্রদান করে তাও তারা আলোচনা করে, তাই আপনি যদি জুটি প্রোগ্রামিং করেন তবে আপনার কোডের পর্যালোচনা মোটেই প্রয়োজন পড়বে না।
আপনার পরিবেশে পর্যালোচনা করার ক্ষেত্রে আমার খুব বেশি অভিজ্ঞতা নেই। আমরা এখানে দম্পতি সফটওয়্যারটির জ্ঞান ছড়িয়ে দেওয়ার জন্য কোড রিভিউ করি, ভুলগুলি বাছাই করার জন্য আরও এক জোড়া চোখ রাখি এবং সফ্টওয়্যারটি আমাদের কোডিং গাইডলাইনগুলিতে আটকে আছে কিনা তা পরীক্ষা করার জন্য একটি আনুষ্ঠানিক পয়েন্ট আছে আমরা এখানে প্রচুর জুড়ি প্রোগ্রামিং করি না we ।
প্রথম 2 পয়েন্টগুলি জুটি প্রোগ্রামিং দ্বারা মোটামুটি ভাল coveredাকা রয়েছে, তৃতীয়টি জোড়ের উপর খুব নির্ভরশীল এবং একটি আনুষ্ঠানিক কোড পর্যালোচনা থেকে আরও ভাল হতে পারে।
আপনার কি ফর্মাল কোড রিভিউ করা উচিত?
দ্রুত পার্শ্ব নোট হিসাবে, জুটিবদ্ধ প্রোগ্রামিংয়ের সাথে আমার খুব কম অভিজ্ঞতা আছে তবে আমি বিশ্বাস করি না যে পর্যালোচনাগুলি এই পদ্ধতির সাথে বিরোধ করবে।
আমি কোড রিভিউ দুটি ফর্ম পরিচয় করিয়ে দিতে হবে:
পিয়ার কোড পর্যালোচনা
জোড়যুক্ত প্রোগ্রামিং যদি আপনার জন্য কাজ করে তবে কোডে আর একটি সেট পেতে এটি কখনও ব্যাথা করে না । এর সুবিধাগুলি হ'ল:
পিয়ার কোড পর্যালোচনা (আমার বিশ্বে) প্রতিটি জমা দেওয়ার আগে পরিচালিত হয় । জুটিযুক্ত প্রোগ্রামিং বিশ্বে এটি কীভাবে বহন করে, আমি নিশ্চিত নই।
গ্রুপ কোড পর্যালোচনা
এগুলি পিয়ার কোড পর্যালোচনার চেয়ে কম ঘন ঘন ঘটে। আমি অনানুষ্ঠানিক কোড পর্যালোচনার জন্য একটি সভা কক্ষে সাধারণত আমার গোষ্ঠীটি (বা আমার গোষ্ঠীর একটি সাবসেকশন) টানতাম। আমি সাধারণত এমন কোনও কোড বেছে নেব যা টিমের এলোমেলো ব্যক্তির দ্বারা লেখা ছিল, পছন্দসই কোড যা স্ক্র্যাচ থেকে লেখা ছিল - রিফ্যাক্টর কোড টাটকা কোডের মতো সমস্যা প্রকাশ করে না।
নিশ্চিত সবাই জানে এই রিভিউ হয় তা নিশ্চিত করুন না emberass বোঝানো এবং কর্মক্ষমতা প্রতিফলিত ব্যবহার করা হয় না। এগুলি কেবল আপনার দলের কোডিং মানগুলি অনুসরণ করা এবং প্রত্যেককে আরও ভাল প্রকৌশলী হতে সহায়তা করার জন্য এবং যাতে দলের জন্য আরও কার্যকর হয়ে ওঠে (এবং আরও ক্যারিয়ার বৃদ্ধি ইত্যাদি ইত্যাদি) - এবং নিশ্চিত হয়ে নিন যে এটি পর্যালোচনার আসল উদ্দেশ্য is । কেউ যদি অন্যরকম কিছু সন্দেহ করেন তবে এগুলি আশঙ্কা এবং কম উত্পাদনশীল হবে।
আমি কিছুটা অনানুষ্ঠানিকভাবে কোডটি দিয়ে যাব, রুমের যে কোনও ব্যক্তিকে তাদের থাকতে পারে এমন বিভিন্ন সমাধান বা যুক্তিযুক্ত ত্রুটিগুলির মুখোমুখি হতে দিয়ে ting এটি সেখানে বসে থাকা নেতার চেয়ে সবাইকে কীভাবে কোডিং করা উচিত তা বলার চেয়ে একটি গ্রুপ আলোচনার মূল বিষয়।
আমি খুঁজে পেয়েছি যে এই দুটি পদ্ধতির নিয়োগের ফলে ইঞ্জিনিয়াররা অগ্রগতির পাশাপাশি বাগের সংখ্যাও কমিয়ে আনার হার বাড়ায় :)
আমি অনুশীলনে কখনও জোড় প্রোগ্রামিং করিনি (কেবল এটির জন্য আশা করা হয়েছিল), তাই আমি দুটি অনুশীলনের সাথে সরাসরি তুলনা করতে পারি না। তবে আমি আনুষ্ঠানিক কোড পর্যালোচনা দিয়ে আমার অভিজ্ঞতা বলতে পারি।
আমি পূর্ববর্তী প্রকল্পে, উত্তরাধিকার কোডে আনুষ্ঠানিক কোড পর্যালোচনার নেতৃত্ব দিতাম। প্রকল্পটি পুরো বিশৃঙ্খলায় ছিল এবং ব্যবস্থাপনার ফলে বিশৃঙ্খলা সৃষ্টি হওয়ার আশায় যে কোনও উদ্যোগকে স্বাগত জানানো হয়েছিল। তখন আমি ভেবেছিলাম আনুষ্ঠানিক কোড পর্যালোচনা একটি ভাল ধারণা was আমরা বাগগুলি খুঁজে পেয়েছি এবং আমরা দেখেছি যে সতেজ লিখিত কোডের মানটি পুরানো কোডের তুলনায় উল্লেখযোগ্যভাবে ভাল। আমি এটি প্রমাণ করার জন্য পরিসংখ্যান, বাগের সংখ্যা ইত্যাদি সংগ্রহ করেছি।
আমরা গড়ে প্রতি সপ্তাহে একটি অধিবেশন করেছি, এতে 3-5 জন জড়িত। প্রতিটি সেশনে জনপ্রতি (প্রস্তুতি সহ) প্রায় 3-4 ঘন্টা সময় লেগেছিল এবং 200-300 লাইনের কোড (এলওসি) * পর্যালোচনা করেছেন। এই গতিতে, 6 মাসেরও বেশি সময়কালে আমরা প্রায় 50K এর মধ্যে প্রায় 5K এলওসি পর্যালোচনা করতে পেরেছি।
পূর্ববর্তী ক্ষেত্রে, আমি মনে করি এটি খুব ব্যয়বহুল ছিল। এই গতি সহ পুরো লিগ্যাসি কোডবেসটি পর্যালোচনা করতে আমাদের 5 বছর সময় লেগেছিল। OTOH এক সপ্তাহে একাধিক অধিবেশন থাকার কারণে সম্পদগুলি উন্নয়ন থেকে দূরে সরিয়ে নিয়ে যেত। অবশ্যই, এটি লিগ্যাসি কোড সহ সাধারণ দ্বিধা। এমনকি আনুষ্ঠানিকভাবে সমস্ত নতুনভাবে লিখিত কোড পর্যালোচনা করাতে অনেক সময় লাগবে, উল্লেখযোগ্যভাবে বিকাশকে ধীর করে তুলছে।
আমার উপসংহারটি হ'ল আনুষ্ঠানিক কোড পর্যালোচনাগুলি সর্বাধিক সমালোচিত অংশগুলিতে ফোকাস করে সদ্য লিখিত কোডে ভালভাবে সম্পন্ন হয়। বাকিগুলি আরও অনানুষ্ঠানিকভাবে আরও ভালভাবে পরিচালনা করা হয়, সম্ভবত জোড় প্রোগ্রামিংয়ের মাধ্যমে। এটি যদিও আমার বর্তমান মতামত, যা পরিবর্তন হতে পারে। আমি কোনও কোড পর্যালোচনা গুরু বা অন্য কিছু বলে দাবি করি না।
* এটি আনুষ্ঠানিক কোড পর্যালোচনার স্বাভাবিক গতি।
সাধারণ কোড পর্যালোচনার হার প্রতি ঘন্টা প্রায় 150 লাইন কোড। সমালোচনামূলক সফ্টওয়্যার (যেমন সুরক্ষা সমালোচনা এম্বেডড সফ্টওয়্যার) এর জন্য প্রতি ঘন্টা কয়েক শতাধিক লাইন কোড পরিদর্শন ও পর্যালোচনা ত্রুটিগুলি খুঁজে পেতে খুব দ্রুত হতে পারে।
উইকিপিডিয়া থেকে উদ্ধৃত (আমার দ্বারা জোর দেওয়া)।
কোড পর্যালোচনাগুলির অন্তর্নিহিত কারণগুলির কারণ হ'ল বিচ্ছিন্ন প্রোগ্রামারদের তাদের কোডটি দেখা এবং তাদের আলোচনা করা এবং এটি তাদের মানের সাথে খাপ খাইয়ে দেখা উচিত।
আপনি কোনও মানের সমস্যার উল্লেখ করেন না, সুতরাং আপনার দলটি ইতিমধ্যে তাদের জুড়ি প্রোগ্রামিংয়ের মাধ্যমে পর্যাপ্ত কোড পর্যালোচনা করছে বলে মনে হচ্ছে। অসাধারণ!
সঠিকভাবে সম্পন্ন জোড় প্রোগ্রামিং ফর্মাল কোড পর্যালোচনাগুলিকে অতিমাত্রায় পরিণত করে। তবে কয়েক সপ্তাহ চেষ্টা করুন এবং দেখুন কীভাবে এটি কার্যকর হয় তবে আমি সন্দেহ করি যে আপনি কোনও উন্নতি লক্ষ্য করবেন না।
মনে রাখবেন যে কোড পর্যালোচনাগুলি ক্লান্তিকর, ব্যয়বহুল প্রক্রিয়া এবং হালকাভাবে নেওয়া কিছু নয়। এটি মূলত আপনার প্রকল্পে একটি হ্যান্ডওভার প্রবর্তন করে যা ব্যয়বহুল এবং সমস্ত কিছু ধীর করে দেয় । পরে সমস্যাগুলি খোঁজার চেষ্টা না করে কোডটি প্রথমে সঠিক কিনা তা নিশ্চিত করা আরও ভাল।
হতে পারে. কোড পর্যালোচনা সময় নেয়। এগুলি কেবল তখনই সার্থক যখন পর্যালোচনা দ্বারা নেওয়া সময়টি প্রক্রিয়াটির অন্য একটি সময়ে সংরক্ষণ করা হয়। কোড পর্যালোচনা থেকে আপনি কোন সঞ্চয় আশা করেন? আপনি কি কোড পর্যালোচনা দ্বারা প্রতিরোধ করা যেতে পারে এমন অসুবিধা অনুভব করছেন?
আপনি যদি জোড় প্রোগ্রামিং করছেন, একটি কোড পর্যালোচনার প্রয়োজন যথেষ্ট পরিমাণে হ্রাস পেয়েছে তবে আপনি অবশ্যই পিয়ার পর্যালোচনা থেকে উপকৃত হবেন। এটি উপকারী হওয়ার জন্য এটি জুটির সদস্যদের চেয়ে সিনিয়র এবং আরও অভিজ্ঞ কোনও ব্যক্তির দ্বারা করা উচিত।
লাভ কি কি? আচ্ছা, আপনি যদি এটি না করার ঝুঁকি বিবেচনা করেন তবে এটি আরও ভাল হবে।
আমি আনন্দিত যে লোকেরা বলেছে যে কোড পর্যালোচনা সময়ের অপচয়। হ্যাঁ, এটি সময় নেয় না। হতে পারে এটি কোডে কোনও পরিবর্তন আনবে না তবে এর অর্থ এটি নষ্ট হচ্ছে ted আপনার বলার মতো বিষয়গুলি আপনার নিয়মিত আপনার ফায়ার সিস্টেমটি পরীক্ষা করা দরকার না কারণ এটি সময় নষ্ট।
আমার কাছে কোড রিভিউগুলির প্রধান সুবিধা হ'ল এটি লোকেদের আরও ভাল কোড লিখতে বাধ্য করে।
আপনার কোডটি পড়া এবং পর্যালোচনা করা হবে তা জেনে পড়া আপনাকে পাঠযোগ্যতা এবং আপনার কোডের "সঠিক" নেস সম্পর্কে আরও সচেতন করে তোলে। যখন আপনি জানেন যে কোডটি সরাসরি সংগ্রহস্থলটিতে চলেছে এবং অন্য কেউ এটি পড়বে না যতক্ষণ না তারা ত্রুটিমুক্তি না করে আপনি যদি ক্ষেত্রের নামগুলি পুনরায় ফ্যাক্টরিং না করার মতো জিনিসগুলি স্লিপ করতে না দেন, অব্যবহৃত পদ্ধতিগুলি তারা ঝুঁকির ক্ষেত্রে ঝুলিয়ে রাখেন might ইত্যাদি ফিচার করা