667
edits
Changes
no edit summary
* [[DPS909/OSD600 Fall 2017 Release 0.2 | Release 0.2]]
* [https://github.com/humphd/learn-travis Learn Travis Walkthrough repo]
== Week 10 ==
* '''Code Reading'''
** Discussion:
** Why read source code at all?
** Imagine having to fix a bug in a multi-million line program, where do you start?
** Top-down, bottom-up, something else?
** Is adding a feature different from fixing a bug?
** Goal Oriented
** Build system and Tests play a role in helping you do experiments
*** Experiments (can you "break" the code?)
*** Tests as Documentation (can you alter a test in order to get the tests to fail?)
** "Reading" by Search vs. Linear Progression
** Source Code Indexers
** Find "footholds" for climbing by looking at parallel bugs (same component, similar feature design, bugs in similar code)
** Source Code Archaeology
** Closed Bugs/PRs/Issues help us understand a package of changes, why they happened, which files/lines were changed, who was involved, and when they happened.
** History of a file
** History of a Line: "blame" (e.g., <code>git blame</code>)
** Parallel Implementations (e.g., competing projects, implementations in other languages, forked projects)
* Open Source Browsers
** '''WebKit''': [https://trac.webkit.org/browser WebKit Trac], [https://bugs.webkit.org/ Bugzilla]
** '''Chromium''': [https://cs.chromium.org/ Search] or [https://chromium.googlesource.com/chromium/src.git Browse], [https://bugs.chromium.org/p/chromium/issues/list Bugs]
** '''Mozilla''': [https://dxr.mozilla.org/mozilla-central/source/ Mozilla DXR], [https://bugzilla.mozilla.org/ Bugzilla]
* Case Studies
** <code>document.cookie</code>: [https://developer.mozilla.org/en-US/docs/Web/API/Document/cookie MDN docs]
** <code>text_transform: capitalize</code>: [https://drafts.csswg.org/css-text-3/#text-transform CSS spec for text-transform]
** <code>video.volume = newVolume;</code>: [https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/volume MDN docs], [https://html.spec.whatwg.org/#dom-media-volume HTML Spec on media volume]