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爬虫Get校花网所有美女图片,附源代码
Java编程新手入门要多久
Java程序员如何学习架构
Java基础第一阶段知识点,招实习的面试官都在问这些
戳二维码关注java工会获取更多技术干货
不可错过的技术公众号
呵呵
md
java web全栈漫谈相关推荐
- java web全栈_web全栈java开发哪个前景好
展开全部 全栈和java哪个能更好62616964757a686964616fe58685e5aeb931333365633862迎合市场需求,有同学咨询学习哪个在以后前景和工作薪水上能更吃香,首先我 ...
- java web全栈工程师(从零开始)
一,前端 1,html:超文本标记语言,用来构建网页的框架 2,css:用html直接写出来的页面太丑,就需要css来排列下html元素,美化下颜色,形状等 3,javascript:用css美化完了 ...
- 【新年礼物】阿里资深p8教你学习Web全栈架构师!
2017年,互联网行业风起云涌,IT工程师如果仅凭传统开发思维,无法突破固有知识体系,终将会被社会所淘汰.会跨平台混合应用开发.微信小程序.Web应用.pc以及手机炫酷网页的HTML5全栈开发工程师应 ...
- Web全栈架构师到底会些啥?凭什么年薪30万以上?
2017年,互联网行业风起云涌,IT工程师如果仅凭传统开发思维,无法突破固有知识体系,终将会被社会所淘汰.会跨平台混合应用开发.微信小程序.Web应用.pc以及手机炫酷网页的HTML5全栈开发工程师应 ...
- web全栈架构师所需技术栈_统一架构–一种构建全栈应用程序的简单方法
web全栈架构师所需技术栈 Modern full-stack apps – like single-page apps or mobile apps – usually have six layer ...
- 轻量级 Java Web 服务框架漫谈
博文太长了, 还是先说下概要: 框架"轻量"与否可以从两方面来看待: 1) 框架本身的体量 - 例如小 jar 无依赖的苗条框架; 2) 用户使用框架是否获得各种便利而无阻隔(&q ...
- 开课吧python全栈靠谱么-杭州Web全栈
Web全栈招生简章 开课吧简介 开课吧,中国有口皆碑的互联网人学习平台,为互联网从业者及潜在从业者提供O2O职业学习.就业.职业成长服务,让学习者收获互联网从业技能和能力,从而实现从"校园& ...
- Web全栈工程师技能树梳理
FSE-SKILL-TREE Web全栈工程师技能树梳理 各个分支正在细化中,欢迎Star.PR. 点击链接加入群[Web全栈QQ群]:https://jq.qq.com/?_wv=1027& ...
- Web全栈工程师到底是个什么鬼?为什么Facebook声称:“我们只招全栈工程师!”
全栈工程师(Full-Stack Engineer),是一个在IT行业圈子里越来越热门的话题,无论是像Facebook这样的大型公司,还是刚刚起步的初创公司,都开始招募全栈工程师.据说,Faceboo ...
最新文章
- Widget上实时刷新图片,造成anr问题
- 某程序的bug是什么意思?
- vue,一路走来(14)--短信验证码框的实现(类似支付密码框)
- oracle正确维护归档,转载:ORACLE正确删除归档日志的方法
- boost::python::tuple相关的测试程序
- 细说C#多线程那些事 - 线程同步和多线程优先级
- QT: 使用qtchooser修改ubuntu默认的qmake版本
- python在函数外调用变量
- eclipse使用小技巧
- spyder中绘图无法显示负号_Python绘图--时序图
- 02.vs2015编译qt动态库
- 圣诞节PPT模板制作技巧分析
- Spectrum采集卡在飞行时间质谱中的应用案例
- 发生异常: ModuleNotFoundError No module named ‘XXXX‘可优先尝试的解决方式
- 打印水仙花数,并统计个数 java 代码
- 华为双系统手机可以刷成单系统_华为手机双系统,1部手机能当2部用,打开3秒就能切换,真厉害...
- [HSI论文阅读] | HybridSN: Exploring 3-D–2-D CNN Feature Hierarchy for Hyperspectral Image Classification
- 解决ZeroDivisionError: integer division or modulo by zero问题
- R语言导入数据文件(数据导入、加载、读取)、使用read.table函数导入逗号分割文件CSV(Comma Delimited Text File)
- 3原色对照表.....