FAQ |
Kalender |
|
![]() |
#1 | ||
|
|||
Nykomling
|
Citat:
Angående "linters" så är min erfarenhet att de nästan aldrig upptäcker buggar. Av de 499 "felen" du hittade beror troligtvis de flesta på att jag använder tab i stället för mellanslag som indentering ... |
||
![]() |
![]() |
![]() |
#2 | ||
|
|||
Flitig postare
|
Citat:
Citat:
Vad är din uppfattning av en linter, dess användning och vilken funktion anser du att den fyller? |
||
![]() |
![]() |
![]() |
#3 | ||
|
|||
Nykomling
|
Citat:
Citat:
'==' istället för '===' ... Om jag skulle skriva if(foo===undefined) skulle jag även behöva lägga till if(foo===null). Så det är lite av en bekvämlighet, jag fångar två flugor i en smäll. Man bör dock undvika att jämföra olika typer. Ex: if("42"==42) . Men vad hjälper det om det blir false i stället för true !? Eventuella buggar kvarstår ändå. Man bör i stället konvertera alla nummer till den typ man vill ha. Ex: var age=parseInt(request.form.age) för att vara på den säkra sidan. |
||
![]() |
![]() |
![]() |
#4 | ||
|
|||
Supermoderator
|
Den är inte heller till för att upptäcka buggar, det har du andra verktyg till. Den är till för att få en bättre och mer överskådlig kodstruktur för alla som tittar på koden och minska risken för att man skapar buggar från första början.
__________________
Full-stack developer, free for smaller assignments |
||
![]() |
![]() |
![]() |
#5 | ||
|
|||
Nykomling
|
|||
![]() |
![]() |
![]() |
#6 | ||
|
|||
Har WN som tidsfördriv
|
|||
![]() |
![]() |
![]() |
#7 | |||||||
|
||||||||
Flitig postare
|
Citat:
Citat:
Förstår du de statistiska sambandet mellan buggar och kodkomplexitet? Citat:
För att inte nämna de optimeringsproblem din JIT utsätts för när kod med sidoeffekter laddas in under körning. Har du te.x koll på hur icke-deterministisk kod påverkar din prestanda? Citat:
Citat:
Citat:
Om vi bortsätt från koden du postade så är de största misstaget du gör att tro att du är smartare än miljön du befinner dig i. För att kunna avgöra huruvida felen lintern påpekade är värt att fixa eller ej så behöver du grundläggande kunskap inom bl.a beräkningsmodeller, kompilatorer, typsystem, matematisk statistik och miljön koden ska köras i, te.x Googles V8-motor. Varför inte bygga upp nödvändig kunskap parallellt och förlita dig på de verktyg som finns? Citat:
Senast redigerad av Nerix den 2016-08-22 klockan 17:47 |
|||||||
![]() |
![]() |
![]() |
#8 | ||
|
|||
Nykomling
|
Citat:
Citat:
Det näst bästa är if(foo == undefined) Men det sämsta är if(!foo) för att det finns för många "false-positive", det skulle även trigga false, noll, strängen noll, tom sträng, tom array, eller array med noll, vilket ibland är ett godtagbart värde. Du har rätt i att undefined ofta tyder på en bugg ... Ta följande kod som exempel: Kod:
function test(a, b) { console.log(a + b); } test(1); 1:1 - Expected a function expression. 1:1 - Missing JSDoc comment. 1:1 - Use the global form of 'use strict'. 1:14 - Missing space before function parentheses. 1:15 - Identifier name 'a' is too short (< 2). 1:18 - Identifier name 'b' is too short (< 2). 1:21 - Block must be padded by blank lines. 2:2 - Expected indentation of 4 space characters but found 0. 2:2 - Unexpected console statement. 3:1 - Block must be padded by blank lines. 4:2 - Newline required at end of file but not found. 4:6 - No magic number: 1. (no-magic-numbers) OMG! 12 fel!! Bäst att fixa dem ... Kod:
"use strict"; var ett = 1; /** * Plussa två tal * @param {number} tal1 - Första talet. * @param {number} tal2 - Andra talet. * @returns {number} Summan av de två talen */ var test = function test (tal1, tal2) { return tal1 + tal2; }; test(ett); Men ända felet med första koden är att vi hade glömt andra argumentet (b), vilket är en ganska vanlig orsak till buggar. Felet kvarstår dock efter att vi fixat alla "fel" som Lintern hittade. Här har du ett exempel på varför jag jämför med undefined: Kod:
if(arg1 == undefined) throw new Error("arg1=" + arg1 + " saknas!") Jag rekommenderar denna video: https://www.youtube.com/watch?v=wf-BqAjZb8M (Raymond Hettinger - Beyond PEP 8 -- Best practices for beautiful intelligible code - PyCon 2015) Senast redigerad av webtigerteam den 2016-08-23 klockan 10:06 |
||
![]() |
![]() |
![]() |
#9 | ||
|
|||
Flitig postare
|
Citat:
Glömde posta vad min linter säger. Fick ett fel; indenteringen. Har kopplat cmd-ä till --fix i eslint så den fixar automatiskt till en majoritet av alla fel direkt i editorn. Använder Googles regler med 2 undantag och några extra regler. Har bl.a stängt av jsdoc. |
||
![]() |
![]() |
Svara |
Ämnesverktyg | |
Visningsalternativ | |
|
|