Philocode – Telegram
حتماً دیدید که بعضی از سایت‌ها از markdown استفاده کردند و می‌شه کد زبان‌های مختلفی رو نشون داد:
```php
$sum = $a + $b;
```
ولی شاید این رو ندونید که بعضی جاها از جمله گیت‌هاب، می‌شه به تغییرات (حذف و اضافه) کد با این syntax اشاره کرد:
```diff
- old line
+ new line
```
😱5
Philocode
https://www.youtube.com/watch?v=DuB6UjEsY_Y
می‌دونستید چرا توی PHP متغیرهامون $ دارن؟
ربطی به پول‌دوست‌بودن راسموس نداره؛ صرفاً هدف این بوده که وقتی متغیر رو داخل یه string می‌ذاری، قاطی نشه! 😁
😁4
اگه می‌خوایید REST API رو خیلی عمیق بفهمید و مصاحبه‌کنندۀ بعدی رو خَجَل کنید، این چند صفحه رو بخونید:
https://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm
👍3🔥2😁1
چند سالت بود که فهمیدی می‌شه ریسپانس رو اینطوری قابل کش کرد؟ 🤭
🔥4
متد 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