Node.js සමඟ TypeScript භාවිතා කරමින් ව්යාපාරික මට්ටමේ යෙදුම් සකස් කරන සංවර්ධකයින්ට NestJS දැන් අත්පොතක් වගේ හඳුනාගත හැක. නමුත් නවතම තරඟකාරී Ditsmod නමින් කුමක්ද කියලා දැන් බොහෝ දෙනා කුතුහලයෙන් බලා සිටී. මේ ලිපියෙහි පළමු කොටසේ, NestJS 12.0 සහ Ditsmod 3.0 අතර මූලික ව්යුහ ගැලපුම කෙරෙහි අවධානය යොමු කරමු.
මොඩියුල සහ පැහැදිලි ව්යුහය – දෙකම මොඩියුල මත පදනම් වෙයි. NestJS හි @Module() ඩෙකෝරේටරය භාවිතා කර imports, controllers, providers, exports යන සියල්ල එකම තැනින් නිර්වචනය කරයි. Ditsmod එය තවත් සවිස්තරාත්මකව බෙදා හරියි: @rootModule (සාමාන්යයෙන් AppModule) එකම ඇතුළත් බින්දුව, @featureModule ප්රතිදානකරුන් ගොඩනැගීමට, @restModule හෝ @trpcModule වැනි විශේෂිත ඩෙකෝරේටරයන් තත්ත්වය අනුව එක් කරයි. මෙය කේත ග්රාෆ් එක වඩා පැහැදිලි කරයි.
Token ගැටළු විසඳුම – NestJS හි එකම provider token එකක් විවිධ මොඩියුල වලින් ආයාත කළොත්, import ක්රමලේඛය අනුව නිශ්ශබ්දව තේරේ. Ditsmod එම අස්ථිරතාව තහනම් කරයි; ගැටළුවක් ඇති වුවමනාවත් එය දෝෂයක් ලෙස ඉස්සරහට පෙන්වා, developers ලට collisions manually resolve කරන ලෙස බල කරයි. මෙය විශාල codebase වල DI overrides හේතුවෙන් ඇතිවන බග් හරහා යාමක් වැළැක්වීමට උපකාරී.
Dependency Injection (DI) පදනම – NestJS හි Scope enum (DEFAULT, REQUEST, TRANSIENT) භාවිතා කර provider scope නියම කරයි. Request‑scoped provider එකක් inject කළහොත්, එය භාවිතා කරන සෙවාවත් request‑scoped වෙයි, එමඟින් performance bottleneck එකක් ඇති විය හැක. Ditsmod නිරවද්ය Injector Hierarchy එකක් ඉදිරිපත් කරයි: providersPerApp, providersPerMod, providersPerRou, providersPerReq. ළමා injectors පියාගේ provider සොයයි, පියා ළමාව බලන්නේ නැත. මෙයින් parent‑level provider එකක් child‑level provider එකක් inject නොකළ හැකිය, සහ Req‑level override parent‑level provider එක shadow කරයි, එමඟින් predictability වැඩි වෙයි.
Framework විස්තාරණය: Lifecycle vs Extensions – NestJS හි OnModuleInit, OnApplicationBootstrap වැනි lifecycle interfaces පවතී. Ditsmod එය Extensions System එකක් ලෙස නැවත නිර්මාණය කරයි. Extensions තුනේ පියවර (stage1, stage2, stage3) මගින් metadata එක සකස් කර, module‑level injector එක ලබාදී, අවසානයේ post‑processing කරයි. Lead Extension එකක් සමඟ Group extensions එකතු කර, OpenAPI generator හෝ custom body parser වැනි plugin ලට routing pipeline එකට සරලව එකතු කර ගැනීමට හැකියාව ඇත.
ශ්රී ලංකාවට ඇති වැදගත්කම
ශ්රී ලාංකීය තාක්ෂණ ශිෂ්යයන්ට, NestJS හා Ditsmod අතර ව්යුහික වෙනස්කම් ඉගෙන ගැනීම, TypeScript‑මූලික backend development කුසලතා වර්ධනයට හොඳ අවස්ථාවක්. Ditsmod නව DI hierarchy එක, මොඩියුල‑මට්ටමේ පැහැදිලි බව, සහ extensions system එක, ලොකු පරිමාණ ව්යාපෘතිවල maintainability වැඩි කරයි. ඒ නිසා startups සහ IT සමාගම්ට කෝඩ් පාලනය, performance optimisation, සහ plugin integration පහසු වේ. තවත්, Ditsmod හි token collisions තහනම, බග් හුදකලා කිරීමේ කාලය කෙටි කරයි, ඒත් නව framework එක adopt කිරීමේදී training cost එක තරමක් වැඩි විය හැකිය. එNevertheless, දෙකම Angular‑inspired, decorators සහ DI භාවිතා කරන නිසා, දැනට NestJS දැනුම ඇති devs ලට Ditsmod වෙත මාරු වීම ඉතා පහසු වේ.
අදාල ව්යුහ ගැලපුම පිළිබඳ දැනුම, ඔබේ පළපුරුද්දට නව දොරටු විවර කරයි. දෙකම පරීක්ෂා කර, ඔබේ ව්යාපෘතියේ අවශ්යතා අනුව සුදුසු framework එක තෝරන්න.