Cutting Edge - Beyond CRUD: Commands, Events and Bus:
In a simple CRUD system, each business event is pertinent to a single aggregate and only rarely the same event touches on multiple aggregates. However, when this happens, and aggregates and events are too numerous, the complexity of the resulting software grows considerably.
Technical Leading is obviously supported by Technical Reading
Here I collect the links and the posts dealing with Techical Reading covering IT area which I consider worth saving. Mostly they are reposted from my aggregation of RSS feeds See also twitter #tr @moudrick where I post and repost them too
2016-08-29
2016-06-19
2016-06-18
HiddenBitcoin: High level C# Bitcoin Wallet Library - Monitor The Blockchain (Part 2 - Lesson 1)
HiddenBitcoin: High level C# Bitcoin Wallet Library - Monitor The Blockchain (Part 2 - Lesson 1):
Quickstart to Bitcoin wallet development in C#
Quickstart to Bitcoin wallet development in C#
HiddenBitcoin: High level C# Bitcoin Wallet Library - Keep Your Coins Safe (Part 1)
HiddenBitcoin: High level C# Bitcoin Wallet Library - Keep Your Coins Safe (Part 1):
Quickstart to Bitcoin wallet development in C#
Quickstart to Bitcoin wallet development in C#
2016-06-13
Essential .NET - Dependency Injection with .NET Core
Essential .NET - Dependency Injection with .NET Core: Mark Michaelis explores the dependency injection (DI) capabilities of .NET Core, and shows why the simple and lightweight implemenatation provides a great way to for developers new to the technology to get started.
Code Coverage Isn't Only for Unit Tests
Code Coverage Isn't Only for Unit Tests:
If you want to read more about code coverage, check these links:
What is Code (or Test) Coverage?
Code coverage (or test coverage) shows which lines of the code were (or were not) being executed by the tests. It is also a metric which helps you to find out the percentage of your covered (executed) code by the tests. E.g.: It tells you that your codebase consists of 10 lines, 8 lines were being executed by your tests, so your coverage is 80%. (It tells you nothing about the quality of your software or how good your tests are.)If you want to read more about code coverage, check these links:
Two Approaches to Test Automation Architectures
Two Approaches to Test Automation Architectures:
I’ve yet to see two development environments that are alike. But even if there is no cookie cutter approach to software delivery, there are standard approaches, and methodologies that are consistent throughout modern software development and that frame nearly all environments.
Because there is a big move in software testing to go from purely manual testing (a non-technical process) to a fully automated deeply technical one, how QA processes are set up, and how it fits into the overall delivery chain is very important. Let’s take a look at the two most common architectures for test automation, and why they may or may not be the best approach.
I’ve yet to see two development environments that are alike. But even if there is no cookie cutter approach to software delivery, there are standard approaches, and methodologies that are consistent throughout modern software development and that frame nearly all environments.
Because there is a big move in software testing to go from purely manual testing (a non-technical process) to a fully automated deeply technical one, how QA processes are set up, and how it fits into the overall delivery chain is very important. Let’s take a look at the two most common architectures for test automation, and why they may or may not be the best approach.
TDD Will Speed You Up, Not Slow You Down
TDD Will Speed You Up, Not Slow You Down:
I was recently having a discussion with fellow Zone Leader Duncan Brown about TDD. He dropped this line:
"TDD rules — when you don't have a brand new product with a stupid deadline to work against"
I was recently having a discussion with fellow Zone Leader Duncan Brown about TDD. He dropped this line:
"TDD rules — when you don't have a brand new product with a stupid deadline to work against"
An Introduction to Inform and Natural Language Programming
An Introduction to Inform and Natural Language Programming:
If you're reading this, there's a pretty good chance that you have written a program/script/class/method/whatever involving the Fibonacci sequence. It's a great way to logic through a new language (after you've Hello Worlded, right?), and often it's a good intro into recursion. So this code likely won't be too unfamiliar to you:
If you're reading this, there's a pretty good chance that you have written a program/script/class/method/whatever involving the Fibonacci sequence. It's a great way to logic through a new language (after you've Hello Worlded, right?), and often it's a good intro into recursion. So this code likely won't be too unfamiliar to you:
public class fib {
public static void main(String[] args) {
Scanner scan = new Scanner (System.in);
System.out.println("Enter a number: ");
int num = scan.nextInt();
System.out.println(calculate(num));
}
private static int calculate(int n){
if (n <= 1)
return 1;
else
return calculate(n - 1) + calculate(n - 2);
}
}
We all know that Java is fairly verbose. So yeah, this isn't the shortest program ever (especially with the included boilerplate). But it's recursive and takes an input and does what we need it to do.
Logging for Continuous Integration
Logging for Continuous Integration:
If you look at the title of this post, you’re probably thinking to yourself, “huh, that’s never really come up.” Of course, it’s possible that you’re not. But, in my travels as a consultant helping dev teams with practice and gap analysis, I’ve never had anyone ask me, “what do you recommend in terms of a logging solution for continuous integration?”
But hey, this is an easily solved problem, right? After all, continuous integration means Jenkins, and Jenkins has an application log. Perhaps that’s why no one is asking about it! Now, all that’s left is to sit back and bask in the glow of every compiler warning your application has ever generated since the dawn of time.
If you look at the title of this post, you’re probably thinking to yourself, “huh, that’s never really come up.” Of course, it’s possible that you’re not. But, in my travels as a consultant helping dev teams with practice and gap analysis, I’ve never had anyone ask me, “what do you recommend in terms of a logging solution for continuous integration?”
But hey, this is an easily solved problem, right? After all, continuous integration means Jenkins, and Jenkins has an application log. Perhaps that’s why no one is asking about it! Now, all that’s left is to sit back and bask in the glow of every compiler warning your application has ever generated since the dawn of time.
4 Challenges You Need to Address with Microservices Adoption
4 Challenges You Need to Address with Microservices Adoption:
In the last few weeks, we’ve introduced the concept of microservices and its role as a business initiative and how to migrate your organization towards a microservices model. Transitioning to microservices creates significant challenges for organizations. This week, I’ll delve into some of the obstacles you might face and the ultimate benefits of your efforts.
In the last few weeks, we’ve introduced the concept of microservices and its role as a business initiative and how to migrate your organization towards a microservices model. Transitioning to microservices creates significant challenges for organizations. This week, I’ll delve into some of the obstacles you might face and the ultimate benefits of your efforts.
Microservices Architecture
Microservices architecture is much more complex than legacy systems. In turn, the environment becomes more complicated because teams have to manage and support many moving parts. Some of the things you must be concerned about include:The JavaScript, EcmaScript and the History
The JavaScript, EcmaScript and the History: This article is all about the Javascript ,ECMAScript, basic terminology and release history
Angular Router
Angular Router:
Managing state transitions is one of the hardest parts of building applications. This is especially true on the web, where you also need to ensure that the state is reflected in the URL. In addition, we often want to split applications into multiple bundles and load them on demand. Doing this transparently isn’t trivial.
The Angular router is designed to solve these problems. Using the router, you can declaratively specify application state, manage state transitions while taking care of the URL, and load components on demand. In this article I will discuss the API of the router, as well as the mental model and the design principles behind it.
Managing state transitions is one of the hardest parts of building applications. This is especially true on the web, where you also need to ensure that the state is reflected in the URL. In addition, we often want to split applications into multiple bundles and load them on demand. Doing this transparently isn’t trivial.
The Angular router is designed to solve these problems. Using the router, you can declaratively specify application state, manage state transitions while taking care of the URL, and load components on demand. In this article I will discuss the API of the router, as well as the mental model and the design principles behind it.
Подписаться на:
Сообщения (Atom)