Wednesday, January 16, 2013

Dev News Digest for January 17, 2013


Software Documentation as a Guidebook

Working software over comprehensive documentation" is what the Manifesto for Agile Software Development says and it's incredible to see how many software teams have interpreted those five words as "don't write *any* documentation".
...
Unfortunately the code doesn't tell the whole story and not having a source of supplementary information about a complex software system can slow the team down as they struggle to navigate the codebase.




The Importance of Packages

Packages have several important usages:

  • Namespaces - helps avoid collisions
  • Organization - help locate classes. Following scheme is proposed: <organisational-prefix>.<application>.<deployment-unit>.<module>.<layer>.<optional further substructure if needed>. For example: com.mycompany.theCoolApp.server.user.persistence
  • Intermediate modeling block - represent a bigger-scale abstraction within the application
  • Architecture-revealing - helps understand architecture of the app
  • Promotes SRP 
  • Managing Dependencies - for example allows cyclical dependencies between packages using JDepend.



Facebook announces Graph Search - a sign of things to come

Armed with the interconnected personal details of more than a billion people, Facebook Inc. is taking its first steps towards becoming the next major search force on the Internet.
...
Users will now be able to search for answers to specific questions related to their friends, such as “Movies my friends in Toronto like,” “Photos of my friends from 2009” or “Friends of friends who are single and men in Calgary.”




MongoDB adds Full-Text Search

The new text index provides a simple, fully consistent way to do basic search without deploying any extra services.




9 Software Security Design Principles

Key Aspects of Software Security

  • Integrity
  • Confidentiality
  • Availability


Security Design Principles

  • Least Privilege
  • Fail-Safe Defaults
  • Economy of Mechanism
  • Complete Mediation
  • Open Design
  • Separation Privilege
  • Least Common Mechanism
  • Psychological Acceptability
  • Defense in Depth




KeyboardJS 0.4.1 released

KeyboardJS, a library written to make working with the keyboard in JavaScript a lot easier.
For example it allows you to do this:

KeyboardJS.on('j + k', function () {
console.log('Both J and K are pressed');
});





What is the future for GWT?

While GWT is often thought of as an enterprise technology, 65% of the survey respondents are working on projects for use outside of their companies. That said, only 1% of the projects are games - the vast majority are business applications.
...
While the vast majority of the apps (over 98%) target desktop-based users, the number of these apps that also also target tablets (36%) eclipses the 26% of apps that also aim at mobile phones.

The main complaints with GWT are compile time (49%) and the lack of enough good quality UI widgets (34%). The biggest benefit of GWT is not having to deal with browser compatibility issues (60%). Despite the complaints, over 88% of the self selected respondents plan to use GWT on their next project. The report is available online in return for your name and email address.





No comments:

Post a Comment