Introduce: had used these 28 tools, development efficiency explodes. In this paper, I will mainly introduce the efficiency tools I use most frequently from two categories, Terminal and Desktop, and eight core development scenarios, as well as the practice of how to improve the “happiness” of programmers through these tools.

Hi, my name is Qin Shicheng. I am responsible for the development of product warehouse Packages in Cloud Effect. As a senior CRUD back-end engineer with years of experience, I have used many tools and software required for daily development, many of which can be called “magic tools”, which can greatly improve the efficiency of daily development. From a small copy and paste operation to a large development operation, we can use the right tools to improve efficiency, speed up the daily development process, and make development efficiency slow. In this paper, I will mainly introduce the efficiency tools I use most frequently from two categories, Terminal and Desktop, and eight core development scenarios, as well as the practice of how to improve the “happiness” of programmers through these tools.

Terminal

Terminal management

In our daily development operation and maintenance process, we often deal with terminals, such as service deployment, file browsing and viewing, etc. However, we often encounter the following problems in the process of dealing with terminals:

  • Need to switch between multiple terminals, back and forth operation is troublesome, prone to error, low efficiency
  • Terminal input efficiency is low, no intelligent automatic prompt, input highlighting, etc
  • Terminal display operation is not smooth, gibberish frequent, unbearable pain

Through the following terminal artifact, you can create a high level of appearance, high efficiency terminal.

ITerm2 is responsible for appearance level and basic Shell rendering hosting, Tmux is responsible for multi-window management of the Shell, and Zsh is responsible for extending and improving Shell functionality.

ITerm2: High profile level terminal tool

🔗 link: iterm2.com/

👍 Recommended index: ⭐⭐⭐ service board

ITerm2 is a powerful Terminal tool that can be regarded as a replacement for Terminal or a successor to iTerm. It works with macOS 10.12 or later. It supports sub-window operation, automatic completion, pasting history, playback function, full screen and other functions, is a very powerful, very recommended terminal tool.

Tmux: terminal reuse software

🔗 link: github.com/tmux/tmux

👍 Recommended index: ⭐⭐⭐ service board

Tmux is a tool for running multiple terminal sessions in terminal Windows, terminal multiplexer. In Tmux, different sessions can be created for different work tasks. Each session can create multiple Windows for different work tasks, and each window can be divided into many smaller Windows. These features are very useful.

Tmux can optimize our experience of using terminals indiscriminately. In particular, the function of split screen + multi-window can greatly improve the efficiency of using terminals. As shown in the following picture, Tmux can display all the key information that one cares about on one screen, which is very geek. In addition, TMUX also provides session management function, which can open multiple sessions at the same time and manage multiple Windows in one session. If tMUx-Continuum plug-in is used, it can also automatically save and restore sessions. There is no need to worry about session loss after restart.

There are a lot of details and skills of Tmux, here will not be introduced one by one, more strange techniques can see teacher Ruan Yifeng’s article “Tmux tutorial”

The Tmux community also offers a number of plugins to meet different customization requirements. Here are some of the most common plugins, and more plugins can be explored on the official website:

  • Tmux-plugin-manager: tMUx plug-in manager
  • Tmux-powerline: indicates the TMUX status bar
  • Tmux-continuum: Automatic recovery and continuous saving of the TMUx env
  • Tmux-yank: Allows you to copy highlighted text to the system clipboard

Zsh & Oh-my-zsh: Can resist powerful shells

🔗 ZSH Link: github.com/zsh-users/z…

🔗 oh-my-zsh Link: github.com/ohmyzsh/ohm…

👍 Recommended index: ⭐⭐⭐ service board

Like Bash, Zsh is a powerful terminal (shell) software that offers powerful customization capabilities, and 99% of bash operations are the same as Zsh.

Oh-my-zsh is the configuration management tool of ZSH, which provides powerful functions, plug-ins, themes, etc., and can improve the efficiency of using shell to the maximum efficiency.

You may be wondering, I already have Bash, to use Zsh? Bash meets our basic Shell requirements, but we need to not only use it, but also use it well and comfortably. Before Zsh, the author had been using Bash, typing unfamiliar commands on that black screen, which was inefficient, error-prone and boring. When I came to Zsh+ Oh-my-zsh, it turned out that shells could be so much fun. Zsh not only compatible with 99% of Bash’s operations, but also provided a high-level interface and efficient plug-ins. It felt like typing code with Notepad and then switching to an IDE. The experience of using Shell is greatly improved.

As you can see in the picture below: high appearance level interactive interface, Git information prompt automatically, command line highlighting, more friendly output content and so on.

I’m not typing on the command line, I’m typing on the artwork.

Oh-my-zsh also offers a number of useful plugins:

  • Git: provides git prompts for the current workspace, such as branch information, commit information, etc
  • Zsh-autosuggestion: Shell command that is automatically recommended from history
  • Zsh-syntax-highlighting: Provides highlighting of shell commands
  • Zsh-z: Provides the ability to quickly jump between directories you visit
  • Zsh-vim-mode: maps the shell operation key to vim to speed up shell input

Development and debugging

As a qualified CRUD engineer, in the daily development (M ō yu) process, the most common operation is to tune interface -> see response -> change code -> tune interface -> see response -> change code…

Then how can such a high frequency operation without a few weapons in hand.

If you prefer to debug the interface from the terminal, you can use the following set of tools:

Call interface (httpie) -> See response (JQ & FX) -> Change code (tiG & VIm)

Httpie: HTTP client with high appearance level

🔗 link: httpie. IO /

👍 Recommended index: ⭐⭐⭐⭐

Httpie is a command line HTTP client. It is intended to make the interaction between the CLI and network services as human as possible. It provides a simple HTTP command that allows arbitrary HTTP requests to be sent using simple, natural syntax and displays colorful output. HTTPie can be used for testing, debugging, and generally interacting with HTTP servers.

Curl is a powerful Http client. If you’re tired of using curl, try Httpie. Httpie is an Http CRUD.

Jq & FX: JSON processing and visualization

🔗 jQ link: stedolan.github. IO /jq/

🔗 FX Link: github.com/antonmedv/f…

👍 Recommended index: ⭐⭐⭐⭐

Jq is a lightweight and flexible command-line JSON processor that can process JSON elegantly and quickly from the command line.

In an era of RESTful and JSON, parsing and processing JSON is one of our most common requirements:

  • For example, we need to complete some automatic voice operations through Shell call interface, and the interface response is JSON format, then we need to use JQ to parse the JSON content to obtain the information we need.
  • We have or we need to process a lot of data, and we need to extract useful information from that data, and one way to do that is to write a code to parse it, but that’s a dead end; The other is that we can use JQ directly for content extraction and filtering.

Fx is a powerful terminal JSON preview that allows you to preview highlighted and collapsed JSON in your terminal.

If the JSON content is large, you don’t need to use less or more pagination tools to view it, which is inefficient and eye-watering. Fx previews JSON in terminals and provides highlighting and folding stool capabilities.

Take care of your eyes, start from me.

Tig: Git’s terminal command line tool

🔗 link: github.com/jonas/tig

👍 Recommended index: ⭐⭐⭐

Git terminal command line tool, provides a terminal git operation interface, compared with the original Git, TIG provides a more optimized Git operation interface, for the novice Git xiao Bai is very suitable. For example, browse commit history, branch merge, etc.

Git 🙂

File browsing

Ranger: File browsing

🔗 Link: github.com/ranger/rang…

👍 Recommended index: ⭐⭐⭐

Ranger provides the same file experience as Finder or Windows Explorer, allowing you to quickly browse files and folders on the terminal without the need for frequent Ls and CDS.

Ag: Search for file contents

🔗 link: github.com/ggreer/the\…

👍 Recommended index: ⭐⭐⭐⭐

Faster than grep, ACK recursive search file content. Rapid recursive search of all file contents in a directory is very useful for us to locate problems or obtain the overall picture of a directory. Generally, we use grep command to recursively search all files in a directory, but if there are too many files in the directory, grep efficiency is too slow. Through AG, we can quickly and efficiently carry out recursive search for directories, which is more convenient and efficient.

The system operational

Ncdu: Efficient disk analysis tool

🔗 link: dev.yorhel.nl/ncdu

👍 Recommended index: ⭐⭐⭐

Visual and efficient analysis of disk usage is useful in capturing individual directory occupancy

Glances: System market tools

🔗 links: nicolargo. Making. IO/glances

👍 Recommended index: ⭐⭐⭐

Sometimes we need to preview various indicators of the system, such as CPU usage and load, we usually use top or HTOP. Glances is used to replace top and HTOP, which provides more powerful operations and more useful data.

Mycli: MySQL client

🔗 link: github.com/dbcli/mycli

👍 Recommended index: ⭐⭐⭐⭐

Mysql command line tool, added autocompletion and syntax highlighting.

Increase your happiness quotient

Compared with GUI operation, shell does have a lot of inconvenience. If you accidentally type a wrong command, you have to start all over again. Even if you don’t type a wrong command, you can’t remember so many commands.

The fuck: Free your hands and get back to life

🔗 Link: github.com/nvbn/thefuc…

👍 Recommended index: ⭐⭐⭐

Fuck is a great tool to help you completely solve this problem. When you type a wrong command, just type The Fuck command and it will automatically correct your mistake.

TLDR: Free your brain and return to your hands

🔗 Link: github.com/tldr-pages/…

👍 Recommended index: ⭐⭐⭐⭐

TLDR (Too Long, Don’t Read) offers a more user-friendly help manual so that we Don’t have to read obscure Manpages anymore.

Other CLI tools:

  • ○ Linux: apt-get & yum & APk ○ Windows: Chocolatey ○ MacOS: Homebrew
  • Cloc: Line of code statistics tool
  • Ab: Apache produced a powerful test tool

Desktop

Compared to terminal tools, desktop tools are more diverse. Here we recommend a few desktop tools that are often used to improve productivity, including development, design, and so on.

The development tools

Intellij IDEA: Integrated development environment

🔗 link: www.jetbrains.com/idea/

👍 Recommended index: ⭐⭐⭐ service board

First use Intellij IDEA to town building, the best use of cross-platform IDE, YYDS. Java users should be familiar with it.

Insomnia: Http client

🔗 link: Insomnia.rest /

👍 Recommended index: ⭐⭐⭐⭐

Insomnia is a cross-platform REST API client built on Electron.

The functionality is similar to Postman, but I prefer Insomnia because of the higher level of appearance and KeyMap support for Vim.

Navicat Premium: Database tool

🔗 link: navicat.com/en/

👍 Recommended index: ⭐⭐⭐⭐

Support for MySql, PostgreSQL, Oracle, Sqlite and SQL Server client, user-friendly, powerful, provides many powerful operations, such as dump everywhere, table batch operation, backup, etc.

Charles: Http packet capture tool

🔗 link: www.charlesproxy.com/

👍 Recommended index: ⭐⭐⭐

Charles is a tool for HTTP information capture, you can quickly and effectively get HTTP information, very conducive to developers of web development and debugging modification! Charles has a visual operation interface, very conducive to the editor’s use and debugging! As a common network packet interception tool under Mac, we often need to intercept network packets for analysis in order to debug the network communication protocol with the server during mobile development.

Alibaba Cloud AI Coding Assistant (Cosy)

🔗 links: developer.aliyun.com/tool/cosy?c…

👍 Recommended index: ⭐⭐⭐ service board

One of the most useful plug-ins in Java development. Intelligent code completion and sample code search functions bring immersive development experience, and hands-on testing greatly improves coding efficiency.

The most important thing is that the code completion function supports the complete results of the whole line. The development team has also made a pure localization process that can be used off the network, without revealing the code, and with a high sense of security.

The code search function can search the open source code on the website through THE API or Chinese and English description. It is also very useful to search the REQUIRED API examples within the code line by one click.

Design tools

Draw. IO: high appearance level drawing software

🔗 Link: github.com/jgraph/draw…

👍 Recommended index: ⭐⭐⭐ service board

Excellent drawing tools, all kinds of architecture diagram, flow chart is not a problem; Besides, the author is particularly fond of sketch mode.

Typora: High appearance level document writing tool

🔗 link: github.com/typora

👍 Recommended index: ⭐⭐⭐ service board

Powerful Markdown tools, support Latex, flow charts, sequence diagrams, and more to extend Markdown syntax

Increase your happiness quotient

The biggest problem in using desktop tools is that there are too many Windows and it is not convenient to manage. Here, we have desktop management, startup management and other tools as well as other recommended tools that can improve efficiency, just like Terminal.

Context: a window switching tool that is enabled

🔗 link: localmail.co /

👍 Recommended index: ⭐⭐⭐⭐

Quick switching tool between various Windows, when opening more Windows, you can quickly switch.

Alfred: Quick start tool

🔗 link: www.alfredapp.com/

👍 Recommended index: ⭐⭐⭐ service board

Alfred is a keyboard tool that uses hotkeys, keywords, and custom plugins to speed up the operation of X. It is not only a search tool, but also a quick launch tool, and can even operate many system functions

Paste: Paste board tool

🔗 Link: pasteapp. IO /

👍 Recommended index: ⭐⭐⭐ service board

Stickboard tool, can retain a certain period of stickboard records, and provide search and other functions, you can copy a number of content, and then paste a number of content again, no longer cut to cut.

OmniFocus: GTD tool

🔗 link: www.omnigroup.com/omnifocus/

👍 Recommended index: ⭐⭐⭐

GTD practice software, effectively improve efficiency

The original link

This article is the original content of Aliyun and shall not be reproduced without permission.