从aiXcoder看如何提升编程效率

一、什么是aiXcoder

 

aiXcoder是一个经过专业领域代码训练的“虚拟编程专家”,是一款全新的智能编程机器人产品。

程序员与aiXcoder结对编程, 能够大大提高编程效率。

在aiXcoder的辅助下,程序将彻底摆脱传统的编程模式,不再需要“逐字逐句”编写程序。

aiXcoder能够自动预测程序员的编程意图, 连续向程序员推荐“即将书写的下一段代码”,程序员可以通过“一键补全”的方式,直接确认接下来输入的代码。从而,大大提升代码的编写效率。

 

二、aiXcoder插件使用说明

1.下载插件安装包:http://www.aixcoder.com/help/download.html

2.适用环境:

  适用于Windows和Mac系统上的IntelliJ 2017,Android Studio 3.0,PyCharm 2017及以上版本。

   当前支持 Android,TensorFlow,JFinal, SpringBoot等编程场景。

   以下使用说明以Windows版IntelliJ为例。

3.打开 IntelliJ->File->Settings->plugins->点击 Install plugin from disk。

4.安装完成后点击Restart IntelliJ IDEA重启软件。

注意事项

1:目前仅支持Android,TensorFlow,JFinal, SpringBoot等程序的预测;

2:TensorFlow支持多种客户端语言下的安装和运行。截至版本1.12.0,绑定完成并支持版本兼容运行的语言为C和Python, 其它(试验性)绑定完成的语言为JavaScript、C++、Java、Go和Swift,依然处于开发阶段的包括C#、Haskell、Julia、Ruby、Rust和Scala;

3:正常使用情况下,aiXcoder是可以在您写程序过程中自动触发预测,类似系统提示

 

三、试用方法:预测功能

注1:目前仅支持Android,TensorFlow,JFinal, SpringBoot等程序的预测。

注2:TensorFlow支持多种客户端语言下的安装和运行。截至版本1.12.0,绑定完成并支持版本兼容运行的语言为C和Python,其它(试验性)绑定完成的语言为JavaScript、C++、Java、Go和Swift,依然处于开发阶段的包括C#、Haskell、Julia、Ruby、Rust和Scala。

注3:正常使用情况下,aiXcoder是可以在您写程序过程中自动触发预测,类似系统提示。

使用方式:

【第一步】确认预测:

(1).预测结果输入:按下「tab」键或「enter」键。

(2).「系统提示框」和「aiXcoder」都存在时:

【第二步】输入结果:

(1).若预测结果中一部分代码是您需要的,按下「tab」键即可步进式输入。

输入到您认为合理的位置后,如果您想要丢弃后面的其他内容,按下「esc」键或继续写您的项目即可。

(2).若预测结果您想全部输入,按下「enter」键即可输入全部内容

 

四、插件设置

1.打开 IntelliJ->File->Settings->Tools->aiXcoder plugin 根据下图提示修改点击OK即可。

其中后面三个参数:

(1).Predictions:代码预测结果的最大长度,该参数以 Token 为单位,一个预测词的长度越长,所占用Token 越大;参数越大,预测结果长度越长。

建议设置为 50,这个长度基本能够满足单行代码的预测。

注:Token 为构成程序的最小单元,词根和后缀的统称。

(2).Tuning:预测结果中只显示概率大于该数值的 Token 的词,参数设置越大,预测结果就会越短,因为结果中将预测概率小的 token 不展示,预测结果约保守。

建议设置为 0.5,请您根据您的使用习惯进行设置。

(3).Stop Selection:预测截止的标志,字段解释如下:

字段名

描述

ENTER(推荐)

预测结果遇到「换行符」,预测即停止,设置为「ENTER」,只能预测单行的代码。

AUTO

当您输入位于单行代码起始位置,将预测一整行代码,遇到「换行符」停止预测;当您输入位于单行代码结束位置时,将预测该行其他代码以及下一行代码。

EOF

没有预测截止表示,设置为「EOF」预测将不会有明确的截止符,可以做多行预测使用。

 

五、使用心得

优点:

1.对于相对固定的场景,代码提示的效果很不错

PS:我个人理解aiXcoder宣称的“自主学习”,实质上只是把你常用的代码放到了它们的知识库中, 所以当在相对固定的场景中,那些复用率高的代码和方法等就很容易被推导出来,从而提示给用户

2.在例如函数调用的时候,准确率还不错

PS:前提是——这是一个 经!常!被!引!用!的!函!数! 对于一个新的函数,我们实际开发过程中的习惯往往是:先”无中生有“出函数名和参数,再Alt + Enter构造函数。

3.适当减少了软件开发人员的简单重复劳动,减少了无关信息干扰

4.减少了不规范代码的引入

PS:实际上,阿里在这方面做的更为出色,后面会为大家讲到。

5.技术革新是一个循序渐进的过程,aiXcoder的版本更新速度还是比较快的,很高兴能有这样一群人在坚持不懈的做这样一件事情,这个是值得肯定和鼓励的。

缺点:

1.类似于psvm、sout等快捷键指令,以及List、Map等的创建方式,没有IntelliJ IDEA自带的提示功能好用

2.提示太慢,延迟较高,直接的感觉就是卡,双手赶不上思路让人痛苦

3.给我的感受感觉就是一个代码联想补全功能。对于我所认为的AI差距很大

4.实体类的时候感觉不太好,提示出的代码,好多变量都是一样的

5.预测功能不够准确,有时候会提示出一些莫名其妙的东西

争议:

1.针对代码隐私的问题:

因为预测模型是放在云服务器上的,官方宣称的是被加密的代码片段会上传到服务器通过GPU来进行后续代码的预测,预测结果会通过加密的方式回传给IDE, 而他们不会保存用户的任何代码

2.关于机器人代替程序员的问题:

目前来看,这个是不会发生的,更好用的工具,只会让我们开发者变得更高效,把繁琐复杂的体力劳动交给机器,真正的智能还是需要我们开发者去完成~

 

六、总结:如何提高编程效率

引言:人类文明的伟大进步在于学会了使用工具!所以我们写代码从最开始的TXT演变成了今天的IDE,但作为一名合格的程序员,要深知一点—— 真正决定你决定编程效率的是知识储备!

一、关于自我提升的几点忠告:

1.永远不要停止学习和阅读 阅读 书籍,而不只是网站; 阅读 提升你的基础,而不只是最新技术; 阅读 只为自我提升,而不只是为了下一个项目。

2.跟比你优秀的人一起工作 跟比你更聪明的人或者是更有经验的人一起工作,可以让你快速提升。

3.阅读并记录别人的代码 其实写代码比阅读并理解别人的代码要容易的多。

4.锻炼身体 身体是革命的本钱,只有好身体才能有好的工作、学习状态。

注意!这里是干货分界线!!!

 ----------------------------------------------------------------------

二、关于提高编程效率的几点建议:

1:计划(Plan)

所谓Plan,其实就是对应于编程中的“设计”阶段,当然,这里的Plan并不像设计那样重量级。它要求我们程序员在正式编程前至少要考虑一下下面的问题: 你这个程序,工具或是项目的目的,究竟是用来干什么的。你只有知道做什么,要达到什么样的目的,你才能做得对,做得好。 需要有什么样的功能。需要你给出来个功能列表。这样可以保证我们不会遗露了什么。 准备好一些技术难题的前期调查和解决方案。不要等到开始编程的时候才去想。 下面这你因为有“Plan”而得到的好处: 你能够清楚地明白你要做的东西长什么样? 你能清楚知道你要开发的东西要干些什么事? 你能够在开发过程中解决你所有可能发生的难题。 以上这些是不是感觉很眼熟?对,没错,就是我们现在一直在提倡执行的开发前先画时序图这个步骤!

2:书写清楚的注释

请在你的代码中书写清楚的程序注释。当然,注释不是越多越好,注释应该是简明扼要的,如果你的程序足够地清楚简单,那么注释就会显的多余。 另外,注释应该是注释“原因,理由,目的”,而不是注释“是什么”,在“酷壳”的另一篇文章《惹恼程序员的十件事》中,有一条就是关于坏的注释是多么的另个讨厌。r = n/2; //r是n的一半 //循环,仅当r- n/r不大于t while ((r-n/r) <=t){ … … r = 0.5 * (r-n/r); // 设置r变量 } 上面这种注释是不是分分钟有种想把”肇事者“拉出来打死的感觉?

3:合理使用你的开发工具

你真的对你每天都在使用的开发工具了解么?常用的快捷键知道多少?有使用快捷键生成基本注释么? 这些看起来都是些很小的事情,但是千万别小看这一点点时间,如果你每天都在写代码的话,今天一点点,明天一点点,将会为你省出很多的时间。

4:对代码做“减法”

一是尽量减少代码的数量,坚持DRY(Don’t Repeat Yourself) 和KISS(Keep It Simple & Stupid) 原则。这样可以有交物减少代码的复杂度,提高程序的易读性和可维护性,同时也能增加代码的质量。 二是尽量重用现有的代码。这样,你才能够站在巨人的肩膀之上,从而可以更多的关注和自己所要处理业务的逻辑。编程的最高境界就是写出来的代码是可能被重用的,重用和泛型这是编程里始终在追求的目标。 

附:三大软件原则:DRY(Don't Repeat Yourself) 不要重复你自己KISS(Keep it Simple Stupid) 保持简单直接YAGNI(You Ain’t Gonna Need It) 你不需要它

5:泛型编程

说的很高大上的样子,其实就是抽像出一些程序中相似的东西,然后把这些相似的东西用一个标准的东西实现,这也是编程所追求的最高境界之一。

6:使用开源的代码

这个世界上有太多太多开源的代码了。学会利用他们可以让你更节省时间和精力,因为我们完全没有必要把相当的东西实现若干次, 学会使用开源的代码不但是一个学习的过程,同样也是一个增加编程效率的事情。 一句话攻略:善用度娘!

7:完善开发环境

开发环境非常重要,因为好的开发环境可以让你事倍功半,他们可以让你不需要关注别的东西。只有把开发环境变得舒服,才能让自己更好的编程。

8:学会正确使用Debug调试

熟练地使用Debug模式调试可以让你更好的查找程序的问题,以得到最优的代码。

以上,只是提高编程效率众多方法中的一小部分,说到底,你的编程效率其实取决于你的知识累积度、思维专注度、习惯优劣度。 你与技术大牛之间,可能存在着无法逾越的思维上的鸿沟。但你与编程高手之间,仅仅只存在着习惯之隔! 不积跬步,无以至千里;不积小流,无以成江海。既然选择了程序员这个职业,注定要与代码相爱相杀,那么请对代码有一点敬畏之心, 坚持良好的编程习惯,不断学习进步。 共勉!

 

七、彩蛋:开发利器——插件

推荐几款让你开发效率倍增的IDEA插件,解决你开发中可望而又不好找的插件。

1、Alibaba Java Coding Guidelines

经过247天的持续研发,阿里巴巴于10月14日在杭州云栖大会上,正式发布众所期待的《阿里巴巴Java开发规约》扫描插件!该插件由阿里巴巴P3C项目组研发。P3C是世界知名的反潜机,专门对付水下潜水艇,寓意是扫描出所有潜在的代码隐患。

为了让开发者更加方便、快速将规范推动并实行起来,阿里巴巴基于手册内容,研发了一套自动化的IDE检测插件(IDEA、Eclipse)。该插件在扫描代码后,将不符合规约的代码按Blocker/Critical/Major三个等级显示在下方,甚至在IDEA上,我们还基于Inspection机制提供了实时检测功能,编写代码的同时也能快速发现问题所在。对于历史代码,部分规则实现了批量一键修复的功能,如此爽心悦目的功能是不是很值得拥有?提升代码质量,提高团队研发效能,插件将会一路同行。

 

2、iBATIS/MyBatis plugin

轻松通过快捷键找到MyBatis中对应的Mapper和XML,CTRL+ALT+B

 

3、GsonFormat

当面对一大堆JSON数据需要生成实体对象的时候,这个时候GsonFormat就派上了用场,一键生成对应实体对象

 

4、Stack Overflow

编码中几乎所有遇到的错误,都可以在Stack Overflow上找到,因此这个插件可称之为贴心助手,只不过默认使用Google搜索,大家注意。

 

5、Background Image Plus

给你一个机会让你面向“对象”编程,设置你喜欢的图片,提升你编码逼格!

安装后,在设置界面设置背景图片文件夹,里边放图片,并且可以设置定时更新:

设置完图片之后,重启一下IDEA,然后,你懂的!

 

微信扫一扫
关注该公众号

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值