ট্র্যাক তৈরি করা


একটি ট্র্যাকের অনেকগুলো ভিন্ন অংশ থাকে।

মেটাডেটা

ট্র্যাকের কনফিগারেশন ও মেটাডেটা config.json ফাইলে নির্দিষ্ট করা থাকে। এতে ট্র্যাকের অনুশীলনী, কনসেপ্ট, এডিটর সেটিংস আরও অনেক কিছু তালিকাভুক্ত থাকে। config.json সম্পর্কিত ডকুমেন্টেশন দেখুন।

কনসেপ্ট

একটি ট্র্যাকের সব কনসেপ্ট ও প্র্যাকটিস অনুশীলনীতে কনসেপ্ট জড়িত থাকে। এই কনসেপ্টগুলো নিজে থেকেই আলাদা সত্তা। আরও তথ্যের জন্য ডকুমেন্টেশন দেখুন।

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

সিলেবাস কীভাবে ডিজাইন করবেন সে সম্পর্কে আরও তথ্যের জন্য সিলেবাস ডকুমেন্টেশন দেখুন।

অনুশীলনী

ট্র্যাকে দুই ধরনের অনুশীলনী থাকে:

  • কনসেপ্ট অনুশীলনী: এগুলো একজন শিক্ষার্থীকে এক বা একাধিক কনসেপ্ট শেখানোর জন্য তৈরি। আরও তথ্যের জন্য ডকুমেন্টেশন দেখুন।
  • প্র্যাকটিস অনুশীলনী: এগুলো শেখা কনসেপ্ট অভ্যাস করার জন্য তৈরি। আরও তথ্যের জন্য ডকুমেন্টেশন দেখুন।

Dig deeper

প্রতিটি অনুশীলনীতে একটি ঐচ্ছিক Dig Deeper অংশ থাকে, যাতে থাকতে পারে:

  • অ্যাপ্রোচ: অনুশীলনীটি যেভাবে যেভাবে সমাধান করা যায়
  • আর্টিকেল: অনুশীলনীর মজার দিকগুলো বর্ণনা করে
  • কমিউনিটি ভিডিও: অনুশীলনীটি তুলে ধরা ভিডিও, সাধারণত কেউ শুরু থেকে অনুশীলনীটি সমাধান করে দেখানোর মাধ্যমে

শেয়ার্ড ফাইল

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

ডকস

প্রতিটি ট্র্যাকে কয়েকটি আবশ্যক ডকুমেন্টেশন ফাইল থাকে। আরও তথ্যের জন্য ডকুমেন্টেশন দেখুন।

উইজেট

ট্র্যাকের কিছু অংশ উইজেটে দেখানো যায়।

স্টাইল গাইড

সব ডকুমেন্ট স্টাইল গাইড মেনে চলা উচিত। Markdown ডকুমেন্টেরও আমাদের Markdown স্ট্যান্ডার্ড মেনে চলা উচিত।

উদাহরণ

csharp
├── config
|   ├── exercise_readme.go.tmpl
|   └── maintainers.json
├── docs
|   ├── ABOUT.md
|   ├── INSTALLATION.md
|   ├── LEARNING.md
|   ├── RESOURCES.md
|   └── TESTS.md
├── concepts
|   └── numbers
|       ├── about.md
|       ├── introduction.md
|       └── links.json
└── exercises
|   ├── concept
|   |   └── cars-assemble
|   |       ├── .docs
|   |       |   ├── hints.md
|   |       |   ├── introduction.md
|   |       |   └── instructions.md
|   |       ├── .meta
|   |       |   ├── config.json
|   |       |   ├── design.md
|   |       |   └── Exemplar.cs (track-specific)
|   |       ├── CarsAssemble.cs (track-specific)
|   |       ├── CarsAssemble.csproj (track-specific)
|   |       └── CarsAssembleTests.cs (track-specific)
|   ├── practice
|   |   └── leap
|   |       └── .docs
|   |       |   └── instructions.md
|   |       └── .meta
|   |       |   ├── config.json
|   |       |   └── Example.cs (track-specific)
|   |       ├── Leap.cs (track-specific)
|   |       ├── Leap.csproj (track-specific)
|   |       └── LeapTests.cs (track-specific)
|   └── shared
|       └── .docs
|           ├── debug.md
|           ├── help.md
|           └── tests.md
└── config.json

মেইনটেন্যান্স

রেপো পারমিশন

প্রতিটি ট্র্যাককে (স্বয়ংক্রিয়ভাবে) একটি মেইনটেন্যান্স ক্যাটাগরি দেওয়া হয়, যা ট্র্যাক মেইনটেইনারের GitHub রেপো পারমিশন নির্ধারণ করে।

অপ্রয়োজনীয় টেস্ট রান এড়ানো

আপনি যখন কোনো অনুশীলনী স্পর্শ করে এমন একটি ট্র্যাক PR মার্জ করেন, তখন শিক্ষার্থীদের সলিউশনের সর্বশেষ প্রকাশিত সব ইটারেশন আবার টেস্ট হওয়া শুরু হয়। জনপ্রিয় অনুশীলনীর ক্ষেত্রে এটি খুবই খরচসাপেক্ষ কাজ (চরম উদাহরণ হিসেবে Python-এর Hello World-এর জন্য ৭০,০০০ টেস্ট রান!)।

অকারণে এটি করা এড়িয়ে চলার চেষ্টা করার জন্য আমরা অনুরোধ করি।

মার্জ হওয়া কমিট যদি নিচের যেকোনো একটি হয়, তাহলে সলিউশন পুনরায় টেস্ট করা হবে না:

  • শুধু .docs বা .meta ফাইল, কিংবা ব্যবহারকারীরা যেগুলোর সাথে যোগাযোগ করে না এমন অন্য ফাইল স্পর্শ করে
  • অথবা কমিট বডিতে [no important files changed] থাকে।

মার্জ হওয়া কমিট যদি নিচের দুটোই হয়, তাহলে সলিউশন পুনরায় টেস্ট করা হবে:

  • কমিট বডিতে [no important files changed] থাকে না
  • এবং কোনো অনুশীলনীর নিচের যেকোনো একটি ফাইল স্পর্শ করে (যা তার .meta/config.json ফাইলে নির্দিষ্ট করা):
    • টেস্ট ফাইল
    • এডিটর ফাইল
    • ইনভ্যালিডেটর ফাইল

কিছু উদাহরণ:

  • Python#3423: শুধু ডকুমেন্টেশন স্পর্শ করেছে, তাই কোনো টেস্ট চালানো হয়নি
  • Python#3437: [no important files changed] যোগ করে মার্জ করা হয়েছিল, তাই কোনো টেস্ট চালানো হয়নি
  • Csharp#2138: টেস্ট থেকে হোয়াইটস্পেস মুছে ফেলা হয়েছিল। কিওয়ার্ডটি যোগ করা হয়নি। অপ্রয়োজনীয়ভাবে টেস্ট আবার চালানো হয়েছিল।