গত বছর কিছু গুরুতর মানের সমস্যার পরে, আমার সংস্থা সম্প্রতি কোড পর্যালোচনা চালু করেছে। কোড পর্যালোচনা প্রক্রিয়াটি দ্রুত নির্দেশনা বা কোনও ধরণের চেকলিস্ট ছাড়াই চালু করা হয়েছিল।
আর একজন বিকাশকারী এবং আমি যেখানে ট্রাঙ্কে মার্জ হওয়ার আগে সিস্টেমে করা সমস্ত পরিবর্তনগুলি পর্যালোচনা করতে বেছে নিয়েছি।
আমাদেরকে "টেকনিক্যাল লিড" হিসাবেও বেছে নেওয়া হয়েছিল। এর অর্থ আমরা কোডের মানের জন্য দায়বদ্ধ, তবে প্রক্রিয়াটিতে পরিবর্তনগুলি প্রয়োগ করতে, বিকাশকারীদের পুনরায় নিয়োগ, বা প্রকল্পগুলি পিছনে রাখার মতো আমাদের কোনও কর্তৃত্ব নেই।
প্রযুক্তিগতভাবে আমরা একীভূতিকে অস্বীকার করতে পারি, এটি আবার বিকাশে ফিরিয়ে দিয়েছি। বাস্তবে এটি আমাদের বসের দাবি যে এটি সময়মতো প্রেরণ করা উচিত প্রায় সর্বদা শেষ হয়।
আমাদের ম্যানেজার এমন একটি এমবিএ যিনি বেশিরভাগ আসন্ন প্রকল্পগুলির সময়সূচী তৈরির সাথে উদ্বিগ্ন। তিনি চেষ্টা করার সময়, আমাদের সফ্টওয়্যার ব্যবসায়ের দৃষ্টিকোণ থেকে কী করে তার প্রায় কোনও ধারণা নেই এবং কোনও বিকাশকারীর ব্যাখ্যা ছাড়াই এমনকি সবচেয়ে বেসিক গ্রাহক দাবিগুলি বোঝার জন্যও তিনি লড়াই করছেন।
বর্তমানে এসভিএন-তে বিকাশকারী শাখাগুলিতে উন্নয়ন করা হয়, বিকাশকারী তার প্রস্তুত বলে মনে করার পরে, তিনি আমাদের টিকিট সিস্টেমে টিকিটটি আমাদের ম্যানেজারকে পুনরায় সাইন করেন। ম্যানেজারটি তখন এটি আমাদেরকে অর্পণ করে।
কোড পর্যালোচনাগুলি আমাদের টিমের মধ্যে কিছুটা উত্তেজনা বাড়ে। বিশেষত প্রবীণ সদস্যদের মধ্যে কেউ কেউ পরিবর্তনগুলি নিয়ে প্রশ্ন তোলে (যেমন "আমরা সর্বদা এটি পছন্দ করেছিলাম" বা "পদ্ধতিটির বুদ্ধিমান নাম কেন রাখা উচিত, আমি জানি এটি কী করে?")।
প্রথম কয়েক সপ্তাহ পরে আমার সহকর্মী জিনিসগুলি স্লাইড করতে শুরু করেছিলেন, সহকর্মীদের সাথে ঝামেলা না করার জন্য (তিনি আমাকে নিজেই বলেছিলেন যে কোনও গ্রাহক দ্বারা বাগ রিপোর্ট দেওয়ার পরে, তিনি বাগ সম্পর্কে জানতেন, তবে ভয় পেয়েছিলেন যে এটি দেখানোর জন্য বিকাশকারী তার প্রতি ক্ষিপ্ত হবে)
অন্যদিকে, আমি এখন প্রতিশ্রুতিবদ্ধ কোডটিতে সমস্যা দেখানোর জন্য একটি গাধা হিসাবে পরিচিত।
আমি মনে করি না যে আমার মানগুলি খুব বেশি।
এই মুহুর্তে আমার চেকলিস্টটি হ'ল:
- কোডটি সংকলন করবে।
- কোডটি কাজ করবে এমন একটি উপায় রয়েছে।
- কোডটি বেশিরভাগ সাধারণ ক্ষেত্রে কাজ করবে।
- কোড বেশিরভাগ এজ কেস নিয়ে কাজ করবে।
- Inোকানো ডেটা বৈধ না হলে কোড যুক্তিসঙ্গত ব্যতিক্রম ছুঁড়ে দেবে।
তবে আমি যেভাবে প্রতিক্রিয়া জানায় তার দায় আমি পুরোপুরি গ্রহণ করি। আমি কেন কিছু পরিবর্তন করতে হবে তা ব্যাখ্যা করে ইতিমধ্যে কার্যক্ষম পয়েন্ট দিচ্ছি, কখনও কখনও এমনকি নির্দিষ্ট কিছুতে কেন কিছু প্রয়োগ করা হয়েছিল তাও জিজ্ঞাসা করে। আমি যখন এটি খারাপ বলে মনে করি তখন আমি এটি নির্দেশ করেছিলাম যে আমি এটি অন্য উপায়ে বিকাশ করতে পারতাম।
আমার যে অভাব রয়েছে তা হ'ল "ভাল" হিসাবে চিহ্নিত করার মতো কিছু খুঁজে পাওয়ার দক্ষতা। আমি পড়েছি যে ভাল সংবাদে খারাপ খবর স্যান্ডউইচ করার চেষ্টা করা উচিত।
তবে ভালো কিছু খুঁজে পেতে আমার খুব কষ্ট হচ্ছে। "আরে এবার আপনি যা কিছু করেছেন তা বাস্তবে প্রতিশ্রুতিবদ্ধ" সুন্দর বা সহায়কের চেয়ে আরও মজাদার।
উদাহরণ কোড পর্যালোচনা
এইযে, জো নাকি,
লাইব্রেরি \ ACME \ এক্সট্রাক্টআর্ডারমেল ক্লাসে আপনার পরিবর্তনগুলি সম্পর্কে আমার কিছু প্রশ্ন রয়েছে।
আমি বুঝতে পারি না যে আপনি "টেম্পাইলস টোডিলিট" কে স্থির হিসাবে চিহ্নিত করেছেন? এই মুহুর্তে "গেটমেইলস" এর দ্বিতীয় কলটি একটি ব্যতিক্রম ছুঁড়ে ফেলবে, কারণ আপনি এতে ফাইল যুক্ত করেছেন তবে মুছে ফেলার পরে কখনও এগুলি মুছবেন না। আমি জানি যে ফাংশনটি প্রতি রান হিসাবে একবার ডাকা হয়েছিল তবে ভবিষ্যতে এটি পরিবর্তন হতে পারে। আপনি কি কেবল এটি একটি উদাহরণ পরিবর্তনশীল করতে পারেন, তাহলে আমাদের সমান্তরালে একাধিক বস্তু থাকতে পারে।
... (কিছু অন্যান্য বিষয় যা কাজ করে না)
গৌণ পয়েন্ট:
- "গেটআরারমেলবডি" কেন প্যারামিটার হিসাবে একটি ব্যতিক্রম গ্রহণ করে? আমি কি কিছু রেখে গেলাম? আপনি ব্যতিক্রম ছোঁড়াচ্ছেন না, আপনি কেবল এটি পাশ করে "টুস্ট্রিং" কল করুন। তা কেন?
- SaveAndSend পদ্ধতিটির পক্ষে ভাল নাম নয়। এই পদ্ধতিটি যদি কোনও মেল প্রক্রিয়াজাতকরণ ভুল হয়ে যায় তবে ত্রুটি মেলগুলি প্রেরণ করে। আপনি কি এটি "সেন্ডেরর মেইল" বা এরকম কিছুতে নাম পরিবর্তন করতে পারেন?
- দয়া করে কেবল পুরানো কোডটি মন্তব্য করবেন না, সরাসরি এটি মুছুন। আমরা এখনও এটি subversion মধ্যে আছে।