When talking about innovation, we often think about how to create a wonderful idea. If you don't bother yourself, there are naturally many problems to solve.
What is unusual?
For example, to create a function for adding, deleting, querying, and modifying orders and users, of course, it is not difficult for you to develop for half a year. Then, if we want to manage orders and product configurations, we will soon face a lot of similar requirements. What should I do? Does it take the same effort to repeat it again and again?
Can I create a paging data control component with search addition, deletion, query, and modification? The specific service can be easily completed with only a small amount of configuration and method filling required?
This is an exception from the specifics to the general usage.
For example 2, most systems have configured databases, which is very simple. Put them in the spring configuration file and submit everything to spring. For product O & M systems, multiple database connections are often involved and must be dynamically switched and accessed. What should I do?
A monitoring API can return corresponding metric item data based on the input Monitoring Group Name and specified time period. For example, query ('cpu ') can return cpu_user, cpu_sys, cpu_wait, and cpu_idle; query ('mem ') can return memtotal, buffer, cached, free, query ('disk _ io_speed') can return RKb, WKB, query ('net _ traffic ') you can return recv_bytes, trans_bytes, etc. Therefore, you must parse the data and generate a report as follows:
Cpu_user cpu_sys cpu_idle memtotal free RKb WKB recv_bytes trans_bytes
However, you are not clear about your needs. Some users may be interested in cpu_user cpu_idle, RKb, and WKB, while others may be interested in recv_bytes and trans_bytes. You must find a way to allow users to make some configuration to generate reports of metric items of interest to users. How to do it?
From static settings to dynamic configuration, this is an exception.
Example 3: a database flow statement contains three fields: IP address, port, and BPS traffic data. Find the ten unique IP: ports with the maximum bps in the record. Of course, this is not difficult.
Select distinct VIP from (select Concat (IP, ':', Port) VIP from Table order by bps desc) VIPS limit 10
If the table has 1000 million records, the preceding SQL statement runs for about 50 s. Do you have the ability to optimize it or use faster solutions to solve this problem?
This is an unusual issue of performance from small dataset processing to big dataset processing.
For example 4, you need to plot a traffic curve of the VIP over time. However, the traffic values of different VIPs are widely distributed. Some are between 10-100, some are between 10000-100000, and some are even between 10000-10000000. The scale setting is small, and the large traffic value cannot be displayed (especially the peak value worth attention). The setting is large, and the small traffic value becomes a straight line. How do I set your scale to adapt to such a wide range of values?
Your game server provides a 24-hour uninterrupted external service, initially accommodating 100 online games. However, one day the number of users suddenly surges and the server is overwhelmed, the original program could not accommodate such a large amount of game user capacity; it could not be modified in a short time. Can your program directly enhance its processing capability by simply deploying multiple distributed servers? In short, is your program flexible?
From fixed rigidity to flexible adaptation, this is an exception.
For example 5, you need to access the databases of multiple clusters to access some records. Initially, there were fewer clusters, which were considered safe and simple. Serial access was adopted. However, as the cluster increases, more and more databases will be accessed, and the query performance will decrease. Therefore, you want to use concurrent access, the total access time of multiple databases is reduced to about 1-2.
This is an exception from the serial execution mode to the concurrent execution mode.
For example 6, it is very complicated to make a GUI program. It takes a lot of time and effort to adjust the interface to a more pleasing level. Can you extract some general typographical policies, in general components, other components directly inherit this general component, and can reuse its typographical settings to minimize the workload of page layout. In addition, Gui testing is also a very troublesome task, it is difficult to perform automated tests like background programs. So how can we automate GUI testing?
From being trivial to automation and standardization, this is an exception.
Problems are often interrelated. The big data world looks forward to dynamic, elastic adaptability, concurrent execution mode, automated and standardized testing and O & M, and should be reused as much as possible. This requires the generalization of repeated daily development work and a solution, it is used multiple times.
Challenging issues are often an important driving force behind innovation. Discover unusual problems and embark on an innovative development journey.