Make good use of these 28 tools, and the development efficiency will skyrocket

Introduction: Make good use of these 28 tools, and the development efficiency will skyrocket. In this article, I will mainly introduce the efficiency tools I use most often from the 2 categories of Terminal and Desktop and 8 core development scenarios, and how to use these tools to improve the practice of programmers' "happiness".

Hello everyone, my name is Qin Shicheng. I am responsible for the development of Packages in the product warehouse in Yunxiao. As a senior CRUD back-end engineer with many years of experience, I have used many tools and software required for daily development, many of which can be called "artifacts". These "artifacts" can greatly improve the efficiency of daily development; From a copy-paste operation to development, operation and maintenance, we can use appropriate tools to improve efficiency, speed up the daily development process, and make development more efficient. In this article, I will mainly introduce the efficiency tools I use most often from the 2 categories of Terminal and Desktop and 8 core development scenarios, and how to use these tools to improve the practice of programmers' "happiness".

【28 tools to improve development efficiency】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, in the process of dealing with terminals, we often encounter the following problems:
•It is necessary to switch between multiple terminals, which is troublesome to operate back and forth, prone to errors, and inefficient
•Terminal input efficiency is low, no intelligent automatic prompts, input highlighting, etc.
•The terminal display operation is not smooth, the garbled code is frequent, and it is miserable
Through the following terminal artifacts, you can create a high-value, high-efficiency terminal.
iTerm2 is responsible for appearance and basic Shell presentation hosting, Tmux is responsible for the multi-window management of Shell, and Zsh is responsible for the expansion and improvement of Shell functions.
iTerm2: high-value terminal tool
🔗 Link: https://iterm2.com/
👍Recommended index: ⭐⭐⭐⭐⭐
iTerm2 is a powerful terminal tool, it can also be said to be a substitute for Terminal, and it can also be said to be the successor of iTerm . It works with macOS 10.12 or later. It supports split-window operation, automatic completion, pasting history, playback function, full screen and other functions. It is a very powerful and highly recommended terminal tool.

Tmux : terminal multiplexing software
🔗 Link: https://github.com/tmux/tmux
👍Recommended index: ⭐⭐⭐⭐⭐
Tmux is a tool for running multiple terminal sessions in a terminal window, known as terminal multiplexer. In Tmux , different sessions can be created according to different work tasks, each session can create multiple windows to complete different tasks, and each window can be divided into many small windows. These functions are very useful.
Tmux can optimize our experience of using the terminal indiscriminately, especially the split-screen + multi-window function can greatly improve the use efficiency, as shown in the figure below, you can display all the key information you care about on one screen, Are there any geeks. Not only that, tmux also provides a session management function, which can open multiple sessions at the same time, and manage multiple related windows in one session. If it is paired with the tmux -continuum plugin, it can also automatically save and restore sessions, no need to worry anymore The problem of session loss after restarting.
There are many details and skills of Tmux , so I won't introduce them one by one here. For more tricks and tricks, you can read the article "Tmux Usage Tutorial" by Mr. Ruan Yifeng

The Tmux community also provides many plug-ins to meet different customization needs. Here are a few more commonly used ones. More plug-ins can be explored on the official website :
•tmux -plugin-manager: tmux plugin manager
•tmux-powerline: tmux status bar, essential for color control
•tmux -continuum: auto-recover and continuum save tmux env
•tmux -yank: allow copying of highlighted text to the system clipboard
Zsh & Oh-my- zsh : Can resist and fight powerful Shell
🔗 zsh link: https://github.com/zsh-users/zsh
🔗 oh- my- zsh link: https://github.com/ohmyzsh/ohmyzsh
👍Recommended index: ⭐⭐⭐⭐⭐
Zsh is a powerful terminal (shell) software that provides powerful customization capabilities, and 99% of its Bash operations are the same as Zsh .
And oh-my- zsh is a configuration management tool for zsh , which provides powerful functions, plug-ins, themes, etc., which can maximize the efficiency of using shell.
You may be more curious, I already have Bash, why do I need to use Zsh ? Although Bash can meet our basic requirements for using Shell, we must not only be able to use it, but also use it well and comfortably. Before contacting Zsh , the author has been using Bash, typing unfamiliar commands on that dark interface, which is not only inefficient, but also error-prone and extremely boring. Later, after I came into contact with Zsh+oh-my-zsh , it turned out that Shell can be so interesting. Zsh is not only compatible with 99% of Bash's operations, but also provides a high-quality interactive interface and efficient plug-ins. I typed code with notepad, and later switched to IDE, and the experience of using Shell was greatly improved.
As shown in the following figure: high-quality interactive interface, automatic prompting of Git information, command line highlighting, more friendly output content, etc.
I'm not typing the command line, but the artwork.

oh- my- zsh also provides many useful plugins:
•git: Provides git prompts under the current workspace, such as branch information, commit information, etc.
•zsh -autosuggestion: automatically from the history, recommended input shell commands
•zsh -syntax-highlighting: provides highlighting of shell commands
•zsh -z: provides the ability to quickly jump between directories you visit
•zsh -vim-mode: Map the operation keys in the shell to vim to speed up the shell input speed
Development and debugging
As a qualified CRUD engineer, in daily development ( mō yú ) process, the most operations are to adjust the interface -> see the response -> change the code -> adjust the interface -> see the response -> change the code...
So how can such a high-frequency operation be without a few weapons.
If you like to debug by calling the interface under the terminal, you can use the following set of tools:
Adjust the interface ( httpie ) -> see the response ( jq & fx ) - > change the code (tig & vim)
httpie : high-value http client
🔗 Link: https://httpie.io/
👍Recommended index: ⭐⭐⭐⭐

Httpie is a command line HTTP client. Its purpose is to make the interaction between the CLI and web services as user-friendly as possible. It provides a simple HTTP command that allows sending arbitrary HTTP requests using a simple and natural syntax, and displays colorful output. HTTPie can be used for testing, debugging, and generally interacting with HTTP servers.
We used curl the most in the past, curl is also a very powerful Http client, but it is ugly (manual dog head), if you are tired of curl, you might as well try httpie , it will definitely give you a different http CRUD experience .
jq & fx : JSON processing and visualization
🔗 jq link: https://stedolan.github.io/jq/
🔗 fx link: https://github.com/antonmedv/fx
👍Recommended index: ⭐⭐⭐⭐
jq is a lightweight and flexible enough command-line JSON processor to handle JSON gracefully and quickly on the command line.
In the era of RESTful and JSON everywhere, parsing and processing JSON has become our most common need:
•For example, we need to call the interface through Shell to complete some automatic operations, and the response of the interface is in JSON format. At this time, we need to use jq to parse the JSON content to obtain the information we need.
•There is or we need to deal with a large amount of data, and we need to extract useful information from these data. One way is to write a code to parse it, but this is inevitable; the other is that we can directly use jq to do it. Content extraction and filtering.

fx is a powerful terminal JSON previewer that can preview highlighted folded preview JSON in the terminal.
If there is a lot of JSON content, we no longer need to use less or more pagination tools to view it, which is not only inefficient, but also eye-catching. fx can preview JSON in the terminal, and provide highlighting and collapsing stools.
Taking care of your eyes starts with me.

tig: Terminal command line tool for git
🔗 Link: https://github.com/jonas/tig
👍Recommended index: ⭐⭐⭐
Git's terminal command line tool provides a terminal's git operation interface. Compared with the original git, tig provides a more optimized git operation interface, which is very suitable for git newbies. Such as browsing the commit history, branch merge status, etc.
tip: The reverse of the tig command is git :-)

【28 tools to improve development efficiency】file browsing


ranger: file browsing
🔗 Link: https://github.com/ranger/ranger
👍Recommended index: ⭐⭐⭐
Ranger provides the same file operation experience as finder or windows resource manager, and can quickly browse files and folders in the terminal, without frequent ls and cd.

ag: file content search
🔗 Link: https://github.com/ggreer/the_silver_searcher
👍Recommended index: ⭐⭐⭐⭐
than grep and ack. Quickly recursively search the contents of all files in a directory is very useful for us to locate the problem or get the whole picture of a directory. Generally, we use the grep command to recursively search all the files in a directory, but if the files in the directory are too large If there are too many, the efficiency of grep is too slow. Through ag, we can recursively search directories quickly and efficiently, which is more convenient and efficient.

System operation and maintenance
ncdu : efficient disk analysis tool
🔗 Link: https://dev.yorhel.nl/ncdu
👍Recommended index: ⭐⭐⭐
Visual and efficient analysis of disk utilization, useful when obtaining the occupancy of each directory

glances: system disk tool
🔗 Link: https://nicolargo.github.io/glances/
👍Recommended index: ⭐⭐⭐
Sometimes we need to preview various indicators of the system, such as cpu usage, load situation, we generally use top or htop , and glances are used to replace top and htop , which provide more powerful operations and more useful The data.

mycli : MySQL client
🔗 Link: https://github.com/dbcli/mycli
👍Recommended index: ⭐⭐⭐⭐
mysql , adding auto-completion and syntax highlighting.

Improve happiness index
Compared with the GUI operation, the shell does have many inconveniences. If you are not careful, you will type the wrong command and have to start all over again. Even if the command is not wrong, you will not be able to remember so many commands. I recommend several terminal tools to improve the happiness index of programmers, liberate your brain and release your hands.
the fuck: release your hands and return to life
🔗 Link: https://github.com/nvbn/thefuck
👍Recommended index: ⭐⭐⭐
Do you often type the wrong command in the terminal and get yourself upset? The Fuck is an amazing tool that can help you solve this problem completely. When you type the wrong command, just enter the fuck command and it will automatically help you. Correct mistakes.

tldr : Free your brain, return your hands
🔗 Link: https://github.com/tldr-pages/tldr
👍Recommended index: ⭐⭐⭐⭐
tldr (Too long , Don't read) provides a more user-friendly help manual so that we don't have to read obscure manpages .

【28 tools to improve development efficiency】Other CLI tools:


•Package management software, providing a quick way to install software:
○ Linux : apt-get & yum & apk , etc.
○ Windows : Chocolatey
○ MacOS: Homebrew
•cloc : a tool for counting lines of code
•ab: a powerful testing tool produced by apache
Desktop
Compared with terminal tools, there are more types of desktop tools. Here we recommend several desktop tools that are often used to improve efficiency, including development, design, etc.
development tools
Intellij IDEA: Integrated Development Environment
🔗Link : http://www.jetbrains.com/idea/
👍Recommended index: ⭐⭐⭐⭐⭐
First use Intellij IDEA to town, the best cross-platform IDE, YYDS. Friends who use Java should be familiar with it.

Insomnia: Http client
🔗 Link: https://insomnia.rest/
👍Recommended index: ⭐⭐⭐⭐
Insomnia is a cross-platform REST API client built on Electron.
Compared with Postman, the functions of the two are similar, but I prefer Insomnia because the appearance is higher, and KeyMap supports vim.

Navicat Premium: Database Tools
🔗 Link: http://navicat.com/en/
👍Recommended index: ⭐⭐⭐⭐
supports MySql , PostgreSQL, Oracle, Sqlite and SQL Server clients. It is friendly to operation and powerful, and provides many powerful operations, such as importing everywhere, batch operations of tables, backup and so on.

Charles: Http packet capture tool
🔗 Link: http://www.charlesproxy.com/
👍Recommended index: ⭐⭐⭐
Charles is a tool for capturing HTTP information, which can quickly and effectively obtain HTTP information, which is very beneficial to developers' web page development, debugging and modification, etc.! Charles has a visual interface, which is very helpful for editors to use and debug! As a commonly used network packet interception tool under Mac, when doing mobile development, we often need to intercept network packets for analysis in order to debug the network communication protocol with the server.

Alibaba Cloud AI Coding Assistant (Alibaba Cloud Smart Coding Plugin Cosy )
🔗Link : https://developer.aliyun.com/tool/cosy?channel=yx_wx_xz
👍Recommended index: ⭐⭐⭐⭐⭐
One of the best plugins to use during Java development. The intelligent code completion and sample code search functions bring an immersive development experience, and personal testing greatly improves coding efficiency.
The best thing is that the code completion function supports the completion result of the whole line. The development team has also done pure localization processing, which can be used off the Internet without revealing the code, and has a high sense of security.

The code search function can search the open source sample code on the Internet through the API or Chinese and English descriptions. It is also very practical to search for the API samples you need to use with one click in the code line.


Design Tools
Draw.io: high-quality drawing software
🔗 Link: https://github.com/jgraph/drawio
👍Recommended index: ⭐⭐⭐⭐⭐
Excellent drawing tools, various architecture diagrams, flow charts are not a problem; and the sketch mode is particularly preferred by the author.

Typora : high-value document writing tool
🔗 Link: https://github.com/typora
👍Recommended index: ⭐⭐⭐⭐⭐
Powerful Markdown tool, support Latex, flowchart, sequence diagram, etc. to expand Markdown syntax

Improve happiness index
The biggest problem with using desktop tools is that there are too many windows, which are inconvenient to manage. Here, like Terminal, we also have tools such as desktop management and startup management, and there are other tools that can improve efficiency.
Context: Window switching tool that is turned on
🔗 Link: https://contexts.co/
👍Recommended index: ⭐⭐⭐⭐
Quickly switch tools between various windows, when opening more windows, you can quickly switch.

Alfred: Quick Start Tool
🔗 Link: https://www.alfredapp.com/
👍Recommended index: ⭐⭐⭐⭐⭐
Alfred is a tool that uses the keyboard to speed up the operation x efficiency through hotkeys, keywords, and custom plug-ins. It is not only a search tool, but also a quick-start tool, and can even operate many system functions. It is extremely expandable

Paste: Pasteboard Tool
🔗 Link: https://pasteapp.io/
👍Recommended index: ⭐⭐⭐⭐⭐
The pasteboard tool can keep the pasteboard records for a certain period of time, and provide functions such as search. You can copy multiple contents at one time, and then paste multiple contents again, so you don't have to cut and cut again.

OmniFocus : GTD Tools
🔗 Link: https://www.omnigroup.com/omnifocus/
👍Recommended index: ⭐⭐⭐
GTD practice software, effectively improving efficiency

Welcome to leave a message to share your favorite tools in daily development.

Copyright statement: The content of this article is contributed by Alibaba Cloud real-name registered users. The copyright belongs to the original author. The Alibaba Cloud developer community does not own the copyright and does not assume the corresponding legal responsibility. For specific rules, please refer to the " Alibaba Cloud Developer Community User Service Agreement " and " Alibaba Cloud Developer Community Intellectual Property Protection Guidelines ". If you find any content suspected of plagiarism in this community, fill out the infringement complaint form to report it. Once verified, this community will delete the allegedly infringing content immediately.

Related Articles

Explore More Special Offers

  1. Short Message Service(SMS) & Mail Service

    50,000 email package starts as low as USD 1.99, 120 short messages start at only USD 1.00