Questions tagged «terminology»

有关与系统开发生命周期相关的词语和概念的客观含义或共同理解的问题

5
术语“纯OO语言”的正式定义?
我想不出SO兄弟姐妹之间有更好的位置提出这样的问题。最初,我想问“ python是纯OO语言吗?” 但是在尝试定义术语时,考虑到麻烦和人们的不适感,我决定从为术语本身获得明确的定义开始。 从创造该术语的Alan Kay博士的来信开始,这是相当公平的(请注意在生物学上类似于细胞或其他生物的灵感)。 有以下几种方法可以完成任务: 通过列出可以表现出(或不能表现出)某些独特且足以定义该术语的属性的编程语言来进行比较分析(尽管Smalltalk,Scala,Java等)是可能的示例,但IMO这种方式似乎并没有真正完成也不富有成果) 给出一个正式的定义(或接近它,例如以学术或数学的风格)。 给出一个完全依赖于具体语言的语义上下文或先验编程经验的哲学定义(社区一定有一定的成功解释的机会)。 我当前的版本:“如果某种编程(形式化)语言可以(在语法上)区分操作数和操作数,并推断每个操作数的类型是否是对象(就OOP而言),那么我们称之为只要该语言中至少有一种类型是对象,那么这种语言就是一种面向对象的语言。最后,如果所有类型的语言都是对象,我们将这种语言定义为纯(强)面向对象的语言。” 将不胜感激。如您所见,我只是根据术语“对象”(通常完全称为对象类)来进行定义。 [编辑] 另外,我使用(很容易理解的)类型概念,就像在类型化语言中一样。数据类型编程或面向类型的编程不仅是对程序文本的语法解释(即,如何处理文字和数据变量的某些值-演变为类型安全性的某种东西),而且可以归因于语言语法并以正式方式进行研究(使用数学逻辑)称为类型系统。注意,要求特定类型系统具有所谓的通用类型是定义OO语言纯净性的方法之一(有一些方法可以在语义上进行扩展)。 NB 如何回答: 如果您指定支持或解释您对术语和概念的理解的书或参考文献(通常是一个好的定义涵盖或参考了除基础知识以外的所有相关概念),它会有所帮助。 如果不清楚,请在可能的情况下注明答案/定义的缩进类别(请参见上文:1-以语言为例,2-数学逻辑,3-技术描述和编程原理) 分类很重要(也是因为术语OO包含在术语OO中),同时回答尝试将OO范式的元素与其他众所周知的方法进行混合(并且绝不会造成混淆/重叠),例如,通常可以覆盖模块化编程的元素/包含OO编程):尝试将OOP与功能编程,逻辑编程(尤其是高度专业化的),Abstarct数据类型(ADT),模块化,元编程(泛型和LISP的宏扩展时间)(包括或作为其一部分)进行区分,合同(例如Eiffel),面向方面(AO)(声明性和功能性分类之间的差异以及Dijkstra结构化的历史定义很明显) 关于难以给出正式定义的困难:令人惊讶的是,以某种逻辑(正式)系统(最有可能基于类型)的形式给出OOP的数学描述,并一个接一个地定义一个概念非常容易。甚至可以尝试通过将形式主义应用于类型安全检查或新的语言设计方面来做一些更实际的事情,而不仅仅是抽象的娱乐或练习(还包括在直觉类型理论中对OOP的查找公式,从属类型,在FOL形式主义中独立地作为lambda计算)并仅使用类别理论)。这里的重点是毫不奇怪IMO最初对OOP的最不完全了解(在计算机工程中),使IMO的这种表达有很大的偏颇(有缺陷),并最终在之后几乎无法访问(因此几乎不对编程世界有所贡献-也许除了某些百分比会通过从应用程序世界中找回应用程序)集成到流行语言中)。 因此,是的,很难给出一个准确的“好”定义,而不仅仅是给出定义。但是我很高兴在这里提出这个问题,因为你们的经验和直接参与,伙计们。

3
在固定的固定时间内初始化数组-这个技巧叫什么?
有这种数据结构可以交换数组访问的性能,而不需要在清除数组时对其进行迭代。您需要为每个条目保留一个世代计数器,以及一个全局世代计数器。“清除”操作会增加生成计数器。在每次访问时,您都要比较本地生成计数器和全局生成计数器。如果它们不同,则将该值视为“干净”。 这是最近在Stack Overflow上的答案中提到的,但是我不记得这个技巧是否有正式名称。可以? 如果只需要放松节点的一小部分子集,并且必须重复进行一次,Dijkstra算法就是一个用例。

2
什么是“过程金丝雀”
他在埃里克·布雷希纳(Eric Brechner)的《硬编码》一书中指出: 说谎是少数有价值的过程金丝雀之一,它可以警告您遇到麻烦。 我听过一个关于旧的“金丝雀”的开发人员或两次折腾的消息。它是什么? [Google没替我回答。也许我的关键字是一个糟糕的选择。]


16
有什么更好的方式描述软件“愚蠢的证明”的过程?
关闭。这个问题是题外话。它当前不接受答案。 8年前关闭。 已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 对我来说,白痴证明只是意味着确保用户即使尝试也不会破坏软件。例如,如果从文本框中读取一个值并将其转换为双精度型,则基础软件具有白痴证明,如果用户键入非双精度型值,则该值不会中断。 我最近写了一份开发进度表,其中一项被命名为“白痴证明UI”。我正在开发此软件的人员开玩笑地冒充该术语,但我可以看到此术语实际上会使人们感到不安。 有什么更好的说法呢?

6
软件“卓越中心”(CoE)的特征是什么?
最近,我系的一位新主任进来,他表示希望我们成为“卓越中心”。我期望他是我的第一位上司,实际上他具有编程背景,所以对此会有一些描述。但是,它留在那儿。 正如我在过去几天对此所反映的那样,我对CoE的实际含义不抱任何印象,而不仅仅是在交付产品方面“有效”。以下是我正在努力解决的主要问题: 这仅仅是管理类型抛出的一个术语吗? 什么素质使一组软件开发人员和测试人员出色? 在这种情况下,您如何衡量卓越?

8
复杂点无回报。你怎么称呼
作为软件开发人员,我的主要任务之一是控制复杂性。 但是,在某些项目中,有时候复杂度级别变得如此之高,以至于达到某种“无回报”的地步。超过这一刻,您将永远不会比需要从头重写所有内容的时间更短地将项目恢复到可接受的复杂度。 这个时刻在程序员方言中是否有名字(类似于戈德温巨魔定律)? - 编辑 - 对不起,如果我不清楚。我认为这个“时刻”没有正式名称,或者不是一个严肃的指标。我正在考虑xkcd中“鲍尔默峰”的精神。




11
“人类可读”是什么意思?这是用词不当吗?
想到两个例子: 鼓励.Net程序员使用.config文件而不是Windows注册表的原因之一是.config文件是XML,因此易于阅读。 类似地,与专有格式相比,JSON有时被认为是人类可读的。 人类可读的格式实际上是人类可读的吗?在配置数据示例中: 格式不会改变信息的基本含义-在两种情况下,数据都代表同一件事。 注册表和.config文件在内部都存储为系列0和1。在这种程度上,人类同样无法理解基本的表示。 注册表文件和.config文件都需要一种工具来读取,格式化和显示0和1,并将其转换为人类可以读取的格式。对于配置存储在Windows注册表中的情况,这是一个注册表编辑器。对于XML,它可以是文本编辑器或XML阅读器。无论哪种方式,该工具都使数据可读,而不使数据格式可读。 那么,人类可读数据格式和非人类可读格式之间有什么区别?

6
用于描述修改其调用对象的功能/方法的术语是什么?
对不起,通用问题。我到处搜索,发现了很多与此类似的线程,但是没有一个可以回答我的特定问题-也许是因为我要查找的术语甚至不存在。 我的一个朋友正在学习编程,特别是JavaScript,他问我为什么这样做不起作用: var a = "Hello World"; a.replace("Hello", "Goodbye"); console.log(a) // Logs "Hello World" 原因是因为replace不修改a,因为字符串在JavaSript中是不可变的。因为它返回一个字符串,所以您需要执行以下操作... var a = "Hello World"; a = a.replace("Hello", "Goodbye"); console.log(a); // Logs "Goodbye World" 但是,替代方法是类似JavaScript的函数reverse(),因为它会修改任何调用它的函数。例如: var fruits = ["Apples", "Oranges", "Bananas"]; fruits.reverse(); console.log(fruits) // ["Bananas", "Oranges", "Apples"] 当我的朋友问我为什么他replace不工作时,我意识到我在说一个我不知道的词(据我所知)... “您必须将字符串设置为“字符串点替换”,因为替换功能是________。” 您无需将数组设置为等于“数组点反向”,因为反向是________。 我不熟悉原型函数,但我不相信这是我要找的单词。谁能帮我填补这些空白?

4
表示依赖注入相反的技术术语?
这更多是术语(技术写作),而不是纯粹的技术问题。我正在尝试围绕我们的应用程序中扩展依赖项注入编写一个重构建议(并将其分配给我自己)。虽然我们确实使用Spring来自动装配Bean,但是仍然存在使用实例化Bean的实例,这些实例MyClass obj = new MyClass(...)可以完全注入。我想使我的建议使用优雅的命名法,并用适当的术语指代DI的设计模式。 “紧密耦合”是否足以作为DI的反义词?

1
程序中术语上下文的含义是什么
我正在查看一些Objective C文档.. UIGraphicsBeginImageContext:创建基于位图的图形上下文并将其作为当前上下文。 此外,Robotlegs中使用了相同的术语: (http://www.adobe.com/devnet/actionscript/articles/intro-robotlegs-pt1.html)上下文:上下文是用于初始化依赖项注入以及Robotlegs使用的各种核心实用程序的引导机制。 我用谷歌搜索的上下文的字典含义似乎与编程中使用的方式不匹配: 语境/名词/名词构成事件,陈述或想法的设置的环境,在此背景下可以完全理解和评估。 文字或口语中紧接单词或段落之前和之后的部分,并阐明其含义。 任何人都可以丢点光! V.

3
如何记录实验性或不完整的API,例如@deprecated?
是否有一个与“不赞成使用”相似但又不同的好术语,表示方法或API已存在于代码库中,但由于其实现不完整或可能会发生变化而不应使用?(是的,我知道,这些方法不应该公开,yada yada yada。我没有创造自己的情况,我只是想尽力而为。) 人们有什么建议?实验性的,不完整的,还有其他吗? 如果我正在为该API构建仍在不断变化的javadoc文档,那么我应该使用@deprecated标记还是有更好的约定?对我而言,@ preprecated表示此API很旧,可以使用更新的首选机制。在我的情况下,别无选择,但是API中的某些方法尚未完成,因此不应使用。目前,我无法将其设为私有,但我想在文档中添加明确的警告。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.