Launchorasince 2014
← Stories

Programmer's arsenal. 7 tools for efficient work

The job of a programmer is very difficult. Therefore, any tool that facilitates it should only be welcomed. Theoretically, you can code with only a notebook and a compiler at hand, but in practice, the programmer uses special tools to speed up the work.

Let's take a look at seven programmer tools that are needed for everyday work.

1. Integrated Programming Environment (IDE)

The development environment is the main tool that a programmer launches as soon as he comes to work. Typical environment includes:

Editor with code highlighting

Compiler

Debugger

Project management

There are universal IDEs that support many programming languages:

CodeBlocks

NetBeans,

Eclipse,

Qt Creator,

Geany.

There are specialized IDEs that target one programming language:

Visual Basic,

Delphi,

Dev-C++.

Unfortunately, the practice of a programmer is such that knowledge of one programming language and one programming environment is clearly not enough. You constantly have to use different languages ​​or environments depending on the task. Therefore, I recommend trying and learning different IDEs. You never know where it might come in handy. This can be used for people address finder program or website.

There are many IDE comparison tables. For example, here . Below is a snippet of the C/C++ IDE comparison chart.

As the main IDE, it is better to choose the development environment that is most comfortable and convenient for you. And study it thoroughly. This will greatly increase your productivity.

2. Code profiler (profiler, profiler)

A code profiler, or as it is often called a profiler in jargon (from the word profiler) is a tool that collects information about the program's operation. As a rule, a profiler is required in cases where your program does not work as fast as you would like.

To find the bottleneck of the program, a profiler is launched, which fixes the execution time of various fragments of the program.

There are many profilers, both universal and specialized. A large list can be found here (en).

But the most popular profiler is GNU Gprof. It is in the C-express assembly . To use it, you need to do the following:

1. Enable profiling in project build options. Right-click on the project and select the appropriate menu item.

2. Recompile and run the program.

3. Run the profiler. Menu — Modules — Code profiler

3. Version control system

It often happens that the programmer made changes to the source code and the program stopped working. Version control systems (SVN) are used to quickly return to a working version. They keep a record of changes in files and allow you to roll back changes to the desired point.

The most popular are:

Subversion

Git

Mercurial

SVN used to run on the developer's machine, but more recently web servers for SVN are being used. This provides many advantages, you can work on different computers and have a copy of the program in the cloud.

There are no significant differences between these systems. The basic functionality is the same, the difference is only in the implementation methods. Therefore, you can choose the system that you like best.

The most popular SVN servers are:

GitHub (paid service, but free for open source projects).

Bitbucket (free service)

4. Visual interface editor

Although the program interface can be written entirely in code, this is only suitable for very simple programs. Programming the interface manually is an extremely long and laborious process.

There is another reason to greatly speed up this process - communication with the customer. The very first conversation with the customer will be much more productive if you can quickly sketch out the layout of the program. Customers do not understand anything in programming, but everyone understands the interface. The sooner you show the layout of the future program, the sooner you will receive an order.

There are many interface editors that help you sketch out the look of the program by simply dragging and dropping widgets. Their other name is GUI-constructors. They can both be standalone programs, such as Glade. Or they can be IDE plugins, such as wxSmith for CodeBlocks.

As a rule, the task of the visual editor is to set the location of the interface elements, and the programmer writes the message processing code already in the program. By the way, you can find people free at the our website. It can be useful for programmers, who search for colleagues.

5. Database editor

For application programs, working with databases (DB) is a prerequisite. If you are writing a program for business automation, then you will need to work with databases:

Employees

Goods

Buyers

Accounts, etc.

Databases are the backbone of any company's automation. Therefore, the programmer will need to interact with databases in one form or another. In this he is helped by database editors that allow you to manage information in databases.

The most powerful and user-friendly database management system (DBMS) is Microsoft Access, which is part of Microsoft Office. The possibilities of Access are very great. This DBMS allows you to develop automation for a small company. But the resulting product is not very convenient to replicate due to the peculiarities of Microsoft Office licensing.

The most common database editors are:

PhpMyAdmin

HeidiSQL

DBTools Manager

6. Software testing tool

Once a programmer has written a program, one must make sure that it works. There is a separate process for this called software testing .

The essence of testing is that the tester executes a package of tests and checks the conformity of the real behavior of the program with the given one.

The problem with testing lies in the fact that it is impossible to foresee all possible options for using the program in advance. Therefore, software testing is more of an art than a science.

While the programs were not very complex, the so-called "exhaustive testing" was used, that is, the work of the program was checked on all possible branches in execution. But very soon, the number of combinations of branches began to exceed the capabilities of the testers, and selective testing is now being carried out. Some basic use case for the program is selected and tests are written for it.

It is difficult to find universal automated testing tools. As a rule, a programmer is looking for a testing tool for a specific task. If there is no such tool, then you have to write it yourself.

7. Framework

Many programs have common modules. From here comes the desire not to write a program from scratch every time, but to use some kind of framework. This is how the concept of a framework appeared, which means “framework” in translation.

A framework differs from a library in that the library has no effect on the programmer's work. It is enough for him to connect the library and he can call the functions of the library arbitrarily.

The framework dictates the principle of building a program. Usually, when working with a framework, some prototype of the program is immediately generated, and the programmer must develop this prototype to the finished program.

Since the development principles are the same, it is possible to quickly build a completely working program on the framework. But there is also a serious drawback in using the framework.

If the functionality of the program is very different from the principles that the framework uses, then the programmer has to constantly invent different tricks to harmonize the requirements of the customer and the limitations of the framework. Sometimes it happens that using a framework not only speeds up, but, on the contrary, slows down programming.

Programmer's arsenal. 7 tools for efficient work by John Grehhem | Launchora