Reactor - a foundation for asynchronous applications on the JVM. We’re pleased to announce that, after a long period of internal incubation, we’re releasing a foundational framework for asynchronous applications on the JVM which we’re calling Reactor. It provides abstractions for Java, Groovy and other JVM languages to make building event and data-driven applications easier. It’s also really fast. On modest hardware, it's possible to process over 15,000,000 events per second with the fastest non-blocking Dispatcher. Other dispatchers are available to provide the developer with a range of choices from thread-pool style, long-running task execution to non-blocking, high-volume task dispatching. The GitHub repo is here Reactor, as the name suggests, is heavily influenced by the well-known Reactor design pattern. What is Reactor good for? That’s why the Spring XD project (as well as several other Spring ecosystem projects like Spring Integration and Spring Batch) intend to take advantage of Reactor.
To Groovy, with Love. IeeeSoftware/whoNeedsArchitect.pdf. SOLID (object-oriented design) In computer programming, SOLID (Single responsibility, Open-closed, Liskov substitution, Interface segregation and Dependency inversion) is a mnemonic acronym introduced by Michael Feathers for the "first five principles" named by Robert C. Martin in the early 2000s that stands for five basic principles of object-oriented programming and design.
The principles when applied together intend to make it more likely that a programmer will create a system that is easy to maintain and extend over time. The principles of SOLID are guidelines that can be applied while working on software to remove code smells by causing the programmer to refactor the software's source code until it is both legible and extensible. It is part of an overall strategy of agile and adaptive programming. Lehman's laws of software evolution. In Software engineering, the Laws of Software Evolution refer to a series of laws that Lehman and Belady formulated starting in 1974 with respect to Software evolution. The laws describe a balance between forces driving new developments on one hand, and forces that slow down progress on the other hand. Context Observing that most software is subject to change in the course of its existence, the authors set out to determine laws that these changes will typically obey, or must obey in order for the software to survive.
 In his 1980 article, Lehman qualified the application of such laws by distinguishing between three categories of software: The laws are said to apply only to the last category of systems. The Laws All told eight laws were formulated: References ^ Jump up to: a b Lehman, Meir M. (1980). GDS design principles.
GOV.UK is for anyone who has an interest in how UK government policies affect them. Using this style guidance will help us make all GOV.UK information readable and understandable. It has a welcoming and reassuring tone and aims to be a trusted and familiar resource. We take all of the writing for web points into account when we write for GOV.UK. Then we add the following points based on user testing and analysis on our own website. Active voice Use the active rather than passive voice. Addressing the user Address the user as ‘you’ where possible. Avoid duplication What are you and other departments publishing? We have over 116,000 items of content in departmental and policy areas.
Duplicate content confuses the user and damages the credibility of GOV.UK content. If there are 2 pieces of information on a subject, perhaps there are 3 and the user has missed one? If something is written once and links to relevant info easily and well, people are more likely to trust the content. Be concise. PragPub February 2013 | Estimation is Evil. What you don’t know can hurt you, especially when you convince yourself that you do know it. Many Agile teams—I believe it’s most Agile teams—get some improvement from applying Agile values, principles, and practices. These teams do a better job of predicting when they’ll be done, and a better job of being done at the time they predict.
They break requirements down into a backlog, they estimate how long items will take, and they burn through that backlog pretty well. Usually by the predicted end of the project, they’re closer to done than they used to be before they went Agile. Agile teams break down their work into a couple of weeks at a time, and often estimate that work. They usually get done most of what they predict they’ll get done in that iteration. These teams get better transparency, inside the team and with their management and stakeholders. Teams applying Agile ideas almost always get some improvement. Some teams do much better, and we’ll talk about what they do later on. Wow!