আধুনিক প্রকৌশলের কাজ খুব কমই একটি ফাইলে থাকে। বাস্তব সিস্টেমগুলি কয়েক বছর ধরে ক্রমান্বয়ে স্তরযুক্ত সিদ্ধান্তের বিকাশ ঘটে – কিছু ভাল, কিছু দুর্ঘটনাজনিত। একটি একক বৈশিষ্ট্যের অনুরোধ (“নোটগুলিতে ট্যাগিং যুক্ত করুন,” “বৈধকরণ স্তরের রিফ্যাক্টর,” “আমাদের API-এ একটি নতুন গ্রাহককে সমর্থন করুন”) প্রায়শই কন্ট্রোলার, ডোমেন মডেল, সংগ্রহস্থল, স্থানান্তর, পরীক্ষা, ডকুমেন্টেশন এবং স্থাপনার কৌশল স্পর্শ করে।
CoPilot-এর এজেন্টিক ক্ষমতা এই পরিস্থিতিতে আপনার রায় প্রতিস্থাপন করে না – তারা এটিকে উন্নত করে। ভালভাবে ব্যবহার করা হলে, কপিলট সিস্টেম ডিজাইন, রিফ্যাক্টরিং, আধুনিকীকরণ এবং মাল্টি-ফাইল সমন্বয়ের অংশীদার হয়ে ওঠে।
এই নির্দেশিকাটি স্টাফ ইঞ্জিনিয়ারদের দ্বারা প্রতিদিন ব্যবহৃত আর্কিটেকচার-সচেতন, বহু-পদক্ষেপের কর্মপ্রবাহের উপর ফোকাস করে, তবে এটি এমনভাবে লেখা হয়েছে যে প্রাথমিক পেশাগত প্রকৌশলী যারা বুঝতে চান তাদের কাছে অ্যাক্সেসযোগ্য। কিভাবে সিনিয়র ইঞ্জিনিয়াররা ভাবেন—এবং কোপাইলট কীভাবে তাদের বিকাশকে ত্বরান্বিত করতে পারে।
এটি চারটি গিটহাব দক্ষতা অনুশীলনের উপর ভিত্তি করে (নিচে লিঙ্ক করা হয়েছে), এবং একটি সম্পূর্ণ, বাস্তব-বিশ্বের দৃশ্যকল্প তৈরি করে: একটি ট্যাগিং সাবসিস্টেম সহ একটি ছোট মডুলার নোট পরিষেবা প্রসারিত করা, একটি বৈধতা স্তরকে পুনরায় প্রকৌশলী করা, একটি নিরাপদ স্থানান্তর ডিজাইন করা এবং পরীক্ষার আধুনিকীকরণ৷
আপনি শুরু করার আগে
আপনি এই নির্দেশিকা থেকে সর্বাধিক সুবিধা পাবেন যদি আপনার থাকে:
- এজেন্ট মোড সক্ষম সহ GitHub Copilot
- সার্ভিস-লেয়ার আর্কিটেকচারের সাথে কিছু পরিচিতি (নোড, পাইথন, গো-ভাষা কোন ব্যাপার না)
- আপনার হ্যান্ডেল বা প্রতিষ্ঠানে গিটহাব দক্ষতা অনুশীলন টেমপ্লেটটি অনুলিপি করুন (সবুজ “অনুলিপি অনুশীলন” বোতামটি ব্যবহার করুন)
- সহ-পাইলটকে সমাধান প্রস্তাব করতে দেওয়ার ইচ্ছা – এবং সেগুলি পর্যবেক্ষণ এবং চ্যালেঞ্জ করার সিদ্ধান্ত।
আপনি যদি আপনার কর্মজীবনের প্রথম দিকে থাকেন তবে চিন্তা করবেন না। প্রতিটি অধ্যায় ব্যাখ্যা কেন এই নিদর্শনগুলি গুরুত্বপূর্ণ এবং কীভাবে সেগুলি নিরাপদে অনুশীলন করা যায়।
সিস্টেম ডিজাইন এবং পচনের জন্য কপিলট ব্যবহার করা (শুধু ভারা নয়)
সিনিয়র ইঞ্জিনিয়াররা খুব কমই কোড লিখে শুরু করেন। তারা সীমানা চিহ্নিত করে শুরু করে: ডোমেন লজিক, ডেটা অ্যাক্সেস, ইন্টারফেস এবং মডিউলগুলি কীভাবে ইন্টারঅ্যাক্ট করা উচিত।
কপিলট এজেন্ট মোড কাঠামোগত সমস্যা প্রকাশ করে এবং আর্কিটেকচার প্রস্তাব করে সাহায্য করতে পারে।
প্রম্পট:
Analyze this service and propose a modular decomposition with domain, infrastructure, and interface layers.
Identify anti-patterns, coupling issues, and potential failure points.
আপনি সাধারণত ফিরে পাবেন:
- প্রস্তাবিত মডিউল সীমাবদ্ধতা
- ক্রস-লেয়ার কাপলিং উদ্বেগ
- অ্যাসিঙ্ক/লেনদেনজনিত ক্ষতি
- দায়িত্বের অনুলিপি বা একত্রীকরণ
- পরীক্ষাযোগ্যতা এবং পর্যবেক্ষণযোগ্যতার প্রভাব
এটি একটি স্ব-সম্পূর্ণ টুল থেকে কপিলটকে ডিজাইন পর্যালোচনাকারীতে পরিণত করে।
আপনি আর্কিটেকচার তুলনা করার জন্য জিজ্ঞাসা করে আরও যেতে পারেন:
Compare hexagonal architecture vs. layered architecture for this codebase.
Recommend one based on the constraints here. Include tradeoffs.
এটা নিজে চেষ্টা করতে চান? একটি সূচনা পয়েন্ট হিসাবে এই প্রস্তাবগুলি ব্যবহার করুন.
এজেন্টিক ওয়ার্কফ্লো ব্যবহার করে একটি মডুলার পরিষেবা তৈরি করা
একবার সীমা সংজ্ঞায়িত করা হলে, সহ-পাইলট মডিউলে পরিবর্তনগুলি সমন্বয় করতে পারে।
প্রস্তুত::
Implement the domain, controller, and repository layers as distinct modules.
Use dependency inversion to reduce coupling.
Document assumptions and contracts for each module.
কো-পাইলট সাধারণত তৈরি করবে:
- ডোমেইন মডেল ইন্টারফেস
- স্টক সারাংশ
- কন্ট্রোলার লজিক কলিং ডোমেন পরিষেবা
- প্রতিটি মডিউল বর্ণনা করে একটি সংক্ষিপ্ত মার্কডাউন সারাংশ
প্রারম্ভিক কর্মজীবন প্রকৌশলীদের জন্য, এটি প্রকৃত প্রকৌশল নিদর্শনগুলির এক্সপোজার প্রদান করে। সিনিয়র ইঞ্জিনিয়ারদের জন্য, এটি লিভারেজ প্রদান করে এবং বয়লারপ্লেট ওভারহেড হ্রাস করে।
স্থাপত্য সচেতনতার সাথে বৈশিষ্ট্যমূলক কাজ (উদাহরণ: ট্যাগিং সাবসিস্টেম)
একটি ট্যাগিং সাবসিস্টেম যোগ করা অর্থপূর্ণ স্থাপত্যগত প্রভাব সহ একটি প্রতারণামূলকভাবে সহজ অনুরোধ।
এমনকি এই একক বৈশিষ্ট্য পুরো সিস্টেম জুড়ে সিদ্ধান্ত নিতে বাধ্য করে:
- ডেটা মডেলিং: এমবেডেড ট্যাগ বনাম স্বাভাবিক সারণী বনাম বহু-থেকে-অনেক সম্পর্ক
- অনুসন্ধান আচরণ: ট্যাগগুলি কীভাবে ইন্ডেক্সিং, ফিল্টারিং এবং প্রাসঙ্গিকতাকে প্রভাবিত করে
- API চুক্তি: ট্যাগগুলি হল প্রথম শ্রেণীর সংস্থান বা বাস্তবায়নের বিবরণ৷
- যাচাই সীমা: যেখানে সীমাবদ্ধতা এবং invariants প্রয়োগ করা হয়
- মাইগ্রেশন এবং রোলআউট: সংযোজন বনাম ব্রেকিং পরিবর্তন এবং রোলব্যাক কৌশল
কোড স্পর্শ করার আগে, সহ-পাইলটকে প্রভাব ম্যাপ করতে বলুন।
প্রস্তুত::
Propose the architectural changes required to add a tagging subsystem.
Identify migration needs, cross-cutting concerns, caching or indexing implications, and potential regressions.
সহ-পাইলট চিনতে পারে:
- ট্যাগ-নোট সম্পর্ক (এক-থেকে-অনেক বা বহু-থেকে-অনেক)
- অভিবাসন কৌশল
- অনুসন্ধান যুক্তির উপর প্রভাব
- প্রয়োজনীয় পরীক্ষা আপডেট
- বৈধতা যুক্তি পরিবর্তন
- বহিরাগত API গ্রাহকদের উপর প্রভাব
এটি স্টাফ-লেভেল লেন্স যা Copilot জুনিয়র ডেভেলপারদের গ্রহণ করতে সাহায্য করতে পারে।
তারপর এটি বাস্তবায়ন করুন:
Implement the tagging domain model, schema changes, repository updates, and controller logic.
Update tests and documentation. Show each change as a diff.
উদাহরণ আউটপুট (সরলীকৃত)
মাইগ্রেশন উদাহরণ:
ALTER TABLE notes ADD COLUMN tags TEXT DEFAULT '[]';
ডোমেন মডেল উদাহরণ:
export interface Tag {
id: string;
label: string;
}
export interface Note {
id: string;
title: string;
body: string;
tags: Tag[];
}
কন্ট্রোলার আপডেট (আংশিক):
await noteService.addTag(noteId, { label: req.body.label });
এখানেই এজেন্ট মোড উজ্জ্বল হয়: সামঞ্জস্যপূর্ণ অভিপ্রায় সহ একাধিক ফাইল সমন্বয় করা।
স্কিমা মাইগ্রেশন এবং সুরক্ষিত রোলআউট কৌশল
সিনিয়র স্তরে, সবচেয়ে কঠিন অংশটি এসকিউএল লেখা নয়। এটি একটি পরিবর্তনের রূপরেখা দিচ্ছে যা হল:
- পশ্চাদপদ সামঞ্জস্যপূর্ণ
- বিপরীত
- লোড অধীনে নিরাপদ
- নির্ভরশীল সিস্টেমের জন্য স্বচ্ছ
সহ-পাইলটকে কারণ সম্পর্কে জিজ্ঞাসা করুন:
প্রম্পট:
Generate an additive, backward-compatible schema migration to support the tagging subsystem.
Describe the rollback plan, compatibility window, and expected impact to existing clients.
এটি কো-পাইলটকে বিবেচনা করতে বাধ্য করে:
- সোম-ব্রেকিং যোজক ক্ষেত্র
- ঐচ্ছিক ক্ষেত্র বনাম প্রয়োজনীয় ক্ষেত্র
- দ্বৈত পঠন বা দ্বৈত লেখার কৌশল প্রয়োজন
- নিরাপদ রোলব্যাক পদ্ধতি
- API সংস্করণের প্রভাব
আপনি যদি আপনার কর্মজীবনের প্রথম দিকে থাকেন তবে এটি কীভাবে একটি নিরাপদ মাইগ্রেশন ডিজাইন করতে হয় তার একটি পাঠ প্রদান করে। এবং আপনি যদি আরও অভিজ্ঞ হন তবে এটি আপনাকে বহু-পদক্ষেপ স্কিমা বিকাশের জন্য একটি পুনরাবৃত্তিযোগ্য ওয়ার্কফ্লো দেয়।
এজেন্টিক ওয়ার্কফ্লো সহ উন্নত রিফ্যাক্টরিং
আসুন একটি বাস্তব ক্রস-মডিউল রিফ্যাক্টর সঞ্চালন করি: কন্ট্রোলার থেকে ডোমেন পরিষেবাতে বৈধতা অপসারণ।
প্রম্পট:
Create a step-by-step refactor plan to extract validation logic into a domain service.
Identify affected modules and required test updates.
কো-পাইলট এরকম কিছু আউটপুট করতে পারে:
- ডোমেইন পরিচয় করিয়ে দিন
validationService - নিয়ামক থেকে পরিষেবাতে বৈধতা যুক্তি সরান
- নতুন পরিষেবা ব্যবহার করতে কন্ট্রোলার আপডেট করুন
- রিপোজিটরি লজিক আপডেট করুন যেখানে বৈধতা অনুমান ফাঁস হয়
- ডোমেইন টেস্ট আপডেট করুন
- ইন্টিগ্রেশন টেস্ট আপডেট করুন
ক্রমবর্ধমান ধাপে চালান
প্রম্পট:
Execute steps 1–3 only. Stop before controller rewrites.
Provide detailed diffs and call out risky areas.
এটি একটি নিম্ন-বিস্ফোরণ-ব্যাসার্ধ রিফ্যাক্টর, সরাসরি IDE-তে নির্মিত।
পরীক্ষার কৌশলের আধুনিকীকরণ
কোপাইলটকে “পরীক্ষা লিখতে” বলার পরিবর্তে তাকে পুরো স্যুটটি মূল্যায়ন করতে বলুন।
প্রম্পট:
Analyze the current test suite and identify systemic gaps.
Recommend a modernization plan including contract, integration, and domain-layer tests.
তারপর চুক্তি পরীক্ষা প্রয়োগ করুন:
describe("NotesRepository contract", () => {
test("create + fetch returns a fully hydrated note object", async () => {
const note = await notesRepo.create({ title: "Test", body: "…" });
const fetched = await notesRepo.get(note.id);
expect(fetched).toMatchObject({ title: "Test" });
expect(fetched.id).toBeDefined();
});
});
এটি একটি স্থাপত্য উদ্বেগ মধ্যে পরীক্ষা elevates.
একটি সম্পূর্ণ এন্ড-টু-এন্ড ওয়ার্কফ্লো
এটিকে একত্রিত করে, এখানে একটি আসল ক্রম যা আপনি Copilot এর সাথে চালাতে পারেন:
- কপিলটকে বিদ্যমান আর্কিটেকচার বিশ্লেষণ করতে বলুন: মডুলারাইজেশনের জন্য হুমকি, সুযোগ সনাক্ত করুন
- মডিউল সীমানা সংজ্ঞায়িত করুন: ডোমেইন, রিপোজিটরি, কন্ট্রোলার লেয়ার
- ট্যাগিং সাবসিস্টেম যোগ করুন: স্থাপত্য মূল্যায়ন থেকে বাস্তবায়ন থেকে পরীক্ষা থেকে নথির আপডেট পর্যন্ত
- একটি পশ্চাদগামী-সামঞ্জস্যপূর্ণ মাইগ্রেশন তৈরি করুন: রোলব্যাক পরিকল্পনার জন্য সংযোজন স্কিমা
- একটি লক্ষ্যযুক্ত রিফ্যাক্টর সম্পাদন করুন: বৈধতা স্তর নিষ্কাশন
- পরীক্ষার আধুনিকীকরণ: কন্ট্রাক্ট + ইন্টিগ্রেশন + ডোমেন টেস্টিং
এই কর্মপ্রবাহটি স্থাপত্যগতভাবে বাস্তবসম্মত – এবং কপিলট কীভাবে একটি সিস্টেম-স্তরের সহচর হয় তার একটি মডেল।
এজেন্ট মোড কি? না জন্য
এটা স্পষ্ট করা গুরুত্বপূর্ণ যে এজেন্ট মোড এর জন্য আদর্শ নয়:
- মানুষের পর্যালোচনা ছাড়াই ডোমেন ইনভেরিয়েন্ট পরিবর্তন করা
- ক্রস-সার্ভিস মালিকানার সীমা পুনরায় ডিজাইন করা
- প্রাতিষ্ঠানিক জ্ঞান দ্বারা চালিত যুক্তি প্রতিস্থাপন
- শত শত ফাইল জুড়ে বড় ভর পুনর্লিখন
- গভীর রানটাইম সমস্যা ডিবাগ করা
সহ-পাইলট প্রয়োজন সাহায্য আপনার সিদ্ধান্ত নেওয়া, এটি প্রতিস্থাপন না.
পরবর্তীতে কোথায় যেতে হবে
সেখানেই GitHub দক্ষতা আসে – “স্টার্টার স্টাফ” হিসাবে নয়, বরং নির্দেশিত, স্বয়ংসম্পূর্ণ ল্যাবগুলির একটি সেট হিসাবে যা উপরের নিদর্শনগুলিকে শক্তিশালী করে৷
এমনকি সিনিয়র ইঞ্জিনিয়াররাও উপকৃত হবেন: এই অনুশীলনগুলি এমনভাবে গঠন করা হয়েছে যাতে আপনি নির্ভরযোগ্যভাবে জটিল কর্মপ্রবাহগুলি পুনরায় তৈরি করতে পারেন এবং একটি নিয়ন্ত্রিত পরিবেশে সহ-পাইলটের আচরণ পরীক্ষা করতে পারেন।
দ্বারা লিখিত