Web开发之三:前后端开发任务量分析与⽐较
这⼀年来的项⽬,⽆论是个⼈中⼼、⽂库还是学科测评,每次都会被⼀个问题所困扰,那就是如何估量前后端的任务量、如何确定前后端的⼈员⽐。
在采⽤分⼯模式之后,经过两个项⽬的开发,和⼤个、阿黄、建坤可以明显的感觉到前端开发在整个项⽬中耗时最多,但是究竟占多⼤的⽐例,我们却没有仔细的去思考。每次项⽬安排⼈员,前后端⼈员⽐⼤致为1:1,这明显是不合适的,所以在项⽬后期,后端⼈员要么闲下来了,要么硬着头⽪去写⾃⼰不擅长
的前端代码。这些都是当下存在的问题,经过学科测评的开发,我们开始正视这样⼀个问题,⽽⾃⼰也参与了这次前端的开发,抱着“不⼊虎⽳焉得虎⼦”的⼼态,从中去体会前端开发的⼯作量、试图去发现前端开发耗时的地⽅,希望通过项⽬结束后的反思,从⽽在下次的开发前能够对项⽬做出合理的进度预估、⼯作量预估、⼈员配⽐预估。
从四个⽅⾯来展开今天的话题吧,前后端开发任务量分析与⽐较。⼀个项⽬从需求阶段原型的反复修改到确认,再到最后的软件开发完毕。抛开原型和静态页⾯的制作过程,单说前端交互的开发以及数据的展⽰,这个在项⽬中看似冒不起眼的,与核⼼业务不相关的开发,究竟在项⽬中占据多少时间呢?20%:哥
们⼉你太逗了,没做过前端开发吧?40%:哥们⼉,你有些靠谱了。60%。哥们⼉,这是正常⽐例。哈哈,还是看看下⾯的阐述吧。
⾸先,项⽬开发中前后端各⾃的任务都包括哪些?
前端:
1)交互效果:如提交⽅式、删除和更新数据的⽅式、获取数据⽅式、消息提⽰⽅式等。
2)表单校验及提交、选择框、层的显⽰与隐藏、动态菜单效果等
3)数据的获取及展⽰
4)JS脚本编写
5)考虑前端框架、考虑浏览器兼容性、考虑跨域请求等各种问题
6)如果没有原型,还要⾃⼰写样式、写表单、调整界⾯布局等...
后端:
1) 数据的录⼊与存储,也就是持久层的⼯作
2)业务流程的实现,也就是业务层的⼯作
3)基于业务层的单元测试
前后端:共同定义接⼝(包括传⼊参数、传输数据格式等)
从以上的⼯作量可以看书,后端的⼯作是相对有规律的、集中的⼯作,⽽前端的开发则有这么⼏个特点:⼯作繁琐、芜杂;⼯作量的⼤⼩需要看别
⼈“眼⾊”,如果没有准备原型和静态页,就要⾃⽴更⽣;需要兼容多种业界标准(浏览器的争端)。
其次,项⽬开发中前后端各⾃耗时的地⽅?
前端:
1)各种互交互效果的实现与测试
2)浏览器兼容性的测试
3)页⾯样式细节的调整
web后端是指什么5)JS脚本的编写
4)复杂交互效果的设计与实现
后端:
1)单元测试:如果进⾏完备的单元测试的话,这个会⽐较耗时
2)复杂功能的设计与实现
在这次项⽬的开发中,个⼈感觉在编写JS脚本时,耗时多些,因为不太熟练,同时在样式调整,复杂交互效果的实现上,都耗时较多。太过于琐碎。
再次,前后端开发任务量分析及⽐较?
从以上的两段内容来看,前端确实较后端更耗费时间,这是不争的事实,随着公司对于⽤户体验度越来越重视,对前端的要求会更多,对前端的标准也会更⾼。
前端开发,⾊系搭配、内容展⽰、页⾯布局这些是UI设计师考虑的,⽽程序员做的就是上⾯列举的那些。⽽后端代码⽬前⼤部分都是⾃动⽣成的,基于这样⼀个事实,后端(Java/Sql语句)与前端(HTML/JS/CSS)的⼯作量⽐应该在1:2--1:4之间,⽽耗时⽐应该在1:3--1:7之间。也就是说⼀个项⽬,⽆论⼤⼩,
前端的耗时在整个开发过程中,⼤约会占到60%左右的时间。
1)后端的代码是⼀下⼀⼤⽚,基于⼀个模型,将它的CRUD全部完成。前端的代码是⼀次⼀个,⼀个⼀个页⾯挨着调试。
2)后端的代码⽬前是automatic generation,前端则是hand code.
3)后端的代码只要业务逻辑确定,就可以埋头开发,⽽前端则对UI的依赖较⼤。
最后,⾯对这种时间⽐,我们该如何做?
基于以上的分析,我们明确了前后端的⼯作量以及时间⽐,明确了开发过程中前后端各⾃耗时的地⽅,就可以做针对性的改进:
项⽬⼈员配置:在项⽬⼈员配置上,当前我们是1:1的配置,需要调整,从1:1调整到1:2或者1:3,虽然前后端耗时⽐在1:5左右,但是⽬前的⼈员达不到这个要求,⽽且,给⼀个后端⼈员配备5个前端,有可能会适得其反。兵不在多在精,更注重配合。
项⽬开发模式:调整开发模式,当前的模式存在问题,前后端开发时间不同步,这个在下⼀篇提到。
项⽬准备:在开发之前,尽可能的确定需求,最坏的情况下,UI设计师能够把主要的静态页⾯设计完成,后续的可以继续开发。同时,避免程序员⾃⼰去组织页⾯。
前端技术:
1)在开发之前培训前端技术,争取参与的每个⼈都是熟练⼯种,这是项⽬速度和质量的保证。
2)引⼊成熟的js框架,如JQuery、ExtJs,类似于表单校验、弹出框等的都采⽤成熟的。
3)组件化的思想。我们这次在讨论中也提到了这些,例如使⽤JQuery的表单校验、Jquery UI、Chat等。前端的代码及开发也往⾃动化上靠拢。
4)使⽤多浏览器测试⼯具,简化前端测试
后端技术:
1)优化代码⽣成⼯具,最⼩化的减少⼈⼯修改过程
2)在耗时的单元测试上进⾏培训,如果有效的测试,经过严格测试后的代码,才不会在后期返⼯。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论