Author: little wisdom, Zhao Yuying, zhang xiao-nan link: https://www.infoq.cn/article/yeQU4f_BujTYCMxaXNFc?utm_source=tuicool&utm_medium=referralCopy the code
A good programmer, in addition to writing good code, is good at using a variety of development tools can also get twice the result with half the effort. BAT as a representative of the major factory programmers in their daily work with what development tools? InfoQ has taken a look at some of the most common development tools in big companies. Most of the tools covered in this article are open source projects, and you can choose them as needed.
Ali article
Arthas, a Java online diagnostic tool
Arthas is a Java online diagnostic tool that Alibaba opened source in September 2018.
Usage Scenarios:
- From which JAR is this class loaded? Why are all kinds of class-related exceptions reported?
- Why didn’t the code I changed execute? Did I not commit? Got the branch wrong?
- If you encounter a problem, you cannot debug it online. Can you only re-publish it by logging?
- There is a problem with a user’s data processing online, but it cannot be debugged online, and it cannot be reproduced offline!
- Is there a global view of the health of the system?
- Is there any way to monitor the real-time health of the JVM?
Arthas supports JDK 6+, Linux/Mac/Windows, command line interaction, and rich Tab auto-completion to further locate and diagnose problems.
Use tutorial:
Basic tutorial:
https://alibaba.github.io/arthas/arthas-tutorials?language=cn&id=arthas-basics
Advanced tutorial:
https://alibaba.github.io/arthas/arthas-tutorials?language=cn&id=arthas-advanced
Open source address:
https://github.com/alibaba/arthas
Cloud Toolkit, an IDE plug-in
The Cloud Toolkit is an IDE plug-in that helps developers develop, test, diagnose, and deploy applications more efficiently. With the Cloud Toolkit, developers can easily deploy local applications to any machine (local or Cloud) with one click. Arthas diagnostics, efficient execution of terminal commands and SQL are built into the Toolkit. IntelliJ IDEA, Eclipse, PyCharm and Maven.
Usage Scenarios:
- Are you experiencing repeated packaging after each code change?
- Frequent switching between Maven, Git, and other operational scripts and tools?
- Upload using SCP tool? Log in to the server using XShell or SecureCRT? Replace the deployment package? Restart?
- Upload files to a specified directory on the server and switch between FTP and SCP tools frequently.
Use tutorial:
IntelliJ IDEA version:
https://help.aliyun.com/document_detail/98762.html
The Eclipse version:
https://help.aliyun.com/document_detail/29970.html
PyCharm version:
https://help.aliyun.com/document_detail/112740.html
The Maven version:
https://help.aliyun.com/document_detail/108682.html
(Free) Tool Address:
https://www.aliyun.com/product/cloudtoolkit
Chaos experiment injection tool ChaosBlade
ChaosBlade is a chaos engineering tool that follows the experimental principles of chaos engineering and provides rich failure scenarios to help distributed systems improve fault tolerance and recoverability. It can inject underlying faults and provide exception scenarios such as delay, exception, return of a specific value, parameter value modification, repeated calls, and try-catch block exception.
Usage Scenarios:
- Is the fault tolerance of microservices hard to measure?
- Is the container choreography configuration reasonable and cannot be verified?
- PaaS layer robustness testing work out of the way?
Use tutorial:
https://github.com/chaosblade-io/chaosblade/wiki/ newbie guide
Open source address:
https://github.com/chaosblade-io/chaosblade/wiki/ newbie guide
Java code specification scan plug-in
This plug-in is used to detect irregularities in Java code and give hints. The protocol plug-in is developed in Kotlin language.
Use tutorial:
IDEA plugin usage document:
https://github.com/alibaba/p3c/wiki/IDEA plugin using document
Eclipse plug-in usage documentation:
https://github.com/alibaba/p3c/wiki/Eclipse plugin using document
Open source address:
https://github.com/alibaba/p3c
5. Solve the application automation problem tool OpenKruise on Kubernetes
Kruise’s core is automation, from different dimensions to solve the automation problems of Kubernetes applications, including deployment, upgrade, elastic expansion and shrinkage, Qos adjustment, health check, migration and repair. This time, Kruise open-source content is mainly in the application deployment and upgrade, that is, a set of enhanced controller components for application deployment and level and operation and maintenance. Subsequently, Kruise will open source intelligent elastic expansion and shrinkage components, as well as the application of Qos self-regulation ability components.
Open source address:
https://github.com/openkruise/kruise
Static open source site building tool Docsite
Docsite is a set of official website, documents, blogs and communities as one of the static open source site solution, with simple and easy to use, do not give up the characteristics of getting started, It also supports React and static rendering, PC and mobile, Chinese and English internationalization, SEO, Markdown documents, global site search, site style customization, page customization and other functions.
Use tutorial:
https://docsite.js.org/zh-cn/docs/installation.html
Open source address:
https://github.com/txd-team/docsite
7. Freeline second-level compilation scheme on Android platform
Freeline makes full use of cached files to quickly compile and deploy code changes to the device in a matter of seconds, effectively reducing the amount of recompilation and installation time required for daily development. The quickest way to use Freeline is to install the Android Studio plugin directly.
Use tutorial:
https://github.com/alibaba/freeline/blob/master/README-zh.md
Open source address:
https://github.com/alibaba/freeline
Architecture visualization tool AHAS
AHAS provides architecture visualization for container environments such as K8s, and features such as fault injection high availability evaluation and one-click flow degradation to quickly improve application availability at low cost.
Usage Scenarios:
In the process of service transformation, want to accurately understand the composition and interaction of resource instances, and realize the visualization of architecture?
Want to introduce real fault scenarios and walk-through models?
Low barrier to access to flow control, degradation features?
Use tutorial:
https://help.aliyun.com/document_detail/90323.html
Tool Address:
https://www.aliyun.com/product/ahas
Data processing tool EasyExcel
EasyExcel is a framework used to parse Java and generate Excel. It rewrites poI’s parsing of 07 version Excel. Originally, a 3M Excel with POI SAX needs about 100M memory. EasyExcel can be reduced to the KB level, and no large Excel will run out of memory. Version 03 relies on POI’s SAX schema. The model transformation is encapsulated in the upper layer to make the user more simple and convenient.
Use tutorial:
https://github.com/alibaba/easyexcel/blob/master/quickstart.md
Open source address:
https://github.com/alibaba/easyexcel
IOS class tool HandyJSON
HandyJSON is a JSON serialization/deserialization library for the Swift language. Compared to other popular Swift JSON libraries, HandyJSON supports pure Swift classes and is simple to use. Its deserialization (converting JSON to Model) does not require Model to inherit from NSObject (because it is not based on KVC), nor does it require you to define a Mapping function for Model. As long as you define the Model class and declare that it is subject to the HandyJSON protocol, HandyJSON can parse the values from the JSON string itself with the property name Key of each property.
Use tutorial:
https://github.com/alibaba/HandyJSON/blob/master/README_cn.md
Open source address:
https://github.com/alibaba/HandyJSON
Java toolset Dragonwell
Alibaba Dragonwell is the open source version of Alibaba’s internal OpenJDK customized AJDK, AJDK for online e-commerce, finance, logistics combined with the optimization of business scenarios, running in the ultra large scale, 100,000+ servers of Alibaba data center. Alibaba Dragonwell is compliant with Java SE standards and currently only supports Linux/ X86_64 platforms.
Use tutorial:
https://github.com/alibaba/dragonwell8/wiki/ alibaba Dragonwell8 user guide
Open source address:
https://github.com/alibaba/dragonwell8
Tencent’s article
First, the Web development basic style library WeUI
WeUI is a set of basic style library consistent with wechat’s native visual experience. It is designed by wechat’s official design team for wechat Web development, which can make users’ perception of use more unified. Contains button, cell, dialog, Progress, toast, article, Actionsheet, icon and other elements.
Use documentation:
https://github.com/Tencent/weui/wiki
Open source address:
https://github.com/Tencent/Weui
Ii. Tencent Git Code Management platform “Worker Bee”
Tencent Worker Bee is a Git managed code platform independently developed by Tencent R&D Management Department. It serves tens of thousands of R&D engineers in Tencent and is the most widely used engineering efficiency tool in Tencent. In addition to meeting basic development collaboration capabilities, worker Bees also provide customizable CodeReview, open source collaboration, and R&D metrics capabilities.
Usage Scenarios:
• Internal R & D management and development cooperation;
• Internal open source project management and collaborative sharing;
• Wechat applets version development;
• University laboratories, teaching scenes, etc
Official website and Documentation:
Website: https://code.tencent.com/
Documents: https://code.tencent.com/help/productionDoc/project
3. Tencent’s Agile collaboration platform TAPD
TAPD platform is the development result of Tencent’s Agile R&D system for more than ten years. It provides solutions for the whole life cycle of product r&d, supporting the whole process of AGILE requirements planning, iteration plan tracking, testing and quality assurance, continuous construction and delivery of r&d practices. Launched in 2017, TAPD has helped more than 100,000 companies improve their R&D performance and realize digital transformation and upgrading.
Usage Scenarios:
- Task collaboration – Follow up tasks for different scenarios
- Agile R&D – one-stop agile R&D lifecycle management
- DevOps — One-stop DevOps continuous delivery platform
- Enterprise-level RESEARCH and development data measurement — help enterprises measure performance, continuous improvement
Website: https://www.tapd.cn/
Documents: https://www.tapd.cn/help#page-wikidoc
Iv. One-stop DevOps R&D platform: Tencent CI Platform (Blue Shield)
Blue Shield (BK-CI) is an open source continuous integration and delivery system, starting from business security, throughout the full life cycle of product development, testing and operations; Facilitate the smooth transition to agile r&d mode, build a one-stop R&D operation system, and continue to deliver high-quality products quickly. Currently, it serves more than 10000 developers of Tencent and has become the CI platform designated by Tencent. In addition, it is the only DevOps standard to receive level 4 certification in the industry. Blue Shield provides 5 core services, including assembly line, code base, certificate management, environment management and R&D store, with multiple combinations to meet the needs of different scenarios of enterprises.
Usage Scenarios:
- Compile engineering
- Static code inspection
- Run test cases and find bugs in time
- Deployment and Release
Open source address:
https://github.com/Tencent/bk-ci
5. Tars, a high-performance, multi-language microservices governance framework
Tars is an open source project summarized by Tencent after years of practice results of TAF (Total Application Framework), which is used by hundreds of products in Tencent. Thousands of C++, Java, Golang, node.js, and PHP developers within the service. It contains a complete set of development framework and management platform, considering multiple languages, ease of use, high performance and service governance, the idea is to make development more focused on business logic, make operation more efficient. At present, Tencent has more than 160 businesses (such as QQ browser, mobile QQ, mobile games, App Treasure, Weishi, Tiantian Express, etc.) using TARS on 100,000 servers. In 2017, Tars opened source on GitHub and currently has nearly 10,000 stars on TarsCloud. In 2018, the Tars project was donated to the Linux Open Source Foundation.
Usage Scenarios:
- Efficiently support the development, deployment, release, operation and monitoring of background services;
- One-stop service management, including service registration and discovery, service configuration, load balancing, overload protection, disaster recovery and fault tolerance.
- Provides a three-dimensional monitoring platform to easily obtain monitoring data and historical curves such as traffic, time consumption, timeout, exceptions, and custom data. At the same time, messages can be dyed for targeted monitoring.
Open source address:
https://github.com/tarsCloud
TSeer is a lightweight service registry that publishes a fault tolerance solution
TSeer is a service registration discovery fault tolerance solution that is a lightweight, less intrusive version of TARS name service functionality and provides a Web management platform. It is widely used in many internal businesses of Tencent and currently carries tens of billions of requests per day.
Open source address:
https://github.com/Tencent/tseer/
Distributed NoSQL storage system DCache
DCache is a distributed NoSQL storage system developed based on TARS framework. Data is stored in memory and can be connected to back-end DB for data persistence. DCache uses cluster mode and features high scalability and availability. DCache is widely used in Tencent, with daily access volume exceeding one trillion times.
Open source address:
https://github.com/tencent/dcache
Six, small program component development framework WePY
WePY project was launched in November 2017. It is one of the earliest frameworks for small programs. It is a framework for small programs to support component-based development. Framework details optimization, Promise, Async Functions are introduced to make developing small program projects easier and more efficient.
Usage Scenarios:
- Use the Vue Observer for data binding
- Supports features such as Vue Watch, computed, and mixin
- Componentized development based on native components
- Support the TypeScript
Open source address:
https://github.com/Tencent/wepy
Vii. Tencent Automated test Center QTA
QTA is an automated testing service platform for a variety of platforms (including Android, iOS, Windows, MacOS, Web, small programs, background services and cloud native applications, etc.), dedicated to helping business research and development teams to develop and implement automated testing. It provides functions including automated test case management and data analysis, distributed test execution, online test reporting and data visualization, test execution measurement analysis, and test resource management.
QT4A, UI Automation test for Android:
https://github.com/Tencent/QT4A
QT4i, UI Automation testing for iOS:
https://github.com/Tencent/QT4i
QT4W, UI Automation testing for the Web:
https://github.com/Tencent/QT4W
Viii. Mars, the cross-platform cross-business basic component of wechat
Mars is the official terminal basic component of wechat. It is a basic component that is independent of business and platform and written in C++. Currently, wechat Android, iOS, Mac, Windows, WP, UWP and other clients are available. Mars is a solution based on socket layer designed with mobile App, which has better controllability in network tuning. The application scenarios of Mars in wechat credit mainly include: ordinary CGI request, such as sending and receiving messages and voice, and business CGI payment request.
Open source address:
https://github.com/Tencent/Mars
Baidu article
I. baidu- RPC is a high-performance RPC framework based on C++ platform
Bidu-rpc (BRPC for short) is a high-performance RPC framework based on C++ platform. It is easy to use, has a high scalability limit, and also has a perfect operation and debugging interface. The purpose is to build a unified RPC framework within Baidu, so flexible scalability is the most basic requirement. Baidu-rpc attaches great importance to the separation of mechanism and policy in the implementation process, and supports most RPC protocols used in Baidu to facilitate the seamless migration of business to Baidu-RPC. In addition to protocols, specific policies are used to implement name service, load balancing, and authentication, such as BNS name service and RR load balancing.
Usage Scenarios:
- Build services accessible by all protocols within Baidu, including but not limited to: Standard protocols, Hulu-PBRPC, SOFA-PBRPC, Nova-PbrPC, public-pBRPC, UBRPC and all protocols using NSHEAD, HTTP and HTTPS, where JSON can be automatically converted to Protobuf messages;
- Access to all services within Baidu, including but not limited to: Standard protocol, Hulu-PBRPC, SOFA – PBRPC, Nova-PBRPC, public-PBRPC, UBRPC (including IDL or McPack/Compack), HTTP (baidu:: RPC ::Channel can replace curl)
- Debug the service over HTTP, or sample the performance of the service online with pprof;
- Better latency and throughput.
Open source address:
https://github.com/apache/incubator-brpc
Highly customized data visualization chart Echarts
ECharts is a pure Javascript diagram library that is compatible with most browsers (IE6/7/8/9/10/11, Chrome, Firefox, Safari, etc.) and relies on the lightweight Canvas library ZRender. Provide visual, interactive and highly customized data visualization charts. In this way, users’ ability to mine and integrate data is enhanced and the value hidden behind data is revealed.
Usage Scenarios:
- Render using Canvas or SVG;
- Support accessibility in charts;
- Basic 3D visualization using ECharts GL;
- Use ECharts in wechat applet;
- Multiple data formats are used directly without conversion.
Official website address:
https://echarts.apache.org
Open source address:
https://github.com/apache/incubator-echarts
Iii. PaddlePaddle platform for Deep Learning
PaddlePaddle is an open source deep learning platform independently developed by Baidu, which integrates deep learning training and prediction framework, model library, tool components and service platform. PaddlePaddle currently open-source more than 60 official models proven in real business scenarios, covering core AI technology areas such as vision, NLP, voice and recommendation.
Usage Scenarios:
- Research deep learning technologies such as new AI algorithms;
- Deep learning technology is used to solve business problems, such as accurate time prediction of Baidu Map, fully automatic video classification of Baidu Feed, target object detection based on remote sensing image of Institute of Remote Sensing and Digital Earth of Chinese Academy of Sciences, and lingbang intelligent and rapid business implementation of different parts inspection. The AI of Beijing Forestry University has reached the recognition accuracy of professionals and shortened the detection period from two weeks to one hour.
- Learn to improve.
Usage Guidelines:
http://paddlepaddle.org/documentation/docs/zh/1.4/user_guides/index_cn.html?from=paddlenav
The API documentation:
http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/index_cn.html?from=paddlenav
Open source address:
https://github.com/PaddlePaddle
Amis front-end tool for generating MIS pages based on JSON
Amis is a front-end tool for generating MIS pages based on JSON, which opened source by Baidu in April 2019. Currently, amis has been used in internal amis platform. Combining visualization tools and back-end services, the development cost of various management systems has been greatly reduced. 2,700 people use it every day.
Usage Scenarios:
- Can quickly generate a variety of add, delete, change and search page, directly configure the interface and the field information to display;
- Complicated form validation? Configure rules directly.
- Of course, also integrated chart function, used to do with management function of the report system is also very suitable.
Use tutorial:
https://baidu.github.io/amis/docs/getting-started
Open source address:
https://github.com/baidu/amis
Five, THE component framework of MVVM San
San is a component framework for MVVM that is compact (15K), compatible (IE6), high-performance, and flexible to use. A component is the basic unit of a San and encapsulates independent data, logic, and views. From a page perspective, a component is an extension of an HTML element; From a functional pattern perspective, a component is a ViewModel. San components provide a full life cycle, matching the life cycle of the WebComponent. Components can be nested tree relationship, complete support component level, communication between components, convenient data flow between components. The component mechanism of San can effectively support the componentization requirements of business development and has strong adaptability to various types of Web application scenarios.
Usage Scenarios:
- In traditional Web pages, some areas need to respond to user operations in the current page.
- Single-page Web applications;
- Server-side rendering based on Node.js;
- Homogeneous Web applications.
Use tutorial:
https://baidu.github.io/san/tutorial/start/
Open source address:
https://github.com/baidu/san
Python language base library — Cup
CUP base library is baidu’s open source Python language base library, which is committed to freeing business development from low-level operations and Util operation classes, and focusing more on building upper-level business logic. CUP now covers all aspects of building a service’s underlying support from scratch.
Usage Scenarios:
- Build a Service from 0 to 1 with CUP assistance, especially the underlying structure;
- Use CUP as the underlying Utils library to assist in business code development.
Use tutorial:
http://cup.iobusy.com/
Open source address:
https://github.com/baidu/CUP
7. One-stop DevOps solution baidu Efficiency Cloud
Baidu Efficiency Cloud is a one-stop DevOps solution independently developed by Baidu Engineering Efficiency Department. It provides r&d cooperation for more than 10,000 engineers and product managers within Baidu every day. 70,000 + builds and 30,000 + continuous integrations per day; Clean up 3000+ high-risk code bugs every week.
Baidu Efficiency Cloud includes four platforms: ICAFe platform focusing on product and project management, ICODE platform focusing on code hosting and collaborative development, IPIPE platform focusing on CI/CD, and iRepo platform building product management.
Usage Scenarios:
- Internal software research and development management, inter-enterprise project coordination;
- University laboratory, teaching scene;
- Cloud native application development;
- AI service application development;
- Code security scan, funnel scan.
Use tutorial:
Documents: https://cloud.baidu.com/doc/XLY/index.html
Video: http://abcxueyuan.cloud.baidu.com/#/course_detail?id=14927&courseId=14927
Tool Address:
https://cloud.baidu.com/product/xly.html
conclusion
In the world of programmers, with so many languages and so many frameworks, it’s not easy to find a good wheel among so many development tools. In this article, we’ve taken a look at some of the most common tools BAT developers use. Many of these tools are open source, and you can easily find them on GitHub.