ನಾನು ಕೋಡ್ ಬರೆಯುವುದನ್ನು ನಿಲ್ಲಿಸಿದೆ. ನನ್ನ ಅಪ್ಲಿಕೇಶನ್ 3 ದಿನಗಳಲ್ಲಿ ಲಾಂಚ್ವಾಯಿತು.

ಮೂರು ತಿಂಗಳ ಹಿಂದೆ, ನಾನು ಒಂದು ಫುಲ್-ಸ್ಟಾಕ್ SaaS ಡ್ಯಾಶ್‌ಬೋರ್ಡ್ ನಿರ್ಮಿಸಿದೆ. ಅದರಲ್ಲಿ auth, ಒಂದು database, ಒಂದು REST API ಮತ್ತು UI ಇತ್ತು.

ನಾನು ಸುಮಾರು 200 ಸಾಲುಗಳ ಕೋಡ್ ಬರೆದೆ. ಉಳಿದದ್ದನ್ನು AI ಮಾಡಿತು. AI ಕೋಡ್ ಬರೆಯಿತು, ಅದನ್ನು ಪರಿಶೀಲಿಸಿತು (reviewed) ಮತ್ತು ಸರಿಪಡಿಸಿತು (fixed).

ಅಪ್ಲಿಕೇಶನ್ ಲೈವ್ ಆಗಿದೆ. ಬಳಕೆದಾರರು ಅದಕ್ಕಾಗಿ ಹಣ ಪಾವತಿಸುತ್ತಾರೆ. ನನಗೆ ಅರ್ಥವಾಗದ ಬಗ್‌ಗಳನ್ನು (bugs) ಸರಿಪಡಿಸಲು ನಾನು ರಾತ್ರಿ 2 ಗಂಟೆಗೆ ಎಚ್ಚರವಾಗಿಯೇ ಇರಬೇಕಾಗಿಲ್ಲ.

ಇದು ಬಡಾಯಿಬಾಕಿ ಅಲ್ಲ. ಇದು ಒಂದು ಎಚ್ಚರಿಕೆ.

ಡೆವಲಪರ್‌ನ ಪಾತ್ರವು ವೇಗವಾಗಿ ಬದಲಾಗುತ್ತಿದೆ. ಯಾರು ಗೆಲ್ಲುತ್ತಾರೋ ಆ ಡೆವಲಪರ್‌ಗಳು ಈ ಬದಲಾವಣೆಯನ್ನು ವಿರೋಧಿಸುವುದಿಲ್ಲ. ಬದಲಾಗಿ ಅವರು ಇದನ್ನು ಮುನ್ನಡೆಸುತ್ತಾರೆ.

AI ಅನ್ನು ಕೇವಲ ಒಂದು autocomplete ಟೂಲ್ ಎಂದು ಭಾವಿಸುವುದನ್ನು ನಿಲ್ಲಿಸಿ. ಅದು ಹಳೆಯ ಪದ್ಧತಿ.

AI-native development ಎಂಬುದು ಒಂದು ಹೊಸ ಮಾನಸಿಕ ಮಾದರಿ (mental model). ನೀವು ವೇಗವಾಗಿ ಬರೆಯಲು AI ಅನ್ನು ಬಳಸುವುದಿಲ್ಲ. ಬದಲಾಗಿ, ನೀವು architecture ಮತ್ತು ನಿರ್ಧಾರಗಳನ್ನು (judgment) ತೆಗೆದುಕೊಳ್ಳುವಾಗ, implementation ಅನ್ನು ನಿಭಾಯಿಸಲು AI ಅನ್ನು ಬಳಸುತ್ತೀರಿ.

ಈ ಬದಲಾವಣೆ ಹೀಗಿದೆ:

  • ಹಳೆಯ ಮಾದರಿ: ನೀವು ಕೋಡ್ ಬರೆಯುತ್ತೀರಿ. AI ನೀವು ವೇಗವಾಗಿ ಟೈಪ್ ಮಾಡಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ.
  • ಹೊಸ ಮಾದರಿ: ನೀವು "ಏನು" (what) ಮತ್ತು "ಏಕೆ" (why) ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸುತ್ತೀರಿ. AI "ಹೇಗೆ" (how) ಎಂಬುದನ್ನು ನಿಭಾಯಿಸುತ್ತದೆ. ನೀವು ಅದನ್ನು ಪರಿಶೀಲಿಸಿ (validate) ಮಾರ್ಗದರ್ಶನ ನೀಡುತ್ತೀರಿ.

ನನ್ನ ಅಪ್ಲಿಕೇಶನ್ ನಿರ್ಮಿಸಲು ನಾನು ಇದೇ ವರ್ಕ್‌ಫ್ಲೋವನ್ನು (workflow) ಬಳಸಿದೆ:

  1. Next.js ಮತ್ತು Prisma ನಂತಹ ಪ್ರಮಾಣಿತ ಪರಿಕರಗಳನ್ನು ಬಳಸಿ ಪ್ರಾಜೆಕ್ಟ್ ಅನ್ನು scaffold ಮಾಡಿ.
  2. ಡೇಟಾ ಮಾಡೆಲ್ ಅನ್ನು ಸರಳ ಇಂಗ್ಲಿಷ್‌ನಲ್ಲಿ ವಿವರಿಸಿ.
  3. AI ಮೂಲಕ schema ಅನ್ನು ಜನರೇಟ್ ಮಾಡಲು ಬಿಡಿ.
  4. server actions ಮತ್ತು logic ಅನ್ನು ಜನರೇಟ್ ಮಾಡಲು ವಿವರವಾದ prompts ಬಳಸಿ.

ನಾನು ಫಂಕ್ಷನ್‌ಗಳನ್ನು (functions) ಬರೆಯಲಿಲ್ಲ. ನಾನು ಅವುಗಳನ್ನು ಪರಿಶೀಲಿಸಿದೆ. ನಾನು ಅವುಗಳನ್ನು ಪರೀಕ್ಷಿಸಿದೆ (tested). ನಾನು ಎರರ್ ಮೆಸೇಜ್‌ಗಳನ್ನು (error messages) ಸರಿಹೊಂದಿಸಿದೆ.

ಅದೇ ಈಗಿನ ಹೊಸ ಕೆಲಸ.

AI ಕೋಡ್ ಬರೆದರೆ, ನಿಮ್ಮ ಮೌಲ್ಯವು meta-skills ನಿಂದ ಬರುತ್ತದೆ. AI ಪ್ಯಾಟರ್ನ್‌ಗಳಲ್ಲಿ (patterns) ಉತ್ತಮವಾಗಿದೆ. ಆದರೆ ನಿರ್ಧಾರಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳುವಲ್ಲಿ ಅದು ಹಿಂದುಳಿದಿದೆ.

AI ಈ ಕೆಳಗಿನವುಗಳನ್ನು ನಿರ್ಧರಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ:

  • ನಿಮಗೆ server action ಬೇಕೇ ಅಥವಾ API route ಬೇಕೇ ಎಂದು.
  • ನಿಮ್ಮ state ಎಲ್ಲಿ ಇರಬೇಕು ಎಂದು.
  • ನೀವು monorepo ಬಳಸಬೇಕೇ ಅಥವಾ არა ಎಂದು.

ಈ ನಿರ್ಧಾರಗಳಿಗೆ ಸಂದರ್ಭದ (context) ಅರಿವು ಬೇಕು. AI ಗೆ ಸಂದರ್ಭದ ಅರಿವಿರುವುದಿಲ್ಲ. ಆದರೆ ನಿಮಗೆ ಇದೆ.

ಈಗ ಜೂನಿಯರ್ ಮತ್ತು ಸೀನಿಯರ್ ಡೆವಲಪರ್‌ಗಳ ನಡುವಿನ ವ್ಯತ್ಯಾಸವೆಂದರೆ prompt ನಿಖರತೆ (precision).

  • ದುರ್ಬಲ prompt: "Write a rate limiter."
  • ಬಲವಾದ prompt: "Write a Redis-backed rate limiter for a Next.js API route. Limit to 10 requests per minute per IP. Return a 429 error when exceeded. Skip admins. Log events to Prisma."

ಎರಡನೇ prompt ತಕ್ಷಣವೇ production-ready ಕೋಡ್ ಅನ್ನು ನೀಡುತ್ತದೆ.

ನೀವು 'silent failures' ಬಗ್ಗೆಯೂ ಎಚ್ಚರವಿರಲಿ. AI ಕೋಡ್ ನೋಡಲು ಸರಿಯಾಗಿ ಕಾಣಿಸಬಹುದು, ಆದರೆ ಅದರಲ್ಲಿ ಸೂಕ್ಷ್ಮವಾದ ಬಗ್‌ಗಳಿರಬಹುದು. AI ನೀಡುವ ಔಟ್‌ಪುಟ್ ಅನ್ನು ಒಬ್ಬ ಜೂನಿಯರ್ ಡೆವಲಪರ್ ಕಳುಹಿಸಿದ pull request ನಂತೆ ಪರಿಗಣಿಸಿ. ಅದನ್ನು ಅನುಮಾನದ ದೃಷ್ಟಿಯಿಂದ ಪರಿಶೀಲಿಸಿ.

ಕಡಿಮೆ ಕೋಡ್ ಬರೆಯುವುದಕ್ಕಾಗಿ ಕಾಯಬೇಡಿ. ಬದಲಾಗಿ ಕೋಡ್‌ನ ಸುತ್ತಲಿನ ಕೌಶಲ್ಯಗಳನ್ನು (skills) ವೃದ್ಧಿಸಿಕೊಳ್ಳಲು ಗಮನ ಕೊಡಿ.

ಡೆವಲಪರ್ A ಎಲ್ಲವನ್ನೂ ಕೈಯಿಂದ ಬರೆಯುತ್ತಾರೆ ಮತ್ತು ನಿಧಾನಗತಿಯಲ್ಲಿರುತ್ತಾರೆ. ಡೆವಲಪರ್ B ವಿವರಗಳಿಗಾಗಿ AI ಅನ್ನು ಬಳಸುತ್ತಾರೆ ಮತ್ತು ಸಿಸ್ಟಮ್ ಡಿಸೈನ್ (system design) ಮೇಲೆ ಸಮಯ ವ್ಯಯಿಸುತ್ತಾರೆ.

ಡೆವಲಪರ್ B ಹೊಸ ಮಾನದಂಡವಾಗಿದೆ.

ಈ ವಾರ ಇದನ್ನು ಪ್ರಯತ್ನಿಸಿ:

  • ಯಾವುದೇ ಕೋಡ್ ಬರೆಯುವ ಮೊದಲು ಫೀಚರ್‌ಗಾಗಿ ಸಂಪೂರ್ಣ ಸ್ಪೆಸಿಫಿಕೇಶನ್ ಬರೆಯಿರಿ.
  • ಆ ಸ್ಪೆಸಿಫಿಕೇಶನ್ ಅನ್ನು ನಿಮ್ಮ ಪ್ರಾಂಪ್ಟ್ ಆಗಿ ಬಳಸಿ.
  • ಸೀನಿಯರ್ ಎಂಜಿನಿಯರ್ ಒಬ್ಬ ಜೂನಿಯರ್ ಅನ್ನು ಪರಿಶೀಲಿಸುವಂತೆ ಔಟ್‌ಪುಟ್ ಅನ್ನು ಪರಿಶೀಲಿಸಿ.

ಗುರಿ ಡೆವಲಪರ್ ಆಗುವುದನ್ನು ನಿಲ್ಲಿಸುವುದಲ್ಲ. ಬದಲಾಗಿ ಒಬ್ಬ ಉತ್ತಮ ಡೆವಲಪರ್ ಆಗುವುದು.

ಮೂಲ: https://dev.to/emma_schmidt_/i-stopped-writing-code-my-app-still-shipped-in-3-days-heres-what-that-tells-us-about-being-a-2ghp

ಐಚ್ಛಿಕ ಕಲಿಕಾ ಸಮುದಾಯ: https://t.me/GyaanSetuAi