- Java 17
- Sealed Classes
- Pattern Matching for switch
- Java 16
- Record Classes
- Pattern Matching for instanceof
- Java 15
- Text Blocks
- Helpful NullPointerExceptions
- Java 14
- Switch Expressions
- Java 11
- Local-Variable Type Inference
- Java 9
- Allow private methods in interfaces
- Diamond operator for anonymous inner classes
- Allow effectively-final variables to be used as resources in try-with-resources statements
- Underscore is no longer a valid identifier name
- Improved Warnings
While developing a new project is like rolling on a green field for you, maintaining it is a potential dark twisted nightmare for someone else. Here's a list of guidelines we've found, written and gathered that (we think) works really well with most JavaScript projects here at hive. If you want to share a best practice, or think one of these guidelines should be removed, feel free to share it with us.
Found from: http://javascriptweekly.com
"RSJS makes JavaScript easy to maintain in a typical web application. It’s written for the typical conventional web app in mind: a collection of HTML pages that occasionally need a bit of JavaScript to make things work."
Anti-patterns addressed:
- Ambiguious sources: It’s not obvious where to look for the JS behavior. (Is the handler attached to .author, .footnote, or .profile-link?)
- Non-reusable: It’s not obvious how to reuse the behavior in another page. (Should blogpost.js be included in the other pages that need it? What if that file contains other behaviors you don’t need for that page?)
- Lack of organization: Making new behaviors gets confusing. (Do you make a new .js file for each page? Do you add them to the global application.js? How do you load them?)
In a nutshell:
- Keep your HTML declarative (get rid of inline scripts).
- Put all your imperative code in JS files.
- Reduce ambiguity by having straight-forward conventions.
- HTML elements can be components that have behaviors.
- Behaviors apply JavaScript to a [data-js-behavior-name] selector.
Some practical tips:
- onmount (interesting but almost no users so far)
- store shared data in
<meta>
tags:function getMeta (name) { return $('meta[property=' + JSON.stringify(name) + ']').attr('content') }
Upsource provides a unified friendly UI for exploring and monitoring all your Git, GitHub, Mercurial, Perforce and/or Subversion repositories from a central location.,Search commit history by commit message, commit ID, author, reviewer, branch, git tag, time span, filename, or path.,Upsource supports creating, reviewing and merging GitHub pull requests.
Combining static model checking with dynamic enforcement using the Statecall Policy Language - Madhavapeddy 2009 We know that getting distributed systems right is hard, and subtle, 'deep' bugs can lurk in both algorithms and implementations. Can we do better than informal reasoning coupled with some unit and integration tests? Evidence suggests we have to do…
You are probably not using the best solution at the moment, and guess what, that's fine.
(video of these slides available here http://fsharpforfunandprofit.com/fppatterns/) In object-oriented development, we are all familiar with design patterns su…
L'actualité du Logiciel Libre et de Linux, sur un site francophone contributif géré par une équipe bénévole par et pour des libristes enthousiastes
libfaketime modifies the system time for a single application
Ensure that all your new code is fully covered, and see coverage trends emerge. Works with any CI service. Always free for open source.
reddit: the front page of the internet
Talk about Continuous Delivery and Testing. Held at HiQ april 2014.