- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以,我今天只是编码了一点,我意识到在编程功能时,我在编码风格方面没有太多的一致性。我的主要关注点之一是对其进行编码是否合适,以便您检查用户的输入在函数之外是否有效,或者只是将用户传递的值扔到函数中并检查这些值是否有效在那里。让我画一个例子:
我有一个基于环境列出主机的函数,我希望能够将环境拆分为主机块。所以用法的一个例子是这样的:
listhosts -e testenv -s 2 1
最佳答案
好问题!我的主要建议是系统地处理问题。如果您正在设计一个函数 f
,这是我对它的规范的看法:
f
的来电者的绝对要求是什么?必须见?这些要求是 f
的前提。 f
为它的调用者做什么?当f
返回,返回值是什么,机器的状态是什么? f
什么情况下抛出异常,抛出什么异常?所有这些问题的答案构成f
的后置条件。f
与来电者的契约(Contract)。f
会发生什么情况的调用者不满足先决条件?你有两个选择:f
默默地返回一个错误的答案。这是一个 未经检查的运行时错误。 f
的一部分。的契约(Contract)。
What should a function do when its caller violates its contract?
What kinds of contracts make the best designs?
I have a function that you pass it in a list, and it returns a list of lists based on you parameters for splitting. BUT, before I pass it a list, I first verify the parameters in my MAIN during the getops process, so in the main I check to make sure there are no negatives passed by the user, I make sure the user didnt request to split into say, 4 parts, but asking to display part 5.
One of my main concerns is whether or not its proper to code it so that you check that the input of the user is valid OUTSIDE of the function.
data Request -- type of a request
parse :: UserInput -> Request -- has a somewhat permissive precondition
validate :: Request -> Maybe ErrorMessage -- has a very permissive precondition
process :: Request -> Result -- has a very restrictive precondition
关于programming-languages - 关于如何编写函数的编程风格问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2664292/
我一直在阅读Code Complete 2 .由于我不是以英语为母语的人,因此我需要一些时间才能理解某些陈述。我希望你描述作者在他的书中所做的这两个陈述之间的区别: You should progra
我将 TYPO3 安装从 8.6 升级到 9.5。在内容语言设置为“所有语言”的页面上,这些元素不会显示在前端。 似乎在 ContentObjectRenderer->getQueryConstrai
我和一个学生正在建立一个新的口译员家庭,我们希望以现有口译员为基准。我们很乐意下载包含 Computer Language Benchmarks Game 中使用的所有源代码的 tarball 或 z
因此,我正在尝试创建一个双语网站,只需单击一下即可将其从英语切换为葡萄牙语,反之亦然。 我收到此错误:Use of undefined constant language - assumed 'lan
我正在阅读一个比较不同编程语言的演示文稿。衡量的特征之一是“语言表现”。什么意思? 最佳答案 真正的答案:它没有任何意义,或者该演示文稿的作者当时在想什么。 也许它的意思是“执行相对于其他语言具有相同
Go talk 2009 pdf 有评论解释了他们为什么想出 go 语言: No new major systems language in a decade. 系统语言是什么意思? 它是一种应该通过
我现在正在使用 Squeak4.1 学习 SmallTalk。我使用 Squeak by Example 作为教程,在这里我反驳了一个 delema,“Morphic 是由...开发的,用于自编程语言
谁能告诉我如何编译和运行在 ZOMBIE 上编写的程序?例如,如果我编写了以下源代码线以将“hello world”打印到屏幕上,我该如何制作一个 .exe 文件。谢谢! HelloWorld is
我在看帖子Why Language is Important (Why I prefer C#)来自“Dot Net Thoughts”,文章的第一段以以下声明结尾: ...every languag
关闭。这个问题是opinion-based .它目前不接受答案。 想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题. 7年前关闭。 Improve t
我正在尝试使用 qTranslate X 制作一个基本的语言切换器,例如: FR | EN 有一个函数可以实现这一点:qtranxf_generateLanguageSelectCode('text'
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 9 年前。 Improv
我正在研究浏览器指纹。在应用程序的 webview 中运行的 js 将通过获取 navigator.language.substr(0,2) == navigator.languages[0].sub
已关闭。这个问题是 not reproducible or was caused by typos 。目前不接受答案。 这个问题是由拼写错误或无法再重现的问题引起的。虽然类似的问题可能是 on-top
"Page description language"、"markup language"、"Page description markup language"有什么区别和关系? 根据他们的 wiki
我正在为 IntelliJ 创建一个自定义语言插件。 我希望新语言的文件可以包含其他语言的文本片段。 我想支持的特定语言是 HTML、JS、CSS 和 SQL。 我还想支持其他自定义语言(即我要为其定
我正在用 mysql 创建一个图书数据库。一本书可以有不同的语言。并且将会有数千本书。 (而且我远不是这个领域的专家,之前只创建过小型和简单的数据库) 1) 只创建一个包含语言列的表并为其创建索引是否
我的网站使用用户可切换的三种不同语言。语言切换由 JavaScript (AngularJS) 在客户端完成。 我在我的网站上使用 reCAPTCHA 2,当用户切换网站语言时需要更改 reCAPTC
我在 Core Image Kernel Language 中有以下函数,我需要在 Metal Shading Language 中等效的东西,但是我对 destCoord 、 unpremultip
“不存在‘编译语言’或‘解释语言’之类的东西。语言实现者选择编写编译器、解释器还是两者之间的任何东西都是实现细节,与语言无关。” 上述说法是否属实? 最佳答案 是的,在最严格的解释中它是正确的。您可以
我是一名优秀的程序员,十分优秀!