第一步,简单规范制定;
第二步,代码案例,并生成文档;
第三步,规范 案例 团队集中学习;
第四步,团队自我完善规范——循环;
实践建议:网络上规范一大堆,有一个基本的JAVA规范,没二话大家都可以实现。业务代码功能模块化生成规范。
这个问题包含两点:
下面按照这两点展开说说我的理解。
代码规范
代码规范其实业界大厂或者别的语言已经有很多解决方案了,比如,pylint,clang-format,go-fmt这种,对于JAVA可以试试看Google的google-java-format,我目前是gradle流,喜欢maven的朋友不妨自己去官网上看一下用法。
引入的方法很简单:
直接在plugins里声明一下。
检查的话可以敲命令:gradle verifyGoogleJavaFormat
按照Google模板改写文件:gradle googleJavaFormat
当然最好在Makefile里写好,一劳永逸。
这个格式也支持IDEA和eclipse,以IDEA为例:
应用完成后Ctrl Alt L就能格式化代码了。不过这里有个坑,它不会格式化import代码段,这个可以去github上下载个格式导入IDEA解决。
这样几步下来基本就能保证团队内部的代码风格一致。
代码整洁
代码整洁比较考验基本功,最好的办法是去看看Effective Java,按Joshua Bloch大神的要求做。
这个话题三言两语说不清,加油吧。
“T字型人才 一项精通 广泛了解 两个方向还能有互相加成 触类旁通 融会贯通”
提高我是这么搞的,第一,所有的core java也就是java基础的语法,无条件全部掌握,不管是java8还是java9,只要java出了最新版的语言,里面的所有features,全部背下来,反复练习,练成肌肉记忆,也就是只要跟你说java的语法,管他什么版本的,你都要不看书就把答案说出来,因为这是基础,没有比java更基础的东西,我不管外面的公司还在用4,还是5,还是6,我认为,java就是最最最最最最基础的东西,里面的语法我都要会,而且是不查文档的会,我说的是语法,不是api
第二步,触类旁通,你用eclipse是不是?那就试试idea,netbeans,以前还有jbuilder,我读书时候还用jcreator这些,你随便换一个会不会用?不会?去试,里面英语很多,对,这是程序员的日常,你要适应。同样的,用svn是不是?你换成git试试,你用windows是不是?换成mac,服务器用win server是不是?换成linux,你用maven是不是?换成gradle,你用mysql是不是?换成pg,这些都是大同小异的软件产品,你应该能够触类旁通,如果你做不到这一点,你要想想 为什么做不到?说明你原理没有掌握,你还停留在死背api的阶段,请去了解原理,理解了原理之后,你才能说你真的会了,以后换一个产品,你一样搞得定,其实java的东西都大同小异,maven上700多万个jar包,其实用法都差不多,无非看看文档(javadoc),大概明白原理之后就可以开始写了,撑死了看看源码
第三步,脱离java,java很大,很成功,属实,我承认,但是java毕竟只是编程语言的一种,这世界上必然有比java更大的外延存在,那那些外延一无是处?really?我不信,所以你应该看一看其他语言,都在干什么,你可以不像java一样精通,没有关系,但是不妨碍你去了解一下这些语言,你应该从这些语言上找到共性,不要被细节所迷惑,比如同样是lambda,你知道lambda是怎么回事就好了,不要去死背语法,只有java的语法你要死背,因为java太普遍了,其他语言的语法不用强行记忆,知道是怎么回事,用的时候再查也不迟,王垠的这篇文章写得不错,可以看看如何掌握所有的程序语言,然后你找一个比如vert.x这种polyglot的工具,来对比看看这些语言之间有没有能够互补的地方,比如我们用了kotlin的coroutine,因为java目前还没有语言层面的coroutine支持,那么我们用kotlin就能补上java的短板,这样我们的系统就能更加合理,依赖和利用java,但不受限于java
第四步,贡献,当你对这些东西都比较熟悉了之后,你应该能够发现很多源代码中的bugs,这个时候你应该要去github上提交issue提交pr,来修复这些bugs,让更多的人少踩坑,多受益,因为这个时候你的阶段已经到了可以贡献的阶段,提交issue次数多了,自然会有人问你,愿意不愿意贡献,到了这个阶段,你的能力已经提升了,我们可以一起携手共建一个美好的世界
但是强调一点,在你贡献之前,你在其他阶段也可以贡献,只是我觉得你的深度和广度都还不够的时候,谈贡献,为时太早,不是不可能,只是你看问题的角度可能是有不够的地方,有可能瞎子摸象,后续还有其他的,比如算法和数据结构的提升,不一一而论了,等你脱离了语言这个层次之后,你自然会有力气去搞更加复杂的算法,驾驭更加复杂的数据结构,那这个能否走到这一步,看你自己了
首先我们来看下一家准上市公司招聘月薪8万多(年薪百万)的Java架构师的岗位任职要求:
可以看出要拿高薪的Java人才必须符合几方面的要求:
1、管理能力:能够独立带团队,及跨部门沟通。
2、专业能力:不仅需要有深厚的Java编程功底,还需要丰富的系统架构经验,精通前后端,已经属于Full stack engineer的类型。
我们再看下美国加州湾区(硅谷)JAVA工程师的薪水
年薪的中位数超过10万美元,最低水平也达到8.9万美元,可以看出JAVA工程师在美国的薪资还是蛮高的。
关于JAVA相关技能,美国的公司希望开发者能够熟悉或者精通JAX-RS、Jasmine等JAVA相关技术。
如果以后希望走JAVA路线,及未来想获得高薪,可以思考以下几点:
1、 不断增值自己
如果将技术比做一个阶梯,每学会一门语言或相关技能,就如同多了一个阶梯,你会得越多,技术的阶梯就越多,价值就越大。当阶梯积累到一定程度,成为Full stack engineer,你就能纵向往高阶技术方向晋级,职业发展之路更上一层楼。
2、多做项目,获得经验
越是大型的开发项目越要参与,一开始可能只是底层的码农,但通过项目,既锻炼了团队协作能力、沟通能力,也能够从项目中了解产品开发的整套流程,不管未来转型产品经理,还是继续往技术专家路线走都是很好的历练。
3、突出自身的优势
当你既有技术能力又有经验的时候就要思考哪个路线是适合自己的,自身最大的优势及比别人强的地方是哪些,并不断把自己的优势强化,这样才能脱颖而出,而不是永远只会低头敲代码。
希望以上内容对你有帮助,最后祝你早日成为技术大拿,实现年薪百万。
如果你想下载腾讯视频、优酷、爱奇艺里面的视频,你一定要试试you-get这个模块,实在太好用了,当然也可以下载youtube的视频,让我惊艳的是它居然支持国内网站下载。
You-Get是一个小型命令行实用程序,用于从Web下载媒体内容(视频,音频,图像),以防没有其他方便的方法。
以下是您如何使用 它从YouTube下载视频:
这可能是为什么你可能想要使用它:
您在互联网上享受了一些东西,只是想为了您自己的乐趣下载它们。
您可以通过计算机在线观看自己喜欢的视频,但禁止保存。 您觉得自己无法控制自己的计算机。 (并不是一个开放的Web应该如何工作。)
您希望摆脱任何闭源技术或专有JavaScript代码,并禁止在您的计算机上运行Flash等内容。
你是黑客文化和自由软件的坚持者。
你能得到什么:
在媒体播放器中流式传输在线视频。 没有网络浏览器,没有更多广告。
通过抓取网页下载(感兴趣的)图像。
下载任意非HTML内容,即二进制文件。
有兴趣的朋友可以试一试,做为一个资深电影迷,上手也简单,真的挺好用的。
我会在这里发布所有与科技、科学有关的有趣文章,欢迎订阅我的头条号。偶尔也回答有趣的问题,有问题可随时在评论区回复和讨论。
(码字不易,若文章对你帮助可点赞支持~)
正加财富网内容推荐 | ||
OK交易所下载 | USDT钱包下载 | 比特币平台下载 |
新手交易教程 | 平台提币指南 | 挖矿方法讲解 |