front-end js / angular / css
Great start; a little cluttered
- Fantastic first set of reusable components.
- Smart adaptations for mobile.
- Good initial implementation of shared services.
big controllers => subcontrollers
(for example, browseController could use this)
$compile data-bound templates
Good practice wherever you're using $.append
be declarative where possible
When you manipulate the DOM, check to see if Angular provides a built-in mechanism.
should use ngSwitch or $compile:
should use ngClick:
see also: ngShow, ngClass, ngRepeat, ngSelected
prefer state over transformations
instead, with state:
If your application can build itself from declarative state, deep linking is easy.
templateurl for long templates
this is easier to read and write:
(later, pull the build tools from ng-boilerplate to build the front end)
try to keep up with sandboxes
This is hard to debug as one big blob.
use $destroy to avoid memory leaks
(I didn't mention this last time!)
conclusion
The DTV team has made great progress - developing and integrating a set of components that I would consider high-quality first drafts into a server that has maintained a coherent structure after re-organization to fit the team and project.
Obstacles have been handled thoughtfully. Instead of hacking things together, the team has implemented maintainable architectural solutions such as shared services where possible.
The codebase feels very jQuery-idiomatic, and it would probably be smaller, easier to maintain, and more reliable if it were Angular-idiomatic. This will become more natural as the team grows familiar with the tools that Angular provides out-of-the-box that are currently being re-implemented extraneously in jQuery.