Tag: language agnostic

减less构造函数的参数个数

我正在阅读“清洁代码”,并无法弄清楚如何保持我的一些函数(通常是构造函数)的最大3个参数。 通常我的对象需要大量的信息才能工作 – 我应该做一个小的构造函数,然后使用mutator函数来给他们所有的信息? 这似乎并不比使用一个大的构造函数更好。 举个例子,我有一个“MovablePatch”类。 它可以让用户在窗口中拖动一个正方形。 它需要几个参数,包括Radius,Color,Renderer,InitialPosition和Visibility。 目前我从我的GUI收集所有这些,然后打电话给: MovablePatch(int radius, Renderer* renderer, Color color, Position initial, bool visibility) 这些只是我在这堂课中需要的一些东西。 任何人都可以build议我怎么可能打包这个信息传递给构造函数? 我没有看到任何明显的“分成小class”出现在这里。

不区分function的git diffalgorithm? (语言意识差异)

可以configurationgit diff来尊重缩进和语法吗? 我不是在谈论忽略缩进和空格,而是使用空行,缩进级别和可能的括号来帮助将旧行匹配到新行。 例如,git diff通常会切换函数和docblock,如下所示: class C { /** + * Goes to the bar. + */ + function bar() { + return 'bar'; + } + + /** * Gets your foo up to date. */ function foo() { 当我更喜欢 class C { + + /** + * Goes to the bar. + */ […]

我如何区分“二进制”和“文本”文件?

非正式地,我们大多数人都明白,有“二进制”文件(目标文件,图像,电影,可执行文件,专有文件格式等)和“文本”文件(源代码,XML文件,HTML文件,电子邮件等)。 一般来说,你需要知道一个文件的内容,以便能够对它做任何有用的事情,并且如果编码是“二进制”或“文本”就形成了这个观点,这并不重要。 当然文件只是存储数据的字节,所以它们都是“二进制的”,“文本”并不意味着什么都不知道编码。 然而,讨论“二进制”和“文本”文件仍然是有用的,但为了避免这个不准确的定义,我将继续使用“恐吓”引号。 但是,有各种各样的工具可以处理各种文件,实际上,您希望根据文件是“文本”还是“二进制”来做不同的事情。 一个例子是在控制台上输出数据的任何工具。 简单的“文本”将看起来很好,是有用的。 '二进制'的数据混乱了你的terminal,一般没有用处。 当确定是否应该输出匹配到控制台时,GNU grep至less使用这个区别。 所以,问题是,你如何判断文件是“文本”还是“二进制”? 而进一步限制,你如何告诉一个像Linux文件系统的Linux? 我不知道任何文件系统的元数据表明文件的“types”,所以通过检查文件的内容,问题进一步变成了“文本”还是“二进制”? 为了简单起见,我们将“文本”限制为可在用户控制台上打印的字符。 特别是你将如何执行这个? (我认为这是暗示在这个网站上,但我想这是有帮助的,一般来说,指出现有的代码,这样做,我应该指定),我不是真的在现有的程序可以用来做什么这个。