[PYTHON] Active engineers personally write about the best development environment, frameworks, etc. [End of 2020]

Introduction

I think that there are many IT engineers and remote workers due to the influence of COVID-19. We will summarize the tools and devices used in daily life, development environment and frameworks. It may be difficult to understand because the classification is not so good, but I hope it will be helpful as much as possible. In addition, we have not explained each content in detail this time, so if you are interested, please comment and we will reply as much as possible.

Development environment system

Common

Homebrew

Official link: Homebrew Fee: Free

When developing on a Mac, it is so famous that Homebrew should be installed first. Some of the tools described below are included via Homebrew, so be sure to include them.

iTerm2

Official link: iTerm2 Fee: Free

You can do basic things with the Mac default terminal, but it's a bit less customizable. iTerm2 has the following merits, so it is recommended to install it for the time being.

XCode Command Line Tools

Official link: ?? Fee: Free

Since it includes a compiler etc., it will be necessary (probably) when installing Python, so let's install it for the time being. There are two types of installation methods.

Method 1: Execute the following command

$ xcode-select --install

Method 2: Download from Apple Developer. In that case, you need an Apple Developer account (available for free).

Visual Studio Code(VSCode)

Official link: Visual Studio Code Fee: Free

An editor for development. It has a lot of extensions and is very easy to use, so let's install it for now. The movement is also relatively light.

I will put the recommended extension function.

SourceTree

Official link: SourceTree Fee: Free (account registration required)

Git GUI client. You can use it with CLI, but I personally want to see diff with GUI, so SourceTree is recommended. In the case of CLI, tig is famous, and tig is quite easy to use, so you can use it as you like.

Node.js

Official link: Node.js Fee: Free

The environment (language?) That is the basis of front-end development. If you want to develop the front end, install it for the time being. When installing, we recommend that you install via a version control tool rather than installing directly. I think the following are famous version control tools.

Python

Official link: Python Fee: Free

It is one of the programming languages. It is used for development with AWS Lambda, simple tool creation, machine learning, etc. We recommend that you also install Python via your package manager instead of installing it directly. I personally recommend pyenv as the package manager.

Here are some of the most frequently used tools for developing in Python (although personally).

Docker Desktop

Official link: Install Docker Desktop on Mac Fee: Free

It is the foundation for running Docker containers. I think that it is often used for running tests in a container, starting DynamoDB Local, etc.

Parallels Desktop

Official link: Parallels Desktop Fee: Approximately 10,000 yen/year

Docker is a technology that enables container-based virtualization, while Parallels Desktop enables hypervisor-based virtualization. Simply put, you can launch Windows on your Mac. It's a high-priced but recommended tool for those who need to use both Mac and Windows.

Features I personally like

Wireshark

Official link: Wireshark Fee: Free

It is a packet capture tool. Although I am not specialized in networks, I dump the data communication status of the device as a pcap file and use it when viewing the file on a Mac.

kite

Official link: kite Fee: Free

A code completion tool. Use in conjunction with VS Code. Please refer to the following page for the merits.

Arduino IDE

Official link: Arduino IDE Fee: Free

It is used to flow the program to the microcomputer. It is very easy to use because you can perform build, serial debug, and data transmission consistently.

front end

HTML,CSS,JavaScript(JS)

It is the basic part of front-end technology.

TypeScript(TS)

Official link: TypeScript

It's a so-called altJS, but I think TypeScript is the strongest these days. Most front-end projects should be writing code in TS instead of raw JS. It's relatively difficult to learn, but I personally highly recommend it.

Vue.js

Official link: Vue.js

A progressive framework for building user interfaces. Since the part that displays the front-end data reactively is automatically reflected, it is no longer necessary to explicitly rewrite the data using jQuery as before.

Nuxt.js

Official link: Nuxt.js

Vue.js wrapper? It is a framework as (Japanese is unreasonable ...). There are many more useful features than using Vue.js alone.

Here are some of the features I personally like.

React

Official link: React

I don't know the details ...

API call

UI framework

Linter, formatter

Test tool

Hosting environment

Stoplight

Official link: Stoplight Fee: Free

Editor for OpenAPI. Since you don't have to write a YAML file yourself, I think the hurdle to write OpenAPI is relatively low. The UI is also clean so you can use it normally.

Insomnia Core

Official link: Insomnia Core Fee: Free

It is a so-called API client. It supports both REST and GraphQL.

Back end

Amazon Web Services(AWS)

Official link: Amazon Web Services Fee: Pay-as-you-go

There are many convenient services. I haven't used other cloud services well, but basically I'm not inconvenienced.

AWS Command Line Interface(AWS CLI)

Official link: AWS Command Line Interface Fee: Free

A service that allows you to touch the AWS environment from the command line. AWS has items that cannot be changed from the WEB management console, so in that case, use the AWS CLI.

AWS Cloud Development Kit (AWS CDK)

Official link: AWS Cloud Development Kit Fee: Free

A tool for realizing so-called Infrastructure as Code. Actually, it is a tool for generating AWS CloudFormation templates, but it is possible to create templates using programming languages ​​such as TypeScript. Others include Terraform and serverless framework, but AWS CDK is a tool issued by the AWS official.

AWS Vault

Official link: AWS Vault Fee: Free

When using a tool such as AWS CLI, it is necessary to issue the authentication information from AWS and use it. However, if the authentication information is leaked, it will be ridiculous, so give the IAM authority the authority that can be operated only if you are logged in to MFA. AWS Vault makes it easy to log in to MFA from the command line.

App development

Android Studio

Official link: Android Studio Fee: Free

If you are developing an Android application, let's put it in first.

XCode

Official link: XCode Fee: Free

If you are developing an app for an Apple device, let's put it in first.

Android File Transfer

Official link: Android File Transfer Fee: Free

It is useful when debugging with the actual device application and sharing screen shots etc. with the PC. You can easily browse the files in Android and send the files to the Android side.

Apple Configurator 2

Official link: Apple Configurator 2 Fee: Free

You can develop iOS apps with Xcode, but you cannot install created ipa files with Xcode. With Apple Configurator 2, you can install apps from ipa files, mirror the screen of your iOS device, and more.

Daily application system

Google account

Official link: Google Account Fee: Free

Google Docs, spreadsheets and slides are very useful.

Google Chrome

Official link: Google Chrome Fee: Free

It is a web browser. It is used for both everyday use and development use. The recommended extensions are introduced below.

Firefox

Official link: Firefox Fee: Free

It is a web browser. In front-end development, it is included to check the operation on multiple browsers. In the case of Linux, there may be many people whose usual browser is Firefox.

Raindrop.io

Official link: Raindrop.io Fee: Free

It is a bookmark management application. It is convenient and easy to use when linked with Chrome extensions. Since it is independent of the browser, it is recommended because you can manage bookmarks across multiple browsers and accounts.

Microsoft 365

Official link: Microsoft 365 Price: 12,984/year

Word and Excel may be essential for work. I feel that it is no longer necessary for personal use, but ...

1Password

Official link: 1Password Price: Approximately $ 3/month

Password management tool. I have never felt particularly inconvenienced.

Slack

Official link: Slack Fee: Free

It is a chat tool. It's usually convenient.

Zoom

Official link: Zoom Fee: Free

Video conferencing tool. It is convenient because it has many useful functions such as virtual background function and breakout session function.

Discord

Official link: Discord Fee: Free

It is a chat tool. You can stream and voice chat while playing Steam games. Personally, the operation is light, so the load on the PC does not increase easily even if it is connected all the time, so it seems that it is also used a lot in telework.

Fantastical

Official link: Fantastical Price: 408 yen/month

It was sold out at the time of Fantastical 2, but it seems that it has recently become a subscription. As a calendar app, the UI is clean and very easy to use.

BetterTouchTool

Official link: BetterTouchTool Price: $ 8.5/2 year license

For key customization. You can make detailed customizations such as setting emacs key bindings to be used in all apps.

Yoink

Official link: Yoink Price: 980 yen

It is an application that allows you to temporarily save drag and drop. This is convenient because you can temporarily save it when pasting screenshots.

Alfred

Official link: Alfred Fee: Free (Powerpack is charged)

It is a so-called launcher application. You can easily launch the app, recall copy / paste history, search the browser, and open bookmarks.

Snagit

Official link: Snagit Price: 5,722 yen

Although it is a capture software, you can also take videos and process images. You can also scroll capture the browser. There is a charge, but I think it is the easiest to use as a capture app.

Everyday device system

display

For laptops, it is convenient to have two displays. I think I like the display, but for reference, I'll put the display I own.

PTFWLD-24W / PTFBLD-24W

keyboard

If you have multiple displays connected, it is better to use an external keyboard because the posture of the PC keyboard does not turn straight. I use an Apple keyboard.

Magic Keyboard --Japanese (JIS)

mouse

Personally, I use a mouse because I am a mouse sect. I'm using the following mouse.

Silent EX-G Wireless BlueLED Mouse

PC stand

If you are developing, PC fans will turn around when you start Docker or build an application, so I think it would be nice to have a PC stand. By the way, I have the following.

Laptop stand

Air purifier, humidifier

I have more work in the room, so I wonder if I should have an air purifier and a humidifier.

Ryukakusan Throat Candy

If you talk for a long time, your throat will hurt, so if you don't take Ryukakusan throat lozenges regularly, ...

Ryukakusan's Throat Refreshing Candy

Wet wipes

Personally, I take care of my mouse and keyboard every day, but the following products are highly recommended.

Alcohol towel body that can sterilize Elleair

Calling device

Have you ever had your earphones turned off during a long meeting? If you connect the Anker PowerConf to your PC by wire, you don't have to worry about the power being turned off, you don't have to worry about radio waves, and you can handle it even if you keep the audio connection, so it is recommended.

Anker PowerConf

webcam

I feel that any webcam is fine, but the following cameras are recommended because they have good image quality.

C920N HD PRO Webcam

Finally

It has become quite long. There are other devices and tools, but this time around. Nowadays, I want to get as much performance as possible even with remote work.

Recommended Posts

Active engineers personally write about the best development environment, frameworks, etc. [End of 2020]
About the development environment you are using
Instantiation of the BOX development environment created earlier
About the development contents of machine learning (Example)
python memo (for myself): About the development environment virtualenv
[Python] Chapter 01-02 About Python (Execution and installation of development environment)
Unify the environment of the Python development team starting with Poetry
Think about the analysis environment (Part 1: Overview) * As of January 2017
Django + MongoDB development environment maintenance (in the middle of writing)