අද වන විට ව්යාපාරික කණ්ඩායම් වැඩිපුර කේත යැවීම, වැඩිපුර නිතර, — GitHub Copilot සහ Amazon Q වැනි AI ආකෘති උපාංග මගින් ආයෝජනය කරනු ලැබේ. කවදාවත් වඩා ඒත් ප් රශ්නයක් තියෙනවා. AI සමාගම් කණ්ඩායම් වඩාත්, වඩාත් වේගයෙන් ප්රවාහනය කිරීමට උපකාරී වන අතර, ඔවුන් උරුම කර ඇති පෞද්ගලික පද්ධති - වසර හෝ දශක ගණනාවක් පෞද්ගලික ණය සමග - සංකීර්ණතාවය ඉහළ යන විට, බොහෝ සංවිධාන නවීනකරණය කිරීමට පියවර ගනු ඇත - පමණක් නොව, වලාකුළු සංක්රමණය එය අවශ්ය නිසා. නරක වෙනවා යථාර්ථය වන්නේ AI කේතය වටා ඇති උනන්දුව බොහෝ විට Greenfield ව්යාපෘති සහ අලුතින් ගොඩනැගුණු යෙදුම්වලට අවධානය යොමු වන අතර, most developers spend their time maintaining and modernizing legacy systems that are filled with outdated code, old frameworks, and accumulated . ආකෘති ණය ආකෘති ණය මෙම පරිවර්තනය සඳහා කණ්ඩායම් සඳහා මෙම නියෝගයක් ලැබී ඇත, නමුත් ඔවුන්ගේ AI මෙවලම් දැනට පවතින මෘදුකාංග ආකෘතිය (හෝ ආකෘති ණය) පිළිබඳ සෑහෙන්න හෝ කිසිදු සම්බන්ධතාවයක් ඇති අතර, ගැඹුරු කැපීම, සබඳතා සහ ආකෘති වළක්වා ගැනීම වැනි ගැටළු වැඩි වේ. . එය වඩාත් නරක කරයි නමුත් උත්තරයක් තියෙනවා.ඇත්තටම මෘදුකාංගය යනු කේතය ඉක්මනින් නැවත ලිවීම ගැන පමණක් නොවේ. AI භාවිතා කිරීම සඳහා නිවැරදි ප්රවේශයක් සහිතව, මෙම අරමුණු සාර්ථක කර ගත හැකිය. reshaping software architecture to support scalability, faster delivery, and cloud-native goals මෙම ලිපියේදී, අපි සොයා බලමු කොහොමද පහසුකම් වැඩිපුරම ලිපි AI භාවිතා කිරීම සඳහා කේතය මත අවධානය යොමු වන අතර, අපි AI භාවිතා කළ හැකි ආකාරය පිළිබඳ විශේෂ උදාහරණ බලන්නම්. නිවැරදි මෙවලම් සහ නිවැරදි කොන්දේසි සමඟ, AI, ඔබේ කණ්ඩායමගේ උත්සාහයට බාධා නොකර, උදව් කිරීමට සහතික සහ නිවැරදි ආකෘති යෝජනා ලබා ගත හැකිය. AI-assisted software architecture modernization actively help modernize software architecture ඔබ monolithic පැරණි පද්ධතිය සමඟ සටන් කරනවාද හෝ පැරණි මයික්රෝසර්විස්ගේ සංකීර්ණතාවයන් පවත්වාගෙන යනවාද, AI ඵලදායී හා බලවත් සමාගම් නිර්මාණකරුවෙකු විය හැකිය. AI සහ මෘදුකාංග ආකෘතිය පිළිබඳ ගැටලුව අපි දන්නවා AI කේතය පරිවර්තනය කර ඇති බව. වැඩිපුරම සංවර්ධකයින් ඔවුන්ගේ දිනපතා වැඩවලදී AI කේතය උපකාරීන් මත රඳා පවතී, මෙම AI නියෝජිතයන් බුද්ධිමත්, අත්දැකීම් සහිත, සහ නුසුදුසු කේතය උපකාරීන් ලෙස භාවිතා කරයි. ප් රශ්නය වන්නේ මේ දිනපතා භාවිතය තුළ AI ආකෘතියටත් බලපෑමක් ඇති බවයි. පරිගණකයා කේතය ලියන විට, ඔවුන් නිතරම ප්රශ්න අහනවා, සහ ප්රශ්නය ගැන සැලකිලිමත් වන අතර: මම කොහොමද මගේ පන්ති සංවිධානය කරන්නේ? මම කොහොමද caching කරන්නෙ? මේ ව්යාපාරික සංකල්පය කොතැනට දාන්නද? අභ් යන්තර ආකෘති මොනවාද? මෙය අපගේ සම්පූර්ණ මෘදුකාංග ආකෘතියට ගැලපෙන්නේ කෙසේද? තව තවත් සංවර්ධකයින් එය අවබෝධ කර ඇති හෝ නැත, AI නියෝජිතයන් ද මෙම ප්රශ්න අහනවා - සහ අනුකූලව ආකෘති තීරණ ගැනීම - සෑම රේඛාවක්ම නිර්මාණය කරන ලද කේතය සමඟ. මේ තීරණත් එක්කම එනවා — විශේෂයෙන්ම AI නියෝජිතයා (කතාපදිංචි ලෙස) ආකෘතිය පිළිබඳ කිසිදු සංකේතයක් තේරුම් නොගන්නේ නම්. ඔබේ බුද්ධිමත්, අත්දැකීම් සහිත, හා නිහතමානීව කේතය උපදේශකයා පෘථිවියේ නිවැරදි බව පෙනෙන අසාධාරණ තීරණ ගන්නවා - නමුත් මෘදුකාංග ආකෘතිය පිළිබඳ සංකේතයෙන් බැලුවහොත් එය තවත් ණය, තවත් ගැටළු සහ පැය ගණනාවක් ඩුබාග් කිරීම එකතු කරයි. risk ඔබේ ගැටළු වඩාත් නරක කිරීමට, මෙම වැරදි සාමාන්යයෙන් වහාම පැහැදිළි නොවේ. පැරණි පද්ධති සමඟ, කේතය ප්රවේශය බොහෝ විට පරිපූර්ණයට වඩා අඩු වේ. එවිට පවා, මෘදුකාංග ආකෘතිය සාමාන්යයෙන් එහි බිඳවැටීම ශබ්දයෙන් ප්රකාශ නොකරයි. ගැඹුරු කැපවීම හෝ නොපෙනෙන මොඩියුල් වැනි ගැටළු බොහෝ විට අධීක්ෂණය හා පරීක්ෂණ මෙවලම් සඳහා නොපෙනෙනු ඇත. මෘදුකාංග ආකෘතිය Drift (මුද්රව්ය සහ පාලනය කළ ආකෘතියෙන් ඈත් වන වේගවත් සහ සමස්තයෙන් නොපෙනෙනෙන ආර්ද්රව්ය) විශේෂයෙන් සංකීර්ණ වේ. එය මිලියන 8 කට වඩා වැඩි කේත රේඛාවක් ඇති විශාල ජාවා මොනොලිතය නවීන කිරීම සඳහා සටන් කර ඇත.එය ප්රසිද්ධ කතාවක්: පද්ධතියගේ සංකීර්ණත්වය ප්රබල විය, අභ්යන්තර නවීනකරණ උත්සාහයන් වසර ගණනාවක් ගත විය, සහ උත්සාහයන් නැවත නැවත වරක් රඳා පිරී තිබුණු අඛණ්ඩ අර්බුදයන් නිසා නතර විය. Architecture drift 100 බැංකුව මෑත පර්යේෂණයකදී, ව්යාපාරික ප්රතිඵල ප්රතිඵල ප්රතිඵල ප්රතිඵල ප්රතිඵල ප්රතිඵල ප්රතිඵල ප්රතිඵල ප්රතිඵල ප්රතිඵල ප්රතිඵල ප්රතිඵල ප්රතිඵල ප්රතිඵල ප්රතිඵල ප්රතිඵල ප්රතිඵල ප්රතිඵල ප්රතිඵල ප්රතිඵල ප්රතිඵල ප්රතිඵල ප්රතිඵල 93% ප්රශ්න ආකෘති ප්රශ්න code bugs වලට වඩා අඩු පෙනුමක් ඇති විය හැකිය, නමුත් ඒවා වඩාත් ප්රශ්නීය වේ. AI සැබවින්ම ඔබේ මෘදුකාංග ආකෘතිය යාවත්කාලීන කිරීමට උදව් කළ හැකි ආකාරය එහෙත් එය මේ ආකාරයට විය යුතු නැත. AI ඔබගේ ආකෘති තීරණ තේරුම් ගැනීමට සහ අනුගමනය කිරීමට පමණක් නොව, ඒවා වැඩි දියුණු කිරීමට උදව් කළ හැකිය. ස්ටීක් තැපැල් සහ ජාතීන්ගේ දැනුම කෙටි වන අතර, සංවර්ධකයින් සහ ආකෘතිකරුවන් අන්ධකාරයේ ඉතිරිව ඇති අතර, AI පමණක් සහායකයක් නොවේ. brownfield modernization efforts AI මෙවලම් කේත මට්ටමේ වැඩි දියුණු කිරීම් හඳුනා ගැනීමට සහ යෝජනා කළ හැකි පරිදි, එය Runtime විශ්ලේෂණය මත පදනම්ව අඛණ්ඩව අඛණ්ඩව අඛණ්ඩව අඛණ්ඩව අඛණ්ඩව අඛණ්ඩව අඛණ්ඩව අඛණ්ඩව අඛණ්ඩව අඛණ්ඩව අඛණ්ඩව අඛණ්ඩව අඛණ්ඩව අඛණ්ඩව අඛණ්ඩව අඛණ්ඩව අඛණ්ඩව අඛණ්ඩව අඛණ්ඩව අඛණ්ඩව අඛණ්ඩව අඛණ්ඩව අඛණ්ඩව අඛණ්ඩව අඛණ්ඩව අඛණ්ඩව අඛණ්ඩව අඛණ්ඩව අඛණ්ඩව අඛණ්ඩව අඛණ්ඩව අඛණ්ඩව අඛණ්ඩව අඛණ්ඩව අඛණ්ඩව අඛණ්ඩව අඛණ්ඩව අඛණ්ඩව අඛණ්ඩව අඛණ්ඩව අඛ නිවැරදිව භාවිතා කර ඇති අතර runtime සමුද්රව්ය සහ ප්රවෘත්ති domain driven ව්යුහය විශ්ලේෂණය සමඟ, AI: ප්රධාන ප්රශ්නයක් බවට පත් වීමට පෙර ආකෘතිමය antipatterns හඳුනා ගැනීම සහ නිවැරදි කිරීම නිශ්චිත ප් රතිසංස්කරණ උපාය මාර්ග ඉංජිනේරු කණ්ඩායමේ සීමිත කාලය ඉතිරි කිරීමෙන් විසඳන දේ ප්රමුඛතාවය ලබා ගන්න (කූඩර් උපදේශකයින් කුඩා ප්රශ්න ඉක්මනින් විසඳීමට උපකාර කරයි) Untangle Complex ආකර්ෂණය Architectural Drift සකස් කිරීම ස්වයංක්රීය කිරීම, ක්රියාත්මකව පද්ධතිය ස්වයංක්රීය කිරීම සාර්ථක නවීනකරණය සඳහා සාර්ථක උපාය මාර්ග ඒ නිසා අපි දන්නවා AI අපගේ හොඳම මිතුරා විය හැකි පද්ධති නවීන කිරීම විට. මෘදුකාංග ආකෘතිය තුළ AI හි ඵලදායී භාවිතය සඳහා පළමු පියවර වන්නේ ඵලදායී ප්රවේශ කිරීමයි. ඔබ ලැබෙන ප්රතිඵල ඔබගේ ප්රවේශයේ ගුණාත්මකභාවයට සෘජුවම සම්බන්ධ වේ. ඔබ ඔබේ ප්රවේශය තුළ යම් ආකාරයකින් අන්ධ නම්, ප්රතිඵල බොහෝ විට ඉතා වැරදි වනු ඇත. එබැවින් සාර්ථක වේගයක් පෙනෙන ආකාරය කුමක්ද? 1. Be specific. “REST API එකක් හදන්න Order එක පාලනය කරන්න.” මෙම ප්රවේශය, සමහර විට පුළුල් ලෙස නරක වන අතර, ආකෘති හා නිර්මාණ දෙකම AI පරිවර්තනය සඳහා විශාල ඉඩක් ඉතිරි කරයි. ඒ වෙනුවට, විශේෂයෙන් ආකෘති ප්රවේශය සමඟ ඉක්මනින්: “Flask සහ SQLAlchemy භාවිතා කිරීමෙන් ඇණවුම් කළමනාකරණය කිරීම සඳහා Python REST API නිර්මාණය කරන්න. HTTP ඉල්ලීම් කළමනාකරණ මට්ටම (Flask routes) ව්යාපාරික ලෝහය සඳහා සේවක මට්ටම, SQLAlchemy ORM භාවිතා කිරීම සඳහා දත්ත ප්රවේශය සඳහා තැන්පතු මට්ටමකි. 2. Be thorough. සංකේතය ගැන පමණක් සඳහන් නොකරන්න.ඔබට අවශ් ය නොවන ක්රියාකාරී අවශ් යතා පවා ඇතුළත් වේ. "Python Flask REST API සහාය කිරීම සඳහා ක්රියාකාරී ස්ථාවරත්වය සහ සකස් කළ හැකිය. සෑම ඇතුළත් HTTP ඉල්ලීම සහ එහි ප්රතිචාර තත්ත්වය ලියාපදිංචි.Python හි ඇතුළත් ලියාපදිංචි මොඩියුලය භාවිතා කිරීමෙන් සෑම ඉල්ලීමක් සඳහා ක්රියාත්මක කාලය ලියාපදිංචි කරන්න.Logs should be structured and include a timestamp, endpoint, status code, and latency. Controller layer හි Pydantic ආකෘති භාවිතා කිරීමෙන් ඇතුළත් වන සියලු ඉල්ලීම් payloads සහතික කරන්න.Assure validation errors return standardized JSON error responses with clear messages and appropriate HTTP status codes. Repository layer හි transient database errors සඳහා exponential backoff සමඟ retry logic ක්රියාත්මක කරන්න.Use Tenacity to handle retries without duplicating logic in the business layer. සියලුම වැරදි ප්රතිචාර අනුගමනය JSON සැලැස්ම, වැරදි කේතය, පණිවිඩය, සහ තෝරාගැනීම් සඳහා අවශ්ය විස්තර ඇතුළත්. " 3. Always be an architect. ඔබේ ආකෘතිය සැලසුම් සහ අරමුණු, සහ ඔවුන් පද්ධතිය තුළ ඇතුළත් කළ යුතු ආකාරය සන්නිවේදනය. ඇණවුම් පද්ධතිය සඳහා මොඩියුලර් ඊ-තැපැල් බෙදාහැරීමේ පද්ධතිය සංවර්ධනය කිරීම, අවම වශයෙන් ප්රමාණවත් කිරීමට සැලසුම් කර ඇති අතර පසුව තමන්ගේම මයික්රොසෙස්සෙස් එකට වෙන් කළ හැකිය. Clear Separation of Concerns - පිරිසිදු මට්ටම් වලට කේත පදනම ගොඩනැගීම: Controller Layer (එනම්, Flask මාර්ගය): ඊ-තැපැල් යැවීමේ ඉල්ලීම් පිළිගැනීම සහ තහවුරු කිරීම. Service Layer: rate limiting, content templating, and retries වැනි ව්යාපාරික නීති ගබඩා කරයි. Repository Layer: SQLAlchemy භාවිතා කිරීමෙන් ඊ-තැපැල් යැවීමේ උත්සාහයන්, තත්වයන් සහ ප්රවාහන ලැයිස්තුවන්ගේ ස්ථාවරත්වය කළමනාකරණය කරයි. 2 ප් රචණ්ඩත්වය : දුරකථන ඇමතුම් අතර සැසැස්වීම හෝ ඉල්ලුම්-පෞද්ගලික තත්වය සකස් නොකරන්න. සෑම සබැඳි (උදාහරණයක් ලෙස, යැවීමේ ID, ඊ-තැපැල් අන්තර්ගතය, මාතෘකාව) සෑම ඉල්ලීමකට ඇතුළත් විය යුතුය. ස්ථාවරයක් නැති පරිගණක කොඩිය පවත්වා තබා ගැනීම සඳහා සෑම ස්ථාවරයක්ම පිටත ස්ථාවරයන් (DataBase, Cache, or queue) තුළ තබා ගන්න. මයික්රෝ සේවා සූදානම සහ Scalability: සෑම ප්රධාන ගැටලුවකටම සැලසුම් කරන්න (උදාහරණයක් ලෙස, යැවීම, ඊ-තැපැල් ප්රදර්ශනය, තත්වය නිරීක්ෂණය) ඉන්පසු ස්වාධීන සේවාවක් බවට පත් කළ හැකි අභ්යන්තර මොඩියුලයක් ලෙස. Hardcoded යෙදුම් වළක්වා ගැනීම - සෑම ප්රධාන අමුද්රව්ය සඳහා සීමාවන් සකස් කළ යුතුය (උදාහරණයක් වශයෙන්, EmailProvider, EmailQueue, TemplateEngine). සියලු සේවා සහ තැපැල් ආකෘති සංවර්ධක හෝ සරල DI container හරහා ඉස්මතු කරන්න. ක්රියාකාරී නොවන අවශ් යතා: ප්රතිරෝධීත්වය: Backoff උපාය මාර්ග භාවිතා කිරීමෙන් SMTP වැරදි සහ අසාර්ථකතා නැවත ප්රතිකාර කිරීම. නිරීක්ෂණය: සියලුම ඊ-තැපැල් ක්රියාකාරකම් ලියාපදිංචි කිරීම සඳහා ඉල්ලුම් ID සහ ප් රවාහනය මෙටා දත්ත සහිතව. පුළුල් කිරීම: පරිගණක අමුද්රව්ය පිටුපස විවිධ සැපයුම්කරුවන් (උදාහරණයක් ලෙස, SendGrid, SES) සහාය කිරීම පහසු කරයි. මතක තියා ගන්න: සාර්ථකව උපදෙස් ඔබේ ආකෘතිය වේ. සෑම විටම නිශ්චිත වන්න, කොන්දේසි එකතු කරන්න, සම්පූර්ණ වන්න. ඔබේ prompts සඳහා අර්බුදික සමුද්රව්ය එකතු කරන්න apt කියවපු කෙනෙකුට අන්තිම ප් රකාශයට ඇතුළත් වී ඇති බව පෙනෙනු ඇත “අපි සබැඳි එකතු කරමු” ... නමුත් අපි තවමත් ඒ අවශ් යතාවයට අවධානය යොමු කර නැහැ. අපගේ ප්රවේශයන් සඳහා ආකෘති කොන්දේසි එකතු කිරීම සඳහා, අපට යම් උදව් අවශ්ය. , යෙදුම් ආකෘතිය විශ්ලේෂණය කිරීම සහ GenAI සහකාරියන්ට ප්රතිසංස්කරණ සඳහා ව්යුහය මාර්ගෝපදේශ ලබා දීම සඳහා මෙවලමක්.We will use static and dynamic analysis combined with data science to understand the logical domains of your app and identify the optimal boundaries of those domains.This in turn allows us to find architectural issues in complex Java and .NET apps, such as: ක්රියාකාරකම් Circular dependencies සංවර්ධනය ප් රතිපත්තිය තාක්ෂණික ණය Domain Boundary දූෂණය මළ කේතය තව තවත් ඉන්පසු ඔබ එම තොරතුරු ඔබේ නියෝජිතයාට ලබා දෙනවා එහි පියවර පෙන්වන්න, ඔබ කැමති කේතය ලිවීමට අවශ්ය තොරතුරු ඔබේ AI නියෝජිතයාට ලබා දෙනවා. පියවරෙන් පියවරකට උදාහරණයක් ඉහත පියවර හරහා ගමන් කරමු අපි කේත උපදේශකයන් සඳහා අර්ධකාලීන කොන්දේසි සපයන්නේ කෙසේදැයි බලන්න. Analyze your app. ඔබගේ යෙදුමෙන් ස්ථාවර හා දෛනික දත්ත එකතු කිරීමෙන් ආරම්භ කරන්න. vFunction භාවිතා කරමු ඔබගේ යෙදුම තුළ ඇති ප්රමාණවත් ස්ථාවර ප්රදේශ සහ ඔවුන්ගේ සීමාවන් හඳුනා ගැනීම සඳහා. මෙම මූලාශ්රයක් මගින් මෙවලම Sub-optimal domain boundaries, inter-domain class dependencies, resource dependencies, high-debt classes, circular dependencies, and shared code across domains වැනි අදාළ අද්විතීය ප්රශ්න හඳුනාගත හැකිය. මධ්යම ප්රමාණයේ යෙදුම සහ එහි අමුද්රව්ය ව්යාපාර ප්රදේශ විශ්ලේෂණය (බන්ධයන් විසින් නියෝජනය කරන ලද) සහ ඒකාබද්ධ තාක්ෂණික ණය. **Review the architectural TODOs \ Next generate a list of prioritized architectural TODOs, each with a contextual explanation and an AI-ready prompt you can use in tools like Amazon Q or GitHub Copilot. **Use the prompt in your AI assistant. \ Send the generated prompt into your IDE or code assistant. It will understand the context and help you break up god classes, resolve domain pollution, or implement suggested changes to increase the modularity of your code. For example, in the screen shot above we see suggestions for refactoring a circular flow dependency. **Validate and repeat. \ Rerun the analysis after applying changes. It will show you whether modularity improved, which TODOs were resolved, which weren’t, and suggest the next step in the refactoring process. ඔබේ LLMs සමඟ මෙම අවබෝධය එකතු කිරීමෙන්, ඔබ ගොඩනැගීමට සහ ප්රතිසංස්කරණයේ දුෂ්කර වැඩ කිරීමට සූදානම් ශක්තිමත්, පරිගණක අවබෝධ සහකාරියක් නිර්මාණය කරයි. AI is Your Partner in Software Architecture මෘදුකාංග ආකෘතිය තුළ AI ඔබේ සහකරු වේ AI-powered coding යනු කතාවේ කොටසක් පමණි. The real value comes from using those same AI assistants not just to generate code but as a partner to help you modernize and improve your existing software architecture. බලවත්, අනුකූල හා නිශ්චිත ප්රවේශයන් නිර්මාණය කිරීම සඳහා අර්ධකාලීන, ක්රියාකාරී කාලය පදනම් වූ සමුද්රව්ය භාවිතා කිරීමෙන්, AI ඔබට පැරණි අර්ධකාලීන ණය පරාජය කිරීමට, ඔබේ කේතය modularize කිරීමට සහ පුළුල් කළ හැකි, වලාකුළු නවීන පද්ධතිය ක්රියාත්මක කිරීමට උදව් කළ හැකිය. සැබෑවටම සුන්දර දවසක් !