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

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介:

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

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
1月前
|
算法 程序员 C#
程序员也可以很浪漫!这样的一款表白代码收藏馆项目,即使小白也可以使用,发给你的对象试试!
程序员也可以很浪漫!这样的一款表白代码收藏馆项目,即使小白也可以使用,发给你的对象试试!
|
2月前
|
算法 程序员
10年老程序员告诉大家什么时候该写什么样的代码
10年老程序员告诉大家什么时候该写什么样的代码
12 0
|
6月前
|
人工智能 程序员 vr&ar
竟有程序员40了还在撸代码?
竟有程序员40了还在撸代码?
90 2
|
8月前
|
SQL 人工智能 Java
程序员:你见过哪些要命的奇葩代码?
程序员:你见过哪些要命的奇葩代码?
78 0
|
9月前
在编程路上不忘初心
在编程路上不忘初心
|
12月前
|
消息中间件 存储 JavaScript
如何写出一手让同事膜拜的漂亮代码?
如何写出一手让同事膜拜的漂亮代码?
|
架构师
敲黑板!创业前一定要做的几件事!
敲黑板!创业前一定要做的几件事!
110 0
敲黑板!创业前一定要做的几件事!
|
机器人 BI
敲黑板:纯技术分享阿里云RPA机器人的一天
随着社会的发展,大小城市乃至我们个别人家里都会安装很多双“眼睛”,他记录着社会每时每刻的动态,一旦发生什么事情,我们就可以很方便的调出当时的视频,及时准确的了解具体情况。在软件使用领域也是如此,日志功能就是软件的“行车记录仪”。
敲黑板:纯技术分享阿里云RPA机器人的一天
|
程序员 测试技术
菜鸟程序员都是怎样写代码的?你也可以学一手
每个程序员都要经历“菜鸡”这个阶段,那么,在菜鸡阶段,程序员是怎么写代码的呢?下面12大瞬间,能否找到你当初的影子? 1、命名不规范 可能不少程序员都会有这样的经历,写代码时灵光乍现,为了保证在灵感消逝前敲出更多代码,敲代码速度飞快,当然命名就显得很随意了。
|
自然语言处理 程序员 数据库
过年了,给亲朋好友解释「啥是程序员」
前言 一年一度的春节又到了,作为程序员的你是怎么告诉亲朋好友自己日常到底是做什么工作的呢? 程序员是一个新兴的职业,我在上大学以前不了解程序员到底是做什么的,对编程语言也一窍不通,也不关心玩过的「游戏」和天天逛的「网站」究竟是怎么来的。
1593 0