What are the main challenges facing web development?

Source: Internet
Author: User

 

[Discussion] What are the main challenges facing web development?

| 2175 times |
Source: csdn-compiled zhihu.com [eight comments already exist] and commented on it

Keywords: development, web |
Author: Xia mengzhu |Add this information to favorites

Introduction: to become an efficient web developer, we need to do a lot of work to improve our work methods and improve our work results. In development, it is inevitable that you will encounter some difficulties, from the front-end to the back-end. Recently, on the Q & A website zhihu, someone throws"What are the main challenges for Web Front-end development?AndWhat are the main challenges of backend development?The csdn software development channel organized the content of this article for your convenience.

I. Challenges Faced by Web Front-end development

Shanda web EngineerCao Liuyang: The glue requirement of the front-end language is too strong. The front-end must pay attention to maintainability.

1. CSS and Dom provide a low level of interface, while BOM provides only the input, select, and textarea controls, which are the most basic and slightly more complex UI effects, both the front end and the Dom must be combined and created by the front end. Seeing a requirement, the first step in my mind is how to use CSS and Dom to combine the basic parts into the final effect, which is actually a "creation" process, such as tabview, common components such as Treeview, richeditor, and colorpicker are not ready-to-use in the front end and need to be implemented by yourself.

2. Front-end languages require too much glue. CSS, Dom, and JS are three different technologies, which are the three most important basic skills to be mastered in front-end knowledge systems. Server-side programming also requires different knowledge, such as PHP and SQL. However, server-side programming only focuses on a certain knowledge point for most of the time. If necessary, stick to other languages. However, the front-end is different. The effects of the front-end are finally presented through the combination of CSS, Dom, and JS. It is hard to get rid of any technology. You must always consider multiple knowledge points at the same time. In other words, server-side programming is like a single thread, even if there is a technical gap, it is also serial, and front-end programming is like running three threads at the same time, the complexity is doubled.

3. the combination of CSS + DOM + JS is too powerful. The same effect can be implemented in a variety of different ways, each of which has different development difficulties, scalability, and maintainability. There are too many solutions. When we see an effect, we first think about how to implement it using the low-level interfaces in CSS and Dom. This is a "creation" process, at this time, there may be a variety of different implementation methods in your mind. After the "creation" is complete, you need to "Compare" and weigh the advantages and disadvantages of various solutions. After a long tangle, you can select the most suitable solution. Of course, not the frontend is perfectionist, You must select the best method, but because the frontend is GUI programming, directly oriented to users, the most direct product presentation part, and the facade. Because of this, the front end is also the most easily modified part. How terrible it is to repeatedly "modify" is that a programmer understands it. If the maintainability is poor, it would be a nightmare. Therefore, the front-end has to pay attention to maintainability and does not pay attention to maintainability.

4. browser compatibility. There are many browser types, including IE, Firefox, chrome, opera, and many Internet Explorer Shell browsers, such as sogou, aoyou, and 360, plus the mobile terminal versions of these browsers. Web standards are required. The majority of front-end knowledge is applicable to various browsers, but there are still historical issues. Different browsers have different problems, especially the IE system with the highest market share, internet Explorer has four versions on the market, namely, 6, 7, 8, and 9. Each of the four versions has its own problems. If you don't have some experience, it's confusing to face the intractable diseases.

Douban front-end engineerZhang kejun: Five challenges for front-end development

Challenge 1: compatibility. Although Microsoft has decided to stop IE 6, ie 9/10 looks quite standard. Backward compatibility seems easy, but backward compatibility is getting more and more headaches. The WebKit on Android is so messy that CSS hack can always be flat on the desktop browser, but only degradation solutions can be considered on mobile. From compatible browsers (with a shell browser) to compatible devices, compatibility actually becomes more complex.

The second challenge: complexity of interaction. Compared with the current UI/interaction requirements, the browser engine is indeed too low-level. So this year's top topic in front-end technology was the discussion of various JavaScript, CSS preprocessors, various MVC frameworks, and microframeworks.

The third challenge: Code maintainability. The increase in complexity directly affects code maintainability. The lifecycle of JavaScript/CSS/html code is getting longer and longer, so you need to ensure the maintainability of code quality, architecture, and tools. The historical issue of code is always a pain point.

The fourth challenge: performance.

Fifth challenge: personal growth.

Internet commentatorMo Yan: Developers' ideas are very important.

Front-end development, without overall design ideas, will become a fragmented program, a pile of code with effects, a function script, a requirement piece of logic, I have encountered a situation where the entire front-end code is retained except the core data processing function due to ue adjustment. The front-end development is basically in the DOM operation, data processing, and data interaction. If the three functions are allocated properly, the front-end code can be easily expanded and adjusted. He believes that the real front-end development challenge lies in the developer's ideas. Compatibility, layout, CSS, and JS are not a problem. The problem is how to properly organize the Language Logic if the required modules are correctly abstracted. How to use code processing, clearly use code to express ideas, clearly write comments, and give the maintainer a readable idea. The number of front-end changes is several times that of the back-end. The front-end is not absolute, and only the changes that follow the demand will not stop.

Programmer, head of pinju.com frontend, author of kindeditorLuo ronghao:

Challenge 1: Address browser compatibility, various browsers, different versions, and different operating systems.

Challenge 2: optimization of performance, mainly Dom, requires a lot of skills.

Challenge 3: Design and interaction, often tossing over and over for a UI detail.

Challenge 4: Be patient. I work very well at the front-end of Internet companies in China. I often wipe my ass for others, but I don't pay much attention to it. What I stick to is cool.

Internet commentatorNeo Lee: The biggest challenge lies in browser standards

The main problem with Web Front-end development is that this is a fast-changing field and may have been updated as soon as it is precipitated. However, since Yahoo proposed the concept of front-end engineering, it can be said that it has opened up a new situation by introducing some mature ideas in software engineering into the Web Front-end field, some important concepts have gained wide attention and practice, such as architectural design, quantitative analysis, and browser compatibility matrix. I can see that the biggest challenge is the foundation of Web Front-end, that is, browser standards. The Web Front-end must be presented to the end user based on the browser, and the interaction is also heavily dependent on the basic components provided by the browser. The current browser situation is basically not a slow solution, but a more complex one, this is too high for developers. Of course, the cross-browser code framework is also developing very quickly, but it is still a basic standard that is effective and flexible.

Ii. Challenges for Web backend development:

Shanda Innovation Research Institute researcher
Zhuang tabwei: Scale, security, efficiency, demand, and dogma

1. The first challenge is backend development. The most important challenge comes from scale.

Scale up, such as traffic, file storage, data size, and server quantity. If a website looks exactly the same as a front-end, if a certain indicator is increased by ten times, it will almost face a lot of problems and challenges. On the other hand, the backend system architecture will be complicated after the scale is expanded. Originally, there was only one server, and lamp was installed together. Then the database is divided out, reverse proxy, Server Load balancer, database/table sharding, memcache, message queue, transaction processing, CDN, nosql, various architectures, and servers are gradually evolved. The complexity of the Architecture naturally brings more problems and more challenges.

2. The second challenge comes from security

Security issues are constantly emerging and cannot be prevented. Technical means and management systems are required.

3. The third challenge comes from efficiency.

Whether the processing speed is sufficient, whether the bandwidth is sufficient, and whether the response capability is guaranteed is external efficiency. Whether fewer servers can be used, whether cheaper servers can be used, and whether more energy-saving servers can be used is internal efficiency.

4. The fourth challenge is demand change.

Of course, both the front-end and backend will face changes in demand. As long as it is software development, this is a big challenge. However, when a system is stable and efficient, the demand changes. When the demand is met, will there be a sudden crash if there is no problem, this is the nightmare of backend engineers.

5. The fifth challenge comes from the dogma

There are countless IT companies in the world who are very open and willing to share their own architectures and technologies. As a result, the difficulty for backend engineers who are "open-minded" lies not in how to solve the problem, but in how to make choices from numerous solutions. Frameworks and practices are constantly emerging, and successful cases are also emerging. Are you sure you want to use it? Do you have the courage to give it a taste or be conservative? This is hard.

Internet commentator
Neo Lee: three rules for backend Development

1. Design for failure. A considerable proportion of the back-end code does not exist in general for the correct situation, but to ensure that the system can accept the response in special or extreme situations. There are a lot of trade-offs: Gradual improvement or advanced design? Horizontal scaling, business optimization, front-end or background processing? A large number of trade-offs are weighed based on the changing environment and needs, so it is easy to make mistakes.

2. architecture is about abstract. Why abstract? Abstract concepts have better adaptability, easier reuse, and more flexible adaptation to changes. However, abstraction is very difficult. Inappropriate abstraction is even more harmful. What's worse is that these are not good methodologies, most of which rely on a set of basic principles and are made based on experience. The Web backend development has not paid much attention to this for a long time. Many websites have been designed and developed extensively, so the patch stack patch structure has become a mainstream one.

3. architecture is product. The architecture itself is a product. A software product contains different perspectives. The most important aspects include the perspective that the user sees and the perspective that the software skeleton is the architecture. However, products are products. All these perspectives must be unified and consistent. Therefore, the architecture must understand the soul of the product, and the product must understand the difficulty of the architecture, otherwise, it is easy to see the tragedy that the things you want to do cannot be done or a corner feature is implemented at a huge cost of architecture.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.