Sprint 1 – زمان تحقیق!

اولین اسپرینت 2 هفته ما به پایان رسید. در طی این هفته ، اتفاقات بسیار عاقلانه رخ نداد. با این حال ، کار روی این پروژه ها من را به سمت یافته های جالب سوق داده بود. و من همه چیز را در اینجا به اشتراک می گذارم!
🌐 هورل
(پیوند به روابط عمومی)
این آخرین روابط عمومی من در مورد header
ویژگی گزینه و خوشحالم که گزارش می دهم که من رسماً مسئول و مسئول این ویژگی هستم!
این روابط عمومی در اصل برعکس مورد قبلی بود. این بار سهم من در این بود hurlfmt
بشر این ابزار ، از جمله سایر ویژگی ها ، به شما امکان می دهد تا دستورات CURL را به پرونده های هجوم تبدیل کنید. من آن را فعال کردم تا در این فرآیند هدر خالی را کنترل کند. به عنوان مثال ، اگر پرونده ای به نام تهیه می کنید example
:
# file: example
curl --header 'Empty-Header;' https://httpbin.org/status/200
و اجرا:
$ hurlfmt --in curl example
شما همان درخواست را با فرمت فایل Hurl دریافت خواهید کرد (توجه کنید که ;
جایگزین شده است :
):
GET https://httpbin.org/status/200
Empty-Header:
چیز زنگ زدگی
چیزی جالب که با آن روبرو شدم clippy
: در اجرای اولیه من ، از ترکیبی از استفاده کردم ends_with()
و برش ، مانند این:
for header in headers {
let trimmed_header = header.trim();
if trimmed_header.ends_with(";") {
s.push_str(format!("\n{}:", &trimmed_header[..trimmed_header.len() - 1]).as_str());
} else {
...
}
}
و یک بار دیگر ، ابزار زنگ زدگی کودک را به سطح دیگری برد:
رفع پیشنهادی از آن استفاده کرد if let
الگوی تطبیق نحو و strip_suffix
روش اگر هدر با یک پایان یابد ;
، مطابقت خواهد داشت Option::Some
، و سپس می توانم از رشته سلب شده برای قالب جدید استفاده کنم. عالی! من قدردانی می کنم که چگونه خطوط همیشه شما را به انجام کارها “راه زنگ زد” تشویق می کند.
زمان تحقیق!
در طول توسعه ، من یک اشکال را کشف کردم که در صورت استفاده از پرونده ای مانند example
بالا ، hurlfmt
وحشت ساده بعداً فهمیدم که برای هر هدر نامعتبر اتفاق می افتد. من تصمیم گرفتم به این موضوع توجه کنم.
زمان استفاده از اشکال زدایی قدیمی خوب! بعد از بسیاری از نقاط شکست و گام ها ، من علت تجزیه و تحلیل درخواست را کاهش دادم. به نظر می رسد اگر یک هدر به درستی تجزیه نشود ، تجزیه کننده زودتر خاتمه می یابد و فرض می کند بقیه متعلق به یک درخواست متفاوت است. و البته ، متنی که در زیر آمده است ، در واقع درخواست جدیدی را تعریف نمی کند – این باعث وحشت برنامه می شود.
برای توضیح بهتر این ، من دویدم hurlfmt
دو بار و پس از تجزیه درخواست ها ، موقعیت های مکان نما را ثبت کرد. در اینجا نتایج وجود دارد:
با یک هدر معتبر | با یک هدر نامعتبر |
---|---|
![]() |
![]() |
تجزیه کننده در انتهای متن خاتمه یافت | پارسر زود خاتمه یافت |
و اگر از نزدیک نگاه کنیم ، می توانیم متوجه شویم که تجزیه کننده درست قبل از هدر نامعتبر متوقف شده است. در اینجا فهرست 55 در بافر است:
از آنجا که این بخش از کد برای من قلمرو جدیدی بود ، من یک مسئله را مطرح کردم و امیدوارم که نگهبانان ایده های بیشتری در این باره داشته باشند. تاکنون هیچ به روزرسانی نشده است. اما خواهیم دید که این چگونه پیش می رود.
🌠 نشاسته
(پیوند به روابط عمومی)
بعد از تصمیم هفته گذشته برای تغییر از ESLINT به OXC ، من تحقیق کردم. در بیشتر موارد ، این یک پروژه بسیار ساده است. من به سادگی تمام وابستگی های eslint را حذف کردم و اضافه کردم oxlint
به لیست به نظر می رسید همه چیز کار می کند ، بیشتر.
برای مهاجرت پیکربندی ها ، من به مستندات رسمی آنها اشاره کردم. OCX Linter یک پرونده پیکربندی بسیار مشابه با ESLINT دارد. در بیشتر قسمت ها ، من فقط به جز این یک بخش ، مشخصات موجود در پرونده اصلی را کپی کردم:
extends: [
'@remix-run/eslint-config',
'@remix-run/eslint-config/node',
'plugin:playwright/playwright-test',
'prettier',
],
ظاهراً ، OXC هنوز از این پشتیبانی نمی کند extend
گزینه اگرچه این خط بدون آن خوب است ، اما من مطمئن نیستم که آیا این امر منجر به مشکلی در آینده خواهد شد.
برنامه های Sprint 2
Hurl – از پرس و جو IP برای دریافت پاسخ حل شده IP پشتیبانی کنید
(شماره 3106)
برای این مسئله یک ویژگی جدید را پیاده سازی می کنم تا کاربران بتوانند آدرس IP را برای هر پاسخ ادعا کنند. این یک فصل جدید برای من خواهد بود زیرا من روی بخش دیگری از پروژه کار خواهم کرد. من چند ماه گذشته را با گزینه ها و درخواست ها گذراندم ، اما این همه در مورد پاسخ ها خواهد بود. نمی توانم صبر کنم تا دریابم که بعد چه می آموزم!
نشاسته – ؟؟؟
از آنجا که این تمرکز 20 ٪ من است و من با این پروژه فوق العاده آشنا نیستم ، از کلاس خواسته ام که در جلسه Sprint این هفته توصیه هایی را انجام دهم. استاد ذکر کرد که یک اشکال وجود دارد که CSS خاص بارگیری نمی شود. با این حال ، هیچ مرحله ثبت شده برای تولید مثل وجود ندارد. من با سایر افراد در این پروژه کار خواهم کرد و می بینم که آیا می توانیم علت آن را بفهمیم.