Difference between revisions of "RidgeRun Developer Manual/Editors"

From RidgeRun Developer Connection
Jump to: navigation, search
(Static Code Analysis)
(IDE Features)
Line 72: Line 72:
 
The following Table 1 summarizes the list of recommended linters for different languages. See our [[List of Code Linters]] for details on how these were selected.
 
The following Table 1 summarizes the list of recommended linters for different languages. See our [[List of Code Linters]] for details on how these were selected.
  
{| class="wikitable"
+
{| class="wikitable" style="margin: auto; width:40%"
 
|+Table 1. List of recommended linters per language.
 
|+Table 1. List of recommended linters per language.
 
|-
 
|-

Revision as of 17:16, 20 April 2020




Previous: Development Tools Index Next: Editors/Emacs




Developer's IDE

The Integrated Development Environment (IDE) is probably the most fundamental tool of a developer. Similar to how a chef invests in a good set of knives or how a surgeon requires precision scalpels, the IDE can make a huge difference in the quality and efficiency of a programmer. Setting up these environments rarely is considered a waste, but an investment. A professional developer understands the importance of working with the right tools.

An IDE is set of tools integrated to make the development process more efficient. These are typically plug-ins, meaning that they may be independently installed, configured or removed by the user. The later allows the developer to customize it's environment according to his/her preferences (programmers are known to be proudly picky :)) Among these, the Code Editor (CE) is the core of the environment. Around it, several plug-ins add extra functionality such as integrations with version control system, debuggers, tests, static code analysis, etc...

Generally speaking, we recommend that every developer is fluent with, at least, two environments:

  • Console based Code Editor
  • Integrated Development Environment

Figure 1 shows an example of the two aforementioned environments.

Console Based Editor

A lightweight editor that opens within the terminal emulator. You'd typically use this for quick edits, or momentary remote editing. If a project will require you to remote edit as you primary (or very constantly) consider setting up a remote IDE instead.

Popular console editors include:

This is not your primary editor, however you should be fluent in it. Make sure you at least know your way around with:

  • Search and replace
  • Jump to line number
  • Copy, cut and paste (without explicit use of the mouse)
  • Several files in a single session (no need to close and re-open the editor)

Integrated Development Environment

The IDE is intended to be your primary development environment. It is expected that you invest time setting it appropriately, rarely an IDE is meant to be used out-of-the box. An environment properly configured speaks positively about the profesional maturity of the developer.

A list of popular IDEs (as per early 2020) include:

The choice and configuration of the IDE is a very personal one. Although RidgeRun understands and promotes this, we do have some expectations and recommendations on the final setup. The following sections detail these further.

IDE Features

Essential Features

These features are considered indispensable in every modern IDE. If your selection does not seem to have the ability to do these (which I doubt), you should consider a different alternative.

Static Code Analysis

Formally called linting or running a linter. A Linter is a tool that analyzes the source so that it complies with a set of user defined standards. For example, a linter would typically detect and notify flawed code regarding:

  • Style (proper indentation and code structuring)
  • Safety
  • Portability
  • Memory integrity
  • Syntax errors
  • Unintended side effects
  • Undefined behavior

This analysis is normally done inspecting the code without actually executing it, hence the static in static code analysis. Although linters are standalone tools, they are integrated within editors to perform this checks on-the-fly. In other words you get instantaneous code feedback as you type. This is the desired behavior.

The following Table 1 summarizes the list of recommended linters for different languages. See our List of Code Linters for details on how these were selected.

Table 1. List of recommended linters per language.
Language Linter
C cppcheck
C++ cppcheck
Python pylint

Code Autocompletion

Code Navigation

Desired Features

  • VCS Integration
  • Debugger Integration
  • Remote Editing (via SSH)
  • Auto-Indenter


Previous: Development Tools Index Next: Editors/Emacs