Philocode – Telegram
متد DELETE توی REST API باید idempotent باشه. یعنی اگه من صد بار این ریکوست رو بفرستم:
DELETE /api/students/45
نباید state تغییر کنه، فقط و فقط یک ریسورس (که همون دانش‌آموز کوشا و محترم شمارۀ 45 ــه) حذف می‌شه و دفعات بعدی هم اتفاق جدیدی برای ریسورس student رخ نمی‌ده و صرفاً خطای 404 برمی‌گرده.

حالا چرا این مسئله مهمه؟ برای اینکه ممکنه به دلایل عمدی یا غیر عمدی (مثل خطای شبکه)، یک ریکوست، بیشتر از یک‌بار ارسال بشه.

مثال قبلی درست بود، ولی این مثال رو ببینید:
DELETE /api/students/last
در اینجا با هر بار صدازدن، آخرین نمونه از ریسورس student حذف می‌شه و اگه ده‌بار صدا بزنیم، ده‌تا ریسورس مختلف حذف می‌شن! چنین چیزی اشتباهه، چون قرار بود که متد DELETE به صورت idempotent کار کنه!
🔥7
🔥1
👍1🤔1
😁8
Philocode
Photo
قبلاً ایدۀ این رو داشتم که آدم‌ها کپچا رو بزنن، و ربات فرم رو پر کنه.
چیزی که وقت‌گیره، پرکردن فرم با دیتاهای فیکه، نه زدن کپچا!
کافیه پکیج faker رو نصب کنیم و با Selenium یا ابزار مشابهی صفحه رو باز کنیم!
آپشن اول می‌گه: که اگه یوزر توی ریکوستش یه فیلد اضافه فرستاد، پاکش کن و در نظرش نگیر.
آپشن دوم می‌گه: بیا سخت‌گیرتر باشیم، اگه یوزر فیلد اضافه‌ای فرستاد، بهش خطا نشون بده!

سوال: توی لاراول، اولی رو با متد ()validated به دست می‌آوردیم. اما دومی رو چطوری توی لاراول پیاده می‌کنید؟
🔥2
😂😂😂
Philocode
Photo
همونطور که مشاهده می‌کنید:
1. توی Unit test فقط یه کامپوننت تست میشه، اما وقتی به سمت بالای هرم حرکت می‌کنیم، کامپوننت‌های بیشتری مورد تست قرار می‌گیرند. توی Integration testها رفتار کامپوننت‌ها با هم آزمایش میشه و با E2E تست‌ها سناریوهای بیزنس مورد آزمایش قرار می‌گیرند. (ندیدم شرکتی انجام بده و خودمم غالباً دومی رو می‌نویسم و به ندرت Unit test دارم)
2. نوشتن Unit test کمترین زمان رو از دولوپر می‌گیره، ولی هرچی به سمت بالای هرم حرکت کنیم، زمان بیشتری برای نوشتن تست نیاز داریم.
3. زمان اجراشدن Unit testها از Integration testها کمتره.
#testing
👍3🔥1
پست گذاشته بود: شما به‌عنوان یه کارمند چه فاکتورایی براتون اهمیت بیشتری دارن؟ 🤔
😁3
🔥3
یه هفته کرونا گرفتم، 2 کیلو وزن کم کردم! :(
😢4
#
##
###
####
#####
####
###
##
#

یه کد بنویسید (پیش خودتون، لازم نیست کامنتش کنید) که این شکل رو توی خروجی بفرسته. شاید برای خیلی‌ها آسون باشه، اما اگه کسی الگوریتم کار نکرده باشه، مسئلۀ خوبیه که فکرش رو به کار بگیره. اگه سخت بود، اولش نصف مثلث رو انجام بدید، بعد نصف پایین.
🤔1
Philocode
یه هفته کرونا گرفتم، 2 کیلو وزن کم کردم! :(
خُب خوشبختانه 1.5 کیلوش تا امروز برگشت. 😂💪
👍1🔥1
دوست دوران دانشگاهمو بعد از چند سال توی اینستاگرام پیدا کردم.
بهش میگم چیکارا می‌کنی؟ میگه تریدر می‌کنم.
این چه شغلیه دیگه...
😁2