چگونه خطاهای کد نویسی را پیدا کنیم ؟

در این مطلب قصد داریم شما را با ابزاری آشنا برای برنامه نویسان (لینتر) آشنا کنیم و تعریفی کوتاه از این ابزار و تاریخچه آن بیان نماییم :

لینت(lint) یا linter ابزاری برای بررسی و آنالیز کدمان است که خطاهای احتمالی آن رو بررسی می کند.

کد زیر را ببینید:

خب به نظر می آید، باید به یه سری موارد ایراد بگیرد مثلا:

به runnable دقت کنید! هیچ وقت از آن استفاده نشده اون پایینیه یه n کمتر داره. حالا بدون استفاده از linter فقط موقع اجرای کد می فهمین که دو تا خطا دارین: یکی بی استفاده موندن runnable و دومی تعریف نشده بودن runnable. در حالی که می دونیم فقط یه خطا داریم و اون هم چیزی نیست جز اشتباه کردن در تایپ runnable.

در حالی که linter حین نوشتن کد بهتون گیر میده که داداش داری اشتباه می زنی و حواست رو جمع کن و اینا و خب این از لحاظ زمانی خیلی به صرفه تره.

حالا به عنوان مثال کد زیر به زبان جاوا اسکریپت رو به یه linter معروف تحویل بدیم و ببینیم چی برمیگردونه:

این گیر ها رو میده:

1) Expected one space between ')' and '{'.
function sayHello(name){

فاصله بین این ها رعایت نشده است.

2) Expected 'use strict' before 'alert'.
alert("Hello " + name);

وقتی alert استفاده می کنی قبلا باید 'use strict' اومده باشه.

3) Undeclared 'name'.
name = "Douglas Crockford";

Name رو چرا تعریف نکردی

4) Undeclared 'name'.
sayHello(name)

5) Expected ';' and instead saw '(end)'.
sayHello(name)

و اینکه طبق استاندارد باید سیمیکالن بذاری ته کد جاوا اسکریپتت. البته که بدون سیمیکالن هم ران میشه.

اسم این linter معروف JSLint است. ولی linter های زیادی داریم

مثلا برای جاوا اسکریپت اینها را داریم:

لینت(lint) در اصل اسم یه برنامه بوده که برای تشخیص خطا تو کد به زبان C قبل کامپایل شدن به کار می رفته. یواش یواش اسمش شده یه چیزی مثل گوگل کردن که برای هر جستجویی تو اینترنت به کار میره، اینم برای هر ابزاری که برای تشخیص خطا و هشدار تو کد ها به کار میره.


منابع:

http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.56.1841

https://medium.com/dailyjs/why-you-should-always-use-a-linter-and-or-pretty-formatter-bb5471115a76

https://stackoverflow.com/questions/8503559/what-is-linting


نویسنده : محمد حسن عباسی