java web全栈漫谈

原文:https://www.aliyun.com/jiaocheng/1124708.html

一个项目从需求确认到上线,生命周期其实还是挺长的。作为一般公司的话,分工是比较具体的,比如从需求分析师,产品经理,美工,前端,后端再到运维,每个工种都有,但如果要全栈的话,还是要学习不少东西。对于是全栈还是具体的职责,这个因人而异,作为一名javaweb开发人员,我谈谈自己对javaweb全栈的理解。对于上面所说的这些工种,开发人员其实只包含了前端与后端,我所说的全栈也是基于这两点,别看只有这两个,其中某一个都可以让人头很大。先来说说前端,现在的前端跟以前已经完全不同了.

随着一个项目从需求确认到上线,生命周期其实还是挺长的。作为一般公司的话,分工是比较具体的,比如从需求分析师,产品经理,美工,前端,后端再到运维,每个工种都有,但如果要全栈的话,还是要学习不少东西。

对于是全栈还是具体的职责,这个因人而异,作为一名java web开发人员,我谈谈自己对java web全栈的理解。对于上面所说的这些工种,开发人员其实只包含了前端与后端,我所说的全栈也是基于这两点,别看只有这两个,其中某一个都可以让人头很大。

先来说说前端,现在的前端跟以前已经完全不同了,随着nodejs的出现,前端的开发模式跟后端的开发模式越来越靠近,mvc的理念,项目构建工具等等都让现在的前端开发发生了巨大的变化,如果你还是在用jquery一个页面一个页面的写js,那你不妨去接触下vue,react这类前端偏向于组件化编程的框架,nodejs肯定要会用,尤其是npm,谁用谁知道。

这里补充下界面的问题,很多不管是前端还是后端的开发人员,美工不是很好(我也是),bootstrap以及其相关的模板就要收藏一些了,基本的css需要了解,有功夫的还可以掌握,这样你就算有一个比较好的web界面了。

接着说前端,现在web应用程序已经不像以前那样做成一个一个的web页面了,现在的web应用程序的趋势是做成跟pc端程序一样富有交互性的单页面应用(SPA),这样一来就可以实现前后端完全分离,采用json或其它数据格式来进行前后端通信。那么如何来构建前端应用呢,现在用的比较多的是vue或react.

这里说下react,react本身其实只是个视图,他将页面封装成各个组件然后再组装起来,只用他来做一个web app是不现实的,要完成这个工作需要react全家桶来支撑,react用来呈现界面,react-route用来做页面路由,redux(store-存放应用数据,action-执行的操作,reducer-更新应用数据自动更新组件), react-redux用来组合react,将redux的store与react组件绑定,除了这些还需要fetch等第三方工具.

vue相对于react简单,一般的项目vue也完全可以搞定了,有了这些基本就可以开发了,前面说过现在的前端开发模式已经跟后台很相似了,前端可以用nodejs起自己的服务,用webpack来进行构建。开发相对于以前也越来越便利了。es6的一些语法糖以及相关转为es5的垫片保证了这些新语法的可用性,但是浏览器兼容就有点问题了。较低的浏览器可能不支持。总之,前端开发目前是一天一个样了。

再来说后端开发,后端现在一般技术选型都是以spring为中心的,因为目前spring是实际的j2ee标准,基本都是采用springmvc作为请求处理,struts现在应该很少用了,业务层也是基于spring的事物处理,持久层目前mybatis用的多,连接池也是用阿里的多,有了这些,基本的业务代码就可以写起来了,如果有其它需求,比如权限,还可以引入诸如shiro与spring security这样的框架来支撑,spring的目前发展还是比较快的,子项目也相当多,也可以根据自身的需要引入进来。

另外,自servlet3.0后,java web的开发已经完全可以注解化开发,包括用注解替换web.xml,spring相关配置文件等等,个人不喜欢xml,比较喜欢纯java配置。这个因人而异。最后数据库基本是mysql,最近alisql也开源了,也可以试试。总之,后端开发跟着spring基本就可以了,如果要做互联网化的话,那还要有很多东西要学,模块拆分,jms,redis,dubbo等等,这里只是针对传统企业应用,个人感觉互联网话是对传统企业应用的拆分与分布式化,先弄清楚传统企业应用的架构才能在此基础上逐步把应用架构改变为互联网架构。

前端后端都好了,还缺了前后端的接口编制,目前RESTFUL算是前后端接口通信的规范了吧。

全栈会了前端与后端貌似还不可以,因为没有一套管理工具来全程服务开发,比如版本控制系统,自动化构建工具,代码审核工具,代码质量管理工具,项目管理工具,持续集成系统等,git做为版本控制还是可以的,gitlab也可以,osc上也可以建自己的git项目,自动化构建工具推荐gradle,一用就喜欢,代码审核工具我们之前用的boardview,代码质量管理工具sonar,项目管理工具redmine,持续集成工具用jenkis,最后最好部署一套自己的maven私服,这样当程序开发完成后,使用jenkis就可以一键发布应用了。

最后说点基础的东西,鄙人的基础就不太牢,对与java web开发人员来说,英语一定要能阅读,达到spring.io上的官方文档基本能看懂就可以了,不能阅读,最新的东西你可能就不知道了,只能等别人翻译的了,别人翻译的有时候真不如自己直接看原版的。其次就是比较基础的东西了,比如java基础,对各种api的掌握程度,相关规范,官方的java语言规范,servlet规范可以看看,英文好的直接上英文版的吧,web开发http协议一定要看看,java虚拟机要有了解,jvm规范可以看看,tomcat需要了解,设计模式也需要会用,这些东西是java的原点,有时间多回来看看,总会有收货的。

就这么多了吧,算是自己未来的发展方向吧,与各位java web开发者共勉,有好的见解请留言哈。

原文发布于微信公众号 - java工会(javagonghui)

原文发表时间:2018-06-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏FreeBuf

选个“靶子”练练手:15个漏洞测试网站带你飞

俗话说进攻是最好的防御,而这与信息安全世界并没有什么不同。通过这15个故意存漏洞网站来提升你的黑客技能,你会成为最好的防守者——无论你是一名开发人员、安全管理者...

3847
来自专栏知晓程序

小程序不好如何反馈或举报 / 如何清理小程序缓存 / 群通知小程序推荐 | 小程序问答 #12

之前,我们总是嫌弃微信小程序太封闭。在刚过去的几天里,小程序终于走上了开放之路:在开放「小程序第三平台」和「小程序码」后,又全面开放了「公众号关联小程序」的能力...

1241
来自专栏沃趣科技

基于Oracle的私有云架构探析(连载一)@【DTCC干货分享】

云是当今最为热门的一个话题或者说技术,在数据库界也一样,Oracle 12G这个名字不硬生生被掰弯成了Oracle 12C,数据库云在我看来能给企业带来的第一价...

4685
来自专栏FreeBuf

揭秘:Windows10预览版监视你一举一动

本月初微软在美国旧金山为其新版Windows系统举行了一场发布会,会上微软正式了宣布新一代桌面操作系统为Windows 10,居然直接从Windows 8跃迁到...

1999
来自专栏知晓程序

昨晚的微信小程序新能力,可能 99% 的人都弄错了

这次的新能力有哪些「并非如此」的「文字小把戏」呢?下面,知晓程序就带大家来仔细看看。

511
来自专栏Crossin的编程教室

爬虫+网站开发实例:电影票比价网

时常有同学会问我类似的问题:我已经学完了 Python 基础,也照着例子写过一点爬虫代码 / 了解过 django 的入门项目 / 看过数据分析的教程……然后就...

4965
来自专栏罗超频道

搜狗浏览器现罕见密码泄露漏洞,隐私安全不是矫情!

搜狗浏览器现罕见密码泄露漏洞,隐私安全不是矫情! Super今天上班在微博看到有消息称搜狗浏览器出现泄露密码的漏洞,消息源头来自卡饭技术论坛,称...

3694
来自专栏IT技术精选文摘

解密腾讯海量服务之道

一直对腾讯做产品的能力比较敬佩的,我们组做消息推送系统,而腾讯的信鸽就是我们学习的榜样。京东很多做产品的思想是跟腾讯学的,而京东很多同事也从腾讯过来的(京东合并...

7995
来自专栏喔家ArchiSelf

面向IoT的协议选择思考

对于使用传感器和保持连接性的IoT系统而言,如何使用这些元素和多种互联网技术相结合呢?

4016
来自专栏BestSDK

用心去设计产品,小细节大用处

一.用户反馈的好处 1.提高用户体验 慢慢人生路,每个产品都是一个生命,而反馈就是它的神经源,让用户体验到它的喜怒哀乐。要是没有反馈又好像一个植物人一般,或者没...

2917

扫码关注云+社区

领取腾讯云代金券