এই page কোনো tutorial library নয়। প্রতিটি ধারণা কেন লাগে, কখন শেখা ভালো, এখন কতটা গভীরতা দরকার আর ছোট করে কী practice করবেন—সেটি বলে।
AI যুগে আসল bottleneck
Code বানানো সহজ হয়েছে। বোঝা, যাচাই করা আর safely বদলানো সহজ হয়নি।
AI output যত বাড়ে, review-এর দায়ও তত বাড়ে। এই ধারণাগুলো fancy vocabulary নয়—generated code merge করার আগে কোথায় প্রশ্ন করবেন, কীভাবে complexity কমাবেন আর failure সামলাবেন, তার practical lens।
আচরণ না বদলে design উন্নত করার disciplined পদ্ধতি।
AI যুগে কেন আরও জরুরি
AI-কে ‘পুরোটাই rewrite করুন’ বলার বদলে ছোট verified change করতে পারলে regression, token আর review cost নিয়ন্ত্রণে থাকে।
কখন শিখবেন
Testable working code হওয়ার পরে।
এখন কতটা
সমস্যাটি চিনতে পারা, নিজের ভাষায় ধারণাটি বোঝানো এবং ছোট একটি project-এ বুঝে প্রয়োগ করতে পারা।
ছোট্ট অনুশীলন
Characterization test দিয়ে একটি function simplify করুন।
যা এড়িয়ে চলবে
ভাঙা behavior আর architecture—দুটো একসঙ্গে rewrite করবেন না।
04
Defensive Programming
কেন দরকার
Input, dependency আর failure সম্পর্কে assumption স্পষ্ট করে system-কে নিরাপদভাবে ব্যর্থ হতে শেখায়।
AI যুগে কেন আরও জরুরি
AI happy path-এ বেশ বিশ্বাসযোগ্য হতে পারে; malformed input, timeout, missing permission বা অসম্পূর্ণ context-এ কী হবে—সেই দায় engineer-এরই।
কখন শিখবেন
User input, API, file, database বা AI output-এর boundary যোগ হলেই।
এখন কতটা
সমস্যাটি চিনতে পারা, নিজের ভাষায় ধারণাটি বোঝানো এবং ছোট একটি project-এ বুঝে প্রয়োগ করতে পারা।
ছোট্ট অনুশীলন
একটি external input validate করুন, failure result স্পষ্ট করুন এবং malformed case-এর test দিন।
যা এড়িয়ে চলবে
সব exception গিলে ফেলবেন না, secret log করবেন না, আর impossible state চুপচাপ accept করবেন না।
05
SOLID Principles
কেন দরকার
Dependency আর responsibility নিয়ে team-এ কথা বলার একটি vocabulary।
AI যুগে কেন আরও জরুরি
AI advanced abstraction বানাতে পারে; SOLID-এর প্রশ্নগুলো দিয়ে বুঝুন change-এর কারণগুলো মিশেছে কি না এবং dependency বদলানো বা test করা অযথা কঠিন হচ্ছে কি না।
কখন শিখবেন
ছোট application বানিয়ে change-এর কষ্ট নিজে দেখার পরে।
এখন কতটা
সমস্যাটি চিনতে পারা, নিজের ভাষায় ধারণাটি বোঝানো এবং ছোট একটি project-এ বুঝে প্রয়োগ করতে পারা।
ছোট্ট অনুশীলন
একটি class-এর responsibility split justified কি না explain করুন।
যা এড়িয়ে চলবে
SOLID-এর প্রতিটি letter দেখেই একটি করে interface বানাতে বসবেন না।
06
Design Principles
কেন দরকার
Cohesion, coupling, information hiding আর dependency direction change cost কমায়।
AI যুগে কেন আরও জরুরি
AI-এর suggestion বিচার করতে principle দরকার: কোন boundary স্থিতিশীল, কোন dependency উল্টো হওয়া উচিত আর কোথায় simple code-ই যথেষ্ট।
কখন শিখবেন
Multiple module-এর project-এ।
এখন কতটা
সমস্যাটি চিনতে পারা, নিজের ভাষায় ধারণাটি বোঝানো এবং ছোট একটি project-এ বুঝে প্রয়োগ করতে পারা।
ছোট্ট অনুশীলন
একটি dependency arrow উল্টে testability improve করুন।
যা এড়িয়ে চলবে
Diagram সুন্দর হলেই design ভালো—এমন ধরে নেবেন না। আঁকতে ভালো হলেই architect হওয়া যায় না।
07
Design Patterns
কেন দরকার
Recurring design pressure-এর shared vocabulary।
AI যুগে কেন আরও জরুরি
AI pattern-এর নাম জানে, কিন্তু আপনার trade-off জানে না। Pattern বুঝলে suggestion চিনতে, team-এর সঙ্গে আলোচনা করতে এবং অকারণ complexity ফিরিয়ে দিতে পারেন।
কখন শিখবেন
সমস্যাটি নিজের code-এ দেখার পরে।
এখন কতটা
সমস্যাটি চিনতে পারা, নিজের ভাষায় ধারণাটি বোঝানো এবং ছোট একটি project-এ বুঝে প্রয়োগ করতে পারা।
ছোট্ট অনুশীলন
Strategy বা Adapter দিয়ে existing pain solve করে alternative compare করুন।
যা এড়িয়ে চলবে
২৩টি GoF pattern মুখস্থ করে সকালের নাশতাতেও Factory খুঁজতে যাবেন না।
Readability, simplicity, duplication আর test-কে code maintain করার বাস্তব খরচের সঙ্গে যুক্ত করে—AI দিয়ে draft করা code-ও এর বাইরে নয়।
এতটুকু করুন: Clean code-এর বৈশিষ্ট্যগুলো পড়ে working code-এ naming, duplication বা বড় একটি function improve করুন। বড় refactor-এর আগে test দিয়ে behavior ধরে রাখুন।
Compile হওয়া বা AI-এর আত্মবিশ্বাসী output যে maintainability pressure দেখায় না, সেটি ধরার visual vocabulary দেয়।
এতটুকু করুন: Bloaters, Change Preventers আর Couplers দিয়ে শুরু করুন। নিজের project-এ একটি example খুঁজে change cost লিখুন; behavior protect করে তবেই refactor করুন।
শেষবার যাচাই:
আরও গভীরে · optionalRefactoring.Guru·article·বিনামূল্যে
Pattern-কে adaptable design blueprint আর team-এর shared language হিসেবে বোঝায়; একই সঙ্গে সীমা আর misuse নিয়েও ভাবায়।
এতটুকু করুন: Pattern কী, লাভ কী আর criticism কোথায়—আগে এগুলো পড়ুন। Working code-এ সমস্যা দেখাতে পারলে তবেই Strategy বা Adapter দেখুন; simpler option-এর সঙ্গে compare করুন।
শেষবার যাচাই:
আরও গভীরে · optionalCommunity-maintained open guide·book·বিনামূল্যে