A blog post was written at the end of August last year, and so far the "architecture to be considered cost and efficiency" is profound. In this year's work, also has been in practice and thinking, how to properly design the application, how to design the interaction between applications, to reduce costs and improve efficiency.
What is the cost? Manpower is cost, time is cost.
What is efficiency? Self-evident, now all talk about high performance (effective).
A good application architecture can reduce costs and improve efficiency, primarily in design and thought. Not to use a multi-advanced or bull-B framework, thinking is far more important than technology.
The development team I am responsible for has just completed a project, "standard travel approvals", which has been on line and has been running for nearly two weeks. Now the group is starting to make a new project "Travel Policy". Just yesterday, the customer in the use of the travel approval system process, found that the PC approval problem, I and development to find a problem, found that he put the address of the interface to JS, and happened to forget to change into the online interface address on the corresponding. After I let him finish, I hurried through the process to release operations to the production environment. In the end, the mission of the "Travel policy" project of the day was not completed on schedule. This is a relatively low-level error. I talk to this friend, the need to modify the things put in the configuration file, easy to go on the line to change, otherwise, you like this to JS, on-line will inevitably be omitted. If you think about it beforehand, it won't take so long to troubleshoot the problem. This reduces productivity.
These are just a few examples. There are many similar situations.
I am also responsible for a project is the cashier, that the company all business systems involved in payment, will jump to the cashier to complete the payment. I talk to my development classmates, interface definition and interaction must be clear, such as the client system to provide what parameters, parameter description, parameter value of the definition, in what format to submit, we will give the client side to return what parameters, parameter description, sample message body, under what circumstances to invoke what interface, How a complete invocation is done, and so on, makes it easy for the user to understand. In addition to the clear documentation, I asked developers to implement a demo to simulate the process and link of payment. Can let the user see the demo can understand is the most ideal effect. How does this relate to cost and efficiency? First of all, for the development group of people, you do these, on the surface is a time-consuming cost, and in fact, when you do the demo, is actually validating the logic of your system. In your own demo docking process, you are imperceptibly thinking about some problems, some problems can be found on their own. For the access party, he can see the demo and the document, will be able to pay the docking more intuitive and comprehensive understanding, no need to ask the cashier to develop the role. In this way, when these developers start to develop other projects, they will not let him in the payment of the cost of what energy, can be at ease to engage in the task at hand.
Personal time problem, no longer repeat.
In addition, the following is a 3rd party interface I docking, WebService, I think their return value is better, first of all, errorres, in addition to contain a err_code, there is a err_content, which is very important in terms of readability, Otherwise just look at a code, it is difficult to know what the meaning, we interface too much, it is impossible to remember so many code. Of course, some are agreed, but these conventions are often placed in the program code through enumerations or enums, and it takes time to check the program. Direct
Take a few minutes to spit the groove a requirement change development process:
I am responsible for the company's airport service project, one service is to handle the boarding pass, the stakeholder is scheduled for the flight passengers. They follow the company's official, enter flight information and contact telephone can apply for our airport service personnel to provide print boarding pass service. When the customer submits the information, in addition to the data must be filled out and the legal check, to call the flight letter interface, determine whether the customer has booked a ticket, if the record is not found, it will not be submitted. Half a month ago, the boss of the product suddenly use this service, said the booking of the ticket, but unable to submit a boarding pass, the problem is that the Air mail interface has not yet his ticket record. The product boss ordered the project's product manager to remove the verification that the ticket has been issued. Product manager like a microphone, run to tell me to change, I doubt the feasibility of this demand, I think once released, then there will be a lot of "junk" data into our system, will bring trouble to the work of airport services. She disagreed with me and insisted that there would be no problem, even if something went wrong, there was an airport service. I asked the product manager if he had informed the airport service, and she called to inform. Come back and tell me that the airport service boss has agreed. I this person has a drawback, is too serious, I think this is not the Internet thinking, if you want to drainage, it can not be such a way of drainage. Let the product e-mail, the need to copy the airport services, products, technology boss know. The next day, the airport service eldest reply mail, said agree product view. Although I questioned, but everyone ignored, to tell the truth is very disturbing. That had to be arranged for development. Today is the 3rd day of demand on-line, morning, another product with me, the eldest brother of the airport service regret then changed, I can only say,-I faint!
Do you believe it? A good application architecture can reduce costs and increase efficiency