શું AI Aider શ્રેષ્ઠ ટર્મિનલ કોડિંગ આસિસ્ટન્ટ છે? એક પ્રમાણિક સમીક્ષા
જો તમે ક્યારેય એવી ઈચ્છા વ્યક્ત કરી હોય કે અથવા તમારા ટર્મિનલમાં તમારી બાજુમાં બેસીને વાસ્તવમાં વસ્તુઓ તોડ્યા વિના તમારી રેપોને એડિટ કરી શકે, તો એ એક એવું ટૂલ હોઈ શકે જેની તમે રાહ જોઈ રહ્યા છો. તે કમાન્ડ-લાઇન કોડિંગ આસિસ્ટન્ટ છે જે સીધું જ તમારા વર્કફ્લોમાં પ્લગ થાય છે, તમારા કોન્ટેક્સ્ટ વિન્ડોને માન આપે છે અને તમે કમિટ કરો તે પહેલાં સમીક્ષા કરી શકો તેવા સ્ટ્રક્ચર્ડ ડિફ્સ દ્વારા ફેરફારો સૂચવે છે. ડેવલપર્સ તેને દિવસ-પ્રતિ-દિવસ કોડિંગ માટે "શક્તિશાળી" અને "શાંતિપૂર્ણ" કહી રહ્યા છે - જે દેવ ટૂલ્સમાં એક દુર્લભ કોમ્બો છે.
આ સમીક્ષામાં, હું તપાસ કરીશ કે તે કેવી રીતે કાર્ય કરે છે, તે ક્યાં ચમકે છે, તે ક્યાં ઓછું પડે છે અને શું તે તમારા શેલમાં કાયમી ઉપનામ (alias) બનવાને લાયક છે કે નહીં.
નોંધ: આ સમીક્ષા એક વ્યવહારિક અને ઉકેલ-લક્ષી શૈલીમાં લખવામાં આવી છે - હાથથી કરેલું, પૂર્વગ્રહ-તપાસાયેલ અને કીબોર્ડ પર શું ખરેખર મહત્વનું છે તેના પર ધ્યાન કેન્દ્રિત કરો.
શું છે?
(સામાન્ય રીતે ફક્ત "") એ ટર્મિનલ આધારિત પેર-પ્રોગ્રામર છે જે મોટા ભાષા મોડેલો (s) જેમ કે અથવા નો ઉપયોગ કરે છે:
- તમારા કોડબેઝને પસંદગીયુક્ત રીતે વાંચો (તમે જે ફાઇલો કોન્ટેક્સ્ટમાં ઉમેરો છો)
- સ્પષ્ટ યુનિફાઇડ ડિફ્સ તરીકે ફેરફારો સૂચવો
- પર વાતચીત અને સંપાદનોને ટ્રૅક કરો
- રીફેક્ટર, બગ ફિક્સ, ટેસ્ટ, ડોક્સ અને ઝડપી પ્રોટોટાઇપિંગમાં મદદ કરો
GUI ને બદલે, ત્યાં ચાલે છે જ્યાં ડેવલપર્સ પહેલેથી જ રહે છે: CLI. તમે ચેટ કરો છો, કોન્ટેક્સ્ટમાં ફાઇલો ઉમેરો છો, ડિફ્સ સ્વીકારો છો અથવા નામંજૂર કરો છો અને શિપિંગ ચાલુ રાખો છો. પરિણામ એ એક ચુસ્ત લૂપ અને IDEs અને બ્રાઉઝર ટેબ્સ વચ્ચે ઓછી કોપી-પેસ્ટિંગ છે, જેની પ્રારંભિક અપનાવનારાઓ સતત પ્રશંસા કરે છે.
ઝડપી ચુકાદો
- માટે: એવા દેવ્સ જે ટર્મિનલ-ફર્સ્ટ વર્કફ્લો પસંદ કરે છે, ડિફ-આધારિત નિયંત્રણને મહત્વ આપે છે અને સાથે જોડાયેલા પુનઃઉત્પાદન કરી શકાય તેવા ફેરફારો ઇચ્છે છે.
- માટે નહીં: જે લોકોને સંપૂર્ણ ની જરૂર છે, અથવા જેઓ અપેક્ષા રાખે છે કે માર્ગદર્શક કોન્ટેક્સ્ટ વિના સમગ્ર મોનોરેપોને આપમેળે નેવિગેટ કરે.
- બોટમ લાઇન: એ આજે તમે ચલાવી શકો તેવા સૌથી વધુ ડેવલપર-આદરણીય ટૂલ્સમાંનું એક છે - ઝડપી, ધ્યાન કેન્દ્રિત અને ડિફ્સમાં આધારિત.
શા માટે ડેવલપર્સ વિશે વાત કરી રહ્યા છે
1) ડિફ-ફર્સ્ટ, સેફ્ટી-ફર્સ્ટ
જાદુઈ ફાઇલ ફરીથી લખવાને બદલે ડિફ્સ તરીકે ફેરફારો સૂચવે છે. તમે બરાબર જુઓ છો કે તે શું બદલવા માંગે છે અને મર્જ કરતા પહેલાં સ્વીકારી અથવા સંપાદિત કરી શકો છો. આ ડિફ-ફર્સ્ટ ફ્લો અન્ય સાધનોમાં સામાન્ય " એ મૌન રીતે સંબંધિત ન હોય તેવી ફાઇલમાં કંઈક બદલ્યું" ચિંતાને ટાળવામાં મદદ કરે છે.
2) ઇન્ટેન્શનલ કોન્ટેક્સ્ટ કંટ્રોલ
તમે સ્પષ્ટપણે વાતચીત કોન્ટેક્સ્ટમાં ફાઇલો ઉમેરો છો. તે આભાસને ઘટાડે છે અને ટોકન વપરાશને ઓછો રાખે છે. તે સ્પષ્ટતાને પણ દબાણ કરે છે: બરાબર આપણે શું બદલી રહ્યા છીએ? વપરાશકર્તાઓ બ્રાઉઝર-આધારિત ચેટ સહાયકો કરતાં અનુભવને શાંત અને વધુ નિયંત્રણમાં હોવાનું વર્ણવે છે.
3) મેન્ટલ મોડેલને બંધબેસે છે
કારણ કે વાતચીતો અને ડિફ્સ ઓપરેશન્સ સાથે સુસંગત છે, વર્કફ્લો કુદરતી લાગે છે. તમે શેલ છોડ્યા વિના શાખા બનાવી શકો છો, કમિટ કરી શકો છો અને સમીક્ષા કરી શકો છો. વરિષ્ઠ ઇજનેરો અને ઝડપી ગતિશીલ ટીમો માટે, આ એક મોટી ઉત્પાદકતા જીત છે.
4) સમુદાય ગતિશીલતા
દેવ ફોરમ્સમાં, ની તુલના ઘણીવાર અન્ય ટર્મિનલ અથવા એજન્ટિક ટૂલ્સ સાથે કરવામાં આવે છે, જેમાં ચાહકો તેને તેમના "મુખ્ય કોડિંગ આસિસ્ટન્ટ" કહે છે, જ્યારે સ્વીકારે છે કે હજી પણ એક લર્નિંગ કર્વ અને પ્રસંગોપાત પ્રોમ્પ્ટીંગ યુક્તિઓની જરૂર છે.
હેન્ડ્સ-ઓન: વાસ્તવિક વર્કફ્લોમાં
કેવી રીતે વર્તે છે તે જોવા માટે ચાલો એક લાક્ષણિક સેશન જોઈએ.
- શાખા શરૂ કરો અને લોંચ કરો:
git checkout -b feat/login-rate-limit
aider --model claude-3-5-sonnet
- તમે જે ફાઇલોને જોવા માંગો છો તે ઉમેરો:
/add server/routes/login.ts server/services/auth.ts tests/login.test.ts
/login પર પ્રતિ-IP દર મર્યાદા લાગુ કરો. 5 પ્રયાસો/15 મિનિટ પર કેપ કરો. પરીક્ષણો અપડેટ કરો.
યુનિફાઇડ ડિફ્સ પરત કરે છે. તમે સ્વીકારી શકો છો, આંશિક રીતે સંપાદિત કરી શકો છો અથવા તેને પુનરાવર્તન કરવા માટે કહી શકો છો:
--- a/server/routes/login.ts
+++ b/server/routes/login.ts
@@
+ import rateLimit from 'express-rate-limit';
+ const loginLimiter = rateLimit({ windowMs: 15*60*1000, max: 5 });
+ router.post('/login', loginLimiter, async (req, res) => {
- પરીક્ષણો ચલાવો અને લૂપ કરો:
જો કંઈક તૂટી જાય, તો ભૂલ પેસ્ટ કરો. લક્ષિત ફિક્સનો પ્રસ્તાવ મૂકશે, ઘણીવાર સમાન ડિફ થ્રેડમાં. આ લૂપ ઝડપી છે કારણ કે તમે કોન્ટેક્સ્ટ-સ્વિચિંગ નથી કરી રહ્યા.
શું અસાધારણ રીતે સારી રીતે કરે છે
- નિયંત્રણ અને સ્પષ્ટતા: ડિફ-આધારિત ફેરફારો જોખમ ઘટાડે છે અને કોડ સમીક્ષા સીધી બનાવે છે.
- હળવા વજનનું ફૂટપ્રિન્ટ: કોઈ હેવીવેઇટ પ્લગઈન્સ નથી; સંપાદકોમાં કામ કરે છે.
- તમારી પસંદગીના સાથે સરસ રીતે જોડી બનાવે છે: તમારી પોતાની API કી લાવો અને એક મોડેલ પસંદ કરો.
- રીફેક્ટર માટે ઉત્તમ: તમે કાર્યને સ્પષ્ટ ફાઇલ સેટમાં વિભાજિત કરી શકો છો.
- માનસિક સલામતી: ઘણા દેવ્સ ચેટ UI ની સરખામણીમાં શાંત, વધુ ઇરાદાપૂર્વકની કેડન્સની જાણ કરે છે.
ક્યાં ઓછું પડે છે
- શોધવાની ક્ષમતા: GUI વિના, સુવિધાઓ ઓછી શોધી શકાય તેવી હોઈ શકે છે; તમે ડોક્સ અને
--help પર આધાર રાખશો.
- કોન્ટેક્સ્ટ મેનેજમેન્ટ: તમારે ફાઇલો ઉમેરવા/દૂર કરવાનું યાદ રાખવું જોઈએ; વિશાળ રેપો પર આ કંટાળાજનક હોઈ શકે છે.
- પ્રસંગોપાત પ્રોમ્પ્ટીંગ એક્રોબેટિક્સ: કોઈપણ ટૂલની જેમ, મહાન પરિણામો મેળવવા માટે કેટલીકવાર કાળજીપૂર્વક શબ્દો અથવા અવરોધોની જરૂર પડે છે, જેમ કે વપરાશકર્તાઓ ક્લાઇન/ક્લોડ દેવ જેવા સાથીદારો સાથેની તુલનામાં નોંધે છે.
વિ. અન્ય કોડિંગ સહાયકો
- -ફર્સ્ટ ટૂલ્સ (દા.ત., માં કોપાયલોટ) ઇનલાઇન સૂચનો અને સમૃદ્ધ UI એકીકરણો પ્રદાન કરે છે. તેઓ માઇક્રો-સંપૂર્ણતા માટે ઉત્તમ છે પરંતુ પ્રોજેક્ટ-વ્યાપી ફેરફારો વિશે અપારદર્શક હોઈ શકે છે.
- એજન્ટિક ટૂલ્સ ( અથવા ડેસ્કટોપ) જે રેપો-વ્યાપી સ્વાયત્તતાનું વચન આપે છે તે કેટલીકવાર વધારે પહોંચે છે અને ઘોંઘાટીયા ફેરફારો ઉત્પન્ન કરે છે. નો ડિફ-ફર્સ્ટ અભિગમ વધુ સર્જીકલ અને સમીક્ષાપાત્ર છે.
- ટર્મિનલ સાથીદારો (જેમ કે ક્લાઇન/ક્લોડ દેવ) ના ધ્યેયો ઓવરલેપ થાય છે. ડેવલપર્સ વિશ્વસનીયતા અને દિવસ-પ્રતિ-દિવસ વ્યવહારિકતા માટે ની પ્રશંસા કરે છે, જ્યારે એ પણ નોંધે છે કે શ્રેષ્ઠ પરિણામો મેળવવા માટે તમારે સમાન પ્રોમ્પ્ટ સ્વચ્છતાની જરૂર પડી શકે છે.
કોને ગમશે
- વરિષ્ઠ દેવ્સ જે નિયંત્રણ અને સ્પષ્ટ ડિફ્સને મહત્વ આપે છે
- મજબૂત કોડ સમીક્ષા સંસ્કૃતિ અને ગેટ્સવાળી ટીમો
- જાળવણી કરનારાઓ જે સ્વચ્છ, ઓડિટ કરી શકાય તેવા પેચ ઇચ્છે છે
- પોલીગ્લોટ ડેવલપર્સ જે વારંવાર સંપાદકો બદલે છે
સેટઅપ ટિપ્સ અને શ્રેષ્ઠ પ્રયાસો
- નાનું શરૂ કરો: ફક્ત મુખ્ય ફાઇલોને કોન્ટેક્સ્ટમાં ઉમેરો. એક સાંકડી સપાટી વિસ્તારને સ્પર્શતા ડિફ્સ માટે પૂછો.
- સીમાઓ સેટ કરો: ને શું બદલવું નહીં તે જણાવો (દા.ત., "માઇગ્રેશનને સંશોધિત કરશો નહીં").
- પરીક્ષણોને કરાર તરીકે ઉપયોગ કરો: નિષ્ફળ પરીક્ષણો શેર કરો અને ને પાછળની તરફ કામ કરવા દો.
- વારંવાર કમિટ કરો: ચેન્જસેટ્સને ચુસ્ત રાખો જેથી તમે સરળતાથી પાછા જઈ શકો.
- મોડેલની પસંદગી મહત્વપૂર્ણ છે: ઉચ્ચ-કોન્ટેક્સ્ટ, તર્ક-ઑપ્ટિમાઇઝ્ડ મોડેલો સામાન્ય રીતે વધુ સારી ડિફ્સ ઉત્પન્ન કરે છે.
કિંમત અને ઉપલબ્ધતા
પોતે જ એક ઓપન-સોર્સ છે જેને તમે સ્થાનિક રીતે ચલાવી શકો છો અને તમારી પસંદગીના પ્રદાતા સાથે કનેક્ટ કરી શકો છો. કિંમત તમારી પસંદ કરેલી મોડેલ/API વપરાશ પર આધારિત છે. તેની સાથે પ્રયોગ કરતા ડેવલપર્સ જણાવે છે કે ધ્યાન કેન્દ્રિત કાર્યો માટે કિંમત વ્યવસ્થાપિત છે, ખાસ કરીને જ્યારે તમે કોન્ટેક્સ્ટને ઓછું રાખો છો.
વાસ્તવિક દુનિયાનો પ્રતિસાદ: વપરાશકર્તાઓ શું કહે છે
- "એવા ડેવલપર્સ માટે પરફેક્ટ છે જેઓ એક શક્તિશાળી, લવચીક કોડિંગ આસિસ્ટન્ટ ઇચ્છે છે જે નિયંત્રણ જાળવી રાખે છે."
- પાછલા દેવ અનુભવોની સરખામણીમાં "શાંતિપૂર્ણ અને આનંદદાયક" - કમાન્ડ-લાઇન ટૂલ માટે એક આશ્ચર્યજનક લાગણી.
- દેવ સબરેડિટ્સ તરફથી મજબૂત સમર્થન, પ્રોમ્પ્ટ શિસ્ત અને વૈકલ્પિકની સરખામણીમાં સુવિધા તફાવતો વિશે ચેતવણીઓ સાથે.
બોટમ લાઇન
એક દુર્લભ પ્રજાતિ છે: એક કોડિંગ આસિસ્ટન્ટ જે તમારા વર્કફ્લો અને તમારી રેપોને માન આપે છે. તે એક સ્વાયત્ત એજન્ટ બનવાનો પ્રયાસ નથી કરી રહ્યો જે તમારી દુનિયાને ફરીથી લખે. તે એક વ્યવહારિક, ડિફ-સંચાલિત સહયોગી છે જે અને ટર્મિનલમાં સરસ રીતે બંધબેસે છે. જો તે તમારી ખુશીની જગ્યા છે, તો તમારા ટૂલકીટમાં હોવું જોઈએ.
નોંધનીય બાબત: જો તમે બ્રાઉઝરમાં સહાયતા પસંદ કરો છો, તો Sider.AI ચેટ, પ્રોમ્પ્ટ્સ અને દસ્તાવેજ/કોડ વાંચન સાથે એક સંકલિત, વિક્ષેપ-મુક્ત અનુભવ લાવે છે - સંશોધન, PRDs નો ડ્રાફ્ટ બનાવવા અથવા લક્ષિત કાર્યો ને સોંપતા પહેલાં લોગની સમીક્ષા કરવા માટે ઉત્તમ છે. બંનેનો ઉપયોગ કરીને એક સરળ " માં પ્લાન કરો, સાથે અમલ કરો" વર્કફ્લો બનાવી શકાય છે. મુખ્ય બાબતો
- ટર્મિનલ-ફર્સ્ટ દેવ્સ માટે શ્રેષ્ઠ છે જેઓ નિયંત્રણ, સ્પષ્ટતા અને -મૂળ ડિફ્સ ઇચ્છે છે.
- તે સમાવિષ્ટ રીફેક્ટર, ટેસ્ટ-સંચાલિત ફિક્સ અને સ્ટેપવાઇઝ સુધારાઓમાં શ્રેષ્ઠ છે.
- તમે કોન્ટેક્સ્ટને ક્યુરેટ કરીને, અવરોધો સેટ કરીને અને ઝડપથી પુનરાવર્તન કરીને તેનો સૌથી વધુ લાભ મેળવશો.
FAQ
Q1: AI Aider શું છે અને તે કેવી રીતે કાર્ય કરે છે?
AI Aider એ ટર્મિનલ આધારિત કોડિંગ આસિસ્ટન્ટ છે જે સમીક્ષાપાત્ર ડિફ્સ તરીકે ફેરફારો સૂચવવા માટે LLMs નો ઉપયોગ કરે છે. તમે સંબંધિત ફાઇલોને કોન્ટેક્સ્ટમાં ઉમેરો છો, તમારા ધ્યેયનું વર્ણન કરો છો અને કમિટ કરતા પહેલાં તેના પેચને સ્વીકારો છો અથવા તેમાં ફેરફાર કરો છો.
Q2: શું AI Aider કોપાયલોટ જેવા IDE ટૂલ્સ કરતાં વધુ સારું છે?
તે તમારા વર્કફ્લો પર આધાર રાખે છે. કોપાયલોટ IDE માં ઇનલાઇન પૂર્ણતામાં શ્રેષ્ઠ છે, જ્યારે AI Aider નિયંત્રિત, Git-સુસંગત ફેરફારો માટે ચમકે છે જેની તમે ડિફ્સ તરીકે સમીક્ષા કરી શકો છો. ઘણા દેવ્સ બંનેનો એકસાથે ઉપયોગ કરે છે.
Q3: શું AI Aider મોટા ભંડારોને સપોર્ટ કરે છે?
હા, પરંતુ તમે ચોક્કસ ફાઇલો ઉમેરીને કોન્ટેક્સ્ટને ઇરાદાપૂર્વક મેનેજ કરો છો. આ પ્રોમ્પ્ટ્સને કાર્યક્ષમ રાખે છે અને ઓફ-ટાર્ગેટ એડિટ્સ ઘટાડે છે, જે મોટા મોનોરેપોમાં મૂલ્યવાન છે.
Q4: AI Aider ની કિંમત કેટલી છે?
Aider પોતે જ ઓપન-સોર્સ છે; તમે તમારા પસંદ કરેલા LLM પ્રદાતા તરફથી વપરાશ માટે ચૂકવણી કરો છો. જો તમે કોન્ટેક્સ્ટને ધ્યાન કેન્દ્રિત રાખો છો અને નાના પેચમાં પુનરાવર્તન કરો છો તો ખર્ચ વાજબી રહે છે.
Q5: શું ત્યાં સારા AI Aider વિકલ્પો છે?
વિકલ્પોમાં IDE-આધારિત સહાયકો (દા.ત., કોપાયલોટ) અને ક્લાઇન/ક્લોડ દેવ જેવા અન્ય ટર્મિનલ એજન્ટોનો સમાવેશ થાય છે. Aider ની ધાર તેની ડિફ-ફર્સ્ટ, Git-મૂળ વર્કફ્લો અને ન્યૂનતમ ઓવરહેડ છે.