CC2e 术语:把 routine 译为“子程序”的理由

news/2024/6/16 6:21:54

   

  这里特别说明一下在《Code Complete(代码大全) 第二版》中我们把 routine 译为“子程序”的理由。(主要观点来自裘宗燕老师,部分文字取自裘老师写给我们的邮件。)

  这本书先讲整体的设计(第 5 章);而后讲 class(第 6 章),是下降一个层次;而后讲 routine(第 7 章)。在第 7 章“High-Quality Routines”的一开始,作者自设一问:

What is a “routine”? A routine is an individual method or procedure invocable for a single purpose. Examples include a function in C++, a method in Java,a function or sub procedure in Microsoft Visual Basic. For some uses, macros in C andC++ can also be thought of as routines. You can apply many of the techniques for creatinga high-quality routine to these variants.

非正式译文:何谓“routine”?routine 是具有单一目的、能单独调用的一段代码(method 或 procedure)。例如,C++ 中的函数 (function),Java 中的 method,Microsoft Visual Basic 中的 function 或 sub。某些情况下,C/C++ 中的宏 (macro) 也可以认为是 routine。

  可见作者口中的 routine 就是一段有名称、能调用的代码,可能有参数、也可能没有参数,可能有返回值、也可能没有返回值,实际指就是 subroutine(subroutine 是比较正式的说法)。如果这是一本针对 C/C++ 语言的书,那么作者多半会用“function/函数”这个词。而 CC2e 是一本针对一般软件开发的书,并非针对特定语言,作者一直非常谨慎地回避 function 这个词(一般只作“功能”讲)。如果细分起来,function 是有返回值的 routine,procedure(过程)是没有返回值的 routine,method 是作为 class 的成员的 routine,甚至 C++ 中重载了的运算符也算是 routine。

  书中也有讲函数的地方,讲的就是函数的返回值问题(函数的特殊问题),也有讲 method 的地方,讲的就是 method 的特殊问题。因此 routine 的译文应该能涵盖函数、过程、method 。这样想来,恐怕很难找到比“子程序”更好的词了。



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=557608



http://www.niftyadmin.cn/n/3660022.html

相关文章

CC2e 术语:construction 译成“构建”还是“构筑”?

construction 恐怕是《Code Complete(代码大全) 第二版》这本书里惟一值得讨论的术语。construction 本意是“建筑、建筑物”。在这本书里用来指软件开发过程中最主要的一项活动,软件开发的活动包括:问题定义、架构、需求、设计、…

seata1.3.0 系列学习(一、seata1.3.0 安装)

下载seata 此处选用目前最新版本1.3.0 解压完成后 注:seata官方从1.0版本后不再提供sql脚本,以及nacos推送配置脚本,需要从0.9.0的版本复制 将红色框框的四个文件复制到1.3.0/conf目录下 执行db_store.sql脚本,数据库名为seata 修改file.conf文件 将mode"db…

seata1.3.0 系列学习(二、nacos+seata使用)

上篇文章讲了如何安装seata,这篇文章主要讲如何使用&#xff0c;分布讲解什么情况回滚&#xff0c;不回滚 一、新建父级maven pom.xml文件导入 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0…

seata1.3.0 系列学习(三、nacos+seata使用,多次请求问题解决)

上篇文章讲到&#xff0c;使用过程中发现&#xff0c;第二个微服务的请求会出现多次问题&#xff0c;为了验证此问题跟seata无关&#xff0c;我又添加了第三个服务 并且把seata相关代码注释 目前接口 A->B->C 发起请求&#xff0c;查看数据库&#xff0c;发现问题依然存…

WPF 使用自定义控件(custom control),资源字典(ResourceDictionary),用户控件(user control),及之间的对比

最近使用WPF比较多&#xff0c;过来记录一下&#xff0c;对比一下 个人理解usercontrol比较适用于组合控件&#xff08;比如你想要实现的控件是由多个控件组成的&#xff09;&#xff0c;customCcontrol主要是用来单独重绘控件&#xff0c;如button,datagrid&#xff0c;lable…

MySQL之Explain 应用于sql性能调优

一、Explain基本概念 1. Explain定义 我们知道MySQL中有一个查询优化器Query Optimizer&#xff0c;它的作用是找到最小代价的正确执行方案&#xff1b; EXPLAIN :模拟Mysql优化器是如何执行SQL查询语句的&#xff0c;从而知道Mysql是如何处理你的SQL语句的&#xff0c;分…

CC2e 术语:一些基本确定的术语

《Code Complete&#xff08;代码大全&#xff09; 第二版》中译本使用下面这些术语我想不会引起多大争议&#xff08;完全不会有争议的术语&#xff0c;如“variable/变量、program/程序、class/类”等等就不列出了&#xff09;&#xff1a;agile development - 敏捷&#xff…

C++ ifstream open 读取txt文件出现中文乱码的解决方法

由于编解码的问题&#xff0c;txt读写会出现中文乱码&#xff0c;打开txt文件&#xff0c;点另存为&#xff0c;可看到编码方式有&#xff1a; 编码方式为UTF-8时&#xff0c;会出现中文乱码。 将编码方式换为ANSI时&#xff0c;问题解决。