চাচা বব কেন পরামর্শ দেন যে কোডিং মানগুলি এড়াতে পারলে তা লেখা উচিত নয়?


145

আমি যখন এই প্রশ্নটি পড়ছিলাম , শীর্ষ ভোটের উত্তরগুলি কোডিং স্ট্যান্ডার্ডের বিষয়ে আঙ্কেল ববকে উদ্ধৃত করেছে , তবে আমি এই পরামর্শটি দ্বারা বিভ্রান্ত হয়ে পড়েছিলাম:

  1. এগুলি এড়াতে পারলে এগুলি লিখবেন না। বরং কোডটি যেভাবে মানগুলি ক্যাপচার করা হয় সেভাবে চলুন।

এটি আমার মস্তিষ্কে বাউন্স হয়ে গেছে তবে আমি আটকে থাকার মতো জায়গা খুঁজে পাই না। যদি কোনও নতুন ব্যক্তি দলে যোগ দেয়, বা কোডিংয়ের মান পরিবর্তন হয় তবে তথ্যের বিভ্রান্তি থাকতে পারে না?

কেন আমি একটি কোডিং স্ট্যান্ডার্ড লিখব না?


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

31
@ ম্যাথেজেজেমব্রিগস: এটি বেশিরভাগ দেব-দেবীর উপেক্ষা করে লিখিত-ডাউন মানের হিসাবে কম কাজ করে বা প্রাথমিকভাবে কোডটি লেখার সময় এর একটি আলাদা বিষয়বস্তু ছিল।
ডক ব্রাউন

7
@ ম্যাথজেজেমস ব্রিগস: সম্মত। স্টাইল গাইডটিতে পূর্বের কনভেনশনগুলি স্বীকৃত করার জন্য যথেষ্ট তথ্য থাকা উচিত যা এখন অবনতিযুক্ত, অন্যথায় "বিদ্যমান শৈলীর অনুলিপি করুন" সংস্কৃতিটি পুনরুত্থানের জন্য 10 বছরের পুরানো কিছুটা হরর সন্ধান করবে। এছাড়াও, যখন চক্রগুলি দুর্ঘটনাক্রমে রচনা করে অফিসিয়াল স্টাইলটি কাটাতে বিভিন্ন এবং বেমানান নমুনাগুলি ব্যবহার করে, লিখিত শৈলী নির্দেশিকা বলে যেগুলির মধ্যে কোনটি সঠিক (বা আদর্শভাবে, চূড়াকে প্রথম স্থানে গঠন করতে বাধা দেয়)। এবং যদি আপনার কয়েকশ ডেভস ডক্স না পড়েন তবে কোনও বৃহত সংস্থায় আপনি কেবল এটিকে স্থূল মুখ্যতার জন্য বরখাস্ত করতে পারেন।
স্টিভ জেসপ

14
ন্যায্য হলেও, বব এও বলেছিলেন যে আপনার লিখিত বা অলিখিতভাবে প্রথমে কোনও সংস্থার প্রশস্ত কোডিং মানক থাকা উচিত নয়। বরং প্রতিটি দল / চক্রের নিজস্ব বিকাশ করা উচিত।
স্টিভ জেসোপ

37
এমন কোনও দস্তাবেজ লেখার পরিবর্তে যা কেউ পড়বে না, এমন একটি লিন্টার ব্যবহার করুন যা কোডকে একটি নির্দিষ্ট উপায়ে কার্যকর করে। যদি এটি আপনার উন্নয়ন প্রক্রিয়ার অংশ হয় তবে এটি অনিবার্য নয়।
সিয়েরিয়া

উত্তর:


256

এখানে কিছু কারন আছে।

  1. ডকুমেন্টেশন কেউ পড়ে না।
  2. কেউ ডকুমেন্টেশনটি পড়লেও তা অনুসরণ করে না।
  3. কেউ ডকুমেন্টেশন আপডেট না করে এমনকি তারা এটি পড়ে এবং তা অনুসরণ করে।
  4. একটি সংস্কৃতি তৈরির চেয়ে অনুশীলনের একটি তালিকা লেখার পক্ষে খুব কম কার্যকর।

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

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


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

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

13
@ ভু, কোনও সমস্যা যদি আসে তবে আপনি কেন কোড পর্যালোচনা চলাকালীন চিৎকার করার প্রয়োজন মনে করেন?
জাপ

20
@ জাপ আমি ভেবেছিলাম হাইপারবোলটি সুস্পষ্ট .. আপাতদৃষ্টিতে তা নয়। লোকেদের দিকে চিত্কার না করে, তাদের বলে যে তাদের ফিরে যেতে হবে এবং তাদের লঙ্ঘিত সমস্ত জিনিস ঠিক করতে হবে কারণ তারা আরও ভাল জানেন না।
ভু

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

112

আরও একটি ব্যাখ্যা আছে। আঙ্কেল বব এর অর্থ যা আমি বিশ্বাস করি তা নয়, তবে এটি বিবেচনা করার মতো।

কোনও দস্তাবেজে কোডিং মানগুলি ক্যাপচার করবেন না। কোডগুলিতে এটি ক্যাপচার করুন, একটি স্বয়ংক্রিয় প্রক্রিয়া যা মানগুলি যাচাই করে তা যাচাই করে

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

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

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


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

10
এটি নিয়ম # 6 উল্লেখ করার মতো হতে পারে: After the first few iterations, get the team together to decide.কেবলমাত্র নিয়ম # 3 দিয়ে মনে হচ্ছে তিনি কোনও কোডিং মানকে সমর্থন করছেন না, তবে সমস্ত নিয়ম এক সাথে বিবেচনা করার সময় এবং সমস্ত # 6 এর মতো মনে হচ্ছে তিনি সত্যিই বলছেন: "না প্রথমে একটি কোডিং মানকে জোর করুন। এটি জৈবিকভাবে বিকশিত হতে দিন এবং কিছুক্ষণ পরে বিশদটি হাতুড়ি করতে আপনার দলের সাথে বসে যান। " যা "আপনার কোডিং মানটিকে আনুষ্ঠানিকভাবে পরিণত করবেন না" (যা প্রচুর উত্তরের সারমর্ম বলে মনে হয়) এর থেকে খুব আলাদা।
শাজ

আপনি যদি আইটেমগুলি পড়েন তবে আমার মনে হয় আপনি দেখতে পাবেন যে এটি অবশ্যই তাঁর অর্থ নয়, উদাহরণস্বরূপ এই একা আপনাকে কিছু বলা উচিত: ২. তারা কোম্পানির নির্দিষ্ট পরিবর্তে দল নির্দিষ্ট হতে দিন।
বিল কে

নোট করুন যে আমি "আমি কোডিং মানটি কেন লিখব না" - এই প্রশ্নের উত্তর দিচ্ছি - "চাচা বব কী বোঝাতে চেয়েছিল" তা নয়। এটি প্রশ্নের শিরোনামের বিপরীতে চলতে পারে তবে এর আত্মা নয়।
টম জনসন

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

66

লোকেরা কোডিং স্ট্যান্ডার্ড ডকুমেন্টের আসল উদ্দেশ্যটিকে উপেক্ষা করে, যা বিরোধ নিষ্পত্তি করা

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

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

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

( কাঠামোহীনতার অত্যাচারও দেখুন )


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

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

3
তুচ্ছতা নিয়ে তর্ক করা অযোগ্যতার লক্ষণ, আইএমএইচও। কংক্রিট বিরোধ নিষ্পত্তি অন্তর্নিহিত সমস্যার সমাধান করবে না।
জার্জেন ফোগ

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

12
"তুচ্ছ বিষয় নিয়ে তর্ক করা অদক্ষতার পরিচায়ক" - আমি আশা করি এটি সফ্টওয়্যার ইঞ্জিনিয়ারিংয়ে সত্য হয়েছিল ... আমি খুব ভয় করি যে খুব কিছু, খুব দক্ষ (কমপক্ষে প্রযুক্তিগত) দেবগণ তুচ্ছতার বিষয়ে তর্ক করার পক্ষে সবচেয়ে বেশি পছন্দ করেন are হেল, এটি তাদের জাতীয় খেলা "অসীম হ'ল ম্যাজগুলির যুক্তি" -উরসুলা ল গিন
স্পাইক0xff

21

কারণ মন্তব্য মিথ্যা

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

চাচা বব একটি মন্তব্যটিকে প্রোগ্রামারটির ব্যক্তিগত ব্যর্থতা হিসাবে দেখেন, কারণ এটি প্রমাণ করে যে তিনি প্রোগ্রামিং ভাষার সাথে কোড খণ্ডের উদ্দেশ্যটি প্রকাশ করতে পারেন নি। একইভাবে, একটি স্ট্যান্ডার্ড ডকুমেন্ট হ'ল কোড বেসে সুসংগত শৈলী প্রকাশ করতে ব্যর্থতা।

নতুন প্রোগ্রামারদের কোডটি দেখার জন্য সময় কাটাতে হবে, বহু-অধ্যায় স্ট্যান্ডার্ড ডকুমেন্টটি পড়তে দিন ব্যয় করা উচিত নয় (দীর্ঘশ্বাস ফেলতে হবে)।

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

কোডের মান থাকা গুরুত্বপূর্ণ। একটি দস্তাবেজ থাকা যা তারা যা তা নির্দেশ করে।


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

7
+1 "কোডের মান থাকা গুরুত্বপূর্ণ। ভাল এবং সংক্ষিপ্তভাবে করা।
ডেভিড

4
@ pjc50 আমি চাচা বব কোনও মন্তব্য নীতি উত্সাহিত কখনও শুনিনি। তিনি শেখায় না যে আপনার কখনও মন্তব্য করা উচিত নয়। তিনি শিখিয়েছেন যে আপনার খারাপ লাগা উচিত যখন আপনি খুঁজে পান এটি বুঝতে হবে। অ-মন্তব্য করা অপঠনযোগ্য <মন্তব্য করা অপঠনযোগ্য <পঠনযোগ্য কোড যা মন্তব্যের প্রয়োজন নেই। লক্ষ্য করুন যে আপনি যে মন্তব্যগুলি উল্লেখ করেছেন সেগুলি সেগুলি যা কোডটি কীভাবে কাজ করে তা সম্পূর্ণ ডিকপলড led মানদণ্ডের দস্তাবেজগুলি একটি ব্রেন ডেড চেক তালিকায় পরিণত হতে পারে যা একটি কোড পর্যালোচনাতে টিক হয়ে যায়। কী গুরুত্বপূর্ণ তা হল আপনার সমস্ত টিকিট পাওয়া যায় না। টেবিলে থাকা লোকেরা আপনার কোড বোঝে understand
candied_orange

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

5
@ ক্যান্ডিওড অ্যারেঞ্জ: প্রায়শই, সর্বাধিক দরকারী মন্তব্যগুলি হ'ল নির্দিষ্ট কিছু না করার কারণটি বর্ণনা করে [যেহেতু এই জাতীয় মন্তব্যের অভাবে, ভবিষ্যতের প্রোগ্রামাররা বাস্তবায়ন করার চেষ্টা এবং পরে প্রত্যাবর্তনীয়-সুস্পষ্ট "উন্নতি" প্রত্যাহার করতে ব্যর্থ হতে পারে অকার্যকর হতে হবে] পরিবর্তনশীল নামগুলির সাথে যদি কেউ সত্যই ক্রেজি না হয়, তবে সবচেয়ে উজ্জ্বলভাবে পঠনযোগ্য কোডও সেই তথ্যটি ক্যাপচার করতে পারে না।
সুপারক্যাট

16

চাচা বব কেন পরামর্শ দেন যে কোডিং মানগুলি এড়াতে পারলে তা লেখা উচিত নয়?

আপনি যদি তার মতামতের পিছনে কারণ জিজ্ঞাসা করছেন তবে তিনি যদি এখানে উত্তর পোস্ট করেন তবে আপনার একটি উত্তর থাকতে পারে ( আমাদের মতামতটি কেবল অপ্রাসঙ্গিক) তবে ...

কেন আমি একটি কোডিং স্ট্যান্ডার্ড লিখব না?

যদি আপনি জিজ্ঞাসা করেন যে তিনি এ সম্পর্কে সঠিক কিনা: আমাকে একমাত্র অপ্রচলিত ব্যক্তি হিসাবে (এতদূর) বলতে দিন যে আপনার এড়ানোর কোনও কারণ নেই।

এটি নীচে লিখুন । তবে আমি আমার কারণগুলি ব্যাখ্যা করার চেষ্টা করব ...

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

তবে চাচা ববের কথাটি আমাকে ভাবতে বাধ্য করে না যে সে সে সম্পর্কে কথা বলছে।

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

  • কিছু পরিস্থিতিতে লিখিত কোডিং মান আইন দ্বারা প্রয়োজন হয়।
  • আমি ডকুমেন্টেশন পড়ি এবং আমি নিশ্চিত যে আমি একা নই। দলের সদস্যরা সময়ের সাথে সাথে পরিবর্তন করতে পারে, জ্ঞান 5-10 বছরের পুরানো কোডবেজে বা দলের সদস্যদের মনে থাকতে পারে না। সংস্থাগুলি এমন লোকদের বহিষ্কার করা উচিত যারা অভ্যন্তরীণ নির্দেশিকাগুলি অনুসরণ করে না।
  • কোডিং মানগুলি একবার অনুমোদিত হয়ে গেলে তারা প্রায়শই পরিবর্তিত হয় না এবং যদি তারা এটির বিষয়ে জানতে চান তবে। যদি মানগুলি পরিবর্তিত হয় তবে আপনার ডকুমেন্টেশন (কোডে) পুরানো হয়ে গেছে কারণ আপনার সমস্ত কোড নতুন মান অনুসরণ করে না। পুনরায় ফর্ম্যাটিং / রিফ্যাক্টরিং ধীর হতে পারে তবে আপনার অনুসরণ করার জন্য সর্বদা একটি লিখিত অনুমোদনের গাইডলাইন থাকে।
  • কোনও নিয়ম বহির্মুখী করার জন্য 10 / 20K এলওসি পরিদর্শন করার চেয়ে 5 পৃষ্ঠার নথিটি পড়া ভাল, এটি সম্পর্কে কোনও সন্দেহ নেই (যা আপনি ভুলভাবে বুঝতে পারেন) W
  • এটি বিদ্রূপজনক যে ডিজাইনের নীতিগুলি এবং কোডিং শৈলীর বিষয়ে অনেক বই লিখেছেন এমন কেউ পরামর্শ দিচ্ছেন যে আপনার নিজের নির্দেশিকা রচনা করা উচিত নয়, তিনি যদি কিছু কোড উদাহরণ দিয়ে আমাদের ফেলে দেন তবে আরও ভাল হয় না? না, কারণ লিখিত নির্দেশিকাগুলি কেবল আপনাকে কী করতে হবে তা জানায় না তবে কোডের অভাব রয়েছে এমন আরও দুটি জিনিস: কী করবেন না এবং এটি করার বা না করার কারণ রয়েছে।

"নিখরচায় স্ব-সংগঠিত প্রোগ্রামিং" নিনজা ১ year বছরের ছেলেটির পক্ষে ভাল তবে সংস্থাগুলিরও অন্যান্য প্রয়োজনীয়তা রয়েছে :

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

যদি আপনি প্রক্রিয়া করার আগে লোকদের সম্পর্কে চিন্তা করেন তবে আমি কেবল টিপিএস সম্পর্কে পড়ার পরামর্শ দিতে পারি: মানুষ হ'ল একটি কেন্দ্রীয় অংশ তবে প্রক্রিয়াগুলি অত্যন্ত আনুষ্ঠানিক are

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

উদাহরণ

  • আপনি সি ++ তে একাধিক উত্তরাধিকার এবং নেস্টেড ক্লাস ব্যবহার না করার সিদ্ধান্ত নিয়েছেন কারণ আপনি প্রকৃত দলের সদস্যরা এটি ভালভাবে বুঝতে পারেন না । পরে একাধিক উত্তরাধিকার ব্যবহার করতে চাইছেন এমন ব্যক্তিকে অবশ্যই এটি ব্যবহার করা হয়েছে কিনা তা দেখতে পুরো 1 এম এলওসি ব্রাউজ করতে হবে। এটি খারাপ কারণ ডিজাইনের সিদ্ধান্তগুলি যদি নথিভুক্ত না হয় তবে সেগুলি বুঝতে আপনাকে পুরো কোডবেস অধ্যয়ন করতে হবে। এবং তারপরেও, যদি এটি ব্যবহার না করা হয়, কারণ এটি কোডিং স্ট্যান্ডার্ডের বিরোধী, বা এটি অনুমোদিত, তবে এর আগে এমন কোনও পরিস্থিতি ছিল না যেখানে একাধিক উত্তরাধিকার একটি উপযুক্ত ছিল?
  • সি # তে আপনার ডিফল্ট প্যারামিটার সরবরাহ করার জন্য ওভারলোডেড পদ্ধতি ছিল কারণ যখন সি # তে paraচ্ছিক পরামিতিগুলি পাওয়া যায় নি তখন আপনার কোড বেস শুরু হয়েছিল। তারপরে আপনি পরিবর্তন করেছেন এবং আপনি সেগুলি ব্যবহার শুরু করেছেন (প্রতিবার যখন এই জাতীয় ফাংশনগুলি সংশোধন করতে হয়েছিল তখন তাদের ব্যবহার করার জন্য পুরানো কোডটি রিফ্যাক্টরিং)। এমনকি পরে আপনি সিদ্ধান্ত নিয়েছেন যে alচ্ছিক পরামিতিগুলি খারাপ এবং আপনি সেগুলি এড়ানো শুরু করেন। আপনার কোড আপনাকে কী বিধি বলে? এটি খারাপ কারণ মানকটি বিকশিত হয় তবে কোডবেসটি বিকশিত হতে ধীর হয় এবং এটি যদি আপনার ডকুমেন্টেশন হয় তবে আপনি সমস্যায় পড়ছেন।
  • জনের দল এ থেকে দলে বি বি স্থান নিয়েছে জোনকে একটি নতুন স্ট্যান্ডার্ড শিখতে হবে ; শেখার সময় তিনি সম্ভবত আরও সূক্ষ্ম বাগগুলি প্রবর্তন করবেন (বা ভাগ্যবান হলে, বিদ্যমান কোডটি বুঝতে এবং কোড পর্যালোচনা আরও দীর্ঘতর করার জন্য দীর্ঘ সময় নিবে)।
  • টিম এ পূর্বে টিম বি এর মালিকানাধীন একটি কোডবাসে চলে আসে এটির সম্পূর্ণ কোডিং মান রয়েছে। লেখা? খাপ খাওয়ানো? মিক্স? তাদের সবকটিই সমান খারাপ।

চাচা বব

এগুলি প্রথম কয়েকটি পুনরাবৃত্তির সময় বিকশিত হোক।

সত্য, যতক্ষণ না আপনার একটি মান না থাকে এবং আপনার সংস্থা আপনাকে একটি তৈরি করার জন্য দায়িত্ব অর্পণ করে ।

তাদের নির্দিষ্ট কোম্পানির পরিবর্তে দল নির্দিষ্ট হতে দিন।

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

এগুলি এড়াতে পারলে এগুলি লিখবেন না। বরং কোডটি যেভাবে মানগুলি ক্যাপচার করা হয় সেভাবে চলুন।

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

ভাল ডিজাইন আইন করবেন না। (যেমন গোটো ব্যবহার না করার জন্য লোকদের বলবেন না)

সত্য, গাইডলাইনগুলি অবশ্যই সংক্ষিপ্ত হওয়া উচিত বা কেউ এগুলি পড়বে না। সুস্পষ্ট পুনরাবৃত্তি করবেন না।

নিশ্চিত করুন যে সবাই জানেন যে স্ট্যান্ডার্ডটি যোগাযোগের বিষয়ে, অন্য কিছুই নয়।

আপনি কেবলমাত্র ছোটখাটো বিবরণ সম্পর্কে কোনও মান রাখতে না চাইলে কেবলমাত্র একটি ভাল স্ট্যান্ডার্ড গুণমান সম্পর্কে ।

প্রথম কয়েকটি পুনরাবৃত্তির পরে, সিদ্ধান্ত নেওয়ার জন্য দলকে একত্র করুন।

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

তিনটি নোট:

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

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

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

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

3
@ জেফ হ্যাঁ, যদি প্রশ্ন "তিনি কেন এমন চিন্তা করেন" সম্পর্কে হয় তবে উত্তরটি কেবল অনুমান মাত্র। যদি প্রশ্নটি হয় "এটা ঠিক?" তারপরে আমার ব্যক্তিগত উত্তরটি হ'ল *** একেবারে না।
অ্যাড্রিয়ানো রেপিটি

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

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

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

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

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

4

কেন আমি একটি কোডিং স্ট্যান্ডার্ড লিখব না?

এই জন্য অনেক কারণ আছে। এখানে কিছু বিবেচনা দেওয়া হল:

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

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

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

আপনার অবশ্যই নিশ্চিত হতে হবে # 6:

প্রথম কয়েকটি পুনরাবৃত্তির পরে, সিদ্ধান্ত নেওয়ার জন্য দলকে একত্র করুন।

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

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


4

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


4

প্রথমত, আমি যতদূর জানি, চাচা বব একজন জাভা ব্যক্তি, তিনি কী বলেন তা বোঝার জন্য এটি অত্যন্ত গুরুত্বপূর্ণ।

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

বেশিরভাগ আধুনিক ভাষার পাশাপাশি জাভা এবং সি # উভয়ই এমনভাবে সংজ্ঞায়িত করা হয়েছে যাতে কোনও প্রোগ্রামার intoুকে পড়ার জন্য কয়েকটি "সাধারণ" ফাঁদ পেতে পারে।

তবে আমি যখন প্রোগ্রামিং শুরু করি তখন আমি সি (এবং পরে সি ++) ব্যবহার করি। সি তে আপনি কোড লিখতে পারেন

if (a = 3);
{
   /* spend a long time debugging this */
}

সংকলক একটি ত্রুটি দেবে না, এবং প্রচুর কোড পড়ার সময় স্পট করা শক্ত। তবে আপনি যদি লিখেন:

if (3 = a)
{
   /* looks odd, but makes sense */
}

সংকলকটি একটি ত্রুটি দেয় এবং কোডটি আমি এতে পরিবর্তন করা সহজ 3 == a। তেমনিভাবে, যদি কোডিং মানটি কোনও শর্তের মধ্যে বা "খালি বিবৃতি" এর =মধ্যে ব্যবহারের অনুমতি না দেয় , তবে এই ত্রুটিটি সনাক্ত করতে একটি কোড চেকার বিল্ড সিস্টেমের অংশ হিসাবে ব্যবহার করা যেতে পারে।ifif

কোডিং স্ট্যান্ডার্ড সম্পর্কে আমার মতামতগুলি ব্যাপকভাবে পরিবর্তিত হয়েছিল যখন আমি সি / সি ++ থেকে সরে এসেছি: আমি কোডিং মানগুলি পছন্দ করতাম যা কঠোরভাবে প্রয়োগ করা হয়েছিল এবং অনেক পৃষ্ঠা দীর্ঘ। আমি এখন মনে করি আপনার কেবলমাত্র ব্যবহৃত সরঞ্জামগুলি তালিকাভুক্ত করা দরকার এবং কয়েকটি নামকরণের সম্মেলনে আসল দলের সদস্যদের মধ্যে অনানুষ্ঠানিক চুক্তিটি নেওয়া উচিত। আমরা সি / সি ++ তে অ্যাপ্লিকেশন লেখার জন্য 30 টিরও বেশি বিকাশকারীদের দলে বিশ্বে বাস করি না ...

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


4
"সংকলক একটি ত্রুটি দেবে না" সর্বাধিক আধুনিক সি এবং সি ++ সংকলক সতর্কতা সহ বা যেমন ইচ্ছা হয়, সম্পূর্ণ ত্রুটিগুলির সাথে এই জাতীয় আচরণের প্রতিবেদন সমর্থন করে। gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
Jab

2
"প্রথমত আমি যতদূর জানি আঙ্কেল বব একজন জাভা ব্যক্তি, তিনি কী বলেছেন তা বোঝার পক্ষে এটি অত্যন্ত গুরুত্বপূর্ণ", এটি সত্য নয়, আঙ্কেল বব সি ++ নিয়ে দুর্দান্ত নিবন্ধ লিখেছেন এবং তিনি অবশ্যই সি'র সাথে বেশ কয়েক বছর কাজ করেছেন।
আলেসান্দ্রো টেরুজি

@ জ্যাব, ধন্যবাদ যে সি / সি ++ অনেক আগে নতুন "ব্যবসায়িক অ্যাপ্লিকেশনগুলি" ব্যবহার করা বন্ধ করে দিয়েছে, (যেমন মডেম সি / সি ++ কম্পাইলারগুলির আগে), এবং এখন কেবলমাত্র সি / সি ++ বিশেষজ্ঞরা ব্যবহার করেন, তারপরে লোকেরা ইউআই বিশেষজ্ঞ (এমএফসি) উদাহরণস্বরূপ।
ইয়ান

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

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

3

উত্সটি স্ব-ডকুমেন্টিং কোডিং মান হিসাবে দুটি জিনিস বোঝায়।

  1. দক্ষ অবদানকারী হওয়ার জন্য লোকদের অবশ্যই কোড বেইসের সাথে পরামর্শ এবং পর্যালোচনা করতে হবে। এটি অবিশ্বাস্যভাবে গুরুত্বপূর্ণ। কোড বেইজিং গাইডলাইন পড়া কোড বেসে ডাইভিংয়ের তুলনায় সময়ের অপচয়।
  2. এটি স্বীকার করেছে যে ছোটখাটো পার্থক্য গুরুত্বহীন। প্রাথমিক নীতিগুলির সাথে একমত হওয়া এবং বোঝা গুরুত্বপূর্ণ। ধারাবাহিক স্টাইল বজায় রাখা l'art pour l'art হিসাবে অনুসরণ করা হয় না। এটি অবাস্তব নিটপিকারদের অন্যান্য লোককে বিরক্ত করতে ও বিভ্রান্ত করতে দেয় না। এটি একটি দলে কোডের মাধ্যমে যোগাযোগের সুবিধার্থে।

2

একটি প্রায়শই আপডেট হওয়া এবং ভালভাবে লিখিত কোড স্ট্যান্ডার্ড ডকুমেন্ট খুব কার্যকর হতে পারে, তবে সাধারণত এটি হয় না। স্ট্যান্ডার্ড ডকুমেন্টটি কোম্পানির দ্বারা ব্যবহৃত প্রকৃত কোডিং মানগুলি প্রতিফলিত করে না কারণ একটি ভাল মানের নথি তৈরি করা খুব কঠিন এবং এটি আপ টু ডেট রাখা আরও কঠিন।

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


2

একটি খুব গুরুত্বপূর্ণ বিষয় যা পরিষ্কারভাবে যথেষ্টভাবে বলা হয়নি যে হ'ল কোডিং মানগুলি ভাষার মতো: এগুলি বিকশিত হয়। একটি লিখিত কোডিং মান এই পথে দাঁড়িয়ে থাকে এবং এটি যদি না হয় তবে এটি ক্রমাগত পুরানো এবং অকেজো।

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

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

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

দৃ related়ভাবে সম্পর্কিত: কোডিং মানগুলির বিবর্তন, আপনি কীভাবে তাদের সাথে ডিল করবেন?


* লোকেরা যদি চেক-ইন-তে কোডটি পর্যালোচনা করার সময় মনে না করে তবে আপনার সমস্যাগুলি কেবল কোডিং মানগুলির চেয়ে অনেক বড়।


1

তাদের পরিবর্তন করা একটি বড় বাধা হয়ে দাঁড়ায় এবং লোকেরা মস্তিষ্কের সাথে জড়িত হওয়ার চেয়ে সঠিকভাবে আইনের চিঠিতে মেনে চলবে এবং সঠিক কাজ করবে।

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


0

আমি মনে করি এখানে অনেকগুলি পোস্ট স্টাইল গাইডের সাথে কোডিং মানকে বিভ্রান্ত করছে ।

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

হেডার ফাইলটিতে # ফাইল অন্তর্ভুক্ত করার সঠিক উপায় এবং বৈশ্বিক নেমস্পেসকে দূষিত না করার মতো বিষয়গুলি নথিভুক্ত করা উচিত যাতে প্রাথমিক কোডিং এবং কোড পর্যালোচনার সময় এগুলিকে চেকলিস্ট হিসাবে ব্যবহার করা যেতে পারে।

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

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

তবে এটি কোডিংয়ের ক্ষেত্রে প্রযোজ্য , শৈলীতে নয়

সি এবং সি ++ এর উদ্ভাবকরা উদাহরণস্বরূপ, ছোট মামলার নাম ব্যবহার করেন এবং CaMelCaSe নয় । তাহলে কেন এত বেশি বিকাশকারীরা ফাউন্ট থেকে অন্তর্নিহিত উদাহরণ অনুসরণ করেন না? স্ট্যান্ডার্ড লাইব্রেরির স্টাইল এবং প্রচলিত শিক্ষামূলক উপকরণগুলি অনুসরণ করার ইমপ্লিট স্টাইলটি হওয়া উচিত নয়?

এদিকে, মানুষ কি যে, অনুলিপি করা উচিত নয় ব্যবহারের মতো জিনিসগুলির জন্য মান গ্রন্থাগার হেডার উদাহরণ অনুসরণ __Uglyম্যাক্রো প্যারামিটার জন্য নাম এবং The দায়ের অ পুনরাবৃত্তি প্যাটার্ন অন্তর্ভুক্ত।

সুতরাং স্টাফ থাকা প্রায়শই গুরুত্বপূর্ণ শৈলী হিসাবে দেখা হয় না বা প্রকল্পের কোডে কী অনুসরণ করা উচিত নয় সে সম্পর্কে বিপরীত উদাহরণ থাকতে পারে clear উভয়ই থিসিসের প্রতিবিম্বিত উদাহরণ যে "স্টাইল" (বা কোডিং কনভেনশনগুলি) সবচেয়ে ভাল বাম অন্তর্নিহিত।

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