Claude Code ተከታታይ ትምህርት 3፡ ለምን ተርሚናል ብቻ ቀረበ
1.3 ለምን በተርሚናል ውስጥ ኮድ መጻፍ ያስፈልጋል?
ለምሳሌ እንውሰድ፡ አዲስ ተግባር እየጻፍክ ነው፣ በድንገት የታችኛው መሳሪያ ተግባር (utility function) መቀየር እንደሚያስፈልግ ታገኛለህ፣ እሱም በሶስት ፋይሎች ውስጥ ተበታትኗል፣ አንዳንድ ጥሪዎቹ ሞጁሎችን አቋርጠዋል። አርታኢውን ትከፍታለህ፣ ዓለም አቀፍ ፍለጋ ታደርጋለህ፣ አንድ ፋይል በአንድ ፋይል ትመረምራለህ፣ በጥንቃቄ ትቀይራለህ፣ ከዚያም ሙከራውን እንደገና ታካሂዳለህ—ቀይ ሆኗል። ስህተቱን ትመለከታለህ፣ ቁልል ዱካ (stack trace) ትመረምራለህ፣ ታስተካክላለህ፣ እንደገና ታደርጋለህ።
በዚህ ሂደት ውስጥ በትክክል 'እንዴት መለወጥ እንዳለብህ በማሰብ' የምታሳልፈው ጊዜ ከግማሽ ያነሰ ሊሆን ይችላል። የቀረው ግማሹ ሜካኒካል ሥራ ነው፡ ፋይሎችን መፈለግ፣ ማጣቀሻዎችን መቀየር፣ ማጠናቀርን መጠበቅ፣ አይጤን ጠቅ ማድረግ።
ኤአይ (AI) በተርሚናል ውስጥ ማስቀመጥ ዋናው ዓላማው እነዚህን ሜካኒካል ሥራዎች መቀነስ ነው።
ተርሚናል ከኮድ በጣም ቅርብ የሆነ ቦታ ነው
ምናልባት VS Code፣ JetBrains ወይም Vim ትጠቀማለህ። የትኛውንም ብትጠቀም፣ ኮድ በምትጽፍበት ሂደት ውስጥ ተርሚናልን ማስቀረት አይቻልም። npm test፣ git log፣ grep፣ make build ማስኬድ—እነዚህ ክዋኔዎች በተፈጥሮአቸው በትእዛዝ መስመር (command line) ውስጥ ይከናወናሉ።
እንግዲህ፣ የኤአይ አጋርህ በተመሳሳይ ተርሚናል ውስጥ ቢቀመጥ፣ ነገሩ ቀላል ይሆናል። የፋይል ይዘቶችን ወደ ውይይት መስኮት መቅዳትና መለጠፍ አያስፈልግህም፣ እንደ 'በፕሮጀክቴ ውስጥ UserService የሚባል ክፍል አለ፣ እሱ በsrc/services/user.ts 42ኛ መስመር ላይ ነው…' ብለህ መግለጽ አያስፈልግህም። Claude Code በፕሮጀክት ሥርወ (root) ማውጫ ውስጥ ይቆማል፣ እሱ ራሱ ያያል።
ይህ በዐውድ (context) ላይ የሚደረግ ልዩ አቀራረብ ነው። Claude Code ላይ 'እባክህ የመግቢያ ሞጁሉን የስህተት አያያዝ (error handling) እንደገና አዋቅርልኝ' ስትል፣ በእውነት auth/login.tsህን ያነባል፣ errors.tsን ያነባል፣ የሚጠሩበትን ቦታዎች ሁሉ ይፈልጋል፣ ከዚያም በቀጥታ ይቀይረዋል። በመካከል እንደ ማስተላለፊያ መሆን አያስፈልግህም።
ከ'ኦፕሬተር' ሚና ነጻ ማውጣት
የአሳሽ (browser) ኤአይ ውይይት ስንጠቀም፣ ብዙ ጊዜ ሳናውቀው 'አስታራቂ' (middleman) ሚና እንጫወታለን፡ ኤአይ ኮድ ያወጣል፣ እኛ እናነባለን፣ እናረጋግጣለን፣ እንቀዳለን፣ ከዚያም ወደ አርታኢው ተመልሰን እንለጥፋለን። ኮዱ ቢሰራ ደግ ነው፤ ባይሰራ ደግሞ ስህተቱን ቀድተን እንጠይቃለን፣ እንደገና እንቀዳለን። ይህ ሂደት በእውነት ፍሰት አስተሳሰብን (flow) ያቋርጣል።
የClaude Code ዲዛይን አስተሳሰብ ወደ 'አስተሳሰብ' ቦታ እንድትመለስ ማድረግ ነው። ሃሳብህን ትናገራለህ፣ እሱ ይሠራል። ከቀየረ በኋላ በተርሚናል ውስጥ ልዩነቱን (diff) በቀጥታ ታያለህ፣ መቀበል አለመቀበልህን ትወስናለህ። እንዲሁም ሙከራዎችን ማካሄድ፣ ሊንት (lint) ማካሄድ ይችላል። አንተ ተቀምጠህ፣ ብዙ ጊዜ ኮድ እያነበብክና ውሳኔ እየወሰድክ ነው፣ እንጂ መስኮቶችን ደጋግመህ እየቀየርክ አይደለም።
ለምን የአርታኢ ተሰኪ (editor plugin) አይደለም?
ልትጠይቅ ትችላለህ፡ ታዲያ ለምን በአርታኢው ውስጥ በቀጥታ የኤአይ ተሰኪ አለመሥራት?
የአርታኢ ተሰኪዎች በእርግጥ ጠቃሚ ናቸው፣ እና ብዙ ቡድኖች አስቀድመው ይጠቀማሉ። ነገር ግን በተርሚናል ውስጥ ያለው Claude Code በተሰኪ (plugin) ለመተካት አስቸጋሪ የሆኑ ጥቂት ነጥቦች አሉት፡
-
ከአርታኢ ነጻ መሆን። ዛሬ VS Code ትጠቀማለህ፣ ነገ ወደ Neovim ትቀይራለህ፣ ወይም ያለ GUI በርቀት አገልጋይ ላይ እንኳን፣ Claude Code መጠቀም ትችላለህ። ከመረጥከው መሣሪያ ጋር ምንም ግንኙነት የለውም።
-
ተጨማሪ 'ያልተለመዱ' ነገሮችን ማድረግ ይችላል። በተርሚናል ውስጥ፣ ማንኛውንም የሼል (Shell) ትዕዛዝ ማስፈጸም ይችላል። ይህ ማለት ሊያደርጋቸው የሚችላቸው ነገሮች ወሰን በጣም ሰፊ ነው—የዳታቤዝ ሽግግር (database migration) ለማረጋገጥ የዶከር (Docker) ኮንቴይነርን መጀመር፣ የርቀት ቅርንጫፍ (remote branch) መሳብና ግጭቶችን መፈተሽ፣ ኮድ ከቀየረ በኋላ የe2e ሙከራዎችን በራስ-ሰር ማካሄድ ይችላል። እነዚህን ነገሮች የአርታኢ ተሰኪዎች ብዙውን ጊዜ ለማድረግ አይደፍሩም፣ ወይም ፈጽሞ ማድረግ አይችሉም።
-
ቡድን አያያዝ (batch processing) እና አውቶሜሽን። Claude Codeን ወደ ስክሪፕት (script) ውስጥ ማስገባት፣ በደርዘን የሚቆጠሩ ማከማቻዎችን (repositories) እንዲያስተዳድር፣ ሰነዶችን በቡድን እንዲያመነጭ፣ ጉዳዮችን (Issues) በራስ-ሰር እንዲያስተናግድ ማድረግ ትችላለህ። በዚህ ጊዜ እሱ 'ረዳት' ሳይሆን በሥራ ፍሰቱ ውስጥ አንድ አካል ነው።
የራሴ ትንሽ ምሳሌ
ከዚህ በፊት አንድ የጃቫስክሪፕት (JavaScript) ፕሮጀክት ወደ ታይፕስክሪፕት (TypeScript) ማሰፋፈር ነበረብኝ፣ በግምት ከሃያ ሺህ በላይ የኮድ መስመሮች ነበሩ። የእኔ አሰራር በእጅ አንድ በአንድ ፋይል ላይ ዓይነቶችን (types) መጨመር አልነበረም፣ ወይም አንድ የአርታኢ ተሰኪ ሁሉንም እንዲሰራልኝ መጠበቅ አልነበረም።
በቀጥታ በዚያ ፕሮጀክት ማውጫ ውስጥ Claude Codeን ጀመርኩ፣ እና እንዲህ አልኩት፡ 'ይህን ፕሮጀክት ቀስ በቀስ ወደ ታይፕስክሪፕት ጥብቅ ሁነታ (strict mode) አስፋፋው፣ በአንድ ጊዜ ጥቂት ፋይሎችን ቀይር፣ ስትጨርስ ንጣፍ tsc --noEmit አስኬድ፣ ስህተት ካለ እራስህ አስተካክል፣ ሁሉም እስኪያልፍ ድረስ።'
በቀጣዩ ግማሽ ሰዓት ውስጥ፣ በመሠረቱ አንድ ነገር ብቻ አደረግሁ፡ የቀየረውን ልዩነት (diff) እየተመለከትኩ ጭንቅላቴን አንቀሳቅሼ አጸደቅሁ ወይም አልተቀበልኩም። አልፎ አልፎ 'እዚህ ዓይነቱን (type) any አትጠቀም፣ ኢንተርፌስ (interface) ግለጽ' እላለሁ፣ እሱም መሥራቱን ቀጠለ። በመጨረሻ ፕሮጀክቱ ተሰብስቦ (compiled) አልፏል፣ ከገመትኩት ጊዜ እጥፍ ያነሰ ፈጅቷል።
ይህ በእርግጥ Claude Code ከተሰኪ የበለጠ ብልህ ነው ማለት አይደለም። ነገር ግን 'ማስተካከል-ማረጋገጥ-ማስተካከል' የሚለውን ዑደት በራሱ ማጠናቀቅ ይችላል፣ ይህ ከውይይት ኤአይ ጋር ያለው መሠረታዊ ልዩነት ነው።
ሲጠቃለል፣ ተርሚናል ለAI እጅና እግር ሰጠው
ኤአይን በተርሚናል ውስጥ ማስቀመጥ፣ በመሠረቱ የማስፈጸም አቅምን ሰጠው፣ እንጂ የመምከር አቅምን ብቻ አይደለም።
የኮድ ማከማቻህ የሚነበብ ብቻ የሆነ የጽሑፍ ክምር ከመሆን ወጥቶ AI 'መንካት'፣ መቀየር፣ ማረጋገጥ የሚችልበት እውነተኛ አካባቢ ሆነ። ይህ ትልቅ ለውጥ ነው።
አሁንም የፕሮጀክቱን አቅጣጫ እና ሁሉንም ቁልፍ ውሳኔዎች አንተ ነህ የምትቆጣጠረው፣ ነገር ግን እነዚያ አሰልቺ፣ ዝቅተኛ ፈጠራ ያላቸው፣ ተደጋጋሚ መዝለል የሚያስፈልጋቸው ሥራዎች የበለጠ ተስማሚ ተጠሪ አግኝተዋል።
评论
暂无已展示的评论。
发表评论(匿名)