Git is, without any doubt, the most popular version control system. Ironically, there are other version control systems easier to learn and to use, but, despite that, Git is the favorite option for developers, which is quite clarifying about the powerfulness of Git.
This guide will cover all the topics needed to know in order to use Git properly, from explaining what is it and how it differs from other tools, to its usage, covering also advanced topics and practices that can suppose an added value to the process of version controlling.
1. What is version control? What is Git?
Version control is the management of the changes made within a system, that it has not to be software necessarily.
Even if you have never used before Git or similar tools, you will probably have ever carried out a version control. A very used and bad practice in software developing is, when the software has reached a stable situation, saving a local copy of it, identifying it as stable, and then following with the changes in other copy.
This is something that every software engineer has done before using specific tools version controlling, so don’t feel bad if you have done it. Actually, this is much more better than having commented the code like:…
Read the rest of the post here.
You’ve probably heard about that 30-year-old Law of Demeter (LoD). Someone asked me recently what I think about it. And not just what I think, but how it is possible to keep objects small and obey the LoD. According to the law, we’re not allowed to do something like:
Instead, we’re supposed to go with:
It puzzled me, because I strongly disagree. I believe the first construct is perfectly valid in OOP. So I’ve done some research to find out whether this law is really a law. What I found out is that the law is perfect, but its common understanding in the OOP world is simply wrong (not surprisingly).
Even when you’re not actively planning for it, the JVM has quite a few tricks up its sleeve to help your code perform better. Some require literally nothing from you for them to work, and others could use a little help along the way.
For this post, we’ve had a chat with Moshe Tsur, Takipi’s R&D Team Lead, and got the opportunity to share some of his tips about the JVM’s Just In Time (JIT) compiler.
This article begins a series about Amazon’s Elastic Compute Cloud (EC2) Container Service, which is Amazon’s answer to managing a cluster of Docker containers. Before we begin exploring ECS, there are several key Amazon Web Services (AWS) that you need to be familiar with. This article reviews those core AWS services and lays a foundation for learning about ECS.
In this post we’re going to take a look at one of Spring Boot’s best kept secrets: the Spring Boot DevTools.
As great as it is to test things out on your local machine, there are also clear benefits to being able to both develop and debug your application in an environment that is as similar as possible to its production environment. And that’s where the Spring Boot DevTools come in. They let you live reload and remote debug your application no matter where it is running.
So let’s dive in and see in 3 easy steps how you set up the Spring Boot DevTools in minutes to live reload a Spring Boot app fully automatically on AWS.
Read more: https://boxfuse.com/blog/spring-boot-devtools-aws
A great user experience is critical to successful customer acquisition, adoption and ongoing use (retention) of your web or mobile application. Understanding how your customers use your application — especially what they value and where they struggle — will allow you to prioritize improvements to make the customer experience even better. In small and large agile project teams alike, there are a few commonly overlooked ways to find new customers insights, which any development team can use to make sure any application is as successful as possible.
Web Analytics: Understand The What, When and Where
Analytics platforms vary from product to product. Your application might be running a sophisticated analytics setup that requires business analysts and data scientists using Hadoop, Python or R, or, you could be using a user-friendly web platform like Google Analytics, Flurry and MixPanel.
Regardless of your setup, web analytics are always a great place to start gathering key insights. Even basic web traffic data can tell you a great deal about the “what, when and where” for your users: where they navigate from, when they use your app, which devices they use, how long they use your app (session length) and which features and functionality are used most often. Analytics reveal which parts of your app might be difficult to use (certain interactions aren’t happening) or which features aren’t being found at all (no traffic). Such insights can be the starting point for exploring which user experiences might need reinforcement, simplification or streamlining. As well, after launching a new feature, analytics are the easiest way to quantitatively measure improvements in customer experience, based on benchmarks of use you observed before the feature was launched.
Customer Service Representatives: Understand the Why
Sometimes agile project teams do talk directly to users, in order to understand their needs and top issues with customer experience. However, it is often very difficult to ask the right questions to root out the key issues. Customers can hijack these interviews as opportunities to pitch pet feature improvements that may only be relevant to them. Indeed, getting a large enough customer sample to really get a sense of the biggest issues across your user base takes time and money, which most teams can’t afford.
On the other hand, your sales team and customer service representatives (CSRs) deal with user issues day in and day out, and hear first hand which parts of the customer experience cause the most headaches, and which parts add the most value. Great CSRs use empathy to deal successfully with customers, and will have great insights into the “why” behind customer difficulty, which is essential to making improvements to customer experience. Take some time each month to sit down with one or more of your CSRs and ask them about the top issues customers are having, if new features are being adopted favorably and their insights into the ways the app could be improved.
Is Continuous Integration a toolset, a process, or a change in culture and expectations? The longer CI is around, the more it becomes apparent that all those elements must work together to make a real impact. Agile has been successfully used as a project management methodology in the technology world for many years. But it is one thing to have an Agile team and quite another to be able to design, develop, and deploy software in an ongoing cycle of improvement. With the right tools and processes for continuous integration, development faces fewer bottlenecks for productivity and overall quality.
Scott Hickey, Principle Enterprise Architect at Mutual of Omaha, observed this phenomenon following the implementation of CI in his own organization. “Even though we had a lot of people trying to do Agile methodology, they were doing it from a project management perspective and not from a software engineering perspective.” It was tools like the Jenkins automation server that turned things around. “Before, there wasn’t really any emphasis on tests. It was just about having a repeatable build. Now we are building on every check in. I don’t think you can do Agile without that continuous feedback.”
The build: where the product meets the process
Hans Dockter, Project Lead at the Gradle Open Source Project, noted a distinction between Continuous Integration as a process and CI as a product category. This is especially important when considering how the requirements of mobile have made CI a necessity rather than a luxury. “In the CI process, the build tool is essential. For example, in Android it is everything. It is where you compile, obfuscate, run tests, and deploy to the apps store.” In contrast, “CI as a product provides multiple services. For example, it tracks history across builds and sends notifications with updates on what was successful and what was not.”
Dockter believes the build will become more and more the heart of CI. Now that builds can happen with great frequency at a low cost in time and resources, it’s possible to use this quality control checkpoint in a much more iterative and Agile fashion. When it comes to a successful build, CI products are all about managing, monitoring, and improving the process.
A change in tools and tactics requires a shift in habits
Changes in how developers work, what’s expected of them, and how they can help the team improve productivity and quality as a whole are all critical aspects of Continuous Integration as a culture. This shift has practical implications for developers’ day to day work. According to Scott, “At the enterprise level, we need to get all of our development teams used to checking in codes and tests.” The Mutual team uses tools such as Sonar with Jenkins and Gradle to make this happen.
“Now I’ve got constant feedback and everyone can see it. We can tell historically if code coverage is trending up or down. I know if I have a bunch of code being checked in and not very many tests, my code quality is probably not going to be very high. Even a project manager or software development manager can recognize these metrics—they are easy to understand. It’s important to have a way to see those automated tests and get people used to seeing the importance.” When developers know that everyone can see the amount of coverage they have on their code, they are motivated to take the time to write appropriate tests to submit with their code each day.
Tools for performance testing in CI
Performance is another area where CI/CD tools can empower teams to do more testing, do it better, and do it earlier in the development process. Blazemeter CEO Alon Girmonsky believes that performance testing should be democratized. “Everyone should be able to test for performance regardless if they are Engineers, DevOps, Product Managers, etc. We shift performance testing to the development side of DevOps, even for things like scalability and load testing.”
Dave Karow, Blazemeter’s Director of Product Marketing, spoke more about the responsibility of developers to improve code quality. “It used to be an end of release cycle performance checkbox. Now, it is shifting into testing that happens throughout the dev cycle and maybe even all the way into integration testing. You are building testing as you are building code so you already know the performance parameters for unit tests before you start writing. You are never waiting for the performance guys to script a test to find out if your application performs.”
This shift to the left may place an additional burden on developers to think ahead more than they are used to. Certainly, DevOps teamwork will come into play as Operations’ insights into performance are critical to ensuring that appropriate tests are being designed and written for today’s cloud environments. But tooling that gives developers a simpler way to create and run performance tests will give them more confidence in their code and lead to fewer frustrating rewrites down the road. Since the work of Continuous Integration is never done, it might as well be work that is more productive and satisfying for everyone involved.
Yup, TheServerSide has a new look. If you’re a regular reader, it’s a hard change not to notice.
Personally, I’m pretty excited about it. The site itself looks fresh and modern. The design is very much in line with others in the TechTarget family, including searchSOA and the IoTAgenda, and I was worried that TSS would end up just blending into the mix, but I think the new styling allows the site to both stand on its own, while at the same time making it known that it is a part of a family of IT focused online resources. I wasn’t a big fan of the last overhaul of the site, but I’m excited about this one.
And it should be noted that this isn’t just a branding exercise. In fact, it’s more of an enhanced functionality exercise. Along with a new look and feel, there are a variety of features and functions that quite simply will make the site better.
Reminiscing about the previous redesign
One of the most frustrating impacts of the last redesign was the fact that users had no ability to comment on feature stories, and instead could only place comments on the news thread. With the new revamp, that fundamental functionality has been restored, much to the delight of both the editors and readers.
There were also little bugs in the Jive editor that did allow comments, one of which was the fact that anyone who posted code would have all of the indentations and carriage returns stripped out of them. The new platform for community members to add stories and post comments allows for the proper formatting of code. I know, TSS isn’t exactly the first site on the planet to integrate such functionality. But with that feature now integrated, it’s time to let the code comments begin!
Social media integration
There are other new features that simply modernize the site, one of which is the Twitter feed. Right now it’s only promoting the latest TSS tweets, but we’ll slowly ad trusted members to the stream so that the feed will be able to aggregate insights from some of the most experienced and respected members of the community.
And while it may not be immediately apparent, TSS now has the ability to produce more content types, including Ask the Expert articles, photo stories and even properly presented podcasts and tutorials, so not only will the site continue to provide keen insights into what’s going on in the industry and in the community, but it will be able to present that information in new and interesting ways.
And of course, the look is new. The site is much move visually appealing, using images to compliment stories, providing profile photos of regular contributors and simply presenting a variety of content types, including tutorials, videos and feature articles to users in a way that makes it easier for readers to find the content that appeals to them the most.
So take some time to click around on the site, check out the new media types, and get a feel for the site’s new layout and presentation of material. Change always takes a bit of getting used to, but we’re pretty sure that this is a change the readership will enjoy. We certainly enjoyed putting it together.