Tag: 语言不可知的

类名称中的“助手”一词是否有代码味道?

我们似乎是从网页中抽象出许多逻辑方式,并创build“帮手”类。 可悲的是,这些class级听起来都是一样的,例如 ADHelper,(Active Directory)AuthenicationHelper,SharePointHelper 这个命名约定其他人有大量的类吗?

你如何从一条线的某个垂直距离find一个点?

我在窗口中绘制一条线,并让用户拖动它。 所以,我的线由两个点定义:(x1,y1)和(x2,y2)。 但现在我想在我的线的末端画“帽子”,就是说,在我的每一个端点上都有短垂线。 帽应该是N个像素的长度。 因此,为了在终点(x1,y1)绘制我的“帽”线,我需要find两个点形成一个垂直线,并且每个点都离开点(x1,y1)N / 2个像素。 那么,如果你需要在一个已知线的终点(x1,y1)的一个垂直距离N / 2处(即由(x1,y1)和(x2,y2)?

将string散列成RGB颜色

有没有最佳做法如何散列任意string到RGB颜色值? 或者更一般地说:3个字节。 你问:我什么时候需要这个? 对我来说没有关系,但想象一下任何GitHub 网页上的pipe图。 在那里你可以看到这样的东西: 每条彩色线代表一个独特的git分支。 对这些分支着色的低科技方法将是一个CLUT(颜色查找表)。 更复杂的版本将是: $branchColor = hashStringToColor(concat($username,$branchname)); 因为每次看到分支表示时都需要一个静态颜色。 而对于奖励点:如何确保散列函数的颜色分布均匀? 所以我的问题的答案归结为hashStringToColor()的实现。

应该如何编写发行说明?

发行说明应该如何编写有什么样的指导原则或最佳实践? 我想我正在试图find适当的平衡点,而不是太具体。 另外,开发人员是否通常会为QA团队提供更多的发布说明,与提交给公众视图的发布说明进行比较?

代码高尔夫:有限状态机!

有限状态机 确定性有限状态机是一种简单的计算模型,在基础CS课程中被广泛用作自动机理论的介绍。 它是一个简单的模型,相当于正则expression式,它决定了某个inputstring是Accepted还是Rejected 。 抛开一些手续 ,一个有限状态机的运行包括: 字母表 ,一组字符。 状态 ,通常可视化为圆形。 其中一个州必须是开始状态 。 一些州可能会接受 ,通常可视化为双圈。 过渡 ,通常可视化为国家之间的定向拱,指向与字母表相关联的状态之间的链接。 inputstring , 字母字符列表。 机器上的运行从起始状态开始。 inputstring的每个字母都被读取; 如果在当前状态和对应于该字母的另一个状态之间存在转换,则当前状态改变为新状态。 读完最后一个字母后,如果当前状态为接受状态,则接受inputstring。 如果最后一个状态不是接受状态,或者一个字母在运行过程中没有相应的状态,则inputstring将被拒绝。 注:这个短暂的破坏远非FSM的全面正式定义; 维基百科的精美文章是对这个主题的一个很好的介绍。 例 例如,下面的机器会告诉从二进制数字中,从左到右读取的偶数是否为0 : 字母表是集{0,1} 。 状态是S1和S2。 (S1, 0) -> S2 , (S1, 1) -> S1 , (S2, 0) -> S1 , (S2, 1) -> S2 。 inputstring是任何二进制数字,包括一个空string。 规则: 以您select的语言实施FSM。 […]

当一个方法有太多的参数?

在今天debugging一些Web服务客户端代码时(使用Java,使用jax-ws),我跑了一个令人兴奋的97参数的Web服务方法! 我不得不创build一个testing用例来调用这个方法,我注意到了几件事情: 代码辅助/hover不能很好地扩展。 我正在使用Eclipse,方法上的工具提示与屏幕一样宽,并跨越多行。 我不得不从以前的xml捕获中复制参数值,并且实际上不可能记住“我在哪里” – 当光标位于逗号后面并且键入某个值之前,我经常会得到数据types错误 – 我input了一个整数而不是一个string,反之亦然。 即使在我写完所有参数之后,我仍然有一些错误,签名不匹配。 不幸的是,Eclipse将整条线标记为红色,因为发生了错误,所以find错误的地方花了更多时间:( 所以这让我想到了,你认为一个方法的参数的最大数目是多less? 如果你可以改变这个networking服务签名,你觉得它可以改进吗?

所有的编程语言都有布尔短路评估吗?

在PHP代码中 if(a() && b()) 当第一个操作数计算结果为false , b()将不会被评估。 同样,在 if (a() || b()) 当第一个操作数的计算结果为true , b()将不会被评估。 对于Java,C#等所有语言来说都是如此吗? 这是我们使用的testing代码。 <?php function a(){ echo 'a'; return false; } function b(){ echo 'b'; return true; } if(a() && b()){ echo 'c'; } ?>

在文本string中检测(淘气或漂亮的)URL或链接

我如何检测(使用正则expression式或启发式)网站链接在一个文本string,如评论? 目的是防止垃圾邮件。 HTML被剥离,所以我需要检测复制和粘贴的邀请。 由于大多数用户无法成功进入该页面,所以垃圾邮件发布者不应该经济地发布链接 。 我希望提出build议,参考或讨论最佳做法。 一些目标: 像结构良好的URL( http://some-fqdn/some/valid/path.ext ) url但没有http://前缀(即有效的FQDN +有效的HTTPpath) 任何其他有趣的业务 当然,我正在阻止垃圾邮件,但同样的过程可以用来自动链接文本。 思路 这是我在想的一些事情。 内容是本土语言散文,所以我可以触发,愉快的检测 我是否应该首先www .example.com所有的空白,以捕捉“ www .example.com ”? 普通用户是否知道要自己删除空间,或者做任何浏览器“我是什么意思”并将其剥离? 也许多次通过是一个更好的策略,扫描: 格式良好的url 所有非空白,然后是'。' 之后是任何有效的TLD 还要别的吗? 相关问题 我已经阅读了这些内容,现在在这里logging下来,所以如果你愿意,你可以在这些问题中引用正则expression式。 用HTML链接javascriptreplaceURL 什么是最好的正则expression式来检查一个string是否是一个有效的URL 获取URL的部分(正则expression式) 更新和总结 哇,我有一些非常好的启发式在这里列出! 对我来说,最好的巴克是一个综合以下内容: @Jon Bright的检测顶级域名(TLD)的技术(一个很好的防御阻塞点) 对于那些可疑的string,用@caparreplace点状字符 一个好看点的angular色是@Sharkey的下标&middot; (即“ · ”)。 &middot; 也是一个字的边界,所以很难随便复制和粘贴。 这应该使垃圾邮件发送者的CPM足够低以满足我的需求; “标志不当”的用户反馈应该抓住其他的东西。 列出的其他解决scheme也非常有用: 去掉所有的虚线四边形(@ Sharkey对自己的答案的评论) @ Sporkmonger对客户端Javascript的要求是在表单中插入一个必需的隐藏字段。 Ping URL服务器端来确定它是否是一个网站。 (也许我可以通过SpamAssassin或另一个贝叶斯filter按照@Nathan运行HTML。) […]

你如何重构一个大杂乱的代码库?

我有一大堆的代码。 无可否认,我自己写的 – 一年前。 它没有很好的评论,但它也不是很复杂,所以我可以理解它 – 只是不足以知道从哪里开始重构它。 我违反了过去一年里我读过的每一条规则。 有多种职责,有间接访问(我忘记了这个词 – 就像foo.bar.doSomething() ),就像我说的那样,它没有很好的评论。 最重要的是,这是一个游戏的开始,所以graphics与数据,或者我尝试去耦graphics和数据的地方,我公开的数据,以便graphics能够访问数据它需要… 这是一个巨大的混乱! 我从哪说起呢? 你将如何开始这样的事情? 我目前的做法是采取variables并将其切换为私有,然后重构那些破碎的碎片,但这似乎还不够。 请build议其他策略,通过这混乱趟过,把它变成干净的东西,让我可以继续我离开的地方! 两天后更新:我一直在绘制出类似UML的图表,并一路捕捉到了一些“低悬的果实”。 我甚至发现了一些代码是新function的开始,但是当我试图减less一切,我已经能够删除这些位,并使项目更清洁。 在安装我的testing用例之前,我可能会尽可能地重构(当然,只有100%肯定不会影响function的东西),所以我不必重构testing用例,因为我改变function。 (你认为我是对的还是对的,在你看来,我会更容易把它搞砸,并且先写testing?) 请投票给最好的答案,以便我可以公平地标记! 随意添加你自己的答案,以及还有空间给你! 我会再给它一天左右,然后可能标记最高票数的答案被接受。 感谢到目前为止所有人的回应! 2010年6月25日:我发现了一篇博客文章 ,直接回答这个问题,这个人似乎对编程有很好的把握(或者,如果你阅读他的文章,也许不会):) 为此,当我需要重构代码时,我做了四件事情: 确定代码的目的是什么 绘制所涉及的类的UML和动作图 选购正确的devise模式 确定当前类和方法的更清晰的名称

将base64数据存储在XML中?

我如何在XML中存储base64string? 你用CDATA来存储XML中的base64string吗? 它会帮助,因为它允许使用string内的<>? 是否可以configurationbase64,你告诉它不要使用某些字符,如果他们与XML冲突?