开发者社区> 异步社区> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

专访杨开振:程序员除了敲代码还能做什么?

简介:
+关注继续查看

7056db5d17e41f149065e95d9e23950b

2df8560d7f4dac94bccc7e88a74cb6be

杨开振《深入浅出Spring Boot 2.x》作者

当前互联网后端开发中Java EE占据了主导地位。对于Java EE开发,首选框架和事实标准是Spring框架。在传统的Spring开发中需要使用大量的XML配置才能使Spring框架运行起来,这备受许多开发者诟病。随着Spring 4.x的发布,Spring已经完全可以脱离XML,只使用注解就可以运行项目。近两三年里,互联网世界掀起了“微服务”热潮。“微服务”将一个大的系统拆分为多个子系统,然后通过REST风格的请求将它们集成起来,进一步简化了分布式系统的开发。

为了进一步简化Spring的开发,2014年Spring Boot诞生了,它是一个由Pivotal团队提供的全新框架,其设计目的是简化Spring应用的搭建以及开发过程,并迎合时下流行的微服务思维,越来越多的企业选择了Spring Boot。随着2017年9月Spring 5.x的推出,2018年Spring Boot也推出了2.x版本,进入2.x版本时代。

基于这样的趋势,杨开振老师在完成前两部著作后,收到许多的读者、前同事和业内朋友的建议,他们希望创作一本关于Spring Boot的书,来给需要学习Spring Boot的从业人员提供参考,这就是创作《深入浅出Spring Boot 2.x》的缘起。有幸采访到杨开振老师,下面来听听他的所思所想。

1.异步社区:尽管不少读者可能看过您之前出版的书,来异步社区做客还是第一次,请您与异步社区的读者打个招呼,简单介绍一下您自己? 

杨开振:大家好,我叫杨开振,我2006年大学毕业,十多年来一直从事Java EE开发,现在改称Jakarta EE了,只是叫Java EE习惯了,我还是沿用Java EE吧。我主要是在做金融领域业务开发,也维护和开发过企业的ERP系统,还接触过移动互联网网站后端的开发等。我担任过技术经理和项目经理等要职,还主导过项目的开发。我接触Java EE是从需要自己搭建后台框架的开始,后来就开始接触框架技术,比如Struts(1和2)、iBATIS、Hibernate和EJB等老框架和技术,也玩过JavaScript、jQuery、EasyUI、 Extjs等前端技术,后来Sprng、Spring MVC和MyBatis兴起了,于是它们就成了我创作的方向。相信大家认识我也是从《深入浅出MyBatis技术原理与实战》和《Java EE互联网轻量级框架整合开发 SSM框架(Spring MVC+Spring+MyBatis)和Redis实现》这两本书开始的。

2.异步社区:很多作者都说写书苦,写书难,您写了好几本书,那您觉得您写作的动力是什么?写书带给您的最大收获是什么? 

杨开振:我当前选择了从事自由职业,主要是创作技术书籍和做在线教育,所以写书就是我的职业,而实际上做任何一份职业要做好其实都挺难的,写书难,难道做企业开发就不难吗?既然选择了这条路,就要继续下去吧。最大的收获有两方面吧,一方面是写书可以有相对固定稿费收入,毕竟自由职业首先需要考虑的是生计问题;另外一方面是重新整理和收获知识,在创作的时候,我会回顾自己工作时用过的技术,研究它们的原理,看看有没有办法用得更好,不断的地研究和总结,这样往往会有意外的收获。

3.异步社区:您创作《深入浅出Spring Boot 2.x》这本书的初衷是什么?市面上已经有几本Spring Boot的书了,为什么您还会写这本书?这本书与其他书的最大区别是什么?

杨开振:因为我一直从事Java EE开发工作,是传统的Spring开发者,而最近几年Spring Boot引导的微服务异常火爆,渐渐成为Spring开发的主流,加上结合Spring Cloud可以快速搭建分布式系统,在我从事自由职业前,最后一个项目也是使用Spring Boot进行开发的,觉得它使用起来也十分简便,也喜欢这样的方式,所以我就打算创作一本属于我自己的Spring Boot的书。市面上确实有了其他Spring Boot的书,但是我觉得只要结合自己多年的实践经验,考虑企业所需,我还是可以做得更好的,所以我依旧选择了这个方向。我这本书的最大特点是结合Spring原理来介绍Spring Boot的知识,毕竟也很多使用者会抱怨使用Spring Boot后,出现异常后查找问题比较困难,但是只要你懂Spring原理,处理Spring Boot遇到的问题大部分都不会太困难,这本书很多时候是从这点出发进行考虑的。

4.异步社区:《深入浅出Spring Boot 2.x》这本书写作期间遇到了什么困难吗?听说这本书第一次交稿后没有马上出版,您又花了很长时间更新了一版,给大家讲一下这背后的故事?

杨开振:这本书的创作比创作接近700页的《Java EE互联网轻量级框架整合开发 SSM框架(Spring MVC+Spring+MyBatis)和Redis实现》还要困难。原因是Spring Boot的版本一直变化,从开始创作这本书的时候,开始版本是1.5.4,到第一次交稿是1.5.9,在快要定稿出版的时候,Spring Boot又正式更新到了2.0.0 GA版本,我和本书的责任编辑杨海玲老师商量后,决定将Spring Boot的版本更新到2.x以上的版本,毕竟这是未来的趋势,这就是为什么第一次交稿并未出版的原因了。创作这本书的第二个困难是可以参考的资料十分少,毕竟是Spring Boot版本刚更新,文章和资料少得可怜,所以只能自己去“踩坑”和研究源码了,所以花费的时间和精力都比创作前两本要大得多。

5.异步社区:2017年9月Spring 5.x的推出,2018年Spring Boot也推出了2.x版本,进入2.x版本时代。您觉得2.x的优势是什么?

杨开振:Spring 5.x的亮点推出了新的无阻塞框架WebFlux,并且融合了最近Java 8到Java 9引入的新技术,如Lambda表达式、模块化等的最新的思维,这些应该是未来Java的方向。Spring Boot 2.x是基于Spring 5.x的,所以首先继承了Spring 5.x的优点,其次是完善了Spring Boot 1.x的功能,所以它也是未来的方向。

6.异步社区:您最想将《深入浅出Spring Boot 2.x》这本书推荐给谁看?您觉得最能从本书中获得收益的是哪些人?

杨开振:要学习这本书需要先掌握Java和Java EE基础和数据库原理(SQL),如果需要使用Redis和MongoDB的话,也需要读者自行学习这两个NoSQL数据库。整体来说,本书适合Java互联网后端开发人员,从传统Spring 项目转向Spring Boot和Java微服务开发的开发人员都可以从中获得收益。

7.异步社区:对于《深入浅出Spring Boot 2.x》的读者,在如何学习和如何阅读本书方面,您有什么建议?

杨开振:我只能说因人而异。如果是初学者建议掌握好Spring的IoC和AOP、数据库编程、Spring MVC流程和常用的开发知识等基础内容,对他们来说而这些工作中使用最频繁的,也是在面试的时候被问得最多的。如果是已经洞悉了Spring的有经验的开发人员,那么就可以根据自己的需要学习了。又或者你在做项目,也可以根据自己感兴趣的内容来学习,毕竟并不是所有的技术都用得上。

8.异步社区:本书配套了大量的免费视频,您将这些视频免费的出发点是什么呢?

杨开振:免费视频的推出,主要是帮助新手,毕竟很多新手看书会卡在某个点上,而得不到解答,也许看了言传身教的视频课程后效果会更佳,毕竟有一个直观的感受,很多人也许会茅塞顿开。从我个人来说也可以帮助自己提高讲课的技巧,毕竟我自由职业的方向是技术书籍创作和在线教育。关于本书我也开了淘宝课程(http://i.xue.taobao.com/detail.htm?courseId=98159),采取技术入门课程一律免费,而深入企业级的才需要收费的形式来帮助大家,这样大学生和初学者就可以得到免费课程的帮助了,毕竟一些机构的培训费价格也是不菲,来我这里入门的课程就全部免费了。

9.异步社区:您目前成为自由职业人,全新投入在淘宝教育平台上开发Java EE互联网相关的在线培训课程,是什么促使您下这样的决心?培训和写书的感受有什么不同?哪个对您的影响更大?

杨开振:我看到了很多人投身在线教育行业,而写书也会给我带来一定的名气,这样是相辅相成的,也能帮助到更多的新人,我的一位前同事辞职去从事在线教育也很成功,所以更加坚定了我走这条路。培训在于角色转换,我目前只是尝试阶段,很多还不太适应,加上目前还不算成功,所以影响更大的应该是写书,能谈的培训方面的东西还比较少,所以就不展开讨论了,等将来做起来了,有更多的心得了再谈这个问题吧。

10.异步社区:经过这么多年的工作积累,您对计算机编程的感觉是否还如当年一样热衷?如何在繁重的工作压力下,保持初心呢?

杨开振:我对计算机编程还是很热衷的,主要是新技术。我目前研究分布式系统,主要是Spring Cloud微服务,也打算在这方面创作。其实工作繁重的时候真的没有时间去研究技术,只能在工作不繁重的时候研究新技术。保持初心也是因人而异吧,我是保持一种好奇心和职业所需,所以总想研究一些新的技术,也有些人是因为解决工作需要,所以每个人的方式会不一样,找到适合自己的就可以了。如果发现自己没有这个动力了,换个行业也是可行的,我的朋友也有不少是这样的,也挺成功的。

11.异步社区:对于刚刚入门的技术新人,您有哪些建议和经验可分享?

杨开振:对于入门的新手来说,我个人建议学好Java基础,Java EE技术这些是入门的基础,然后是学习Spring IoC和AOP、数据库编程等,关于Spring内容的均可以参考我的免费课程。从我QQ群里接触的新手来看,大部分新手存在4个问题是比较严重的。

第一个是眼高手低,很多读者告诉我两周或者一个月看完了我的《Java EE互联网轻量级框架整合开发 SSM框架(Spring MVC+Spring+MyBatis)和Redis实现》,我直接回复他,那么就等于没有看过,因为学习编程是实践的科学,没有实践过只是看过的一律归结为零,你不会知道这其中很多的细节和精妙之处。

第二个不能正确地对待错误,在遇到错误或者异常时,很多新手会过于沮丧,然后选择放弃或者依靠他人。在我的读者群里,经常有人不加思索地问问题,其实这些是错误的方式,当你发生错误或者异常的时候,首先要做的是看异常日志定位问题,其次是进行调试,通过监控变量来定位是哪一步走不通,而不是直接丢给所谓的某个高手,学会定位错误比正确的方法更为重要,因为正确的方法是“鱼”,而定位问题的过程是“渔”,要知道“授人鱼不如授人以渔”。而事实上,在我录制的视频课程中,也向大家展示了我的错误,我并不介怀这些事情,因为我也是凡人,也会犯错,作为老手的我都是如此何况是新手呢?别看我现在代码犯错少了,那是因为以前我犯的错误比你多多了,有了经验而已。所以,面对错误是每一个学习编程人员的必经步骤,没有什么值得恐惧的。

第三个是思而不学。什么意思呢?就是自己没有认真学习就根据自己的想法来,而自己的想法却是错误的。如果你是初学者,我个人建议先按别人成功的案例来,而非自己想象,做好了别人的成功案例,就可以建立信心,学习效率就高了,然后再弄明白原理,才能自己去发散自己的思维,毕竟思而不学则殆。

第四个是看不懂而不做。我写的书钟的案例都是可以运行的,你看不懂的时候,先“抄袭”,然后自己运行起来,或者直接调试我给的源码也可以运行起来。运行起来后你就有信心了,然后在探索究竟,而不是什么都不做在哪里傻傻地看不懂,这样也是没有进步的。

8ba2e9880cba3ab3e05ac8ff107e50bd

《深入浅出Spring Boot 2.x》

作者:杨开振

Spring框架是Java EE开发的事实标准,而Spring Boot是业界最流行的微服务开发框架。

本书从一个最简单的工程开始讲解Spring Boot企业级开发,其内容包含全注解下的Spring IoC和AOP、数据库编程、数据库事务、NoSQL技术、Spring MVC、Spring 5新一代响应式框架WebFlux、REST风格和Spring Cloud分布式开发等。

4a2c57ae2f7a6a776c8ada31666addaf

d3754adaf10058d288c8a7a1de7fb023

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Junit - 优先级测试(FixMethodOrder Test)
Junit - 优先级测试(FixMethodOrder Test)
57 0
Python学习笔记(15)-Python代码转换为exe可执行程序详解
本文目录 1. 简介 2. pyInstaller安装配置 2.1 下载PyInstaller 2.2 下载后解压PyInstaller 2.3 下载pywin32 2.4 安装pywin32 2.5 安装PyInstaller 3. 制作exe 3.1 编写python文件 3.2 将代码文件放至pyinstaller目录 3.3 制作exe 3.4 查看并运行exe 4. 兼容性问题 5. 其他方法制作exe
56 0
为什么程序员千万不要重写代码?
为什么程序员千万不要重写代码? 你所做的事情,也许暂时看不到成果,但不要灰心或焦虑,你不是没有成长,而是在扎根。 图片来自网络 0 前言 程序员都有一颗工程师的心,所以当他们到一片新的场地想做的第一件事就是,将旧的一切推倒重来。
1520 0
程序猿怎样选择机械键盘
摘要: 机械键盘的轴体选择是见痛苦的事,不知道哪款轴体是最适合自己的,我的第一部机械键盘是 IKBC C87 青轴。青轴使用了一年多,对机械键盘越来越了解,期间跟同事交换使用,体验机械键盘其他轴体茶轴和红轴,最终发现真正适合自己的是红轴。
3658 0
二分查找代码
1 int bsearchWithoutRecursion(int array[],int low,int high,int target) 2 { 3 while(lowtarget) 7 high=mid-1; 8 el...
631 0
微信小程序明星开发者博卡君专访
「微信小程序」作为微信进一步提高用户黏性、巩固市场地位的重要战略布局,不仅决定着微信下一步的发展形态,更和无数开发者的未来职业发展息息相关。本届微信公开课也吸引了大量明星开发者及业界大牛的关注,ZAKER 就在公开课现场遇到了小程序开发领军人物、《全球首个小程序开发教程》的作者——博卡君,并请他谈谈自己对小程序开发的独到见解以及对微信未来发展的看法。
1172 0
lisp编译源代码为native可执行程序的过程(收集)
下面记录一下ccl编译一个可执行程序的过程,其中最关键的是ccl:save-application apple@apple-System:~$ ccl Welcome to Clozure Common Lisp Version 1.11-r16635  (LinuxX8632)! CCL
3330 0
linux文件系统初始化过程(6)---执行init程序
一、目的     内核加载完initrd文件后,为挂载磁盘文件系统做好了必要的准备工作,包括挂载了sysfs、proc文件系统,加载了磁盘驱动程序驱动程序等。接下来,内核跳转到用户空间的init程序,由init完成创建磁盘设备文件、加载磁盘文件系统、从rootfs切换到磁盘根文件系统等工作。
819 0
+关注
异步社区
异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。
12049
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载