代码编辑.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
代码编辑

代码编辑 代码编辑 王伟冰 下面列举一些代码编辑器常用的功能,如果你正在使用的代码编辑器有此功能,请充分利用,这样可以提高写代码的效率。没有的话就算了。 添加: 自动补全:键入单词的前几个字母,自动插入整个单词。 代码模板:插入一些常用的代码结构或程序框架。 方便查看: 自动格式化:不用你自己敲Tab缩进代码,自动缩进。 折叠代码块:一个文件太多行时,把一些类和函数的代码折叠起来。 跳转: 类视图:列出当前工程的所有类和成员,可随意跳转到任一个类或成员所在的代码。 书签:在经常改动的代码放一个书签,要找就比较容易。 转到定义或声明:选中一个变量或函数或类,跳转到它定义或声明的地方。 键盘跳转:最典型如VIM,通过丰富的命令来实现各种快捷的跳转。 重构: 重构,指的是不改变代码的功能,但改变其具体实现。前面几节讨论的很多例子其实都涉及重构。比如复数类,把c.add(a,b)改成c=add(a,b),功能没变,但实现方式变了,看起来更为清晰,这就是一种重构。又如数据统计,把m=count(a,30,60)改成m=count(a,30, Func1(60)),也是一种重构,功能没变,但是使用起来可以更灵活了,这也是一种重构。 重构是整个程序开发过程要不断做的事情。因为很多情况下你往往不能在一开始就清楚什么样的设计是最佳的,而且将会使用这个程序的用户的需求也往往是变化的。所以如果只是一味地向程序添加新功能,那么整个程序的架构可能会越来越混乱,越来越难以维护。就好比我们电脑磁盘中的文件,如果我们总是随意存放新文件,那么时间一长就会很乱,有些东西你就忘记放在哪个文件夹里了,所以时不时要整理整理。写程序也是,时不时要进行重构,虽然没有改变它的功能,但是可以使它变得更清晰、更灵活,方便添加新功能。 大多数的重构还是要手工完成的,但有些简单的可以用代码编辑器来做: 文本替换:经常用于变量、类、函数的重命名,但是要非常小心,因为这只是简单地做文本替换,把变量f替换成F会把printf也替换成printF。 智能重命名:有些编辑器可以做到,比如上例,通过推理识别出哪些f才代表真正的变量f,就不会出现上面的问题了。 重新排列函数参数的顺序:重排后,所有调用这个函数的代码都会自动重新排列。 提升局部变量为函数参数:比如第二节的最开始的部分,把60提升为函数参数min,有些编辑器能自动把调用count函数的代码修改过来,比如原来是count(a,30),就改成count(a,30,60)。 …… 尽管如此,代码编辑器所能够做的重构还是很有限。我认为未来的代码编辑器应该往更为智能的重构方面发展。 我认为代码编辑器还应该支持重构的导入和导出,但是似乎现在还没有哪个代码编辑器做到这一点。比如A同学写了一个类库,把它发布到网上,B同学在自己的程序里使用到了A的类库。后来,A同学对类库进行了升级,改进了架构,但是某些类的接口发生了变化,比如有些函数的名字发生了变化,参数个数发生了变化。B同学如果想让原来的程序使用上A同学的新类库,那就要对程序里所有使用到这些类的代码进行修改,那显然很麻烦。所以编程的接口一旦制定,是很难修改的。Win32的API函数,十几年了还是那个样子,因为一旦修改,很多程序就无法在Windows上运行了。但是如果重构可以导入和导出,A同学就可以把它对类库接口所做的更改导出为一个文件,随新类库一起发布,B同学让代码编辑器导入这个文件,自动对B的程序中的代码进行更改,然后重新编译就行了。 这一节的题目叫“代码编辑”,不过好像没有太多可说的。不如说一些别的:C++模板元编程。 什么是元编程?来看一个例子,比如我们要算n的阶乘,可以用下面的递归函数: void factorial(int n){ if(n==0)return 1; else return n*factorial(n-1); } 但是你还可以用模板来实现: templateint N struct factorial{ //默认情况下用这个版本 static const int value=N*factorialN-1::value; }; template struct factorial0{ //N=0时用这个特化版本 static const int value=1; }; 上面的代码的意思就是:

文档评论(0)

f8r9t5c + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档