JavaRush /Java Blog /Random EN /Coffee break #34. 12 free tools to improve code quality a...

Coffee break #34. 12 free tools to improve code quality and productivity. 4 personal traits that will take your development career to the next level

Published in the Random EN group

12 Free Tools to Improve Code Quality and Productivity

Source: DZone The team of any project is interested in rapid development and bringing the product to market as soon as possible. Open source tools can help with this task. For example, those with which you can perform static code analysis, manage configuration, build, and continuous integration.Coffee break #34.  12 free tools to improve code quality and productivity.  4 flexible skills that will take your developer career to the next level - 1Although most companies still use commercial software in their application development, the popularity of open source is growing every year. Open source software from Apache, Red Hat, Google and SourceForge has gained recognition in a number of areas. Therefore, many companies are undergoing a paradigm shift: phasing out commercial tools in favor of open source tools. The purpose of this replacement is to improve performance and reduce overall development cost. Below are some useful open source tools that will allow you to improve code quality and increase productivity.

Application lifecycle management

Tuleap is a project management system, application life cycles, agile development and design. Tuleap is an alternative solution for proprietary software: CollabNet, Jira and Confluence, Crucible.

Configuration management

Subversion is an open source version control system developed in 2000 by CollabNet. Since 2010, Subversion has been one of the Apache Software projects. Developers use Subversion to maintain current and previous versions of files, store source code, web pages, and documentation. Git is a distributed version control system for tracking changes to files and coordinating work on those files within a group of developers. Git was created by Linus Torvalds in 2005. Based on Git, it is convenient to create specialized version control systems or user interfaces.

Assembly management

Maven (for large projects) is a framework for automating the assembly of projects from Apache. The main purpose of Maven is to enable the coder to quickly understand the build life cycle. With Maven, you can manage the build, requests, and documentation of a project. Ant (for small projects) is a Java library and command line tool for managing processes described in build files. The main purpose of Ant is to build Java applications. Ant performs a number of built-in tasks for compiling, building, testing, and running Java applications. Ant can also be used effectively to build applications in other languages, such as C or C++.

Code quality

PMD is a multilingual code analyzer based on a static set of rules that identifies potential problems in an application. CheckStyle is a tool that helps programmers adhere to coding standards and incorporate them into group project development. FindBugs is a static analyzer for checking and finding bugs in Java code. FindBugs requires JRE (or JDK) 1.7.0 or newer. Analysis is available for applications compiled with any version of Java. SonarQube is a software quality assurance platform. Uses various static code analysis tools such as CheckStyle, PMD and FindBugs to extract software metrics which can then be used to improve code quality.

Unit testing

JUnit is an open source Java testing framework used to write and run repetitive automated tests. JUnit can be integrated with Eclipse, Ant, Maven. EclEmma is a code coverage analysis tool (for Eclipse). Distributed under an open license, conducts code coverage analysis directly in the Eclipse environment. eCoberturais a free Eclipse plugin for Cobertura that allows you to create Java code coverage reports. With eCobertura, you can run applications or tests in Cobertura mode directly from Eclipse. Detailed coverage results are displayed in tree form. By using these tools, you can improve the quality of your software and provide greater code transparency for your entire team. By moving away from manual code reviews in favor of unit testing tools and coverage, you can improve your work quality by 15-20% and your productivity by 10-15%.

4 personal traits that will take your development career to the next level

Source: Cult.honeypot After graduating from college, I decided to move to another city to work at GE Healthcare. It was a two-year rotating leadership development program in which participants rotated teams within the IT organization every six months. We gained experience while learning from great people in different groups with different specializations. The trials and tribulations that we have experienced over these two years have allowed us to learn lessons and gain useful experience, for which, in fact, we came to work. Coffee break #34.  12 free tools to improve code quality and productivity.  4 flexible skills that will take your developer career to the next level - 2When I moved from the leadership development program to my current position as a developer, it became clear that the skills I acquired would also be useful in the technical field. Based on my experience, I have identified four soft skills that I think every effective developer should have in themselves: focus, optimism, communication, and honesty.

1. Focus

The era of technology has fundamentally changed the way we communicate and work. We constantly exchange messages, send emails and receive a bunch of different notifications. Because of this, our productivity suffers. Thoughtful and painstaking software development takes time and focus because our brains have to make important decisions. To write maintainable, readable, and high-quality code, you need time and intellectual resources. Sometimes they are limited as programmers must strike a balance between time and quality. To solve this problem, I, for example, use the "pomato method". The essence of the method is to focus on one thing without distraction for 25 minutes, followed by a 5-minute break. So you do four steps in a row, and then take a long break of 15 minutes (or more if you want). By doing this, I turn off Slack notifications, log out of Outlook, and I'm done! By using the Pomodoro method, you will become more productive and efficient as you can write better code. It's a win-win situation :)

2. Optimism

Have you ever been involved in an ideal project that never required changes and worked without errors during the testing phase? This has not happened in my practice. Perfection as a goal is great motivation, but rarely achieved. Projects change at the last minute, and we are forced to abandon the original idea in order to implement it differently. The release of a product is sometimes delayed due to indirect factors over which we have no influence. The team does user tests before designing, but then suddenly it turns out that people are interested in completely different features. What to do in such a situation? We take a deep breath and in any case we achieve results. A dose of optimism when faced with a problem keeps team morale high by turning the problem into a manageable task. Working on important changes that will ultimately improve the result is motivating and exciting. People respect a positive attitude during difficult moments, and then take a cue from them. If you become a role model, it will be a real gift for your career. Your attitude to work and optimism depend only on you.

3. Communication

At any stage of communication, be it working updates for team members or responding to requests, it can be difficult for programmers to build communication correctly. And this is important because it avoids potential disagreements or misunderstandings. Communication skills are a vital tool in a developer's arsenal. There are several rules that must be followed in communication that can have a strong impact on business and strengthen team relationships.
  1. Treat others with respect and uphold that standard in your company.
  2. If there is disagreement, be objective. If someone disagrees, find out the reason and use the facts to find the best solution.
  3. Focus on results instead of looking for who is right and who is wrong.
  4. When communicating, immediately find out the answers to the questions: “what, when, where, why and who.”
  5. Keep your ego in check.
  6. Avoid complaints without potential solutions.
Despite the fact that people communicate every day, we all need to improve our communication skills. This is how we can get better!

4. Honesty

Do the right thing even when no one is watching - that's the point of living with integrity. Sometimes developers have access to users' private information (personal data or IP address). People you've never met trust you and your company to protect their personal data and passwords. You must justify their trust! During the rush, it can be difficult to follow the standards of team development. But this should not affect how honestly you do your job! The situations that require honesty are endless, in each of them we must comply with our daily principles. Just remember the mantra: Do the right thing even when no one is watching.
Comments
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION