代码所考虑的问题

前几天我在想--为什么写好代码这么难?尽管经过多年的努力、最佳实践、方法和工具,业界仍未能生产出高质量的软件。这些问题的答案绝不简单。它涉及经济激励、市场现实、截止日期、正规教育、行业标准、市场开发商数量不足等。

作为一个组织,为了生产高质量的软件,你必须做很多事情。设置流程,使您的招聘正确,能够向您的客户收取质量的开销,并真正关心这一点。

但是即使采取了所有的措施,你也不能保证质量标准。第一,因为这是主观的,但第二,因为它总是归结到个别的开发人员。不仅仅是他们是否有能力编写高质量的软件,还包括他们是否真的在编写高质量的软件。

作为一名开发人员,您可以适应这个过程,并仍然生成普通的代码。这就是为什么我的想法带我从开发人员的眼睛,但在整个软件的上下文中的代码。工具可以自动捕获代码样式问题、圈复杂度、大方法、过多的方法参数、循环依赖等。但是,即使您涵盖了这些问题,仍然无法保证您已经生成了高质量的软件。

因此,我提出了七个问题,我们作为开发人员每次提交代码时都应该问自己。

  1. 是对的吗?-代码是否实现了规范。如果没有明确的规范,你是否做了足够的努力来找出预期的行为。这种行为是以某种方式测试的吗?最好是通过自动化测试,或者至少是手工测试。
  2. 完成了吗?-它是否处理所有边缘情况,无论它们是否在规范中定义。许多边缘情况都是技术性的(连接中断、内存不足、接口更改等等)。
  3. 安全吗?-它能防止滥用吗?它是否验证了它的输入,它是否防止注射,等等,它是否被测试以证明它对这些已知的攻击是安全的。安全性远远超过代码,但代码本身可能会引入许多漏洞。
  4. 它的可读性和可维护性吗?-它是否允许其他人轻松地阅读、跟随和理解它?它有没述某一段代码是如何融入全局的,它是否以小的、可读的单元来分解代码。
  5. 它是可扩展的吗?-它是否允许用更多用例进行扩展,是否使用允许扩展性的适当设计模式,它是可参数化和可配置的,它是否允许在不破坏旧功能的情况下编写新功能,是否通过测试覆盖现有功能的足够百分比,这样变化就不会“可怕”。
  6. 有效率吗?-在高负载下工作良好,它是否关心算法的复杂,它是否使用批处理,是否避免同时在内存中加载大块数据,是否适当地使用了异步处理。
  7. 有什么值得骄傲的吗?-这是否代表了你的经验所教给你的每一种良好做法?并不是每一段代码都是光荣的,因为大多数代码都在执行平凡的任务,但是代码是值得骄傲的还是你希望没有人看到的呢?你能把它放到GitHub上吗?在这里,我们还可以添加最重要的因素之一。过问自己正确的问题,我们也可以为好的软件做出贡这个target="_blank"Href属性一直是许多讨论的主题。什么时候使用它是正确的,我们是否应该使用它,它是否实际上被废弃,它是否良好的用户体验,它是否打破了用户的期望,等等。对于改进浏览器中的标准行为,我有一个奇怪的建议--隐式的。target=_blank"在某些情况下。但让我们试着列出target="_blank"是个好主

这个target="_blank"Href属性一直是许多讨论的主题。什么时候使用它是正确的,我们是否应该使用它,它是否实际上被废弃,它是否良好的用户体验,它是否打破了用户的期望,等等。

https://www.bilibili.com/medialist/detail/ml1322564199

对于改进浏览器中的标准行为,我有一个奇怪的建议--隐式的。target=_blank"在某些情况下。但让我们试着列出target="_blank"是个好主意:

  • 在有表单的页面上,用户可能需要更多信息才能填写表单,但您不希望他们离开表单而丢失他们的输入
  • 在主页上--比如Twitter和Facebook--你的行为就是“浏览”并到处打开链接。它可以应用于诸如reddit或黑客新闻之类的事情,尽管它目前还没有以这种方式在那里实现。
  • 在用户提供链接的注释/审查部分中,这与前一个类似,因为默认行为是浏览多个注释,并可能遵循其中的一些注释。

https://www.douban.com/note/811138204/

这里的典型论点是,如果用户想要打开一个新页面,他们可以通过上下文Manu或ctrl+Click来实现这一点。不多的用户知道这个特性,而且使用它的用户甚至更少。这些页面中有很多是令人困惑的,再加上有时坏掉的后退按钮,这就变成了一场噩梦。

在某些情况下,javascript被用来使事情变得更好(也更复杂)。对于表单,添加javascript是为了警告人们不要将未完成的表单留在页面上。JavaScript用于将某些链接转换为Target=“_space”链接。有些人尝试用javascript打开新的选项卡。

所以我的建议是<body|div|section open-links="">具有以下开放链接和形式的值:

https://zhuanlan.zhihu.com/p/403603572

  • open-links="new-tab"-为页面上或当前div/节/…中的每个链接打开一个链接选项卡
  • open-links="new-window"-和上面一样,但打开一个新窗口(几乎不是个好主意)
  • open-links="new-tab-on-form"-只有在页面上有表单的情况下才打开一个新选项卡(可能另一个要求是该表单正在部分填写)
  • open-links="new-window-on-form"-与上述相同,但有一个新窗口
  • open-links="warn-on-form"-在同一选项卡中打开链接,但如果存在部分填充的表单,则警告用户他们将丢失输入

我认为默认值应该是new-tab-on-form。必须考虑到安全问题,因为

它可能带来新的复杂性,并可能进一步混淆用户。但我认为,尝试修复网络的这个重要部分是值得的,而不是让每个网站自己处理它(或者忘记处理它)。

posted @ 2021-08-26 14:37  javd9w  阅读(117)  评论(0)    收藏  举报