𝗗𝗗𝗗 𝗜𝘀 𝗡𝗼𝘁 𝗗𝘆𝗶𝗻𝗴. 𝗖𝗮𝗿𝗴𝗼-𝗖𝘂𝗹𝘁 𝗗𝗗𝗗 𝗜𝘀.
Domain-Driven Design (DDD) அழிந்துவிடவில்லை.
AI-ன் வளர்ச்சியால், இப்போது DDD-ன் அடிப்படை மதிப்பு முன்பை விட முக்கியத்துவம் வாய்ந்ததாக உள்ளது. நீங்கள் இன்னும் இவற்றைச் செய்ய வேண்டியுள்ளது:
- சிக்கலான வணிகத் துறைகளை (business domains) புரிந்துகொள்ளுதல்
- bounded contexts-களை வரையறுத்தல்
- பொறியாளர்கள் மற்றும் நிபுணர்களுக்கிடையிலான மொழியை ஒருங்கிணைத்தல்
- மாறாத விதிகளைக் (invariants) கண்டறிதல்
- நிலை மாற்றங்களை (state transitions) வெளிப்படையாக்குதல்
AI குறியீடுகளை (code) உருவாக்குவதை எளிதாக்கிவிட்டது. இது தெளிவற்ற சிந்தனையை இன்னும் ஆபத்தானதாக மாற்றுகிறது. உங்கள் டொமைன் லாஜிக் (domain logic) குழப்பமாக இருந்தால், AI அந்த குழப்பத்தை இன்னும் வேகமாக உருவாக்க உங்களுக்கு உதவும்.
பிரச்சனை DDD அல்ல. பிரச்சனை Cargo-Cult DDD தான்.
பல குழுக்கள் புரிந்துகொள்வதை விட, கட்டுப்பாட்டிற்கான ஒரு கருவியாக tactical DDD-ஐப் பயன்படுத்துகின்றன. அவர்கள் வெறும் முறையைப் பின்பற்றுவதற்காகவே சில முறைகளைப் பின்பற்றுகிறார்கள்:
- ஒரு Entity-ஐ உருவாக்குதல்
- ஒரு Repository-ஐச் சேர்த்தல்
- ஒரு Mapper-ஐ எழுதுதல்
- கோப்புக்கட்டமைப்பைப் (directory structure) பின்பற்றுதல்
இந்த முறைகள் தவறானவை அல்ல. ஆனால் அவை பெரும்பாலும் ஒரு கட்டிடக்கலை சார்ந்த ஆவண வேலைகளாக (architectural paperwork) மாறிவிடுகின்றன. ஒரு Repository என்பது வெறும் மறுபெயரிடப்பட்ட DAO ஆக இருந்தாலோ, அல்லது ஒரு Mapper எந்தப் பொருளுமின்றி வெறும் புலங்களை (fields) மட்டும் நகர்த்தினாலோ, நீங்கள் ஒரு டொமைனை வடிவமைக்கவில்லை என்று அர்த்தம். நீங்கள் வெறும் படிவங்களை நிரப்பிக் கொண்டிருக்கிறீர்கள்.
இது கட்டிடக்கலையாக வெளிப்படுத்தப்பட்ட அதிகாரத்துவமாகும் (bureaucracy).
இது போன்ற வேலைகளுக்கு AI மிகவும் பொருத்தமானது. இது mappers, DTOs மற்றும் boilerplate குறியீடுகளைச் சில நொடிகளில் உருவாக்கிவிடும்.
அதிகாரத்துவத்தை விரைவுபடுத்த நீங்கள் AI-ஐப் பயன்படுத்தினால், நீங்கள் வெறும் சடங்குகளை (ceremony) மட்டுமே வேகப்படுத்துகிறீர்கள். அதிகப்படியான டிக்கெட்டுகள் (tickets) நகர்வதைக் நீங்கள் காணலாம், ஆனால் நீங்கள் சிறந்த அமைப்புகளை உருவாக்கவில்லை. நீங்கள் வீணான வேலைகளைக் குறைந்த செலவில் உற்பத்தி செய்கிறீர்கள், அவ்வளவுதான்.
உண்மையான போட்டி இரண்டு வகையான நிறுவனங்களுக்கு இடையே உள்ளது:
பெரிய AI-உதவி பெறும் அதிகாரத்துவக் குழுக்கள் (Large AI-assisted bureaucratic teams) இந்தத் குழுக்கள் கூடுதல் அடுக்குகளையும் (layers) மற்றும் அதிக boilerplate குறியீடுகளையும் உருவாக்க AI-ஐப் பயன்படுத்துகின்றன. அவர்கள் ஏற்கனவே உள்ள முறைகளைப் பின்பற்றுவதிலும், முறையான ஆய்வுகளை (formal reviews) கடப்பதிலும் கவனம் செலுத்துகிறார்கள்.
சிறிய AI-ஆல் மேம்படுத்தப்பட்ட அதிகப் பொறுப்புள்ள குழுக்கள் (Small AI-amplified high-ownership teams) இந்தத் குழுக்கள் அமைப்புகளைப் பாதுகாப்பாக மாற்றும் தங்கள் திறனை அதிகரிக்க AI-ஐப் பயன்படுத்துகின்றன. அவர்கள் பின்வருவனவற்றில் கவனம் செலுத்துகிறார்கள்:
- செயல்படுத்தக்கூடிய விவரக்குறிப்புகள் (Executable specifications)
- வலுவான எல்லைகள் (Strong boundaries)
- தானியங்கிச் சோதனைகள் (Automated tests)
- வகை-நிலை கட்டுப்பாடுகள் (Type-level constraints)
- வெளிப்படையான நிலை மாற்றங்கள் (Explicit state transitions)
முதல் வகை AI-ஐ அதிக சடங்குகளை உருவாக்கப் பயன்படுத்துகிறது. இரண்டாவது வகை AI-ஐ சடங்குகளின் தேவையைக் குறைக்கப் பயன்படுத்துகிறது.
மனிதர்களையோ அல்லது குறியீடுகளையோ கட்டுப்படுத்த கட்டிடக்கலையைப் பயன்படுத்துவதை நிறுத்துங்கள். டொமைன் பொருளைப் (domain meaning) பாதுகாக்க அதைப் பயன்படுத்துங்கள்.
மனித ஆய்வால் பாதுகாக்கப்பட்ட கட்டிடக்கலையிலிருந்து, சோதனைகள் (tests), வகைகள் (types) மற்றும் கட்டுப்பாடுகளால் (constraints) பாதுகாக்கப்பட்ட கட்டிடக்கலைக்கு மாறுங்கள்.
Source: https://dev.to/terum/ddd-is-not-dying-cargo-cult-ddd-is-l1p
Optional learning community: https://t.me/GyaanSetuAi