Work is about doing simple things over and over again, but you don’t get to do all the simple things.
We spend most of our workday tinkering, and that’s important. Do a good job of tinkering and polishing, enough to get you a promotion and a raise!
However, if I have the opportunity to try something I do less in daily life, I think it is a lucky thing.
Some time ago, I got a new project. There are only a few ideas that the business needs side has in mind, and then they start talking about requirements, and then they start doing things. The project wasn’t complicated, but because it was implemented in the JAVA language (a relative weakness of mine), it made sense to me personally.
In summary, it’s basically a list of items. The individual feels to still have a bit of meaning, give the classmate that does not have certain comprehensive practice reference!
1. Project Planning 1.1 First, you need to know exactly what to do. This process may be that you have to read it once, twice, three times… And then let’s say you’re already using the product. 1.2 Secondly, after understanding the requirements, it is necessary to carry out the idea of the overall framework! For example, what is presented to the user, what is used to store the data, what kind of system is needed, etc. At this level, the company’s rules are generally followed, and adjustments are made to meet the needs of the project. Our overall framework in this project is: The front end uses APP(ios&Android) and H5 for user interface presentation === =>> > Access gateway for data encryption and decryption, flow control and forwarding, etc. === =>> Layer 1 API SERVICE, accepts client requests, and performs simple business inspection and assembly === =>> > Layer 2 core business SERVICE For core business processing, such as writing libraries, calling third-party interfaces, etc. === =>> the lowest level of basic services, providing single functional services, such as message service, order service. In the early stage, only APP is provided, so there is no case of API service being called by H5 alone, but the application scenario of H5 still exists. At this time, the ADDRESS of H5 provided by the service interface is returned to APP for WebView loading.
1.3 Personnel planning After the overall framework of the project is out, someone has to implement it. Here generally need to follow a minimum principle, that is, divided personnel, as far as possible to complete their own modules independently, rather than necessarily rely on the implementation of another party to further. For example, one person for Android and one person for ios, and more people for API and SERVICE, but they should have full authority, because API and SERVICE are strongly dependent on each other, so they cannot be completed independently without one party. Basic services are implemented by relevant personnel. Finally, joint adjustment can be carried out.
1.4 Time planning With staff, also can not be unlimited time to do things. It must be planned, otherwise there is no pressure and no motivation. There is no telling when the project will be finished. Make a time plan to be sure to ask the client, how much time, try to stand in a professional script to give reasonable advice and evaluation. Facilitate project completion. 2. Framework planning and construction 2.1 After the idea of the overall framework, it is necessary to practice the details of each level because they are application layers, so it is impossible to have a unified description, only for each application layer. Do what you have to do. Android /ios has its own development framework; H5 has its own development framework (since many application scenarios may involve native interaction between H5 and app, try to use some existing frameworks for development even if the function is simple). The server side, although divided into multi-layer applications, but should try to use the same language, the use of the same set of development framework, their own company has a research and development framework naturally best, not also try to use a unified open source framework. The benefit of this is that when there is a staff change, you can immediately become familiar with the code and application scenarios, which increases adaptability and manageability. I feel the need to say more about server-side frameworks. Because the smoothness, reliability and accuracy of the entire application are determined by the server. The user sees the APP or H5, but the server is the core of the application. So, naturally, the server side has a lot to do.
2.2 How to set up some server-side frameworks? First of all, the framework of things, naturally, is to learn in advance. However, in terms of the current market situation, it should be relatively simple to use the framework, especially the internal framework provided by the company, must have a demo. In this way, according to the demo, step by step debugging, directly the whole application connected; Remove modules that are not needed and add modules that are particularly needed to ensure that whatever you want is available in the specific development process. Fully understand some of the configuration parameters required by the framework, know where transactions are coming from and where they are going? Here, there should be a configuration center corresponding to it, but you need to know. Using a handy IDE tool doesn’t mean you’re not good at it, it means you’re good at it. Write the first interface service you can use, so to speak, the first is always more important. Because the first idea is the direction of all your subsequent functions, so write the first “Hello, world.”; 3. Setup of development environment (server) 3.1 In fact, this work is extremely important, the reason why it is put in the third point, because, without code to pave the way, the development environment is useless. 3.2 The construction of the development environment is mainly subject to the idea of the overall framework. Basically, how many services are required, how many servers are required, how many basic applications are required, how many basic configurations are required, etc. Of course, the development environment itself is a very big problem, generally still handed over to professional operation and maintenance of decades of old drivers to complete. Consider yourself understanding. Most of the current project development, except for some small companies that still use a set of server-side code to do everything, should be multiple applications. The test environment, on the other hand, is unlikely to utilize multiple servers to provide services. Therefore, it is desirable to use Docker to build test environments. Create multiple Docker for multiple server simulation, also be consistent with the online environment. Zookeeper, Dubbo, Redis, Mongo, MQ… 3.3 Only when the development environment is set up, can the following process be worry-free. The construction process must be, and build, and change the code, and debug… Step 4 Synchronize progress 4.1 Synchronize project progress with leader In a timely manner It is normal for some areas to move slowly on a new project. However, some development students (such as myself) like to immerse themselves in their own small world, unable to get out, thus forgetting to report to the leader. As a leader with empathy, he is not willing to watch you work in real time, because he is afraid that you may encounter difficulties and wants to give you more time to solve them. However, in this case, the development of the students themselves is actually at a disadvantage, because the perception of outsiders, you did not do anything. So, while solving problems, don’t forget to report to the leader. 4.2 If there are problems that can not be handled, it is good to consult the leaders or leaders to solve the problems independently in time, but do not go too far, if it can not be solved, it is necessary to consult in time. Otherwise, time is wasted. The quickest way to improve is to ask someone better than you. Know is know noknow is noknow. 4.3 Try to spread your problems Around There are certainly problems, and many of them. Don’t try to keep everything to yourself. You’ll burn yourself out and the project will slow down. Make more use of team members’ respective strengths and let them do more things appropriately. Work is never one thing, and there must be other things that come in and see how important things are to work out. If can let other students solve, as far as possible to let other students deal with, this also has to synchronize with the leadership. Otherwise distracted too interested, blocked only the progress of the project, delay is not their own one thing. Demand cannot be perfected at once. Only in the process of doing so can some potential problems be found. At this time, we should timely communicate with the demand side to maintain an efficient state. Of course, the follow-up of the late, but also try to do not one person to take charge, but the corresponding people to be responsible for the follow-up of the corresponding things. Everyone else just needs to know the results. 5. Completion of functional modules 5.1 When it comes to specific business realization, PERSONALLY, it is not that difficult. It’s just a process of trying to come up with a rough draft, and then finding the problem solving the problem, finding the problem solving the problem. 5.2 After the completion of what the respective systems can do, it is particularly important to coordinate the call relationship between each system, maintain efficient communication, and solve the problem in a short time. At this time, I think, a dark room might be a good choice. 5.3 The process of joint investigation is actually a self-test process, and as many situations as possible should be considered in place. 5.4 Code inspection. It is basically difficult to find the problems in the code developed by ourselves. It is a better solution to solve the code problems to find appropriate people to help check the code immediately. In fact, when checking for others, it is also their own time to check, equivalent to their own development again, but also to find problems in time. 6. Multiple rounds of test verification 6.1 Test students, in fact, at the end of the development, the test cases have been given to everyone. This is also another aspect of development, so it is necessary to refer to test cases for development changes. 6.2 The first round of test may mainly be the verification of large functions and the inspection of small functions. The baffle environment is ok, not the real environment. 6.3 In the second round of testing, the previous tests and various configurations should be cleared and treated as a new project. The corresponding environment should be set up and the code deployed again, and then the test should be carried out to ensure that the corresponding solution backup is made after the problem is solved. At this point, you need to use a real application environment. Retest some previously unresolved issues. Make sure there are no problems. 6.4 The third round of testing should be a grayscale release environment, which can also be considered as pre-launch. Treat all environments as if they are on line, and if they run ok, they are ready to go live. 6.5 In the process of testing, because the testers are only manual processing, sometimes not all the problems can be captured. At this time, the development should also stand in the perspective of testing, find problems, monitor and deal with them immediately. 6.6 Automated testing, this should be a later process, but if you can do this, it can also quickly reproduce the problem. 6.7 Stress test, coping with the online environment, need to have a certain ability to assess, otherwise, just guessing, I’m afraid is not a good thing. Be ready to scale laterally, but only as a solution to problems. Do a good pressure test, find the problems in the code, immediately deal with them. 7. Peripheral processing (before launching) 7.1 Before launching, there must be many transactions to be handled. All kinds of basic data in the test environment can be exported and backed up at any time, and directly inserted when online. Server, for quantitative evaluation during architecture review; Domain name, external network to provide services must be domain name; Authority, such as online, there is a problem, who has the authority to deal with the problem, must be given in advance; Acceptance, this is the key point, after the completion of the function, timely acceptance, if there are some small problems online, try to negotiate, do not frequently change online. So! The whole project will be complete. In fact, it is found that the real function realization of a project does not account for much proportion, but some preliminary preparation and follow-up processing, but occupy more time. After the first release, rapid iteration is likely to follow. (If it works!) Above, is a whole project process list, step by step experience summary, does not involve specific language code, but the idea is the same, I hope to help you!