Unit Testing
Unit test is a testing method, which covers one unit of code (e.g. a method in Java) per test case. The idea behind unit tests is to cover the source code on the lowest and narrow possible level.
Unit test is a testing method, which covers one unit of code (e.g. a method in Java) per test case. The idea behind unit tests is to cover the source code on the lowest and narrow possible level.
Mutation testing is a way of testing software with the intention of creating bugs in the code and verifying that the test suites catch the bug.
From Monolith To Microservices.
In a world of development, we were once building large monolithic applications, capable of performing all the tasks required to do the intended job.
Avoid Java serialization if possible
Serialization was intended as a utility within the Java language, which allows objects to be converted into bytes (serialized), send to another endpoint, and reconstructed as an object again (deserialized). This is necessary since java objects only exists within the JVM and can therefore not be send directly.
Jest-image-snapshot is a testing framework based on the jest framework. What jest-image-snapshot provides as additional features, is the capabilities to take actual screenshot of the application while the running it in varies scenarios.
78. Use Synchronize When Handling Mutable Methods
When working with threads, synchronize on mutable methods becomes a valuable resource. This is because of two reasons:
Synchronize ensure the method can only be accessed by one thread at a time. Any thread attempting to execute the method while it is already in use, will be put on hold until the method is available again.
Because the threads are set to wait for each other, synchronize also guarantee that each thread will be able to see changes to the mutable method made by previous threads.
A mutable method could for example be a method providing an incremental serial number based on a field instance.
Exceptions only for exceptional scenarios
Exceptions are a way of causing the system to quickly alert the system of some unexpected scenario. However, some people might start using exceptions as a functionality of the system and start relying on the to convey acceptable scenarios.
Minimize scope of local variables.
Local variables should be contained within the smallest scope possible.
The most optimal solution is therefore to create the local variable the same place as it is used. Thereby increasing the readability of the code and minimizing the chance of misusing the variable.
Assert method arguments validity
Whenever an object is given in as a method argument, it should be asserted in terms of validity as the first thing.
This can be done with something as Objects.requireNonNull(arg), which will throw an exception if the argument is null.
Additionally, if you want to determine which arguments, should be allowed to be nullable, the @Nullable annotation can be used.
42. Prefer Lambdas To Anonymous Classes
When using event listeners, comparators, or simple interfaces, which promises one method implementation, it is valuable to use lambdas, since there is no need to use multiple lines of boilerplate code to call the only method available.