web 前端 后端 开发

在我们的实际开发过程中,我们目前是这样定位前端和后端开发人员的。

1)前端开发人员:精通JS,能够熟练应用JQuery,了解CSS,并能够熟练运用这些知识开发交互效果。

2)后端开发人员:能编写Java代码、SQL语句、做简单的数据库设计、使用Spring和iBatis、了解一些设计模式等。

目前我们对前后端的要求还是比较低的,特别是后端,新员工经过培训就可以参与后端开发,没有很高的技术门槛,只需要先成为一个熟练的工人,这个阶段不涉及设计模式、架构、效率等一系列问题。

或者你可以先google一下,看看什么是web前端开发,什么是web后端开发?

Web前端:顾名思义就是Web的前端,我们这里说的前端一般都指Web前端,也就是用户在Web应用中可以看到、触摸到的部分,包括Web页面的结构、Web的视觉呈现、Web层面的交互实现等。

Web后端:后端与数据库交互,处理相应的业务逻辑,需要考虑的是如何实现功能、数据访问、平台稳定性和性能等。

我们先来看看大公司对于前后端人员招聘的要求,从这个角度来看前后端的技术要求:

Web 前端:

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

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

3)熟悉JavaScript,了解ECMAScript基础知识,掌握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、SQL Server、MySQL等常见数据库系统,具有较强的数据库设计能力

3)熟悉Maven项目配置管理工具,熟悉Tomcat、JBoss等应用服务器,有高并发处理下负载调优相关经验者优先考虑

4)熟练掌握面向对象的分析和设计技术,包括设计模式,UML建模等。

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

6)……

从几家公司的招聘要求可以看出,对前端和后端的Web开发的要求是不一样的,我们目前的情况跟这个差不多,只是在知识掌握程度和知识广度上还不够好。

首先我们在前端缺乏积累和沉淀,专业前端技术的积累是去年才开始的,同时前端缺乏支撑和高手,很难再往前推进。同时,培养出来的前端人员也比较少,一个原因是我们对前端了解的太少,另一个原因是低估了前后端工作的比例。好在这一年我们在前端进步很快,培养了几个优秀的开发人员,并且有意识地解决了前端的用户体验,这是值得欣慰的。今年,我们需要走得更远,做专。

其次我们的后端开发还不够宽广,后端知识体系比较完整,但是很多应用点没有涉及到,同时对现有的技术框架理解不够深入,过于浮躁,我们目前的设计团队对于互联网高并发、大数据存储、访问的解决经验和能力还不够,需要正视这些问题,后端技术的发展需要更加进阶,以解决实际问题为主。

最后,我们在前后端都缺乏熟练的技术工人,这会影响开发速度,也不利于后期技术的研究。

web前端和后端到底有什么区别呢?搜索了一下,找到了这么一篇文章,附上:

我们经常会把网页设计师和网页开发者混淆,但两者之间有着巨大的区别。两者的区别主要表现在:一个是关于网站的视觉或美学方面,被称为“前端”;另一个是关于看不见的编码设计,被称为“后端”。总之,漂亮的网站界面是网页设计师创造的,而强大的功能则是网页开发者的杰作……

以上只是从职能角度理解两者的区别,其实他们的不同远不止于此。为此,国外设计网站 Downgraf 特意做了一张图表,展示这两个职业的不同之处:网页设计师和网页开发者(程序员)都有胡茬,一个没钱,一个没时间;都喜欢内涵T恤,一个走字体设计,一个走代码风格;都有自己的设备,一个必须带 MacBook Pro,一个只选小键盘……除了以上不同,他们还有一个共同点:怕女生,这似乎是“宅”导致的。

让我们来看看前端设计师和后端开发人员之间更生动的区别:

Web 前端和后端开发的挑战

要成为一名高效的 Web 开发人员,我们需要做很多工作来改进我们的工作方法和工作成果。在开发过程中,我们不可避免地会遇到一些困难,从前端到后端。最近,在问答网站知乎上,有人提出了“Web 前端开发的主要挑战是什么?”和“后端开发的主要挑战是什么?”的问题。

1. Web前端开发面临的挑战

盛大Web工程师曹刘洋:前端语言的粘合性要求太强,前端必须注重可维护性

1、CSS和DOM提供的界面层次太低,BOM提供的控件只有最基本的input、select、textarea等。稍微复杂的UI效果,前端就要用CSS和DOM来组合创作。看到一个需求,脑子里第一步要思考如何用CSS、DOM等基础部分组合成最终的效果。而最终效果的实现,其实也是一个“创作”的过程。比如tabView、treeView、richEditor、colorPicker这些看似常见的组件,其实前端是没有的,需要自己去实现。

2、前端语言的粘合性要求太强。CSS、DOM、JS是三种不同的技术,也是前端知识体系中最重要的三个要掌握的基本功。服务器端编程当然也会需要不同方向的知识,比如PHP、SQL等,但服务器端编程大部分时间只需要专注于某一个知识点,必要的时候才坚守其他语言。但前端就不一样了,前端的效果最终是通过CSS、DOM、JS的结合来呈现的,没有任何技术是很难向前发展的,要时刻考虑多个方向的知识点。换句话说,服务器端编程就像是单线程,即便有技术交集也是串行的,而前端编程就像是同时运行三个线程,复杂度翻倍。

3、CSS+DOM+JS的组合非常强大,同样的效果可以用很多完全不同的方式实现,而每一种实现方式都会有不同的开发难度、扩展性、可维护性。方案太多了,看到一个效果,你首先会想到如何利用CSS、DOM中的底层接口来实现。这是一个“创造”的过程,这时候你的脑海中可能就会冒出很多不同的实现方式。“创造”之后,你还要“比较”,权衡各种方案的利弊。经过一段时间的纠结,才能选出最合适的方案。当然,并不是说前端是完美主义者,一定要选择最好的方式。而是因为前端是GUI编程,直接面对用户,是产品呈现最直接的部分,也就是门面。正因为如此,前端也是最容易被反复修改的部分。反复“修改”是多么可怕,每个程序员都知道。如果可维护性不好,那简直就是噩梦。 所以前端必须要重视可维护性,不重视可维护性就直接等于自虐。

4、浏览器兼容性。浏览器种类繁多,有IE、Firefox、Chrome、Opera,还有搜狗、傲游、360等很多带IE壳的浏览器,再加上这些浏览器的移动端版本,都需要遵循Web标准。前端大部分知识是所有浏览器都通用的,但是还是存在一些历史遗留问题,不同的浏览器问题不一样,尤其是市场占有率最高的IE系列。市面上IE有6、7、8、9四个版本,4个版本各有各的问题,如果不积累一些经验,面对棘手复杂的问题就会手足无措。

豆瓣前端工程师张科俊:前端开发的五大挑战

第一个挑战:兼容性。虽然微软已经决定安乐死 IE 6,但 IE 9/10 看起来相当标准。向后兼容似乎很容易,但向前兼容却越来越令人头痛。Android 上的 Webkit 太乱了,桌面浏览器上总有 CSS Hacks 来应对,而移动端只能考虑降级方案。从兼容浏览器(带壳的浏览器)到兼容设备,兼容性其实已经变得更加复杂。

第二大挑战:交互的复杂度。相对于现在的UI/交互要求,浏览器引擎提供的界面确实太底层了。因此今年前端技术的热点就是各种Javascript、CSS预处理器、各种MVC框架、微框架。

第三个挑战:代码可维护性。复杂度的提升直接影响代码的可维护性。随着 JS/CSS/HTML 代码的生命周期越来越长,从代码质量、架构、工具等方面保证它们的可维护性就变得愈加必要。代码的历史问题始终是一个痛点。

第四个挑战:性能。

第五个挑战:个人成长。

莫言:开发者的想法很重要

如果没有整体的设计思路,前端的开发就会变成一个个碎片化的程序,每个效果一堆代码,每个功能一堆脚本,每个需求一片逻辑。我曾经遇到过因为UE调整,整个前端代码除了核心的数据处理功能保留,其他全部修改的情况。前端的开发基本就是三个部分:DOM操作、数据处理、数据交互。如果合理分配这三个部分的功能,前端代码就很容易进行扩展和调整。他认为前端开发真正的挑战在于开发者的思维。兼容性、布局、CSS、JS都不是问题,问题在于如何合理组织语言逻辑,如何正确地抽象需求中的模块。如何用代码去处理,用代码清晰地表达思路,清晰地写注释给后续维护者一个可读的思路。前端的变更量是后端的几倍,前端没有绝对,只有根据需求不断的变更。

2.Web后端开发面临的挑战:

1. 第一个挑战,也是后端开发最重要的挑战,来自规模

规模的扩大,比如流量、文件存储、数据量、服务器数量的增加。一个前端看起来一模一样的网站,如果某一个指标扩大十倍,几乎都会面临很多问题和挑战。另一方面,规模扩大之后,后端系统架构肯定会变得更加复杂。原来只有一台服务器,一并装上LAMP,然后数据库分离,反向代理,负载均衡,分库分表,Memcache,消息队列,事务处理,CDN,NOSQL,各种架构,服务器逐渐演化而来。架构的复杂,自然会带来更多的问题,更多的挑战。

2. 第二大挑战来自安全

安全问题层出不穷,难以防范,需要技术手段和管理制度。

3. 第三个挑战来自效率

能否提供足够的处理速度、能否提供足够的带宽、能否保证响应能力是外部效率;能否使用更少的服务器、能否使用更便宜的服务器、能否使用更节能的服务器是内部效率。

4. 第四个挑战来自需求的变化

当然,无论是前端还是后端,都会面临需求变更,这对于软件开发来说是一个很大的挑战。然而,当一个系统已经稳定高效地运行,需求变更来了,在需求满足之后,原本没问题的部分却突然崩溃了。一旦崩溃,对于后端工程师来说将是一场噩梦。

5. 第五个挑战来自教条

世界上有无数的大型IT公司,他们都非常开放,愿意分享自己的架构和技术。因此,对于“心胸宽广”的后端工程师来说,难的不是如何解决,而是如何从众多的解决方案中做出选择。框架和实践不断涌现,成功案例不断涌现。别人用得好,你敢用吗?勇于尝试新事物,还是保守更重要?这个很难。

互联网评论员Neo Lee:后端开发的三条规则

1. 为失败而设计。后端代码中相当一部分不是为了普遍的正确性,而是为了在特殊或极端情况下保证系统有可接受的响应。这里面有很多权衡:渐进式改进还是超前设计?横向扩展、业务优化、前端还是后端处理?需要根据不断变化的环境和需求权衡大量的权衡,因此很容易犯错误。

2、架构讲究抽象。为什么需要抽象?因为抽象的概念适应性更强,更容易复用,也更灵活地改变。但是抽象很难,不恰当的抽象危害更大。更糟糕的是,这些并没有很好的方法论,大多是基于一套基本的原则和经验。Web 后端开发早就不重视这些了,很多网站都是以粗糙的方式设计和开发的,于是拼凑起来的结构自然成了主流。

3、架构就是产品。架构本身就是产品。一个软件产品包含不同的视角,其中最重要的包括用户视角和软件骨架即架构视角。但产品就是产品,所有这些视角必须是统一一致的。这就要求架构必须了解产品的灵魂,产品必须了解架构的难点。否则,很容易做不成想做的事情,或者以巨大的架构代价实现一个边际功能。

曾经风光无限的 JSP,为什么现在很少有人使用了?

来源 | 愚公要移山(ID:fdd_sxu_nwpu)

jsp技术作为曾经一度火爆的技术,在最近几年确实使用率越来越低了,这篇文章带你一块探究一下jsp的从生到死。

jsp技术的诞生

在很久很久以前,那时候我们的开发都是通过servlet来完成的,这个servlet是什么呢?我们先来认识一下:

servlet用Java语言编写的服务器端程序。主要功能是和浏览器进行交互,生成页面展示。

长下面这个样子:

我们可以看到前端所展示的页面,需要我们servlet去一个标签一个标签去生成,如果一个页面超级复杂,动不动几千行代码,那这个servlet效率也就太低了。而且整个servlet代码也会十分臃肿而且可读性非常差。

这时候怎么办呢?sun公司很早就意识到了这个问题,于是便倡导很多公司一块来创建了一种能够动态生成html的新技术,不久之后jsp便诞生了。有效率的解决了上面servlet所出现的问题。

jsp的发展

既然jsp技术能够解决刚刚servlet代码里面所出现的技术,我们来看一下是如何解决的:在这里我们举一个小例子,就是前端jsp向服务器servlet发送请求图书页面的功能。

首先我们看一下servlet:

我们会发现,现在的servlet没有一点html代码了。我们只需要把数据交给jsp。此时我们的页面展示就交给jsp来做了。现在我们来看一下jsp长什么样子:

这就是jsp,我们可以在html页面中写一些java代码。对于我们程序员来说,在开发当中静态的页面我们只需要用html和css写一些标签来展示即可,对于那些动态的部分我们就可以使用java代码。

那么jsp和servlet是不是就是这种协作的关系,本质上有什么区别呢?

其实jsp只是servlet的一种特殊形式,每一个jsp页面就是一个servlet实例,通俗一点的话来说:jsp就是servlet,只不过servlet把一些业务功能剥离开来交给了或者是形成了jsp。明白了吧。在我们的项目编译的时候就是把jsp编译成了servlet。

你们会发现,这样做其实挺好的,市场也验证了一切,很快jsp技术流行开来,可是随着时间的流逝,业务越来越复杂,jsp也开始跟不上时代了。

jsp的危机

我们先看一个对话场景:

java程序员:终于写完了功能,是时候在界面上展示了。

前端程序员:你功能写完了,我没有数据,在页面什么没法展示呀

java程序员:数据我写好了,你在jsp中调用XX方法就能获取了,

前端程序员:我已经在jsp中写好了这个方法,你为什么自己写了?

于是乎,无穷无尽的争吵还在继续当中。

这就是jsp的弊端,为什么呢?我们可以来总结一下:

(1)动态和静态资源放在一起,一旦服务器出现状况,前后台一起玩完,用户体验极差。

(2)一旦jsp出现了问题,就需要前端后端发开人员一块来分析解决,效率低。

(3)jsp无法使用nginx等。

(4)jsp页面复杂,难以修改。

(5)第一次加载jsp需要编译成servlet,时间久,而且业务量大的时候,jsp负担太大。

(6)jsp对于开发人员简直就是一个挥之不去的痛,太难了!!!

鉴于以上缺点,于是另外一套机制横空出世了,这就是前后端分离。什么是前后端分离呢?

前后端分离其实就是后端工程师只关注于后端页面的开发,不再处理前端问题。前端工程师只关注于自己的页面开发。需要数据交互的时候,两者会有一份接口文档。

就这样这种思想架构很快的流行开来,这也就是为什么jsp落寞的真正原因。从此java从jsp转向了restful结构,springMCV也开始流行开来,并逐渐占领了市场。前后端分离有什么优点呢?我们来总结一下:

(1)动态和静态资源分开存储。

(2)出现bug能很快定位是前端还是后端。

(3)支持nginx。在高并发状态下极其优秀。

(4)直接请求页面,不用编译,速度效率都提上来了。

(5)从此前端和后端是相亲相爱的一家人了!!!!

jsp的落幕

又随着时间的推移,jsp的时代基本上一去不复返了,因为我们又走入了移动互联时代,这时候的客户端可不是前端页面了,还包括手机、汽车、电视等等各种设备,这种情况下,前后端必须要分离了。jsp基本上彻底告别了它的舞台。

基于Java的计算机平面设计学习平台

基于Java的计算机平面设计学习平台开发概述

随着计算机技术的普及,计算机平面设计在教育领域中的需求日益增长。设计一款基于Java的计算机平面设计学习平台,能够帮助学生和教师更好地进行学习和教学,提供多样化的学习资源和实践场景,提升学习效果和教学质量。此课题在此背景下应运而生,旨在解决传统平面设计教育中的一些问题,如学习资源不足、实践机会有限等。

视频加载中…

  1. 用户需求:满足不同水平的学生的学习需求,包括初学者和有经验的用户。平台需要提供丰富的课程、教程、实例等学习资源,以及在线练习和实践功能。
  2. 教学需求:为教师提供课程管理、作业布置、学生管理等功能,实现线上教学。同时需要提供在线交流功能,便于学生与教师之间的沟通交流。
  3. 系统稳定性与安全性:系统需要保证稳定运行,数据安全可靠。同时需要保证用户隐私,符合相关法律法规要求。

数据库设计是此平台开发的关键部分。数据库需要包含以下数据表:

  1. 用户表:存储用户基本信息,如用户名、密码、邮箱等。
  2. 课程表:存储课程信息,如课程名称、描述、教师、课程章节等。
  3. 教程表:存储教程内容,如教程标题、内容、图片等。
  4. 作业表:存储教师布置的作业信息,包括作业内容、截止日期等。
  5. 交流表:存储用户之间的交流信息,如提问、回答等。

系统实现主要包括前端和后端的开发。前端采用Java Web技术,使用JSP和Servlet进行页面设计和逻辑处理。后端使用Java语言进行数据处理和业务逻辑的实现。数据库采用MySQL或Oracle等关系型数据库管理系统。系统实现的关键技术包括Java Web开发技术、数据库连接与操作技术、图像处理技术等。同时需要进行系统的测试和优化,保证系统的稳定性和性能。

基于Java的计算机平面设计学习平台开发是一个综合性项目,涉及到多个领域的知识和技术。通过此平台的开发,可以实现计算机平面设计教育资源的数字化和在线化,提高学习效果和教学质量。同时,对于开发者来说,也是一个锻炼和提高自身技能的好机会。在未来,随着技术的不断发展和用户需求的变化,此平台还需要不断地进行更新和优化,以适应新的环境和挑战。

本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com

点赞 0
收藏 0

文章为作者独立观点不代本网立场,未经允许不得转载。