Code review का अभ्यास · 8 MIN

AI-generated बदलाव का review करें

छोटा endpoint जाँचें। तय करें कि बदलाव स्वीकार करने से पहले कौन-सा प्रमाण चाहिए।

स्थिति

AI assistant invoice endpoint का प्रस्ताव देता है। Sign in किए हुए user को केवल अपने संगठन के invoices दिखने चाहिए। Release से पहले आप बदलाव की समीक्षा कर रहे हैं।

क्या करें

  1. Code और सरल भाषा में उसकी व्याख्या पढ़ें। उसे चलाना जरूरी नहीं है।
  2. स्वीकृति से पहले जरूरी हर check चुनें। उत्तर जाँचें, कारण पढ़ें और कोई check छूटे तो फिर कोशिश करें।
पृष्ठभूमि जाननी है? पाठ पढ़ें

आप इस PR की समीक्षा कर रहे हैं। Feature को invoice केवल उसी संगठन के authenticated user को लौटाना चाहिए। यह अंश अधूरा है।

// Fictional, incomplete example. Do not deploy.
app.get('/invoices/:id', async (req, res) => {
  const invoice = await db.invoice.findUnique({
    where: { id: req.params.id }
  });
  console.log('Invoice response', invoice);
  return res.json(invoice);
});
Code क्या करता है?

Endpoint request से invoice ID लेता है, वह invoice लाता है, पूरा invoice log करता है और उसे लौटाता है। अंश में यह नहीं दिखता कि इस invoice पर user का अधिकार कौन जाँचता है।

Authentication जाँचता है कि user कौन है। Authorization जाँचता है कि user क्या कर सकता है। Middleware वह code है जो इस endpoint से पहले request को process करता है। उसमें ऐसे checks हो सकते हैं जो इस अंश में नहीं हैं।

Review की सभी जरूरी कार्रवाइयाँ चुनें।

पूरा करने के लिए

क्या सफल request से invoice endpoint सुरक्षित सिद्ध होता है?

अपने उत्तर की तुलना व्याख्या से करें

नहीं। इससे केवल एक request का काम करना सिद्ध होता है। यह प्रमाण भी चाहिए कि user दूसरे संगठन का invoice नहीं पढ़ सकता। पूरा request path, record न मिलने पर व्यवहार और logging जाँचें। सफल test को उस जरूरत को कवर करना चाहिए जो महत्वपूर्ण है।

काम में इसका उपयोग करें

अगले PR review में ऐसी कार्रवाई का एक test जोड़ें जिसे अस्वीकार करना जरूरी है।

दूसरा अभ्यास चुनें