Exercism-এর স্টাইল গাইড


এই ডকুমেন্টটি অনুশীলনীতে ব্যবহৃত ভাষা ও শব্দচয়নের জন্য একটি স্টাইল গাইড হিসেবে কাজ করে।

প্রয়োগ

সব অনুশীলনীতেই এই নিয়মগুলো অনুসরণ করা উচিত। বিদ্যমান বর্ণনা ও টেস্ট কেসগুলোকে এই নিয়ম মেনে চলার জন্য হালনাগাদ করা যায়, এর জন্য "বদলি" টেস্ট কেস লাগে না।

একটি অনুশীলনীর ভেতরে সামঞ্জস্য

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

ব্যতিক্রম

মেইনটেইনারদের মধ্যে যদি সাধারণভাবে ঐকমত্য থাকে যে এটি যুক্তিসঙ্গত, তাহলে অনুশীলনী এই নিয়মগুলো থেকে সরে আসতে পারে। উদাহরণস্বরূপ, বিভিন্ন এককের মধ্যে রূপান্তর নিয়ে একটি অনুশীলনী SI পরিমাপ ব্যবহার না করার সিদ্ধান্ত নিতে পারে।

ভাষা

সব কনটেন্ট US English-এ লেখা উচিত, যা UK English থেকে নানা দিক থেকে আলাদা। ভবিষ্যতে অন্য অনুবাদও হতে পারে, তবে Exercism-এর "অফিসিয়াল" ভাষা US English।

পরিমাপ

পরিমাপের সব একক SI বা SI থেকে উদ্ভূত একক হতে হবে।

সংক্ষিপ্ত রূপ, অ্যাক্রোনিম ও ইনিশিয়ালিজম

অনেক সময় অন্য বাক্যভঙ্গির চেয়ে সংক্ষিপ্ত রূপ, অ্যাক্রোনিম ও ইনিশিয়ালিজম বোঝা বেশি কঠিন হয়, আর এগুলো শিখতে চাওয়া মানুষকে দূরে সরিয়ে দিতে পারে।

অনেক সংক্ষিপ্ত রূপই জার্গন। যেখানে সম্ভব, বিকল্প ভাষা ব্যবহার করে জার্গন এড়িয়ে চলুন। নিচের যেকোনো একটি ক্ষেত্র ছাড়া সংক্ষিপ্ত রূপ ব্যবহার করবেন না:

  • সংক্ষিপ্ত রূপটি প্রসারিত রূপের চেয়ে বেশি পরিচিত
  • সংক্ষিপ্ত না করলে লেখাটি অতিরিক্ত শব্দবহুল হয়ে যাবে

সংক্ষিপ্ত রূপ ব্যবহার করলে প্রথমবারেই সেই শব্দের অর্থ ব্যাখ্যা করুন। এতে অনেক সময়ই সংক্ষিপ্ত রূপটি পুরো করে লেখা থাকবে, তবে সব সময় নয়। শুধু সংক্ষিপ্ত রূপটি পুরো করে লেখাই খুব কম ক্ষেত্রেই যথেষ্ট হয়।

এখানে কিছু উদাহরণ নিয়ম দেওয়া হলো:

  • "IIRC"-এর বদলে "if I recall correctly" ব্যবহার করা ভালো
  • "AFAIK"-এর বদলে "as far as I know" ব্যবহার করা ভালো
  • "FIFO"-এর বদলে "queue" এবং "FILO"-এর বদলে "stack" ব্যবহার করা ভালো
  • ইন্টারফেসকে "RESTful" বলে বর্ণনা করার বদলে তার নির্দিষ্ট বৈশিষ্ট্যগুলো বর্ণনা করুন
  • "CRUD" ব্যবহার করতেই হলে ব্যাখ্যা করুন যে এটি Create, Read, Update, Delete-এর সংক্ষিপ্ত রূপ এবং এগুলো স্ট্যান্ডার্ড ডেটাবেজের মৌলিক কাজ

আর ভালো ব্যবহারের কিছু উদাহরণ:

  • "HyperText Markup Language (HTML) is the language used to describe document structure and content on the web" (পুরো করা হয়েছে ও ব্যাখ্যা করা হয়েছে)
  • "DNA, a set of chemical instructions that influence how our bodies are constructed" (DNA পুরো করা হয়নি, কারণ "deoxyribonucleic acid" আমাদের পাঠকদের কাছে DNA কী তা বোঝাতে খুব একটা সাহায্য করবে বলে মনে হয় না)
  • "NASA, the United States' space agency, launched the Mariner 2 space probe in..." (NASA পুরো করা হয়নি, কারণ "National Aerospace and Space Administration"-এর পুরো নামের চেয়ে এর সংক্ষিপ্ত রূপই অনেক বেশি পরিচিত)
  • "The Department of Motor Vehicles (DMV) is filled with sloths. That's why everything takes forever at the DMV" (DMV প্রথমবার ব্যবহারেই সংজ্ঞায়িত করা হয়েছে)

ব্যাকরণ

অক্সফোর্ড কমা

তালিকায় "অক্সফোর্ড কমা" (যাকে সিরিয়াল কমাও বলা হয়) ব্যবহার করুন। উদাহরণস্বরূপ, "I love my parents, Lady Gaga and Humpty Dumpty" না লিখে লিখুন "I love my parents, Lady Gaga, and Humpty Dumpty"। ব্যাখ্যা হিসেবে এই ছবিটিও আপনার ভালো লাগতে পারে।

ব্যতিক্রম

কিছু সংক্ষিপ্ত রূপ এতটাই প্রচলিত, দরকারি ও অ-কারিগরি বলে বিবেচিত হয় যে আমরা সেগুলো অনুমোদন করার সিদ্ধান্ত নিয়েছি:

  • e.g. বা eg
  • i.e. বা ie
  • etc. বা etc
  • docs

সংকোচিত রূপ (যেমন "won't", "I'm", "that's") অনুশীলনীর বর্ণনায় খুব অল্পই, বা আদৌ না ব্যবহার করাই ভালো; তবে সাইটের অন্য জায়গার ভাষায় (যেমন ওয়েবসাইট কপি, মেন্টরিং) এগুলোর ওপর কোনো বিধিনিষেধ নেই।

অনেক আমেরিকান ইংরেজি স্টাইল গাইডে বলা হয় যে "i.e." ও "e.g." সংক্ষিপ্ত রূপ দুটির পরে কমা দেওয়া উচিত (দেখুন, যেমন, এই StackExchange থ্রেডটি)। Exercism-এর লেখায় এটি অনুমোদিত, তবে বাধ্যতামূলক নয়।

শব্দ নির্বাচন

গাণিতিক ও জার্গন শব্দ

যেখানেই গাণিতিক শব্দ ব্যবহার করা হয়, সেখানে সেগুলো ব্যাখ্যা করা উচিত, নয়তো কম ডোমেইন জ্ঞান লাগে এমন শব্দ দিয়ে বদলে দেওয়া উচিত।

উদাহরণ:

  • "natural numbers" ব্যবহার করার বদলে "positive whole numbers" ব্যবহার করা উচিত।
  • "rational numbers" শব্দবন্ধটি ব্যবহার করতে চাইলে অনুশীলনীর ভূমিকায় তা ব্যাখ্যা করতে হবে।
  • range শব্দটি ব্যবহার করার বদলে (যার বিভিন্ন প্রসঙ্গে বিভিন্ন অর্থ হতে পারে) ব্যবহার করুন "x < ? < y (greater than x and less than y)"।
  • "esoteric terms" ব্যবহার করার বদলে "terms not understood by the majority of people" শব্দবন্ধটি ব্যবহার করুন।

কোড

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