බ්ලොග්

මම GitHub Copilot සමඟ Baby Monitor Timmy ගොඩනඟන ආකාරය

AI මට වේගයෙන් වැඩ කිරීමට උදව් කරයි. Timmy සඳහා වගකීම තවමත් මා සතුවයි.

Baby Monitor Timmy ආරම්භ වූයේ සරල අදහසකින්: නිවසේ පෞද්ගලිකත්වයට ගරු කරන බිලිඳු මොනිටරයක්. ක්ලවුඩ් පටිගත කිරීම් නැහැ, ළදරු කාමරයෙන් පිටතට යන අනවශ්‍ය දත්ත මාර්ග නැහැ. බොහෝ දෙනා නොදකින දෙය නම්: මම සූරිච්හි තනි ව්‍යාපෘතියක් ලෙස Timmy ගොඩනඟන අතර, GitHub Copilot මගේ ඉතා වේගවත් යුගල ක්‍රමලේඛකයායි.

මිනිසා සහ AI එක්ව වැඩ කරන ආකාරය

කාර්ය බෙදීම පැහැදිලියි: විශේෂාංග නිර්වචනය කිරීම, ප්‍රමුඛතා සැකසීම සහ මෘදුකාංග ව්‍යුහය පිළිබඳ තීරණ ගැනීම මගේ කාර්යයයි. Copilot ක්‍රියාත්මක කිරීමට උදව් කරයි: කේත ලිවීම, පරීක්ෂණ එකතු කිරීම, දෝෂ ඇති තැන් හඳුනාගැනීම සහ නිකුත් කිරීමේ පියවර සූදානම් කිරීම.

සාමාන්‍ය ස්ප්‍රින්ට් එකක් මා සඳහා දළ වශයෙන් මෙසේය:

  1. විශේෂාංග විස්තරය: සීමා සහ අසාමාන්‍ය අවස්ථා ඇතුළුව, විශේෂාංගය කළ යුතු දේ මම විස්තර කරමි.
  2. ක්‍රියාත්මක කිරීම: Copilot කේත යෝජනා කරන අතර ව්‍යාපෘතියේ පවතින සම්මතයන් අනුගමනය කරයි.
  3. පරීක්ෂා කිරීම: ස්වයංක්‍රීය end-to-end පරීක්ෂණ emulators දෙකක ක්‍රියාත්මක වී සැබෑ බිලිඳු/දෙමාපිය සම්බන්ධතාවය පරීක්ෂා කරයි.
  4. බෙදාහැරීම: පරීක්ෂණ සාර්ථක වූ විට, Android සහ iOS ගොඩනැගීම් අදාළ යෙදුම් වෙළඳසැල් සහ පරීක්ෂණ නාලිකා සඳහා සූදානම් කෙරේ.

විශේෂාංග සහ දෝෂ නිවැරදි කිරීම් සඳහා මෙම චක්‍රය නැවත නැවත සිදු වේ. සෑම කේත පේළියක්ම මමම නොලියන නමුත්, මම තීරණය කරන්නේ කුමක්ද ගොඩනඟන්නේ, ඇයි එය ගොඩනඟන්නේද, සහ යෝජනාවක් Timmyට ගැළපේද යන්නයි.

සංකල්පයේ සිට WebRTC දක්වා

මූලික තාක්ෂණික කාර්යය ආරම්භයේ සිටම පැහැදිලි විය: දුරකථන දෙකක් අතර තත්‍යකාලීන ශබ්දය සහ වීඩියෝව. WebRTC පැහැදිලි තේරීම වුවත්, එය Flutter සමඟ ඒකාබද්ධ කිරීම සරල නොවේ: ICE candidates, SDP negotiation, TURN fallback සහ DataChannels නිවැරදි අනුපිළිවෙළට එකට ක්‍රියා කළ යුතුය.

Copilot මට ඒ කොටස් පියවරෙන් පියවර එකට ගොනු කිරීමට උදව් කළේය: peer connection සකස් කිරීම, වැදගත් අනුපිළිවෙළ නිවැරදිව තබා ගැනීම (offer එකට පෙර DataChannel, setRemoteDescription ට පෙර onTrack), සහ signaling සඳහා Firebase Firestore භාවිත කිරීම. ඉදිරියට යාමට පෙර සෑම කොටසක්ම emulators දෙකක ක්‍රියා කළ යුතු විය.

ECDH සමඟ ආරක්ෂිත යුගල කිරීම

වඩාත්ම වැදගත් විශේෂාංගවලින් එකක් වූයේ ආරක්ෂිත යුගල කිරීමේ පද්ධතියයි. උපාංග දෙකේ අනන්‍යතාව තහවුරු කිරීමට මධ්‍යම සේවාදායකයක් මත රඳා නොසිට, ඒවා එකිනෙකා කෙරෙහි විශ්වාසය තහවුරු කරගත යුතුය. විසඳුම වන්නේ Firebase හරහා ECDH P-256 යතුරු හුවමාරුවක් සහ මැදට ඇතුළු වී සිදු කරන ප්‍රහාර හඳුනාගන්නා දෘශ්‍ය සත්‍යාපන අංකයක් (SAS) එකට භාවිත කිරීමයි.

Copilot ගුප්තකේතන දාමය ක්‍රියාත්මක කිරීමට උදව් කළේය: යතුරු ජනනය, ප්‍රසිද්ධ යතුරු හුවමාරුව, හවුල් රහස ලබාගැනීම, SAS ගණනය කිරීම සහ පසුව ඇති සියලු signaling දත්ත සඳහා AES-256-GCM සංකේතනය. මම pairing key එක backend වෙත යවන්නේ නැහැ; Firestore document identifier එකක් ලෙස භාවිත වන්නේ එහි SHA-256 hash එක පමණි.

ආරක්ෂක විගණනය: දුර්වලතා සොයා නිවැරදි කිරීම

AI සහාය ඇති සංවර්ධනය මට වේගයෙන් ටයිප් කිරීම පමණක් නොවේ. එය ක්‍රමානුකූලව දෝෂ සෙවීමටත් උදව් කරයි. ඉලක්කගත ආරක්ෂක විගණන ස්ප්‍රින්ට් එකකදී, Copilot කේත පදනම විශ්ලේෂණය කර ගැටලු හයක් සොයාගත්තේය; මට නිවැරදි කිරීමට සිදු වූ ඒවා මෙසේය:

ගැටලු හයම එම ස්ප්‍රින්ට් එකේදී නිවැරදි කරන ලදී. Copilot ශක්තිමත් වන්නේ මෙහිදීය: ගොනු ගණනාවක් කියවීම, රටා සසඳීම සහ මට වඩාත් හොඳින් පරීක්ෂා කළ යුතු ස්ථාන සලකුණු කිරීම.

නැවත නැවත කළ ස්ප්‍රින්ට්: යෙදුම පරිණාමය වූ ආකාරය

Timmy වේගවත් නමුත් පැහැදිලි සීමාවන් ඇති ස්ප්‍රින්ට් හරහා වර්ධනය විය. ප්‍රධාන අදියර කිහිපයක්:

සෑම ස්ප්‍රින්ට් එකක්ම එකම මූලික රටාව අනුගමනය කරයි: ඉලක්කය විස්තර කිරීම, යෝජනා සමාලෝචනය කිරීම, ස්වයංක්‍රීයව පරීක්ෂා කිරීම, ඉන්පසු පරීක්ෂකයන්ට නිකුත් කිරීම.

උපාංග අතර E2E පරීක්ෂා කිරීම

බිලිඳු මොනිටරයක් එක් උපාංගයකින් නිසි ලෙස පරීක්ෂා කළ නොහැක. මට බිලිඳු උපාංගයක් සහ දෙමාපිය උපාංගයක් අවශ්‍යයි. ව්‍යාපෘතිය ආරම්භ වූයේ එකවර ක්‍රියාත්මක වන Android emulators දෙකකින් වන අතර, දැන් එයට local iOS simulator සහ සැබෑ උපාංග පරීක්ෂා කිරීම්ද එක් කර ඇත. ස්වයංක්‍රීය Android පරීක්ෂණ script එක තවමත්:

  1. emulators දෙකෙහිම යෙදුම ස්ථාපනය කරයි
  2. උපාංග දෙකෙහිම pairing ක්‍රියාවලිය හරහා ගමන් කරයි
  3. ශබ්ද සහ වීඩියෝ සම්බන්ධතා ස්ථාපිත වූ බව තහවුරු කරයි
  4. push-to-talk, කැමරා පාලනය සහ අනෙකුත් විශේෂාංග පරීක්ෂා කරයි

emulators දෙකම එකම IP ලිපිනය බෙදාගන්නා බැවින් (10.0.2.15), STUN හරහා සෘජු peer-to-peer සම්බන්ධතාවයක් ඇති කළ නොහැක. සෑම පරීක්ෂණ ධාවනයක්ම Cloudflare TURN relay සේවාව හරහා යා යුතුය. එය කරදරකාරී වුවත් ප්‍රයෝජනවත්ය: සෑම වරකම වඩාත් සංකීර්ණ සම්බන්ධතා මාර්ගය පරීක්ෂා කෙරේ.

මා ඉගෙනගත් දේ

AI යුගල ක්‍රමලේඛකයෙකු සමඟ සම්පූර්ණ යෙදුමක් ගොඩනැඟීමෙන් මම කරුණු කිහිපයක් ඉගෙන ගත්තෙමි:

ඉදිරියට

Baby Monitor Timmy අඛණ්ඩව පරිණාමය වෙයි. iOS නිකුතුව ඉතා ආසන්නයි; ඉන්පසු තවත් sensor විශේෂාංග සහ අඛණ්ඩ ආරක්ෂක ශක්තිමත් කිරීම් පැමිණේ. වැඩ ප්‍රවාහය සමානව පවතී: මම දිශාව සහ සීමා තීරණය කරමි, Copilot ඉක්මනින් ක්‍රියාත්මක කිරීමට සහ පරීක්ෂා කිරීමට උදව් කරයි.

ආරක්ෂාවට අදාළ ගොඩනැඟිලි කොටස් දැන් පැහැදිලි සීමා සහිත පොදු baby-monitor-timmy-core repositoryතුළ ඇත. pairing, signaling සහ backend interfaces පිළිබඳ ව්‍යුහ තීරණ ලේඛනගත කර ඇත්තේද එහිමය.


තවත් ලිපි