ඊයේ Django 6.0 නවතම සංස්කරණය නිකුත් කරා. එහි අළුත් native task framework එක, සරල tutorial එකක් අනුගමනය කළ පසු ක්රියාත්මක වුණා. එහෙත් ලේඛකයා එය සැලකිල්ලෙන් බැලීමට තීරණය කළා – සියලු කේතය TDD (Test‑Driven Development) ආකාරයෙන් නැවත ලියන්න.
ඔහු "cotton‑desk‑tasks" නමැති කෘතිම කපටි වෙළඳ මේසයක් නිර්මාණය කළා. මෙහි අරමුණ වන්නේ වාණිජ වශයෙන් කපාට ලේඛන, ගිවිසුම්, වාරික වාර්තා, මිල ඇතුළත් කිරීම වැනි විවිධ කාර්යයන් එකම පද්ධතියේ පවත්වා ගැනීමට. එක් එක් කාර්යයට වෙනත් latency හා priority තිබුණා: ලේඛන සංක්ෂේපණය ඉක්මණින් අවශ්ය, ගිවිසුම් තහවුරු කිරීම දත්ත ගබඩාවේ ගිවිසුම පවතින විට පමණක් ක්රියාත්මක විය යුතු, වගාව වාර්තාව විශාල දත්ත ගොනු සකස් කරන නිසා පසුබැසියට තබා ගත හැක, මිල ඇතුළත් කිරීම දිනකට එක වරක් පමණක් ධාවනය වේ.
Framework එක @task(queue_name="laudos", priority=50) වැනි decorator භාවිතයෙන් queue සහ priority සකස් කරයි. එක් queue එකකට විශේෂ worker එකක් (db_worker --queue-name laudos) පවරා, වෙනත් queue එකේ කාර්යයන්ට worker එක අඳුරු වන පරිදි වෙන් කරයි. මෙය කාර්යයන් අතර අන්තරායකය ඉතා පැහැදිලි කරයි.
ව්යාපාර නීතිය කෙළින්ම කොහෙද? ලේඛන HVI පරාමිතීන් (micronaire, length, strength, uniformity) සඳහා නියමිත පරාසයන් ඇත. ඒවා model.save() තුළ පරීක්ෂා නොකර, immutable dataclass value object එකක් තුළ පරීක්ෂා කරන ලදී. Model එක to_dominio() මාර්ගයෙන් domain object එකට පරිවර්තනය කරන විට පමණක් validation සිදු වේ. එබැවින් out‑of‑range micronaire එකක් ගොඩනැගීමේදී දත්ත සුරක්ෂිතව සුරක්ෂිතව සුරැකුම් කරයි, නමුත් domain level එකේ exception (MicronaireForaDaFaixa) නිකුත් වේ.
මෙම සැලැස්ම TDD පරීක්ෂණයෙන් තහවුරු කරන ලදී: LaudoHVI.objects.create(micronaire="2.00") සාර්ථකව සුරැකෙන අතර, laudo.to_dominio() කැඳවීමේදී exception එකක් උත්පාදනය වේ. ඒ නිසා task එක අසාර්ථක වුනත්, traceback එකේ නිශ්චිත domain exception එකක් පෙන්වයි, generic ValueError එකක් නොව.
ශ්රී ලංකාවට ඇති වැදගත්කම
මෙම පළපුරුදු පදනම ශ්රී ලංකාවේ Python developers, data engineers, හා startup ආයතන සඳහා විශාල ප්රයෝජන ලබා දේ. පළමු වරට native task queue එකක් Django 6.0 සමඟ එන බැවින්, බාහිර Celery වැනි සේවා භාවිතා නොකර ලේඛන, ගිවිසුම්, වාර්තා වැනි ව්යාපාරික workflow ගත කර ගත හැක. එමඟින් infra පිරිවැය අඩු වේ, deployment කාලය කෙටි වේ, සහ කේතයේ තත්ත්වය TDD මඟින් නිරන්තරයෙන් පරීක්ෂා කළ හැක. එමෙන්ම immutable value object මත පදනම් වූ validation strategy එක, දත්ත ගුණාත්මකභාවය රැක ගැනීමට නව මාර්ගයක් ලබා දේ – විශේෂයෙන් fintech, agro‑tech, හා supply‑chain ක්ෂේත්රවල දත්ත නිරවද්යතාවය අත්යවශ්ය වන අවස්ථා වලට.
අවසන් වශයෙන්, ImmediateBackend වැනි in‑memory test backend එකේ result retrieval අඩුපාඩුවක් හමුවුවත්, ඒක TDD පරීක්ෂණයක් මඟින් හඳුනාගත හැකි බව පෙන්වා දුන්නා. මේ වගේ පරීක්ෂණාත්මක අභියෝග, framework එකේ සැබෑ භාවිතය සහ අඩුපාඩු හඳුනා ගැනීමට මඟ පෙන්වයි.
ඉදිරියට Django 6.0 හි task framework එක, ශ්රී ලංකාවේ තාක්ෂණික නිර්මාණශීලීත්වය ඉහළ නැංවීමට, කේතයේ තත්ත්වය වැඩිදියුණු කිරීමට, සහ ව්යාපාරික automation ක්රියාවලීන් වේගවත් කිරීමට හොඳ අවස්ථාවක් වනු ඇත.