Look for technical content in business systems

From the beginning of working in an Internet company, everyone asks themselves, what is the technical content of CRUD?

Don’t think CRUD is just a business engineer’s problem. Whatever you’re writing, you’re basically dealing with data, reading and writing. It’s just that reading and writing is accompanied by domain-specific behaviors. Such as:

  • Compiler: Read text and do parse

  • Network procedures: read link, decode, encode, write link

  • Database: read from disk, read from memory, write to disk, write to memory

In engineering, no one has the right to despise who, you think the technical content of the field is high, but the work in the field is done by fewer people. No matter how high the threshold of the engineering field, as long as the engineer bonus is pouring in, there is always a roll for you.

automation

We may berate the company for being heartless and leading a jerk for doing the same job over and over again, but we can take a different Angle. Repetitive work. Can’t we automate it?

B: Sure. For example, when we need to pay attention to the news of a certain channel, we have to input the URL/click the favorites and wait for loading. Do these tasks as if they were routine assignments. We can do a timed crawler that crawls the news to our own servers, automating the process with a simple RSS service and subscription.

To support projects during the pandemic, companies upload daily whitelists of volunteers, which need to be imported into an online database. We certainly don’t want to have to write disgusting AWK scripts to do this every time, just give the operations people an interface to upload, parse and import automatically in the background.

The system on the line exploded, and we had to find the source of the explosion and call the person in charge to get up and fix the bug. Such an explicit process, as long as the system staff association and automatic call can be done.

It may only take five minutes to do the same task, but if you’ve done it three times, you should automate it and make your life better.

With the idea of automation, you are a software engineer, not a command-executing machine.

Configuration change

Software systems are essentially real-world adaptations that are embodied in code early in software iterations.

The worst one is if else switch, but we want to reuse it, and we even want to be able to switch without changing the code and restarting it.

Common complex software has the configuration of plug-ins, and most complex business systems also have configuration. It could be the config file that needs to be read when the project starts, or it could be the configuration stored in the remote configuration system/DB.

Configuration enables software to modify functions without changing the code. The software changes its behavior mode according to the configuration changes.

Software like Nginx can be configured to act as a reverse proxy for L4 or as an HTTP server for L7.

The configuration of business software is reflected in the prediction of business change patterns.

  • If the business process changes a lot, the configuration content is the workflow configuration.
  • If the calculation logic changes a lot, the configuration content is various expression configurations.
  • If the upstream system changes a lot, you need to configure ACL mapping.

Configuration content for internal use in the system, text configuration can already meet most requirements.

If nginx configuration format is troublesome, using JSON can express any form of data structure, logical flow, mapping method. You can be a little confused here, we can say:

  • Code and the AST are interchangeable
  • The AST can be marshaled as JSON
  • So JSON can, in principle, express any program logic

Text-based configuration is not appropriate if the configuration requirements for a system are primarily external. It is common to see open source software configuration machines that are long and obscure (K8S: exactly below). These configurations are written by humans and are machine anti-human.

Moreover, the configuration itself is also context-related. If the software documentation is not detailed enough, we even have to read the implementation code of the software before correctly configuring the system, which is extremely expensive to use.

The UI is changed

Context-related configuration, which is very difficult to configure in text, is very easy to configure in UI. We can write all the pre-requisite knowledge of legal configuration into the UI’s associated pop-up logic, or validation logic. In this way, users can quickly learn the rules of the software configuration game through simple interaction.

If you still want to use text configuration, you can also use wySIWYG to shorten the feedback time for configuration editing to take effect, to help users quickly find errors in the configuration and correct them in time, like Swagger Editor:

Changing software configuration from text configuration to interface configuration is called “blank screen” in some companies.

platform

As long as the idea of using the UI to do the system, sooner or later will form a pile of scattered access system. Platformization is an opportunity to consolidate these systems, bringing together all related processes on a specific topic.

For example, PAAS platform, streaming computing platform, business workflow orchestration platform, document platform.

In Internet companies, knowledge becomes public knowledge only when it is deposited on a platform, otherwise it is just paste in the brains of old employees.

China is changed

When the platform does not just serve the current business, but has a more general base of capabilities, it can be exported within the company. For example, a data platform integrating big data infrastructure and complete business access process is not only available in the takeout scene, but also can be used for online car hailing and wine travel.

Some companies call cross-business capabilities as business capabilities, such as pre-sales, order process and after-sale of e-commerce, which can be deposited as cross-business universal functions.

The final output of Zhongtai construction is a set of complete large platforms that combine business SDK, multi-tenant isolation capability, automatic capacity expansion capability, and corresponding business logic to show UI capability. The abstraction ability of the architect, the technical ability of the engineer and the operation and maintenance ability of the infrastructure are all greatly tested.

From the perspective of business benefits, these intermediate platforms with interfaces can greatly reduce the threshold for engineers to communicate with PM, PD and PXX. For non-subversive businesses, business personnel can even list all the modification points without engineers’ participation.

Be optimized

Main business technology systems support the business, if the company’s business model will no longer have the big change, for support system, the system do good developers presence is extremely low, as long as the domain experts on the platform of a little little mouse can complete the access application, and find a few new copy a line or two from the platform sample code can work upgrade is complete.

That’s when you should be optimized.