চাচা বব কেন পরামর্শ দেন যে কোডিং মানগুলি এড়াতে পারলে তা লেখা উচিত নয়?
আপনি যদি তার মতামতের পিছনে কারণ জিজ্ঞাসা করছেন তবে তিনি যদি এখানে উত্তর পোস্ট করেন তবে আপনার একটি উত্তর থাকতে পারে ( আমাদের মতামতটি কেবল অপ্রাসঙ্গিক) তবে ...
কেন আমি একটি কোডিং স্ট্যান্ডার্ড লিখব না?
যদি আপনি জিজ্ঞাসা করেন যে তিনি এ সম্পর্কে সঠিক কিনা: আমাকে একমাত্র অপ্রচলিত ব্যক্তি হিসাবে (এতদূর) বলতে দিন যে আপনার এড়ানোর কোনও কারণ নেই।
এটি নীচে লিখুন । তবে আমি আমার কারণগুলি ব্যাখ্যা করার চেষ্টা করব ...
ডেভিড একটি মন্তব্যে পরামর্শ দিয়েছিলেন যে স্টিফেনের উত্তরের মূল বিষয়টি আপনাকে নথি লিখতে হবে না তবে সেগুলি কোন আকারে রয়েছে। যদি গাইডলাইনগুলি সরঞ্জামগুলিতে আনুষ্ঠানিকভাবে হয় (কেবলমাত্র ম্যানুয়াল কোড পর্যালোচনা নয়) তবে আমি সম্মত হতে পারি (যখন আইনকে অন্য কোনও কিছুর প্রয়োজন হয় না)। দয়া করে মনে রাখবেন যে দুর্ভাগ্যক্রমে সরঞ্জামগুলি সমস্ত কিছু পরীক্ষা করতে পারে না (গণনার তত্ত্বটি আমাদের বন্ধু নয়) প্রায়শই কারণ সেগুলি নির্দিষ্ট অনুবাদ ইউনিট বা প্যাকেজ বা আপনার পছন্দসই ভাষা সীমানা বলার ক্ষেত্রেই সীমাবদ্ধ থাকে ।
তবে চাচা ববের কথাটি আমাকে ভাবতে বাধ্য করে না যে সে সে সম্পর্কে কথা বলছে।
আমি কি এই জাতীয় প্রবীণ বিশেষজ্ঞের সাথে একমত হতে পারি না? আমি উদ্ধৃত পোস্টের প্রায় প্রতিটি পয়েন্টের জন্য করি (বিশদগুলির জন্য এই উত্তরের দ্বিতীয় অংশটিও দেখুন)। আসুন কেন বোঝার চেষ্টা করুন (ধরে নিচ্ছেন যে আপনি ইতিমধ্যে জেনে গেছেন যে কোডিং গাইডলাইনগুলি কেবল ছোট আকারের ফর্ম্যাটিংয়ের বিষয় নয় )।
- কিছু পরিস্থিতিতে লিখিত কোডিং মান আইন দ্বারা প্রয়োজন হয়।
- আমি ডকুমেন্টেশন পড়ি এবং আমি নিশ্চিত যে আমি একা নই। দলের সদস্যরা সময়ের সাথে সাথে পরিবর্তন করতে পারে, জ্ঞান 5-10 বছরের পুরানো কোডবেজে বা দলের সদস্যদের মনে থাকতে পারে না। সংস্থাগুলি এমন লোকদের বহিষ্কার করা উচিত যারা অভ্যন্তরীণ নির্দেশিকাগুলি অনুসরণ করে না।
- কোডিং মানগুলি একবার অনুমোদিত হয়ে গেলে তারা প্রায়শই পরিবর্তিত হয় না এবং যদি তারা এটির বিষয়ে জানতে চান তবে। যদি মানগুলি পরিবর্তিত হয় তবে আপনার ডকুমেন্টেশন (কোডে) পুরানো হয়ে গেছে কারণ আপনার সমস্ত কোড নতুন মান অনুসরণ করে না। পুনরায় ফর্ম্যাটিং / রিফ্যাক্টরিং ধীর হতে পারে তবে আপনার অনুসরণ করার জন্য সর্বদা একটি লিখিত অনুমোদনের গাইডলাইন থাকে।
- কোনও নিয়ম বহির্মুখী করার জন্য 10 / 20K এলওসি পরিদর্শন করার চেয়ে 5 পৃষ্ঠার নথিটি পড়া ভাল, এটি সম্পর্কে কোনও সন্দেহ নেই (যা আপনি ভুলভাবে বুঝতে পারেন) W
- এটি বিদ্রূপজনক যে ডিজাইনের নীতিগুলি এবং কোডিং শৈলীর বিষয়ে অনেক বই লিখেছেন এমন কেউ পরামর্শ দিচ্ছেন যে আপনার নিজের নির্দেশিকা রচনা করা উচিত নয়, তিনি যদি কিছু কোড উদাহরণ দিয়ে আমাদের ফেলে দেন তবে আরও ভাল হয় না? না, কারণ লিখিত নির্দেশিকাগুলি কেবল আপনাকে কী করতে হবে তা জানায় না তবে কোডের অভাব রয়েছে এমন আরও দুটি জিনিস: কী করবেন না এবং এটি করার বা না করার কারণ রয়েছে।
"নিখরচায় স্ব-সংগঠিত প্রোগ্রামিং" নিনজা ১ year বছরের ছেলেটির পক্ষে ভাল তবে সংস্থাগুলিরও অন্যান্য প্রয়োজনীয়তা রয়েছে :
- কোডের মান অবশ্যই কোম্পানির পর্যায়ে মঞ্জুর করা উচিত (এবং সংজ্ঞায়িত) - এটি এমন কোনও বিষয় নয় যা কোনও একক দল সিদ্ধান্ত নিতে পারে। তাদের কাছে আরও ভাল কী তা সিদ্ধান্ত নেওয়ার দক্ষতাও নাও থাকতে পারে (উদাহরণস্বরূপ, কতগুলি বিকাশকারী, উদাহরণস্বরূপ, মিশ্র পর্যালোচনা করার বা এমনকি প্রতিটি নিয়ম বোঝার জন্য প্রয়োজনীয় সমস্ত দক্ষতা আছে ?)
- সদস্যদের বিভিন্ন দল জুড়ে স্থানান্তরিত করা যেতে পারে: যদি প্রত্যেকে একই কোডিং মানগুলি অনুসরণ করে তবে ইন্টিগ্রেশনটি মসৃণ এবং ত্রুটি-প্রবণতা কম।
- যদি কোনও দল স্ব-সংগঠিত হয় তবে দলের সদস্যরা পরিবর্তনের সাথে সাথে মানগুলি বিকশিত হবে - তারপরে আপনার কাছে একটি বিশাল কোডবেস থাকবে যা বর্তমান স্বীকৃত মানগুলি অনুসরণ করে না ।
যদি আপনি প্রক্রিয়া করার আগে লোকদের সম্পর্কে চিন্তা করেন তবে আমি কেবল টিপিএস সম্পর্কে পড়ার পরামর্শ দিতে পারি: মানুষ হ'ল একটি কেন্দ্রীয় অংশ তবে প্রক্রিয়াগুলি অত্যন্ত আনুষ্ঠানিক are
অবশ্যই মাত্র এক দলের সঙ্গে একটি ছোট সংগঠন পারে দলের মান দত্তক গ্রহণ করা সিদ্ধান্ত নিতে দিন কিন্তু তারপর, এটা লিখে দিতে হবে। Programmers.SE উপর এখানে আপনি এরিক Lippert দ্বারা পোস্ট পড়তে পারেন: আমি অনুমান আমরা সবাই সম্মত হন তিনি অভিজ্ঞ ডেভেলপার যখন তিনি মাইক্রোসফট জন্য কাজ তিনি (এমনকি যদি কিছু নিয়ম হতে পারে তাদের লিখিত নির্দেশিকা মেনে চলে ছিল ভুল , প্রযোজ্য নয় বা বেহুদা তার কাছে।) জন স্কিটির কী হবে? গুগল গাইডলাইনগুলি বেশ কড়া (এবং অনেক লোক তাদের সাথে একমত নয়) তবে তাকে অবশ্যই এই জাতীয় নির্দেশিকাগুলি মেনে চলতে হবে। এটা কি তাদের অসম্মানজনক? না, তারা সম্ভবত এই জাতীয় নির্দেশিকা সংজ্ঞায়িত ও উন্নত করতে কাজ করেছিল, কোনও সংস্থা কোনও সদস্য (বা একটি দল) দ্বারা তৈরি হয় না এবং প্রতিটি দলই একটি দ্বীপ নয় ।
উদাহরণ
- আপনি সি ++ তে একাধিক উত্তরাধিকার এবং নেস্টেড ক্লাস ব্যবহার না করার সিদ্ধান্ত নিয়েছেন কারণ আপনি প্রকৃত দলের সদস্যরা এটি ভালভাবে বুঝতে পারেন না । পরে একাধিক উত্তরাধিকার ব্যবহার করতে চাইছেন এমন ব্যক্তিকে অবশ্যই এটি ব্যবহার করা হয়েছে কিনা তা দেখতে পুরো 1 এম এলওসি ব্রাউজ করতে হবে। এটি খারাপ কারণ ডিজাইনের সিদ্ধান্তগুলি যদি নথিভুক্ত না হয় তবে সেগুলি বুঝতে আপনাকে পুরো কোডবেস অধ্যয়ন করতে হবে। এবং তারপরেও, যদি এটি ব্যবহার না করা হয়, কারণ এটি কোডিং স্ট্যান্ডার্ডের বিরোধী, বা এটি অনুমোদিত, তবে এর আগে এমন কোনও পরিস্থিতি ছিল না যেখানে একাধিক উত্তরাধিকার একটি উপযুক্ত ছিল?
- সি # তে আপনার ডিফল্ট প্যারামিটার সরবরাহ করার জন্য ওভারলোডেড পদ্ধতি ছিল কারণ যখন সি # তে paraচ্ছিক পরামিতিগুলি পাওয়া যায় নি তখন আপনার কোড বেস শুরু হয়েছিল। তারপরে আপনি পরিবর্তন করেছেন এবং আপনি সেগুলি ব্যবহার শুরু করেছেন (প্রতিবার যখন এই জাতীয় ফাংশনগুলি সংশোধন করতে হয়েছিল তখন তাদের ব্যবহার করার জন্য পুরানো কোডটি রিফ্যাক্টরিং)। এমনকি পরে আপনি সিদ্ধান্ত নিয়েছেন যে alচ্ছিক পরামিতিগুলি খারাপ এবং আপনি সেগুলি এড়ানো শুরু করেন। আপনার কোড আপনাকে কী বিধি বলে? এটি খারাপ কারণ মানকটি বিকশিত হয় তবে কোডবেসটি বিকশিত হতে ধীর হয় এবং এটি যদি আপনার ডকুমেন্টেশন হয় তবে আপনি সমস্যায় পড়ছেন।
- জনের দল এ থেকে দলে বি বি স্থান নিয়েছে জোনকে একটি নতুন স্ট্যান্ডার্ড শিখতে হবে ; শেখার সময় তিনি সম্ভবত আরও সূক্ষ্ম বাগগুলি প্রবর্তন করবেন (বা ভাগ্যবান হলে, বিদ্যমান কোডটি বুঝতে এবং কোড পর্যালোচনা আরও দীর্ঘতর করার জন্য দীর্ঘ সময় নিবে)।
- টিম এ পূর্বে টিম বি এর মালিকানাধীন একটি কোডবাসে চলে আসে এটির সম্পূর্ণ কোডিং মান রয়েছে। লেখা? খাপ খাওয়ানো? মিক্স? তাদের সবকটিই সমান খারাপ।
চাচা বব
এগুলি প্রথম কয়েকটি পুনরাবৃত্তির সময় বিকশিত হোক।
সত্য, যতক্ষণ না আপনার একটি মান না থাকে এবং আপনার সংস্থা আপনাকে একটি তৈরি করার জন্য দায়িত্ব অর্পণ করে ।
তাদের নির্দিষ্ট কোম্পানির পরিবর্তে দল নির্দিষ্ট হতে দিন।
না, সমস্ত কারণে উপরে বর্ণিত। এমনকি যদি আপনি কেবল কোড ফর্ম্যাটিংকে আনুষ্ঠানিক করতে চান (সর্বনিম্ন দরকারী জিনিস যা আপনি ফর্মালাইজ করতে চাইতে পারেন) আমার এখনও ফরম্যাটিং সম্পর্কে অন্তহীন (এবং অকেজো) যুদ্ধের স্মৃতি রয়েছে। আমি এগুলি বারবার বাঁচতে চাই না, এটি সবার জন্য একবার সেট করুন।
এগুলি এড়াতে পারলে এগুলি লিখবেন না। বরং কোডটি যেভাবে মানগুলি ক্যাপচার করা হয় সেভাবে চলুন।
না, উপরে বর্ণিত সমস্ত কারণে (অবশ্যই যদি আপনি আপনার সমস্ত কোড এক-শটে রিপ্যাক্টর না করেন তবে নির্দেশিকা পরিবর্তিত হয়)। আপনি কি আপনার কোডটি যেমন আছেন তেমন ছেড়ে যেতে চান? আপনি বর্তমান নির্দেশিকা বুঝতে কোডবেস কীভাবে পরিদর্শন করবেন ? ফাইলের বয়স অনুসারে অনুসন্ধান করা এবং আপনার কোডিং শৈলীর উত্স ফাইলের বয়সের সাথে মানিয়ে নেওয়া?
ভাল ডিজাইন আইন করবেন না। (যেমন গোটো ব্যবহার না করার জন্য লোকদের বলবেন না)
সত্য, গাইডলাইনগুলি অবশ্যই সংক্ষিপ্ত হওয়া উচিত বা কেউ এগুলি পড়বে না। সুস্পষ্ট পুনরাবৃত্তি করবেন না।
নিশ্চিত করুন যে সবাই জানেন যে স্ট্যান্ডার্ডটি যোগাযোগের বিষয়ে, অন্য কিছুই নয়।
আপনি কেবলমাত্র ছোটখাটো বিবরণ সম্পর্কে কোনও মান রাখতে না চাইলে কেবলমাত্র একটি ভাল স্ট্যান্ডার্ড গুণমান সম্পর্কে ।
প্রথম কয়েকটি পুনরাবৃত্তির পরে, সিদ্ধান্ত নেওয়ার জন্য দলকে একত্র করুন।
প্রথম বিষয়টি দেখুন এবং ভুলে যাবেন না যে কোডিং স্ট্যান্ডার্ডটি সাধারণত এমন একটি প্রক্রিয়া যা বিকাশ এবং সংশোধন করতে অনেক বছর সময় নেয়: কয়েকটি পুনরাবৃত্তি, সম্ভবত জুনিয়র বিকাশকারীদের সাথে? সত্যি? আপনি কি একজন সিনিয়র (যদি থাকে) কোনও সদস্যের স্মৃতিতে নির্ভর করতে চান?
তিনটি নোট:
- আমার মতে অপূর্ণতা অন্যদের তুলনায় কিছু ভাষার ক্ষেত্রে আরও গুরুতর, উদাহরণস্বরূপ সি ++ তে একটি কোম্পানির স্তরের মান জাভা অপেক্ষা আরও বেশি প্রয়োজন।
- আপনি যদি একটি খুব ছোট সংস্থায় কাজ করছেন যেখানে আপনার মাত্র একটি ছোট দল রয়েছে তবে এই যুক্তিটি পুরোপুরি প্রয়োগ হতে পারে না (এবং চাচা বব কারণগুলি কম চরম হতে পারে )।
- আপনি নিয়োগ পেয়েছেন (দল হিসাবে) এবং আপনি একটি নতুন প্রকল্পের সাথে একা কাজ করবেন তবে আপনি এটি ভুলে গিয়ে এগিয়ে যাবেন। এই ক্ষেত্রে আপনি যত্ন নাও করতে পারেন (তবে আপনার নিয়োগকর্তা উচিত ...)