برنامه نویسی

هفته 9: آزمایشگاه 6: ابزار تجزیه و تحلیل استاتیک

Summarize this content to 400 words in Persian Lang

مقدمه

برای این هفته آزمایشگاه، من وظیفه اضافه کردن برخی ویژگی های جدید را به پروژه نسخه 0.1 خود داشتم. اینها شامل یک فایل CONTRIBUTING.md، یک قالب‌دهنده، یک linter و یکپارچه‌سازی ویرایشگر بود. انجام این تغییرات به کاربرانی که در پروژه مشارکت می‌کنند، راهنمای مفیدی می‌دهد، به علاوه ابزارهایی که به آنها کمک می‌کند کدهای تمیز و با قالب‌بندی مناسب را انجام دهند. در این وبلاگ در مورد افزودن این تغییرات به پروژه بحث خواهم کرد و به سوالات مربوط به آزمایشگاه پاسخ خواهم داد.

کدام ابزار را انتخاب کردید؟ چرا آنها را انتخاب کردید؟ پیوندهای مربوط به هر ابزار را ارائه دهید و به طور خلاصه آنها را معرفی کنید.

برای فرمت کننده کد، زیباتر را انتخاب کردم. این به این دلیل است که پروژه من از جاوا اسکریپت به عنوان زبان اصلی خود استفاده می کند و من احساس کردم که این یک راه اندازی ساده خواهد بود. لینک زیباتر اینجاست: https://prettier.io/

برای لینتر، من ESLINT را انتخاب کردم. من آن را انتخاب کردم زیرا ESLINT یک خط بسیار رایج برای کد جاوا اسکریپت است و راهنماهای مفید زیادی برای تنظیم آن وجود دارد. لینک ESLINT اینجاست: https://eslint.org/

چگونه آنها را در پروژه خود تنظیم کردید؟ دقیق باشید تا توسعه دهندگان دیگر بتوانند وبلاگ شما را بخوانند و ایده ای برای انجام همین کار پیدا کنند.

برای زیباتر، اولین قدم نصب آن با npm بود:

npm install –save-dev prettier

سپس چند فایل را به پروژه خود اضافه کردم. من “.prettierrc” را اضافه کردم که حاوی برخی از گزینه های قالب بندی پیش فرض برای زیباتر بود. من همچنین یک فایل .prettierignore اضافه کردم که مشخص می کند کدام فایل ها و دایرکتوری ها نادیده گرفته شوند. برای این پروژه، من همه فایل ها را لیست کردم به جز دو موردی که باید روی آنها کار شود (index.js و ai.js). در نهایت، من اسکریپت هایی را در فایل package.json خود اضافه کردم تا کاربر بتواند از خط فرمان زیباتر اجرا کند.

برای ESLINT، اولین قدم نصب آن با npm بود:

npm install –save-dev eslint

سپس، من از این خط برای ایجاد یک فایل پیکربندی برای ESLINT استفاده کردم:

npx eslint –init

سپس، مانند موارد زیباتر، یک فایل eslintignore ایجاد کردم که فایل‌هایی را که روی آنها کار نمی‌شود نادیده می‌گیرد. سپس اسکریپت هایی را به package.json اضافه کردم تا کاربر بتواند ESLINT را در خط فرمان اجرا کند.

ابزارها در کد شما چه چیزی پیدا کردند؟ آیا شما مجبور به رفع بسیاری از مشکلات بودید؟

هنگام استفاده از زیباتر، متوجه شدم که یک دسته از فرورفتگی برطرف شده است. من انتظار این را داشتم، زیرا تورفتگی پروژه من قبلاً بسیار نامرتب بود، که معمولاً با پروژه های جاوا اسکریپت اتفاق می افتد. هنگام استفاده از ESLINT، در واقع متغیری را پیدا کرد که اعلان شده بود اما هرگز استفاده نشده بود. این من را شگفت زده کرد زیرا فکر کردم در کد مورد نیاز است. بنابراین از شر آن خلاص شدم. بنابراین خوشبختانه با توجه به فرمت‌کننده کد و لینتر چیز زیادی برای تعمیر وجود نداشت.

چگونه ابزارهایی را برای اجرا از خط فرمان دریافت کردید؟

همانطور که قبلاً بحث شد، من اسکریپت هایی را به فایل package.json اضافه کردم که به ابزارها اجازه می داد از خط فرمان اجرا شوند. آنها به این شکل بودند:

“scripts”: {
“format”: “prettier –write .”,
“format-check”: “prettier –check .”,
“lint”: “eslint .”,
“lint-fix”: “eslint . –fix”
}

به این ترتیب، اگر npm را اجرا کنید و به دنبال آن یکی از دستورات فهرست شده را انجام دهید (به عنوان مثال npm run format-check)، آن ابزار را از خط فرمان اجرا خواهد کرد.

چگونه ابزارها را با ویرایشگر/IDE خود ادغام کردید؟

برای ادغام ابزارها با ویرایشگر VScode خود، پسوندهای VScode را برای زیباتر و ESLINT نصب کردم و یک فایل پیکربندی نوشتم که هر زمان که ذخیره کردید ابزارها را اجرا می کرد. برای آزمایش اینها، من عمداً چیزی را بد تورفتگی کردم، سپس آن را در حالی که زیباتر تصحیح تورفتگی را مشاهده کردم، ذخیره کردم. برای آزمایش ESLINT، یک متغیر غیر ضروری اضافه کردم و ESLINT آن را به عنوان یک خطا برجسته می‌کند. اما من اینجا تمام نشد، زیرا می‌خواستم فایلی ایجاد کنم که این فرآیند را برای دیگران با استفاده از VScode خودکار کند. برای انجام این کار، من یک فایل extensions.json ایجاد کردم که حاوی پسوند توصیه شده برای کاربران جدید است تا پس از شبیه سازی پروژه، آن را نصب کنند.

از این فرآیند چه آموختید؟

در پایان، این آزمایشگاه ابزارهای بسیار مفیدی را به من معرفی کرد که توانستم از آنها برای تمیزتر کردن پروژه خود استفاده کنم. من نه تنها یاد گرفتم که چگونه از این ابزارها استفاده کنم، بلکه فرآیند را خودکار کنم تا کار را برای خودم و توسعه دهندگان آینده پروژه ام آسان کنم. در پایان روز، این پروژه به درک من از بهتر کردن روند مشارکت کمک زیادی کرد.

مقدمه

برای این هفته آزمایشگاه، من وظیفه اضافه کردن برخی ویژگی های جدید را به پروژه نسخه 0.1 خود داشتم. اینها شامل یک فایل CONTRIBUTING.md، یک قالب‌دهنده، یک linter و یکپارچه‌سازی ویرایشگر بود. انجام این تغییرات به کاربرانی که در پروژه مشارکت می‌کنند، راهنمای مفیدی می‌دهد، به علاوه ابزارهایی که به آنها کمک می‌کند کدهای تمیز و با قالب‌بندی مناسب را انجام دهند. در این وبلاگ در مورد افزودن این تغییرات به پروژه بحث خواهم کرد و به سوالات مربوط به آزمایشگاه پاسخ خواهم داد.

کدام ابزار را انتخاب کردید؟ چرا آنها را انتخاب کردید؟ پیوندهای مربوط به هر ابزار را ارائه دهید و به طور خلاصه آنها را معرفی کنید.

برای فرمت کننده کد، زیباتر را انتخاب کردم. این به این دلیل است که پروژه من از جاوا اسکریپت به عنوان زبان اصلی خود استفاده می کند و من احساس کردم که این یک راه اندازی ساده خواهد بود. لینک زیباتر اینجاست: https://prettier.io/

برای لینتر، من ESLINT را انتخاب کردم. من آن را انتخاب کردم زیرا ESLINT یک خط بسیار رایج برای کد جاوا اسکریپت است و راهنماهای مفید زیادی برای تنظیم آن وجود دارد. لینک ESLINT اینجاست: https://eslint.org/

چگونه آنها را در پروژه خود تنظیم کردید؟ دقیق باشید تا توسعه دهندگان دیگر بتوانند وبلاگ شما را بخوانند و ایده ای برای انجام همین کار پیدا کنند.

برای زیباتر، اولین قدم نصب آن با npm بود:

npm install --save-dev prettier

سپس چند فایل را به پروژه خود اضافه کردم. من “.prettierrc” را اضافه کردم که حاوی برخی از گزینه های قالب بندی پیش فرض برای زیباتر بود. من همچنین یک فایل .prettierignore اضافه کردم که مشخص می کند کدام فایل ها و دایرکتوری ها نادیده گرفته شوند. برای این پروژه، من همه فایل ها را لیست کردم به جز دو موردی که باید روی آنها کار شود (index.js و ai.js). در نهایت، من اسکریپت هایی را در فایل package.json خود اضافه کردم تا کاربر بتواند از خط فرمان زیباتر اجرا کند.

برای ESLINT، اولین قدم نصب آن با npm بود:

npm install --save-dev eslint

سپس، من از این خط برای ایجاد یک فایل پیکربندی برای ESLINT استفاده کردم:

npx eslint --init

سپس، مانند موارد زیباتر، یک فایل eslintignore ایجاد کردم که فایل‌هایی را که روی آنها کار نمی‌شود نادیده می‌گیرد. سپس اسکریپت هایی را به package.json اضافه کردم تا کاربر بتواند ESLINT را در خط فرمان اجرا کند.

ابزارها در کد شما چه چیزی پیدا کردند؟ آیا شما مجبور به رفع بسیاری از مشکلات بودید؟

هنگام استفاده از زیباتر، متوجه شدم که یک دسته از فرورفتگی برطرف شده است. من انتظار این را داشتم، زیرا تورفتگی پروژه من قبلاً بسیار نامرتب بود، که معمولاً با پروژه های جاوا اسکریپت اتفاق می افتد. هنگام استفاده از ESLINT، در واقع متغیری را پیدا کرد که اعلان شده بود اما هرگز استفاده نشده بود. این من را شگفت زده کرد زیرا فکر کردم در کد مورد نیاز است. بنابراین از شر آن خلاص شدم. بنابراین خوشبختانه با توجه به فرمت‌کننده کد و لینتر چیز زیادی برای تعمیر وجود نداشت.

چگونه ابزارهایی را برای اجرا از خط فرمان دریافت کردید؟

همانطور که قبلاً بحث شد، من اسکریپت هایی را به فایل package.json اضافه کردم که به ابزارها اجازه می داد از خط فرمان اجرا شوند. آنها به این شکل بودند:

"scripts": {
    "format": "prettier --write .",
    "format-check": "prettier --check .",
    "lint": "eslint .",
    "lint-fix": "eslint . --fix"
  }

به این ترتیب، اگر npm را اجرا کنید و به دنبال آن یکی از دستورات فهرست شده را انجام دهید (به عنوان مثال npm run format-check)، آن ابزار را از خط فرمان اجرا خواهد کرد.

چگونه ابزارها را با ویرایشگر/IDE خود ادغام کردید؟

برای ادغام ابزارها با ویرایشگر VScode خود، پسوندهای VScode را برای زیباتر و ESLINT نصب کردم و یک فایل پیکربندی نوشتم که هر زمان که ذخیره کردید ابزارها را اجرا می کرد. برای آزمایش اینها، من عمداً چیزی را بد تورفتگی کردم، سپس آن را در حالی که زیباتر تصحیح تورفتگی را مشاهده کردم، ذخیره کردم. برای آزمایش ESLINT، یک متغیر غیر ضروری اضافه کردم و ESLINT آن را به عنوان یک خطا برجسته می‌کند. اما من اینجا تمام نشد، زیرا می‌خواستم فایلی ایجاد کنم که این فرآیند را برای دیگران با استفاده از VScode خودکار کند. برای انجام این کار، من یک فایل extensions.json ایجاد کردم که حاوی پسوند توصیه شده برای کاربران جدید است تا پس از شبیه سازی پروژه، آن را نصب کنند.

از این فرآیند چه آموختید؟

در پایان، این آزمایشگاه ابزارهای بسیار مفیدی را به من معرفی کرد که توانستم از آنها برای تمیزتر کردن پروژه خود استفاده کنم. من نه تنها یاد گرفتم که چگونه از این ابزارها استفاده کنم، بلکه فرآیند را خودکار کنم تا کار را برای خودم و توسعه دهندگان آینده پروژه ام آسان کنم. در پایان روز، این پروژه به درک من از بهتر کردن روند مشارکت کمک زیادی کرد.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا