Node.js ලෝකයේ ප්රමුඛතම දෙකක් වන NestJS 12 සහ Ditsmod 3, දැන් ඒවායේ ඇක්ස්ටෙන්ෂනල් හැකියාවන් ගැන සාකච්ඡා කරමු. පෙර ලිපි තුළ Dependency Injection (DI) හierarchy සහ validation pipelines ගැන කතා කරාම, මේ ලිපියෙන් එම දෙකේ ව්යාපාරික පරිසරයක විස්තරාත්මක විස්තීර්ණයක් ලබා දෙමු.
Dynamic Modules කියන්නේ Angular හි RouterModule.forRoot() වගේ, රන්ටයිම්දී සැකසුම් ලබා දී providers නිර්මාණය කරන මොඩියුලයි. NestJS මේ සංකල්පය සම්පූර්ණයෙන්ම අනුගමනය කරයි; static factory method එකකින් DynamicModule object එකක් ආපසු දී providers, exports, module වගේ දේවල් නියම කරයි. Ditsmodද ඒම ආකාරයෙන් DynamicModule interface එකක් ලබා දී, static class reference එකක් හෝ DynamicModule object එකක් import කරමින් සැකසුම්, route prefix, custom provider overrides වැනි විස්තර සපයයි.
Dynamic Modules භාවිතා කිරීමෙන් API key, database connection string වැනි විශේෂිත සැකසුම් DI container එකට එක් කළ හැකිවෙයි. නමුත්, වැඩි දියුණු අවශ්යතා ඇතිවූ විට, උදාහරණයක් ලෙස සම්පූර්ණ යෙදුම පුරා decorators සොයා Swagger ලේඛන සාදීම වැනි ක්රියාවලියක් අවශ්ය වේ.
NestJS මේ සඳහා Lifecycle Hooks (OnModuleInit, OnApplicationBootstrap) සහ DiscoveryService භාවිතා කරයි. OpenAPI generator එකක් සාදන විට, OnApplicationBootstrap hook එක තුළ DiscoveryService inject කර, සියලු controller, provider ගෙන් metadata කියවා schema එකක් ගොඩනැගේ. මෙය runtime‑දී සිදුවන බැවින්, නව providers එකතු කිරීම හෝ plugin අතර සම්බන්ධතා සැකසීමේදී සීමා ඇතිවෙයි.
Ditsmod v3 ඒ වෙනුවට Extension System එකක් හඳුන්වා දෙයි. Extensions යනු application initialization අවස්ථාවේ පමණක් ක්රියාත්මක වන, infrastructure සකස් කිරීම සඳහා නිර්මාණය කර ඇති කොටස් වේ. ඒවා static metadata එකට පසු පමණක් ක්රියා කරයි, request processing එකට සම්බන්ධ නොවේ. එම නිසා, විවිධ third‑party modules වල metadata එකතු කර Swagger ගොනුවක් සකස් කිරීම, හෝ custom router එකක් සාදීම වැනි වැඩ අඩු latency සහිතව සිදු කළ හැකිය.
ශ්රී ලංකාවට ඇති වැදගත්කම
ශ්රී ලංකාවේ තාක්ෂණික ශිෂ්යයෝ, ඩිවෙලපර් සහ ව්යාපාරිකයින්ට මේ දෙකේ විශේෂත්වය තුළින් ලැබෙන ප්රතිලාභ බොහොමයක් ඇත.
- ශිෂ්යයෝ: Angular පරිච්ඡේදයට පුරුදු වූ විශ්වවිද්යාල ශිෂ්යයන්ට NestJS සහ Ditsmod සමඟ සමාන ආකාරයේ modular architecture අධ්යයනය කළ හැකිය. එමඟින් job market එකේ ඉහල ඉල්ලුමක් ඇති Node.js backend development කුසලතා ඉක්මනින් ලබා ගත හැකිය.
- ඩිවෙලපර්: Dynamic Modules සහ Extension Groups භාවිතයෙන් reusable library, plugin, OpenAPI generator වැනි සංකීර්ණ infrastructure එකක් ලේසිව නිර්මාණය කළ හැකිය. මෙය කාලය ඉතිරි කරයි, code quality ඉහළ දරයි.
- ව්යාපාර: Ditsmod හි Extension System මඟින් enterprise‑grade application එකක් අවශ්ය විධිමත් initialization පියවර සමඟ ඉක්මනින් rollout කළ හැකිය. එමඟින් ගනුදෙනුකරුවන්ට වේගවත් API, ස්කේලබල් architecture සහ අඩු maintenance cost ලබා දිය හැක.
අවසන් වශයෙන්, NestJS සහ Ditsmod දෙකම Angular‑මූලික design pattern එක අනුගමනය කරන නමුත්, scalability සහ extensibility අවශ්යතා වෙනස් වීමත් සමඟ, Ditsmod හි Extension Groups වඩා structured හා performant solution එකක් ලබා දෙයි. ඔබේ පළපුරුද්ද අනුව, සුදුසු framework එක තේරීම ඔබේ project success එකට මූලිකය.