I suddenly wrote a sentiment: I feel like I can’t stay in some companies for long. If you stay for a long time, your skills will not improve. Past experiences are stored in the brain database, and people make judgments based on the information already stored in the brain database, so thinking patterns are easily affected by the past.
If you want to improve your technology when working in PHPer, you can’t stay in two types of companies for a long time: one is a website construction company. The second category is companies that take project orders to make a profit. Like software outsourcing companies.
1. About the website construction company.
When I went for an interview with a company before, it was a website construction company. I told my boss face to face that I said I could stay in the company, but I couldn’t stay for too long. Technology is difficult to improve. An opportunity to improve technology is wasted.
My classmate A and I also advised a classmate that if you have worked in this kind of company before, you should not continue to look for a job in this field. This will make it difficult for your skills to be qualitatively improved. Find a company that operates the website. This way technology improves quickly.
Website construction company, the company helps people build websites, website planning and marketing as its source of profit. Building a website usually costs more than 1,000 yuan, sometimes several thousand yuan more. From a technical point of view, when building this kind of website, you don’t need to consider performance when writing code. Originally, this kind of website only has simple functions. Focus on realizing functions for customers. As for code scalability and code performance. SQL optimization, no need to consider at all. One reason is that the number of visits to this kind of website function is very small, let alone concurrent visits. For example, a website construction company receives an order to help a large company build an internal office system. Since it is an internal application, it is usually used by employees to improve efficiency. There are very few visits. A company has thousands of employees (this kind of company is already very large), and internal systems are generally not developed for outsiders. Budgeting a few thousand to visit is a lot. At the same time, the possibility of concurrent access by a thousand employees is too small. Regarding PV, unlike social networking websites, users of the system go to the website every day and click here and there. The pressure on the server and database is indeed not small. For this type of system, because concurrent access and access volume are very small, when designing the system, it is impossible to consider server performance and database performance. You can consider it, but I think at least there is no need to consider it. No sense. The sql statement should be the simplest. No optimization is required. Once all the functions in the system are implemented, it will be ok. It's purely about code proficiency.
The Internet system is an open system, and its development is accessible to everyone, and the number of accesses is uncertain. exposed to the outside world.
As an external service, the website must provide stable and uninterrupted services. If the program reports an error while the user is using the website, the website is unstable and the user will be lost.
The above two factors determine that the technology involved is more complex.
If it is a website operated by your own company, you have to consider all aspects. 1. You have to consider server security. 2. Because it is open to all users (you always hope that the more users you can access, the better, so as to generate commercial value). It is necessary to consider how this system handles a large amount of traffic. 3. Whether the database can withstand it. What kind of server should I choose?
The characteristics of web applications are that they are open to all users, which means more data and concurrent access.
The advantages and characteristics of the php language are used for web development. Therefore, as a web development expert, the focus is on the deployment of high-performance website architecture, how to improve the user access speed of the website, how to deal with large amounts of database data (database performance optimization, SQL optimization, database architecture deployment, data segmentation, etc.), how to deal with large amounts of data, etc. Concurrent access, etc.
After doing traditional software development, after transitioning to web development, the focus is different. For example, in a certain company, the technical manager used to do C++ development. It's a foreign-funded software company, so their development process is very standardized. Developed project by project. But after arriving at a company that makes web applications, his skills seemed to be stretched thin. Because our mobile website had a lot of traffic at the time (we could invest in advertising if we had money), the number of orders per day remained at 3k-4k. The amount of access is large, and the amount of data processing is also large. The database crashes from time to time. Especially when it comes to the backend, we need to do data statistics for the marketing and marketing departments. This often freezes the backend by accidentally clicking on it (the amount of data is too much, the functions are not planned well, and it consumes database performance), so many statistical functions can only be used reluctantly. How can the marketing department dare to go to the backend when there is nothing wrong? Click.
At the same time, I also encountered that the front-end data access speed was not fast enough. Of course, the boss thinks why the competitors are so fast. However, the technical manager spent the whole day and worked overtime without figuring out where the performance bottleneck was (I used to conclude that we need to find bottlenecks to solve the speed problem, http://www.cnblogs.com/wangtao_20/archive/2012/05/10/ 2493899.html), so I tried many things but couldn’t solve it.
In fact, in web development, if you want to improve website performance, you need to know some knowledge about disks and server hardware (such as memory, CPU, and how to expand nodes). The knowledge points focused on are different from those of traditional software development.
Each technology has its own characteristics. PHP development and asp.net development are the same language, but the focus is different.
I feel that doing PHP is very different from asp (or asp.net) development. Asp.net Microsoft is powerful, has many functions, and good tools have already solved it for you. It saves a lot of things for those doing .net development. Another point is that since the Windows series itself, Microsoft avoids source and does not develop it. Therefore, only Microsoft knows the internal structure best. Closed things always have bottlenecks and are difficult to expand further. So if your website has a large number of visits and cannot solve it with your own technology, you must modify the bottom layer or improve service performance. Because Microsoft has closed the system for commercial reasons, you cannot and do not have the ability to modify the bottom layer. At this time, things have hit the ceiling. They usually spend money to buy services from Microsoft. That is what Microsoft does, not what .net programmers should consider. The amount of data in Jingdong Mall is so huge, that’s what it looks like. It has money.
In the Linux environment, the entire operating system is not only free and open source, but if you feel that the performance has encountered a bottleneck, you can do customized development on it yourself. Everyone's wisdom is always greater than the wisdom of Microsoft alone.
So, using PHP language to do web development requires more things to understand and learn. Generally, php+mysql is the most popular choice among small and medium-sized companies (large companies use Oracle if they have money. For example, Alibaba's main database is still Oracle, and they also use mysql. After all, mysql is free, and large amounts of data are stored through many mysql node clusters. Effect). Therefore, if you want to improve the performance of your website, you are not limited to how to use the MySQL database. But how to optimize and improve the performance of mysql. For example: master-slave structure, distributed mysql structure, data segmentation, etc.