前端和后端哪个更好?

Web前端:

1)精通HTML,能够书写语义合理,结构清晰,易维护的HTML结构。

2)精通CSS,能够还原视觉设计,并兼容业界承认的主流浏览器。

3)熟悉Java,了解ECMA基础内容,掌握1~2种js框架,如JQuery

4)对常见的浏览器兼容问题有清晰的理解,并有可靠的解决方案。

5)对性能有一定的要求,了解yahoo的性能优化建议,并可以在项目中有效实施。

6)......

Web后端:

1)精通jsp,servlet,java bean,JMS,EJB,Jdbc,Flex开发,或者对相关的工具、类库以及框架非常熟悉,如Velocity,Spring,Hibernate,iBatis,OSGI等,对Web开发的模式有较深的理解

2)练使用oracle、sqlserver、mysql等常用的数据库系统,对数据库有较强的设计能力

3)熟悉maven项目配置管理工具,熟悉tomcat、jboss等应用服务器,同时对在高并发处理情况下的负载调优有相关经验者优先考虑

4)精通面向对象分析和设计技术,包括设计模式、UML建模等

5)熟悉网络编程,具有设计和开发对外API接口经验和能力,同时具备跨平台的API规范设计以及API高效调用设计能力

越来越多的趋势是MVC架构中把View和Conroller都将由前端工程师来完成。因为调用页面布局的是Controller。越来越多的One Page Website的出现也使前端工程师需要完全掌握业务逻辑,才能做出正确的动态页面。把Model交给后端工程师,因为Model负责的是确保数据的准确和性能,随着数据量和基础设备的不同,需要不同的设计,这一块是前端和用户感觉不到的。在Controller这一端,前端工程师需要知道后端设计出来的Model是如何使用的。

为了让Model这个步骤更加解耦,使前端工程师和后端工程师的工作相互独立, 创立了MVVM的架构,也就是说前端工程师设计页面,并设计他们眼中的View Model,也就是MVVM中的VM。后端工程师设计出来的Model与VM有一定的映射关系。这样双方的工作就完全独立。

所以前端不仅仅需要懂得设计类代码和js,而且需要懂得一定的服务器端代码,比如PHP,java和c#。后端工程师的技术背景更多在于算法,中间件架构,数据库,网络通信,操作系统。