1.1 KiB
1.1 KiB
CHANGES
PROBLEM
- adding new fields makes the code complex
- needs to update:
result
,parser
,summarizer
- needs to add new fields to
parser
:totalVisits
+totalUniques
- in
parse()
: repeating line errors- if we parsing out of it we'd need to have *parser — superfluous
SOLUTION
-
move all the result related logic to result.go
-
move
parser.go/result
->result.go
- move
parser.go/parsing
logic ->result.go
- move
-
add
addResult
->result.go
- remove
parser struct
's:totalVisits
,totalUniques
- change
update()
's last line:p.sum[r.domain] = addResult
- remove
-
remove
(line #d)
errors fromresult.go
- add:
return r, err
— named params are error prone - always check for the error first
if r.visits < 0 || err != nil
->if err != nil || r.visits < 0
- add:
-
parser.go
: check theparseFields()
:r, err := parseFields(line) if err != nil { p.lerr = fmt.Errorf("line %d: %v", p.lines, err) }```
-
parser.go
andsummarize.go
- remove
total int
- let
summarize()
calculate the totals