একটি ট্র্যাকের অনেকগুলো ভিন্ন অংশ থাকে।
ট্র্যাকের কনফিগারেশন ও মেটাডেটা config.json ফাইলে নির্দিষ্ট করা থাকে। এতে ট্র্যাকের অনুশীলনী, কনসেপ্ট, এডিটর সেটিংস আরও অনেক কিছু তালিকাভুক্ত থাকে। config.json সম্পর্কিত ডকুমেন্টেশন দেখুন।
একটি ট্র্যাকের সব কনসেপ্ট ও প্র্যাকটিস অনুশীলনীতে কনসেপ্ট জড়িত থাকে। এই কনসেপ্টগুলো নিজে থেকেই আলাদা সত্তা। আরও তথ্যের জন্য ডকুমেন্টেশন দেখুন।
ট্র্যাকের কনসেপ্ট অনুশীলনীতে যেসব কনসেপ্ট শেখানো হয়, সেগুলো মিলে একটি সিলেবাস তৈরি করে। সিলেবাস শিক্ষার্থীদের কাছে একটি কনসেপ্ট ম্যাপ হিসেবে দেখানো হয়। একটি সিলেবাস-এর জন্য কনসেপ্ট ম্যাপ কীভাবে তৈরি করবেন জানতে কনসেপ্ট ম্যাপ ডকুমেন্টেশন দেখুন।
সিলেবাস কীভাবে ডিজাইন করবেন সে সম্পর্কে আরও তথ্যের জন্য সিলেবাস ডকুমেন্টেশন দেখুন।
ট্র্যাকে দুই ধরনের অনুশীলনী থাকে:
প্রতিটি অনুশীলনীতে একটি ঐচ্ছিক 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 ফাইলে নির্দিষ্ট করা):
কিছু উদাহরণ:
[no important files changed] যোগ করে মার্জ করা হয়েছিল, তাই কোনো টেস্ট চালানো হয়নি