As one of the most widely used languages in Web development, PHP has a large number of fans. Are you a good programmer? During self-cultivation, have you ever thought about various questions? as one of the most widely used languages in Web development, PHP has a large number of fans, so are you a good programmer? During self-cultivation, have you ever thought about how to break through the bottleneck of myself in order to develop better?
PHP engineers are facing growth bottlenecks
First, we should clarify that the PHP engineer referred to here refers to the development of Web systems mainly using PHP, and has not worked in any language. Work experience is about 3 ~ In the past four years, the development of common Web systems (millions of accesses, less than million pieces of data, or business logic is not particularly complex) has been quite handy and there is no problem. But they will:
◆ Except for PHP, shell scripts may be used in other languages.
◆ Poor understanding of PHP (except for libraries ).
◆ Narrow knowledge (in addition to using PHP and mysql, I do not know any other solutions ).
◆ PHP code is mainly process-oriented. I think the implementation of object-oriented is too difficult to understand.
PHPer lacks ideas when it comes to projects or business logic that require high performance, high concurrency, and a large amount of data (the system needs to solve the problem of multi-domain businesses. We cannot analyze the nature of the problem and have poor technical judgment. we can quickly find a temporary solution to the problem. However, in the constant temporary solution, the system and itself are gradually collapsing. How can we improve ourselves? How can we challenge a more difficult system?
Where are the higher challenges?
Based on my own experience, I will list some specific challenges to give you a perceptual knowledge first.
Where are the challenges of high-performance systems?
◆ How to select a Web server? Do you want to use the fast-cgi mode;
◆ Do you want to use the reverse proxy service? Choose full memory cache or hard disk cache?
◆ Do I need server load balancer? Is it based on the application layer or the network layer? How can we ensure high reliability?
◆ What is the performance of your PHP code? what is the performance of the optimization tool? Where is the performance bottleneck? Do I need to write C extensions?
◆ What are the features of user access? are there too many reads or writes? Do I need read/write splitting?
◆ How to store data? What is the write speed and read speed? How does data increase and access speed reading change?
◆ How to use cache? How to consider invalidation? How can we ensure data consistency?
Where are the challenges of high-complexity systems?
◆ Can I identify the business domains? Is one or more?
◆ Can we reasonably abstract the business at a very small cost when business rules change?
◆ Is data consistency and security guaranteed?
◆ Whether object-oriented analysis and design methods are supported
All the questions listed here can be answered with certainty, indicating that you may have become an architect technically. If you cannot answer the question, you need to strengthen it in the following ways.
How to improve and break through the bottleneck
If you cannot answer the question, you need to strengthen it in the following ways:
◆ Analyze the technical principles and mechanisms behind your use, which can improve your technical judgment and correctness of your technical solution selection;
◆ Learn important knowledge, Operating System Principles, data structures and algorithms during the university period. I know that you used to take exams, but now you need to learn for yourself and let yourself know what it is;
◆ Start learning C language again, although you have already studied it in college. This is not only because you may need to write PHP extensions, but also because, in C applications, there is an environment that always cares about performance, memory control, variable lifecycle, data structures, and algorithms;
◆ Learning object-oriented analysis and design is an effective way to solve complex problems. Learning abstraction is the only way to solve complex problems.