加入收藏 | 设为首页 | 会员中心 | 我要投稿 广安站长网 (https://www.0826zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 外闻 > 正文

细数Transformer模型的17大高效变种

发布时间:2021-02-01 14:58:29 所属栏目:外闻 来源:互联网
导读:犯错是人之常情,也是促进我们成长的关键,不必惧怕犯错。请试着从他人的错误中学习借鉴,以免今后重蹈覆辙。 在长寿命的代码中使用快速粗糙的修复程序。快速粗糙的解决方案会破坏代码库的质量,很可能增加不必要的技术负担。长远来看,这样的方案会造成反噬

犯错是人之常情,也是促进我们成长的关键,不必惧怕犯错。请试着从他人的错误中学习借鉴,以免今后重蹈覆辙。

  • 在长寿命的代码中使用快速粗糙的修复程序。快速粗糙的解决方案会破坏代码库的质量,很可能增加不必要的技术负担。长远来看,这样的方案会造成反噬。最后很可能需要重构。
  • 缺乏实践。熟能生巧,要想成为一名开发人员需要更多的实操。最大错误是忘记时不时得学习新事物。如果想学习编程语言之类的新知识,大概率需要利用业余时间。
  • 低估工作量。估测工作量是软件开发的一大难事。在Scrum疏理时经常有人说“这小功能一个故事点就能搞完”。但任务可能并不简单,预期方案也不起作用。所以在估测时记得计入测试时间,这点不仅适用于开发人员。
  • 写显而易见的注释。我们都曾看过这样的注释:什么也没解释,只专注于代码的功能(例如,foreach循环的注释写着“产品遍历循环”)。当写注释时,不要只关注代码是做什么的,要关注此代码的创建原因。
  • 注释掉代码块。代码块中多个功能被注释掉的情况比较常见。没有人知道代码块仍然存在的原因或是否有用。没有人删除是因为每个人都认为其他人可能需要它,大胆删除注释掉的代码块。如果代码仍然有用,可在版本控制中找到。
  • 仅测试基本逻辑方案。在编写测试时不要只考虑基本逻辑,也要思考预期之外的情况,记得测试最坏的情况。
  • 代码格式凌乱。这是经验不足的开发人员最常犯的错误。它使代码更难阅读,也会给其他需要阅读代码的开发人员带来困扰。通过安装格式化代码的linter可以修复凌乱的代码。
  • 不记录任何相关信息。有用的日志可以为开发人员提供极大的帮助。日志消息可以帮助洞悉代码的问题所在,并节省大量调试时间。发生特定错误时,好的日志消息会提供有关用户正在执行的操作信息。
  • 由于缺乏认知而重新开发wheel。当开发人员不知道框架中有哪些功能时,就会发生此错误。由于缺乏认知,开发人员实施的新方法会与框架中已有的几乎相同。
  • 在没有解决方案的情况下开始编码。刚开始可能令人兴奋,但最终会反噬回来。计划和组织代码是编码的重要组成部分。不要不做计划就开始编码,编写代码之前,有很多事情要考虑。
  • 不好的提交说明。很多人都有过这样的经历。“修复错误”或“ WIP”都不是很好的提交说明。好的提交说明很重要,应该多花一些时间将它写好。好的提交说明可提供内容更改和更改原因的有用信息。出现问题时,修订历史记录是快速找出病症所在的重要资源。
  • 代码中包含魔数。魔数是特定值,它具有无法解释的含义,出现多次,可以并且应该以命名常量替换。魔数不可读,并且不为开发人员提供任何信息。最重要的是,魔数经常多次用于程序中的不同位置,很容易产生错误。
  • 一个功能中要素太多。试着让功能做好一件事。不要让这个功能同时获取、处理和输出数据。将所有这些职责划分为不同的职能。一个用于获取,一个用于处理,另一个用于输出数据。功能专注于单项是使它更强大的关键。
  • 不编写自动化测试。起初编写自动化测试会比手动测试花费更多时间。长远来看,多花时间编写这些自动化测试是值得的。手动测试所有内容无聊又耗时,并且人为因素更容易出错。
  • 不必要的复杂化。大多开发人员都有过为了实施特定设计模型而实施的行为。仅仅因为有机会实施某种设计模式不意味着就应该这样做,这样做只会增加代码库的技术负担。

通过调用这行代码,SDK 会自动封装 API 请求,而且作为响应,你获得的结果也不一定是 JSON 对象,也有可能是代码,例如上述代码段里的OCRResult,这是因为 SDK 也已经将 JSON 对象反序列化成你需要的对象,比如一个 Java Model。

SDK 相当于开发集成工具环境,API 就是数据接口。API 可以在 SDK 提供的“环境”里请求。同样的,这里的“环境”也是一个抽象的概念。如果不使用 SDK,也可以直接调用 API,只不过,这个环境就要由开发者自己实现了。

区别

其实从上面的内容,我们也已了解到,API 在更多场合下更像是 SDK 的一个子集,他们的区别如下:

  • API 通常是一个函数,有特定的功能;而 SDK 是一个很多功能函数的集合体,更像是一个工具包。•API 通常扮演数据接口的形象,SDK 相当于一个工具环境,通常是需要在 SDK 的环境下调用 APl。•SDK 相较于 API 封装层次更高。

以上就是本篇文章的全部内容了,如果你觉得文章对你有所帮助,随手点个关注转发给你的小伙伴们,这对我真的很重要,你们的支持是我继续更文的动力,谢谢大家!


(编辑:广安站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读