સાચી કોડ સમીક્ષા અને રિફેક્ટર સૂચનો માટે Grok 4 કેવી રીતે પ્રોમ્પ્ટ કરવું
તમને વધુ ટિપ્પણીઓની જરૂર નથી — તમારે વધારે અસરકારક પ્રોમ્પ્ટની જરૂર છે. એક સામાન્ય AI કોડ સમીક્ષા અને એક તેજસ્વી સમીક્ષા વચ્ચેનો ફરક ઘણીવાર આ પર આધાર રાખે છે કે તમે કેવી રીતે પૂછો છો.
આ પ્રાયોગિક અને ડેવલપર-પ્રથમ માર્ગદર્શિકામાં, અમે Grok 4 ને સાચી કોડ સમીક્ષા અને રિફેક્ટર સૂચનો માટે કેવી રીતે પ્રોમ્પ્ટ કરવી તે સમજાવશું. અમે વાસ્તવિક-જગતના પ્રોમ્પ્ટ ટેમ્પલેટ, સામાન્ય જાન્ય, અને ઉચ્ચ સ્તરીય રણનીતિઓનો સમાવેશ કરીશું જે Grok 4 ને પરિસ્થિતિ, આર્કિટેક્ચર, પ્રદર્શન અને જાળવણીને સમજવામાં મદદ કરે — જેથી તે એવા સુધારા આપે જે તમે વાસ્તવમાં લાગુ કરી શકો.
કાર્યક્ષમ રાખવા માટે, અમે પ્રશ્નો આધારિત રચના ઉપયોગ કરીશું:
- એક સારો AI કોડ સમીક્ષા પ્રોમ્પ્ટ કેવો દેખાય છે?
- તમે Grok 4 ને યોગ્ય પરિસ્થિતિ કેવી રીતે આપશો તે વધુ ભાર પાડ્યા વિના?
- કયાં પ્રોમ્પ્ટ પેટર્ન શ્રેષ્ઠ રિફેક્ટર સૂચનો આપે છે?
- તમે Grok 4 ને કેવી રીતે કહેવા દો કે તે ફક્ત કોડ ફરી લખવાનો નહીં પરંતુ ટ્રેડ-ઓફ્સ સમજાવે?
- “પ્રોડક્શન-રેડી” AI આઉટપુટ માટે સૌથી ઝડપી રીત શું છે?
આ માર્ગમાં, તમને નકલ-પેસ્ટ તૈયાર પ્રોમ્પ્ટ રેસીપી, ઉદાહરણો અને ચેકલિસ્ટ મળશે જે તમે તમારા સ્ટેક માટે અનુરૂપ બનાવી શકો.
શા માટે Grok 4 ને મુખ્ય પ્રોમ્પ્ટની જરૂર છે (અને “મૂળ્યવાન” શું છે)
Grok 4 એક શક્તિશાળી અને સમજદારો લાર્જ લૅન્ગવેજ મોડલ છે, જેમાં મજબૂત આપાત-કાર્યક્ષમતા અને કોડિંગ ક્ષમતા હોય છે, પરંતુ તેની ગુણવત્તા ઇનપુટની સ્પષ્ટતા અને નિયંત્રણો પર નિર્ભર થાય છે. કોડ સમીક્ષા અથવા રિફેક્ટર માટે એક ઉત્તમ પ્રોમ્પ્ટ ચાર મુખ્ય બાબતો પૂરી પાડે છે:
- વિસ્તાર પૂરો પાડે: કઈ ફાઈલ, ફંક્શન, અથવા મોડ્યુલ અંગે છે? શું સીમિત છે?
- ઉદ્દેશ્ય નિશ્ચિત કરે: શું આપણે પ્રદર્શન સુધારવા, વાંચનીયતા વધારવા, શૈલી અમલમાં લાવવા કે બગ ફિક્સ કરવા છીએ?
- પરિસ્થિતિ પૂરી પાડે: ભાષા, ફ્રેંકવર્ક, રનટાઈમ, નિર્ભરતા, બાંધણી અને સ્વીકાર્ય માપદંડો.
- સબૂત માંગે છે: ફેરફારો સિવાય સમજાવટ, જટિલતાનું વિશ્લેષણ અને પગલાંવાર તર્કભૃત્તિ માંગો.
જ્યારે તમે સતત આ તત્વો કોડમાં સમાવેશો ત્યારે Grok 4 ની કોડ સમીક્ષા અને રિફેક્ટર સૂચનો વધુ ચોકસાઈ, આધારે અને જાળવવા યોગ્ય બને છે.
કોડ સમીક્ષા માટે ગોલ્ડન પ્રોમ્પ્ટ પેટર્ન
આ માસ્ટર પેટર્ન નો ઉપયોગ કરો અને કાર્ય અનુસાર અનુકૂળ બનાવો:
તમે સિનિયર [ભાષા/ફ્રેમવર્ક] એન્જિનિયર છો જે [પ્રોજેક્ટ/વિભાગ] માટે કોડ સમીક્ષા કરી રહ્યા છો.
ઉદ્દેશ્ય: [બગ ફિક્સ | પ્રદર્શન | વાંચનીયતા | સલામતી | ડિવેલપર અનુભવ | API સમરસતા]
બંધારણો: [શૈલી માર્ગદર્શિકા, સમર્થિત વર્ઝન, મેમરી/સમય મર્યાદા, લાઇબ્રેરી નિયંત્રણ]
પરિસ્થિતિ:
- રનટાઈમ/પર્યાવરણ: [Node 20, JVM 17, Python 3.11, iOS 17, વગેરે]
- મુખ્ય નિર્ભરતા: [યાદી]
- આર્કિટેક્ચર: [મોનોલિથ, માઇક્રોસર્વિસ, સર્વરલેસ, હેક્સાગોનલ, વગેરે]
- સંબંધિત ઈન્ટરફેસ/કોન્ટ્રેક્ટ: [લિંક અથવા ઈનલાઇન]
કાર્ય:
1) નીચે આપેલો કોડ [લક્ષ્યો] માટે સમીક્ષા કરો.
2) સબૂત સાથે ચોક્કસ સમસ્યાઓ ઓળખો (લાઇન સંદર્ભ, જટિલતાના અંદાજપત્ર, કેજ કેસ).
3) ઓછામાં ઓછી અને લક્ષ્યાંકિત ફેરફારો સૂચવો.
4) અંતિમ રિફેક્ટર કરેલ સંસ્કરણ આપો.
5) ટ્રેડ-ઓફ્સ અને જોખમો સમજાવો.
કોડ:
```[ભાષા]
// આ સ્થળે કોડ પેસ્ટ કરો
આઉટપુટ ફોર્મેટ:
- ફાઈન્ડિંગ્સ: ગંભીરતા અને કારણસહીત બુલેટ લિસ્ટ
- ડિફ્ફસ: એકતૃત ડિફ બ્લૉક્સ
- રિફેક્ટર: પૂરું કોડ બ્લૉક
- ટેસ્ટ્સ: યુનિટ ટેસ્ટ સૂચનો (ખુશحال માર્ગ અને કેજ કેસ)
- નોટ્સ: ટ્રેડ-ઓફ્સ, વિકલ્પો, માઇગ્રેશન સંબંધિત મુદ્દાઓ
શા માટે કાર્ય કરે છે:
- ભૂમિકું અને લક્ષ્યો ફ્રેમ કરે છે.
- બંધારણો અને પરિસ્થિતિ સેટ કરે છે.
- સાબિતી અને રચના માટે મજબૂર કરે છે.
- ડિફ્સ + અંતિમ કોડ + ટેસ્ટ બનાવે છે.
---
## સામાન્ય પરિસ્થિતિઓ માટે ઝડપી શરૂઆત ટેમ્પલેટ્સ
### ૧) બગ ફિક્સ + સલામતી નેટ્સ
```text
એક સિનિયર [ભાષા] એન્જિનિયર તરીકે ક્રિયાવાન રહો. યોગ્યતા અને છુપાયેલા કેજ કેસ માટે સમીક્ષા કરો.
ફોકસ: રેસ શરતો, નલ/None હેન્ડલિંગ, ઓફ-બાય-વન ત્રુટિ, ઇનપુટ વેલિડેશન, એરર પ્રોપૈગેશન.
વળતર આપો: લાઈન સંદર્ભ સાથે સમસ્યાઓ, ન્યૂનતમ ડિફ્સ, અને સચોટ રિફેક્ટર સાથે ટેસ્ટ.
૨) પ્રદર્શન માટે હોટ પાથ
ઉદ્દેશ્ય: જાહેર વર્તન બદલ્યા વિના સમય અને મેમરી જટિલતા ઘટાડવી.
આઉટપુટમાં વર્તમાન જટિલતા, પ્રસ્તાવિત જટિલતા, માઇક્રો-ઓપ્ટિમાઈઝેશન્સ અને અલ્ગોરિધમિક ફેરફારો, તેમજ ચલાવવાની বেঞ্চમાર્ક્સ સમાવિષ્ટ કરો.
૩) વાંચનીયતા અને જાળવણીક્ષમતાનું સુધારણું
સ્પષ્ટતા માટે રિફેક્ટર કરો: વધુ સારી નામકરણ, નાની ફંક્શન્સ, એકજ જવાબદારી.
ડોકસ્ટ્રિંગ્સ/JSDoc ઉમેરો, કંટ્રોલ ફ્લો સરળ બનાવો, જાણીતા અપ્રયોગી કોડ દૂર કરો. જાહેર API સ્થિર રાખો.
૪) સલામતી સમીક્ષા
ધમકી મોડેલ: અવિશ્વસનીય ઇનપુટ સૂત્ર [સ્ત્રોત].
પરીક્ષણ કરો: ઇન્જેક્શન, ડીસિરિયલાઇઝેશન, SSRF, XSS, CSRF, ઑથોરાઇઝેશન/ઑથેન્ટિકેશન, સિક્રેટ્સ હેન્ડલિંગ.
સૂચવો: સલામત લાઇબ્રેરીઝ, વેલિડેશન પેટર્ન અને ન્યૂનતમ ડિફ્સ.
૫) ફ્રેમવર્ક્સ અથવા SDKsનું માઇગ્રેશન
અમે [લાઇબ A]થી [લાઇબ B]માં માઇગ્રેટ થઈ રહ્યા છે.
વિગતવાર તૂટવાના ફેરફારો સૂચવો, એડેપ્ટર લેયર પ્રસ્તાવિત કરો, અને ટેસ્ટ સાથે ક્રમવધ્ધ રીતે રોલઆઉટ યોજના આપો.
યોગ્ય પરિસ્થિતિ (વધારાભાર વિના) પૂરી પાડો
Grok 4 सर्वोત્તમ નફો મેળવવા માટે પૂરતું અને યોગ્ય પરિસ્થિતિ જોઈશે. અહીં શામેલ કરવું જોઈએ:
- ભાષા અને વર્ઝન: ઉદાહરણ તરીકે Python 3.12, TypeScript 5.4.
- ફ્રેમવર્ક/રનટાઈમ: ઉદાહરણ તરીકે FastAPI, Spring Boot, Node 20.
- બંધારણો: મેમરી/સમય મર્યાદા, API કરાર, નિર્ભરતા મર્યાદા.
- જોડાયેલા ઈન્ટરફેસ: જાહેર પદ્ધતિ સહી, DTOs, સ્કીમા, અથવા નમૂના વિનંતીઓ.
- પ્રતિનિધિ ઇનપુટ: હકીકતી પેલોડ્સ, માત્ર નમૂના ઉદાહરણ નહીં.
- શૈલી માર્ગદર્શિકા: લિંક કે સારાંશ (PEP 8, Google Java Style, Airbnb TS).
સંપૂર્ણ રેપોઝિટરી ડમ્પ કરવો ટાળો. તેની જગ્યાએ:
- સમસ્યા પ્રદર્શિત કરતી નાની એકમ શેર કરો.
- તે સંસર્ગમાં રહેલ ઇન્ટરફેસ/કોન્ટ્રેક્ટ સામેલ કરો.
- તૂટતી ટેસ્ટ કે નમૂના ઇનપુટ શામેલ કરો.
પરિસ્થિતિ બ્લોક ઉદાહરણ:
પર્યાવરણ: Python 3.11, FastAPI, Pydantic v2.
કોન્ટ્રેક્ટ: એન્ડપોઈન્ટ આંકડા સાથે 200 પરત આપે, ભાગે વિફળ પણ.
બંધારણ: અસંક્રિય રહેવું; કોઈ ભારે નવી નિર્ભરતા ઉમેરવી નહીં.
સારા રિફેક્ટર માટે પ્રોમ્પ્ટ રચનાઓ
રચના A: ટીકા → ડિફ → રિફેક્ટર → ટેસ્ટ્સ
ઝટપટ પરિણામો અને અંતિમ સમાહિત પરિણામ માટે શ્રેષ્ઠ.
1) ટીકા: સબૂત સાથે ચોક્કસ મુદ્દાઓની સૂચિ બનાવી.
2) ડિફ: સુધારવા માટે નાનામાં નાનું ફેરફાર.
3) રિફેક્ટર: સ્વચ્છ અને ઊપયોગી અંતિમ કોડ.
4) ટેસ્ટ્સ: ખુશحال માર્ગ અને 3 કેજ કેસ સહિત યુનિટ ટેસ્ટ્સ.
રચના B: વિકલ્પ સેટ ટ્રેડ-ઓફ્સ સાથે
ડિઝાઇન-સંવેદનશીલ રિફેક્ટર્સ માટે ઉત્તમ.
3 રિફેક્ટર વિકલ્પ સૂચવો:
- વિકલ્પ A: ન્યૂનતમ ફેરફાર
- વિકલ્પ B: મધ્યમ પુનર્રચના
- વિકલ્પ C: પૂર્ણ પુનર્લેખન
દરેક માટે: ફાયદા/અફવડતાઓ, જટિલતા, જોખમ, માઇગ્રેશન યોજના, અને ક્યારે પસંદ કરવી તે સમજાવો.
રચના C: બંધારણ-આધારિત રિફેક્ટર
જ્યારે વર્તન અને બજેટ જાળવવું જરૂરી હોય ત્યારે ઉપયોગ કરો.
બંધારણો: એક ZIP જાહેર API, p95 < 50ms, 10MBથી ઓછું વધારાનું મેમરી, નવા રનટાઈમ નિર્ભરતાઓ નહીં.
દરેક પ્રતિબંધ કેવી રીતે મળતો તે માપદંડો કે તર્ક સાથે બતાવો.
ઉદાહરણ: Grok 4 ને Python એન્ડપોઈન્ટ સમીક્ષા અને રિફેક્ટર કરવા કહેવું
પ્રોમ્પ્ટ:
તમે સિનિયર Python એન્જિનિયર છો. ઉદ્દેશ્ય: યોગ્યતા + પ્રદર્શન.
પર્યાવરણ: Python 3.11, FastAPI, httpx, Pydantic v2. કરાર: ભાગે નિષ્ફળ થવું છતાં નહિ ઉઠાવવું.
કાર્ય: સમીક્ષા અને રિફેક્ટર. ટીકા → ન્યૂનતમ ડિફ્સ → અંતિમ રિફેક્ટર → ટેસ્ટ્સ પૂરા પાડો.
કોડ:
```python
from fastapi import APIRouter
import httpx
router = APIRouter()
@router.get("/users/{user_id}")
async def get_user(user_id: str):
async with httpx.AsyncClient() as client:
profile = await client.get(f"https://api.example.com/users/{user_id}/profile")
posts = await client.get(f"https://api.example.com/users/{user_id}/posts")
return {"data": {"profile": profile.json(), "posts": posts.json()}}
સ્વીકાર્યતા:
- બંને કૉલમાંથી નон- 200 સ્થિતિએ ઊઠાવવું નહીં.
- અપસ્ટ્રીમ્સની તુલનામાં p95 < 100ms વધારાની વિલંબતા; વિનંતીઓ સમકલન રૂપે રાખો.
- મૂળભૂત ઇનપુટ વેલિડેશન, સમયમર્યાદા અને રીટ્રાઇ વિથ જેટર ઉમેરો.
આ પ્રોમ્પ્ટ Grok 4 ને કામ, બંધારણો અને આઉટપુટ આકાર આપે છે—જેથી તેની સૂચનો લાગુ કરવી સરળ બને છે.
---
## કાચા સૂચનોમાંથી શિપ-તૈયાર કોડ સુધી: પુનરાવર્તન લૂપ
Grok 4 ને જોડીદાર પ્રોગ્રામર જેવા સારવાર આપો. કડક લૂપ ઉપયોગ કરો:
1. ન્યૂનતમ પુનરુત્પાદક કોડ અને નિયંત્રણોથી શરુઆત કરો.
2. ટીકા + લક્ષ્યાંકિત ડિફ્સ માટે પૂછો.
3. સ્થાનિક રીતે ડિફ્સ લાગુ કરો; ટેસ્ટ/બેંચમાર્ક ચાલી કરો.
4. નિષ્ફળતાઓ/આઉટપુટ Grok 4 માં આ શહેર સાથે પેસ્ટ કરો: “આ નિષ્ફળ કેસ છે; સુધારો.”
5. નિયંત્રણો ઠકાવી લો: “જાહેર API બદલશો નહીં. જટિલતા O(n) મુકો.”
6. ટેસ્ટ અને પ્રોપર્ટી-આધારિત કેસ માટે પૂછો.
પુનરાવર્તન પ્રોમ્પ્ટ:
```text
આ રહી ટેસ્ટ નિષ્ફળતાઓ અને બેંચમાર્ક્સ. અગાઉના નિયંત્રણો રાખો. તમામ લાલ ટેસ્ટો માટે સૌથી નાનું ફેરફાર સૂચવો, જાહેર API તોડ્યા વિના. ફક્ત એકમિત ડિફ ફોર્મેટમાં જવાબ આપો.
રિફેક્ટર સૂચનોને લાગુ કરવા યોગ્ય બનાવવું
Grok 4 ને પૂછો:
- દરેક સૂચનને ગંભીરતા (ઉચ્ચ/મધ્યમ/નિમ્ન) અને કેટેગરી (બગ, પ્રદર્શન, શૈલી, સલામતી) સાથે ટૅગ કરવા.
- દરેક સૂચન માટે એક વાક્યનું કારણ આપો.
- સૂચનો પહેલા અને પછીનું શીઘ્ર સ્નિપેટ જોડી દો.
- જો તોડફોડનું જોખમ હોય તો માઇગ્રેશન યોજના પણ આપો.
પ્રોમ્પ્ટ એડ-ઓન:
દરેક સૂચનને આ સાથે ટૅગ કરો: {ગંભીરતા, કેટેગરી, કારણ}. પહેલા/પછી સ્નિપેટ અને એક તબક્કાનો માઇગ્રેશન પ્લાન છે તે શામેલ કરો nếu વર્તન બદલાય શકે.
સલામતી, પ્રદર્શન, અને ટેસ્ટિંગ માટે લક્ષ્યાંકિત પ્રોમ્પ્ટ એડ-ઓન
- “તમામ ઇનપુટને હુમલાખોર નિયંત્રિત માનો. ઇન્જેક્શન, SSRF, પાથ ટ્રાવર્સલ અને સિક્રેટ્સ ઉઘાડવાનો પીછો કરો. સલામત પેટર્ન અને ન્યૂનતમ ડિફ્સ આપો.”
- “વર્તમાન અને પ્રસ્તાવિત જટિલતાઓ રિપોર્ટ કરો. ગરમ મુદ્દાઓ અને સસ્તા વિકલ્પોને હાઈલાઇટ કરો. નાનું બેન્ચમાર્ક હાર્નેસ શામેલ કરો.”
- “યુનિટ ટેસ્ટ, પ્રોપર્ટી-આધારિત ટેસ્ટ અને બાઉન્ડરી કેસ સૂચવો. નેટવર્ક/IO માટે મૉક શામેલ કરો. નિષ્ફળ માર્ગો કવર કરો તે નિશ્ચિત કરો.”
ભાષા-વિશિષ્ટ પ્રોમ્પ્ટ સુધારાઓ
- સૂચવો
tsconfig લક્ષ્યો, Node/બ્રાઉઝર પર્યાવરણ, બંડલર ટ્રી-શેકિંગ, અને ESLint/Prettier નિયમો.
- અનુરોધ કરો
JSDoc/TSDoc અને ઉચ્ચ સલામતી માટે વિભાજિત યુનિયનો.
- નથી
mypy લક્ષ્ય, pydantic વર્ઝન 1 અને 2, સિંગ્ક્રોનસ વિરુદ્ધ એસિન્ક, અને પ્રકાર સૂચનોનું સ્તર.
- અનુરોધ કરો
pytest ફિક્સચર્સ અને hypothesis દ્વારા પ્રોપર્ટી ટેસ્ટ.
- જણાવ JDK વર્ઝન, અપલોકેચિતાની અપેક્ષાઓ, Lombok નો ઉપયોગ નિયમો, અને ભૂલ-હેન્ડલિંગ નીતિ.
- અનુરોધ કરો JUnit 5 ટેસ્ટ અને JMH દ્વારા બેન્ચમાર્ક સૂચનો.
- હોટ પાથ પર શૂન્ય એલોકેશન્સ,
context.Context પ્રસારણ અને ભૂલ રેપિંગ %w સાથે ભાર આપો.
- ટેબલ-ડ્રિવન ટેસ્ટ અને રેસ ડીટેક્ટર ફ્લેગ માંગો.
- એડિશન, અનસેફ કોડ નીતિ અને ફીચર ફ્લેગ્સની નિર્દિષ્ટ કરો. બેન્ચમાર્ક્સ અને
proptest કેસની વિનંતી કરો.
Grok 4 માંથી વધુ સારો ડિફ આઉટપુટ મેળવવો
મોડલ ક્યારેક ફાઇલ પાથ અથવા પ્રસ્થિતિની ખોટી માહિતી આપે છે. આ રીતે મુશ્કેલી ઘટાડો:
આઉટપુટ એકીકૃત ડિફ તરીકે ફાઇલ પાથ સાથે જે રેપોઝનો રુટ છે તે મુજબ પાછું આપો. માત્ર બદલાયેલા હંક્સ શામેલ કરો. ડિફમાં ટિપ્પણીઓ નહીં. પછી અલગ વિભાગમાં ટિપ્પણીઓ આપો.
જો ડિફ હજુ પણ ગમભર્યું હોય, તો વધુ મર્યાદાઓ લગાવો:
નામ જરુરી બે બ્લૉકથી જવાબ આપો:
1) ```diff
...ફેરફાર...
---
## નોન-ફંક્શનલ જરૂરિયાતો (NFRs) ની અમલવાર્તા
જો તમને વિલંબ, મેમરી કે સુસંગતતા અંગે ગેરંટી જોઈએ તો તેને પ્રોમ્પ્ટમાં ઉમેરી દો અને Grok 4 ને પોતાનું સરવૈયું કરાવવા કહો:
```text
NFRs: p95 latency +< 20ms vs baseline, memory delta < 5MB, zero new runtime deps, same public API.
દરેક NFR માટે rough reasoning અથવા માઇક્રોબેન્ચ વિચારો સાથે એક સ્વતંત્ર ચકાસણીનો વિભાગ ઉમેરો.
Grok 4 ને તેનું કારણ સમજાવવાની વિનંતી કરો (લંબાયથી બચીને)
તમને એટલું પૂરતું સમજાવવું છે જે સૂચનો પર વિશ્વાસ મુકવા માટે કાફી છે. પ્રયાસ કરો:
દરેક ફેરફારની એક વાક્યમાં સમજૂતિ આપો જેમાં લાઇન અથવા સ્નિપેટનો સંદર્ભ હોય. ખાતરી ન હોય તો મૂર્ખાઈથી અનુમાન કરતાં પહેલા સ્પષ્ટતા માટે પ્રશ્ન પૂછો.
અને સ્પષ્ટ રૂપે પ્રશ્ન પૂછવાની અનુમતિ આપો:
જો માગણીઓ અનિશ્ચિત હોય, તો આગળ વધતા પહેલા 3 સ્પષ્ટતાના પ્રશ્નો પૂછી શકો.
એન્ટી-પેટર્ન્સ: શું તમારી પ્રોમ્પ્ટ નિષ્ફળ થઇ રહી છે તેની શા માટે સામે આવે છે
- અસ્પષ્ટ લક્ષ્ય: “કૃપા કરી bunu સુધારો.”
- બંધારણોનો અભાવ: “નવાં ભારે ડિપેન્ડન્સી ઉમેરો અને CI તોડી દો.”
- સ્વીકાર્ય માપદંડોની ગેરહાજરી: “મને મારી મશીન પર ચાલે છે તે સારી લાગે છે.”
- સંપૂર્ણ કોડ બાજુને ડમ્પ કરવો વિના સંદર્ભ: મોડેલ સીમાઓ કે करार્સ ન અનુમાન કરી શકે.
- સિંગલ-શોટ અપેક્ષા: એક સાથે સુધારવાથી વધુ iteratives વ્યાજ છે.
તે સુધારો લક્ષ્ય, વિસ્તાર, બંધારણો, પરિસ્થિતિ અને સ્વીકાર્ય પરીક્ષણો નિશ્ચિત કરીને કરો.
નમૂનુ રિફેક્ટર પ્રોમ્પ્ટ અને આઉટપુટ આકાર
ભૂમિકા: સિનિયર TypeScript એન્જિનિયર.
લક્ષ્ય: જાહેર API બદલે વિના વાંચનીયતા અને રનટાઈમ સલામતી સુધારવી.
પર્યાવરણ: Node 20, TypeScript 5.4, Zod વેલિડેશન માટે, ESLint Airbnb, strictNullChecks.
બંધારણો: Zod સિવાય નવી રનટાઈમ નિર્ભરતા નહીં, તોડફોડ નહીં, O(n) જટિલતા જાળવો.
કાર્ય:
- ટીકા → ડિફ → રિફેક્ટર → ટેસ્ટ → નોટ્સ.
- મુદ્દાઓ માટે {ગંભીરતા, કેટેગરી, કારણ} ટૅગ કરો.
- ઇનપુટ વેલિડેશન માટે Zod સ્કીમા અને 4 યુનિટ ટેસ્ટ શામેલ કરો.
કોડ:
```ts
export function parseUser(raw: any) {
if (!raw) return null;
return {
id: raw.id || '0',
name: raw.name || 'Unknown',
age: parseInt(raw.age),
}
}
---
## Grok 4 ને શૈલી અને આર્કિટેક્ચરનું માન મળવા દો
મોડલને સ્પષ્ટ નિયમોથી અંકિત કરો:
```text
શૈલી: Airbnb TS. વહેલી રિટર્ન પસંદ કરો, ઊંડા નેસ્ટિંગથી બચો, સ્પષ્ટ પ્રકારો વાપરો.
આર્કિટેક્ચર: શુદ્ધ ફંક્શન્સ જ; નીબટ અસરવાળા નહીં. ઇનપુટ વેલિડેશન બાઉન્ડરી પર જ કરશો.
અને લિંટર પાસ માટે કહો:
માનસિક ESLint પાસ ચલાવો અને અપેક્ષિત ઉલ્લંઘનો સૂચિ બનાવો, પછી તેને ઠીક કરો.
રીફેક્ટર્સને શીખવામાં ફેરવો: પેટર્ન માટે કહો
સુધારાઓ લાંબાણ કરવા માટે Grok 4 ને પૂછો કે તે પેટર્નનું નામ અને કેમ આ કોડબેઝમાં લાગુ પડે તે સમજાવે:
દરેક ફેરફાર માટે રિફેક્ટરિંગ પેટર્ન નામ કરો (જેમ કે Extract Function, Introduce Parameter Object) અને આ કોડબેઝમાં તેનો ઉપયોગ ક્યારે કરવો તે સમજાવો.
સમસ્યા નિવારણ: જ્યારે Grok 4 માર્ક ચૂકે
- જો તે નકલી API બનાવે: “ફક્ત કોડમાં દર્શાવેલા API કે સંદર્ભમાં પુષ્ટિ થયેલ API જ વાપરો.”
- જો તે વધુ રિફેક્ટર કરે: “સર્વાધિક ન્યૂનતમ ડિફ્સ પહેલા; જરૂરી હોય તો જ રિફેક્ટર કરો.”
- જો તે બંધારણો અવગણે: “કોડ પાછો મોકલતા પહેલા બંધારણો સામે સ્વતંત્ર ચકાસણી બતાવો.”
- જો તે બહુ બોકાય: “ફક્ત ડિફ અને 5-બુલેટ સારાંશ આપો.”
- જો ટેસ્ટ ફલકી હોય: “ડિટર્મિનિસ્ટિક ટેસ્ટ પ્રસ્તાવિત કરો અને સમય આધારિત દાવો ટાળો.”
વાસ્તવિક વર્કફ્લો: PR થી મર્જ સુધી
- ડેવલપર ટાર્ગેટેડ પ્રોમ્પ્ટ આર્ટિફેક્ટ્સ: લક્ષ્ય, બંધારણો, પરિસ્થિતિ, સ્વીકાર્ય પરીક્ષણો સાથે PR ખોલે છે.
- ડિફ + પરિસ્થિતિ Grok 4 ને ગોલ્ડન પેટર્ન સાથે પેસ્ટ કરે છે.
- ન્યૂનતમ ડિફ્સ લાગુ કરો, CI ફરી ચલાવો.
- નિષ્ફળ લોગ પાછા ફીડબેક તરીકે આપી પુનરાવર્તન કરો.
- અંતિમ રિફેક્ટર અને ટેસ્ટ માંગો.
- ભલામણો માટે ટ્રેડ-ઓફ્સ અને માઇગ્રેશન નોટ્સ સાથે સંક્ષિપ્ત ટિપ્પણી ઉમેરો.
આ માનવોને નિયંત્રણમાં રાખે છે, જ્યારે Grok 4 શોધ, નાની ત્રુટિ સુધારવા અને રચિત રિફેક્ટर्सમાં ઝડપ લાવે છે.
આ લૂપને ઝડપથી ચલાવો Sider.AI સાથે
જો તમારું વર્કફ્લો ચેટ પ્રોમ્પ્ટ, કોડ સંદર્ભ અને પુનરાવર્તિત ડિફ્સ મેળવીને બને છે, તો નોંધો કે Sider.ai જેવા સાધનો AI કોડ સમીક્ષા સીધું તમારા પુલ રિક્વેસ્ટમાં સંકલિત કરે છે, અને ઉપરોક્ત પ્રોમ્પ્ટ્સને રેપોઝિટરી-જ્ઞાત સંદર્ભ સાથે લાગુ કરવા દે છે. લાભ છે વધુ સચોટ ગ્રાઉન્ડિંગ: ઓછા છલકાવેલ આયાતો, વધુ સારી લાઇન સંદર્ભો, અને ઇનલાઇન ટિપ્પણીઓ સાથે ઝડપી પુનરાવર્તન. રેપોઝ જ્ઞાત સહાયકની અંદર ઉપયોગ માટે સૂચિત પ્રોમ્પ્ટ:
ફક્ત રેપોઝ સંદર્ભનો ઉપયોગ કરો. આ PR માં બદલાયેલી ફાઇલો [ઉદ્દેશ્ય] માટે સમીક્ષા કરો. ગંભીરતા અને કારણથી જોડાયેલી ટિપ્પણીઓ સાથે શોધો દર્શાવો. જાહેર API અને NFRs જાળવી એવા ડિફ્સ રજૂ કરો. ફક્ત બદલાયેલી પાથ સાથે સંકળાયેલા ટેસ્ટ સમાવિષ્ટ કરો.
મુખ્ય મુદ્દા
- શરુઆતમાં વિસ્તાર, ઉદ્દેશ્ય, પરિસ્થિતિ અને બંધારણો નિર્ધારિત કરો.
- સુરક્ષા માટે ટીકા → ન્યૂનતમ ડિફ્સ → રિફેક્ટર → ટેસ્ટ માંગો.
- ડિઝાઇન-ભારે ફેરફારો માટે ટ્રેડ-ઓફ્સ સાથે વિકલ્પ સેટ્સ વાપરો.
- NFRસને કોડમાં સામેલ કરો અને Grok 4 ને પોતાનું ચકાસણી કરાવવા કહો.
- ઝડપી પુનરાવર્તન કરો: ટેસ્ટ ચલાવો, નિષ્ફળતાઓ પાછા ખાધો, પુનરાવર્તન કરો.
- હકીકતી કોડ સાથે સૂચનો માટે રેપોઝિટરી-જ્ઞાત સાધનો જેવી કે Sider.AI નો ઉપયોગ કરો.
આગળના પગલાં
- ગોલ્ડન પ્રોમ્પ્ટ પેટર્ન તમારા સ્નિપેટ્સમાં સંગ્રહિત કરો.
- તમારા સ્ટેક માટે ભાષા-વિશિષ્ટ રૂપાંતરો બનાવો.
- આજ શેરમાં નાનું PR હાથ ધરવી અને કેટલા સમીક્ષા ચક્ર બચાવ્યા તે માપો.
- તમારા પ્રોમ્પ્ટ્સમાં સ્વીકાર્ય પરીક્ષણો ઉમેરો જેથી નોન-નેગોશિઅબલ મુદ્દાઓ અમલમાં રહે.
- મૂળભૂત બાબતો સ્થિર થયા પછી પ્રદર્શન અને સલામતી માટે પ્રોમ્પ્ટ્સ ધીમે ધીમે વધારવી.
પ્રશ્નોત્તર
પ્રશ્ન 1: કોડ રિવ્યૂ માટે Grok 4 ને પ્રોમ્પ્ટ કરવાનો શ્રેષ્ઠ માર્ગ શું છે?
એક સ્ટ્રક્ચર્ડ પ્રોમ્પ્ટનો ઉપયોગ કરો જે ભૂમિકા, ધ્યેયો, અવરોધો, પર્યાવરણ અને સ્વીકૃતિ માપદંડોને વ્યાખ્યાયિત કરે. ટીકા, ન્યૂનતમ ડિફ્સ, અંતિમ રિફેક્ટર, પરીક્ષણો અને ટૂંકા ટ્રેડ-ઓફ વિશ્લેષણ માટે પૂછો.
પ્રશ્ન 2: હું Grok 4 પાસેથી સચોટ રિફેક્ટર સૂચનો કેવી રીતે મેળવી શકું?
સ્પષ્ટ ઉદ્દેશ (દા.ત., વાંચનક્ષમતા અથવા કામગીરી) પ્રદાન કરો, ઇન્ટરફેસ અને અવરોધો જેવો સંદર્ભ શામેલ કરો અને ગુણદોષ સાથે વિકલ્પ સમૂહોની વિનંતી કરો. બિન-કાર્યાત્મક આવશ્યકતાઓને લાગુ કરો અને સ્વ-તપાસ માટે પૂછો.
પ્રશ્ન 3: શું મારે સમગ્ર રિપોઝીટરીને Grok 4 માં પેસ્ટ કરવી જોઈએ?
ના. સંબંધિત ઇન્ટરફેસ અને અવરોધો સાથે સૌથી નાનો પુનઃઉત્પાદન કરી શકાય તેવો કોડ શેર કરો. પ્રોમ્પ્ટ્સને કેન્દ્રિત રાખો અને પરીક્ષણ નિષ્ફળતાઓ અને બેન્ચમાર્ક્સને પાછા ખવડાવીને પુનરાવર્તન કરો.
પ્રશ્ન 4: રિફેક્ટર દરમિયાન Grok 4 ને જાહેર API બદલતા હું કેવી રીતે અટકાવી શકું?
સ્પષ્ટ અવરોધો જણાવો જેમ કે “જાહેર API બદલશો નહીં,” ઉદાહરણ ઇનપુટ્સ/આઉટપુટ્સ પ્રદાન કરો, અને કોડ પરત કરતા પહેલા મોડેલને સ્વ-તપાસ સાથે પાલન કરવાની પુષ્ટિ કરવા માટે કહો.
પ્રશ્ન 5: શું Grok 4 પરીક્ષણો અને બેન્ચમાર્ક્સ સૂચવી શકે છે?
હા. તેને યુનિટ ટેસ્ટ, પ્રોપર્ટી-આધારિત ટેસ્ટ અને એક નાનું બેન્ચમાર્ક હાર્નેસ શામેલ કરવા માટે કહો. સૂચનોને ચલાવવા યોગ્ય રાખવા માટે પરીક્ષણ ફ્રેમવર્ક અને રનટાઇમ સ્પષ્ટ કરો.