2. lähdekoodin katselmoinnin huomiot
8.6.2016
Yhteenveto koodista
Timber-ryhmän tekemät muutokset:
- 23 muokattua tiedostoa
timApp/DockerfiletimApp/containerLink.pytimApp/initdb2.pytimApp/modules/Haskell/cabal.sandbox.configtimApp/pluginControl.pytimApp/routes/answer.pytimApp/routes/view.pytimApp/static/all.scsstimApp/static/scripts/answerbrowser3.jstimApp/static/scripts/view_html.jstimApp/static/templates/answerBrowser.htmltimApp/static/templates/parEditor.htmltimApp/templates/document.htmltimApp/templates/paragraphs.htmltimApp/templates/view_content.htmltimApp/templates/view_html.htmltimApp/test_plugins.pytimApp/tim.pytimApp/timdb/documents.pytimApp/timdb/folders.pytimApp/timdb/timdb2.pytimApp/timdb/timdbbase.pytimApp/utils.py
- 31 lisättyä tiedostoa
assessment_area.pymodules/cs/comtest.jarmodules/cs/comtestcpp.jarmodules/cs/java/gui.jarroutes/annotation.pyroutes/velp.pyschematimber.sqlstatic/scripts/controllers/reviewController.jsstatic/scripts/directives/annotation.jsstatic/scripts/directives/velpSelection.jsstatic/scripts/directives/velpSummary.jsstatic/stylesheets/velpSelection.scssstatic/templates/annotation.htmlstatic/templates/popOverTemplate.htmlstatic/templates/reviewEditor.htmlstatic/templates/velpSelection.htmlstatic/templates/velpSummary.htmlstatic/test_data/curltestdata.txtstatic/test_data/markings.jsonstatic/test_data/markings_old.jsonstatic/test_data/phrases.jsonstatic/test_data/tags.jsonstatic/test_data/updateannotation.txtstatic/test_data/velp example.txttemplates/velp_view.htmltest_velp.pytimdb/annotations.pytimdb/icons.pytimdb/velpgrouplabels.pytimdb/velpgroups.pytimdb/velps.py
Yleisiä huomioita JavaScriptistä
!=->!==,==->===, ks. tämäObjektien avaimien ei tarvitse olla lainausmerkeissä (muuta kuin joissain erikoistapauksissa).
Siis esim.
placeInfo["start"]["par_id"]->placeInfo.start.par_idMinimoikaa globaalien muuttujien määrä Angularin ohjaimista ja direktiiveistä: jos tarvitsee käyttää esim.
window-olion funktiotaclearInterval, niin injektoikaa ohjaimeen$windowja sanokaa koodissa$window.clearInterval(...). Globaaleja ovat esim.windowdocument- kaikki
window:n alla olevat, esim.console
Yleisiä huomioita Pythonista
- Dokumentaatiokommentit aika hyvin kohdillaan; joitain pikkupuutteita.
- Muutamassa kohdassa pieniä PEP8-virheitä.
abort-kutsuihin voisi laittaa alkuunreturn, jotta PyCharm ymmärtää, ettei metodin suoritus enää jatku. Muuten voi tulla turha varoitus variable might be referenced before assignment.
static/scripts/controllers/reviewController.js
- Funktion
makePostRequestJSDocista puuttuusuccesMethod. Huom. myös typo. - Funktion
addAnnotationToElementJSDoc:elvs.id getMarkingCommentsei aina palauta arvoa.getMarkingComments:@returns {Array|*|string|boolean}ehkä kyseenalainen. Eiköcommentsole aina taulukko?getNodeNumbers:aidFoundkäyttämätönmakePostRequest:responsekäyttämätön- Merkkijonot
highlightedjaANSWERBROWSERvakioiksi Find answer browser and isolate its scope->... and its isolate scope- Jotkut rivit melko pitkiä
routes/velp.py
return ""->return okJsonResponse()- Flaskin reittimääritykseen voi suoraan ilmoittaa, että kyseessä on
int:"/<int:document_id>/get_default_velp_group", jolloin muunnosta ei tarvitse tehdä itse if xxx is True->if xxxja vastaavastiif xxx is False->if not xxx# TODO outdated again- tarkenna, mihin tällä viitataan- Typo:
has_manage_access_access
timdb/velps.py
update_velp_labelskannattaa muuttaa atomiseksi ottamalla ensimmäinencommitpoisget_velp_label_ids_for_document: DocStringissä ylimääräinen parametriVelpInformation-taulua ei ole olemassa- Muutama käyttämätön
import
timdb/annotations.py
seconds_sincenäyttää turhalta, koska muunnoksen voi tehdä kentäncomment_time/creation_timeavullacreate_annotationDocString:velp_version_idvs.version_id
routes/annotation.py
get_annotations:document_id->doc_id?
test_velp.py
Hyvännäköinen alustava testi, thumbs up!
assertit voisi tehdä mahdollisimman tiukoiksi, esim. ei testaisi pelkästään pituutta vaan sisältöäkinViimeinen
assertei mene läpi (tuleeAssertionError: 400 != 403).Jos dokumentilla ei ole oletusvelppikokoelmaa, kannattaisiko palauttaa mieluummin
null(PythonissaNone) eikä-1?Testikäyttäjän ryhmää ei kannata kovakoodata vaan hakea:
gid = db.users. get_personal_usergroup_by_id(session['user_id'])
format-kutsuissa ei tarvitsestr-muunnosta
These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.