Vuex is a state management library provided by Vue core team and inspired by Facebook's flux model. It's really easy to integrate it with existing Vue applications. Also, it's very flexible and scalable. It's based on mutability, unlike Redux that's all about immutability, but the concepts of using Vuex/Redux are really similar.
The SSR (Server Side Rendering) allows to use to generate dynamic HTML pages – content of these pages is not-known while application is building. The main characteristic of this application is that it can be run on the client side (browser) as well as on the server side.
Continuous integration (CI) is the practice of frequently merging working copies early in the developing process. Among a wide variety of testing disciplines, performance can boost development process as part of CI.
Performance tests consume lots of memory, CPU and the machine resources in general. By itself, performance is expensive. But, you can do much for free. By using JMeter as the main performance tool and continuously integrating everything on Jenkins, great results can be accomplished.
According to VersionOne's last State of Agile report, Scrum and Scrum hybrids make up for 70 percent of practical applications of Agile. While comparing methodologies, methods and frameworks (Scrum is a framework) is a bit of an apples and oranges activity, the fact is that Scrum is the clear winner in the Agile ecosystem.
But, what exactly are the reasons for Scrum's popularity and clearly superior adoption rate?
As is often the case, the reasons are many and complex.
Amazon Simple Storage Service is an incredible, highly scalable, durable and flexible cloud-based storage product that you can use to store and retrieve any amount of data, at any time, from anywhere on the web.
How does team see tester?
Testing is often seen as a destructive activity. So, the role of the tester sometimes can be really specific. In some cases, tester won't fit in the team easily. Developers sometimes think that tester is against them and that could produce problems. The software tester needs to convince the rest of the team that her/his part is really important and to have good communication with them and in a nice way prove them that he is not their opponent. Tester plays on the same team, just with different duties.
Hello Java enthusiasts and professional developers. If you ever had to face the challenges of one-way server-client communication and are searching for a straightforward solution, you came to the right place. The technology we will go through in this short blog presents an easy and effective solution.
Amazon EC2 stands for Elastic Cloud Computing. It is a web service that provides application hosting on virtual machines called instances using simple interfaces. Main benefits are reduced cost of virtual machines compared to physical ones, fast and simple maintenance and no downtime.
Amazon EC2 provides elastic web-scale computing which enables you to increase or decrease capacity within minutes.
You have complete control over your instances as you would have over physical ones. It is a flexible cloud hosting service that gives you choice of instance types, operating systems and software packages.
Amazon EC2 is highly secure and works in conjunction with Amazon VPC (Virtual Private Cloud) to provide security and robust networking functionality.
It is very simple to start with and there is an option to try Amazon EC2 for free.
Call it a cliche or anything you like, but when Wikipedia gives you the perfect definition of debugging, trying to come up with your own feels pointless – 'debugging is the process of finding and resolving defects or problems within the program that prevent correct operation of a computer software or system'.
The term itself was created when a moth got stuck in a relay in a Mark II computer at Harvard University while Admiral Grace Hopper was performing an operation on it in the 1940s.
An actual, real live bug.
Handling asynchronous events in React / Redux can sometimes be quite challenging. Up to some point, we can handle async events manually by bridging different debounce functions and components' states, which ultimately bloats our components.
So, in order to separate our view and business logic and keep the code clean, we'll need some code abstraction.
When .NET Framework was released 16 years ago, it served as a general application development platform for Windows desktop and Web applications.Shortly after, the .NET Compact Framework was released as a subset of the .NET Framework that fit the footprint of smaller devices, specifically Windows Mobile. The idea behind that was to separate code base from the .NET Framework and it included the entire vertical: a runtime, a framework, and an application model on top. Ever since that, this subsetting was repeated many times with: Silverlight, Windows Phone and Windows Store. This lead to fragmentation because the .NET Platform isn't a single entity but a set of platforms, owned by different teams, and maintained independently.
Why should we write tests?
Many young and less experienced developers think that writing test is a waste of time, and unnecessary work. But everyone who has experience with a big/long-term project, does not share that opinion. Firstly, with a test you can ensure that your code works as it expected with given inputs, and secondly every later change of your code will be easier and safer, tests will warn developer if developer breaks a functionality.
Business Intelligence (BI) is technology led data analysis process and representing useful data necessary for leaders, managers and other corporate users to make positive and right business decisions. BI includes a wide spectrum of tools, applications and methodologies which enable organizations collecting data from internal information systems and/or external sources as a result of business processes (transaction databases – e.g. ATM cash flow; remote readers of electrical energy consumption, water, gas), Excel tabeles and other forms of generated reports.
knowledge and skill level. During that period, I realized I was wasting a lot of time on setting up the project and doing some of the most basic things.
The final years of college, and I still don't have much in common with IT-operation. Honestly, I didn't think I would do such a thing. I did not even know what IT involves. I studied at the Faculty various technical objects, programming elements, other related things, but I have not had a chance to see something concrete and tangible.
Being a front-end developer today is much enjoyable then it was 10 years ago. The whole ecosystem exploded, and in recent years a lot of tooling, previously unimaginable, made its own way into our everyday lives.
Our stacks become mightier, features become easier to deliver and yet we still make the same mistakes over and over again.
Whether we are building the next big thing app or just juggling with our client work, there are common problems occurring in both of those cases.
Allow me to start this with a quote from Charles Dickens.
This pretty much sums up the job description of a business or systems analyst. Especially in a fast-paced, dynamic, ever-changing modern enterprise development environment. Why is that so?
Let's break our quote and statement down to some simpler elements, let us analyze it.
Well, the job title does not give you much insight on what the person doing it actually does, at first glance, doesn't it? Unlike developer – where someone might think (and would not be wrong, to a point) that a person doing it types code, solves logical problems with it and builds applications in specialized tools – analysts possess more of a soft skills package.
In this post I will talk about Dependency Injection with some general examples, what is dependency, what is injection, what happens without it, what happens with it, why do you need it and how to use it on an Android project using Dagger 2.
To understand what Dependency Injection is and how it works we first need to understand what are dependencies.
In short, in object oriented programming a dependency is a coupling between two classes of our code, usually because one of them uses the other to do something.
We have two objects A and B. A needs B to do its job, therefore B is a dependency of an A.
Reusability is one of the core commandment of OOP. When classes and methods are coupled and dependant on many things, its reusable nature decreases.
In order to test if our method or class works properly, in most cases, we will need to mock some objects. But if there are so many dependencies within that method or the class it will be hard or impossible to test it.
If a java class creates an instance of another class via the new operator, then it cannot be used and tested independently from that class.
If our code can not be tested properly and the components are not reusable and at the same time the project continues to grow, at some point it will become very difficult to maintain.
Now that we now what dependencies are it's much easier to explain what Dependency Injection (DI) is.
Dependency Injection is just one of the techniques to avoid dependencies. It is a technique where one object supplies the dependencies of another object. The general concept behind Dependency Injection is called Inversion of Control. According to this concept a class should not configure its dependencies statically but should be configured from the outside. In other words, no class should instantiate another class but should get the instance from a configuration class.
Dagger 2 is one of the open source DI frameworks which generates a lot of boilerplate code for us. It's the second version of the popular Dagger framework developed by Square inc. Relations between classes in application are represented by Direct Acyclic Graph, hence the name.
Right now this is the only DI framework which generates fully traceable source code in Java which mimics the code that user may write by hands. It no longer uses reflection, which means it's more traceable and easy to debug. Also, simplicity and performance of the generated code are on the same level as the hand written code. Long story short, Dagger 2 generates all the dependency injection boilerplate for you.
Dagger 2 works on Annotation processor. So all the code generation is traceable at the compile time.
Annotation processors are code generators that eliminate the boilerplate code by creating code for you during the compile time.
Annotations are the class of metadata, that can be associated with class, methods, fields and even other annotations. Annotations in Java are used to provide additional information, so it is an alternative option for XML and Java marker interfaces. These methods can also be used during the runtime via reflection.
Basically , this annotation will tell the Dagger what dependencies need to be transferred to the dependant.
This annotation is used to create the interface which contains methods specifying where you want to perform the injection. In other words, component is a bridge between the generated code and the dependencies.
This annotation declares which objects you want to be available for injection.
For example. We can have a module called DairyModule and this module can provide Milk and Yogurt dependencies to other classes. In this case we need to mark the DairyModule with @Module.
This annotation is used in classes annotated with @Module and is used for methods which provides objects for dependencies injection.
In this article we covered some basic usages of Dagger 2. We already can see some of its strengths and weaknesses, but there is still a lot more to explore. Like @Scope, @Qualifer and how to manage the component. I am sure you have realized how Dagger 2 will change the way we develop our project, especially when combined with MPV pattern and RxJava when it will unleash its full potential.
For me, the best way to understand Dagger 2 is by reading its generated code, in most cases, if you get lost, it will help you to to figure out your problem. Also, I recommend to check the documentation.
Sign in to get new blogs and news first.