【问题标题】:PHP Newbies: How to write good code [closed]PHP新手:如何编写好的代码[关闭]
【发布时间】:2023-03-23 04:46:01
【问题描述】:

由于这里很多与 PHP 相关的问题都非常基础,我建议准备一些技巧和窍门。

这可能是一个起点:

  • 检查尽可能多的方法的输入参数(请参阅assert())。
  • 将所有错误记录到日志文件并使用您的管理后端将其可视化(请参阅set_error_handler())。
  • 尽可能多地使用类型提示(请参阅type-hinting
  • 错误级别设置为绝对最大值。然后以不出现任何警告的方式进行编码(请参阅error_reporting())。
  • 了解 PHP 实现和转换数据类型的原因和方式(请参阅 type jugglingstring conversions

因此问题是:PHP 新手应该更好地做什么?

UPDATE-1

由于很多人评论了这个问题,我建议重新打开它。请点击下面的相应链接。

【问题讨论】:

  • 只要 SO 不建议在发布 PHP 问题之前访问此页面,我认为 Qs 的质量不会改变。但至少你可以参考这个页面...
  • @yi_H:是的,可能是真的。让我们看看人们贡献了多少东西。
  • 我并没有正式声明这个问题更适合Programmers,但您可以在那里尝试。我认为这可能会成为一个很好的社区 wiki,有点像 What should a developer know before building a public web site?
  • @Reesis:嗯,太糟糕了。是的,这就是我试图准备的(不是为我准备的 ;-)。

标签: php coding-style


【解决方案1】:

测试

你应该更好地测试你的代码,可能练习TDD。感谢PHPUnit,您可以做到这一点。请记住 Uncle Bob's three rules 练习 TDD。

  1. 除非是为了通过失败的单元测试,否则您不得编写任何生产代码。
  2. 不允许您编写任何足以导致失败的单元测试;编译失败就是失败。
  3. 您编写的生产代码不得超过足以通过一个失败的单元测试的数量。

您必须首先为您想要的功能编写单元测试 打算写。但是根据规则 2,你不能写太多那个单元 测试。一旦单元测试代码编译失败,或者失败 断言,您必须停止并编写生产代码。但是根据规则 3 你 只能编写使测试编译的生产代码或 通过,仅此而已。

如果你想一想,你会发现你根本不会写 完全没有编译和执行某些东西的代码。 确实,这才是重点。在我们所做的每一件事中,无论是写作 测试、编写生产代码或重构,我们保留系统 随时执行。运行测试之间的时间按顺序排列 秒或分钟。即使是 10 分钟也太长了。

你应该尝试高code coverage。感谢xdebug,PHPUnit 也可以做到code coverage analysesRefactoring codesmelly(list) 应该很容易,因为您的测试用例已经存在。

安全

性能

  • 学习和使用APC

缓存 PHP 脚本编译后的字节码以避免 在每个请求上解析和编译源代码(部分或全部 这甚至可能永远不会被执行)。为了进一步提高性能, 缓存的代码存储在共享内存中并直接从 在那里,最大限度地减少慢速磁盘读取和内存复制的数量 运行时。

著名的名言:“我们应该忘记小的效率,比如说 大约 97% 的时间:过早优化是一切的根源 邪恶”,由 Donald Knuth,6 也被错误地归因于 Hoare(由 Knuth 本人撰写),尽管 Hoare 否认作者身份。

【讨论】:

    【解决方案2】:
    • 了解如何进行跟踪(echoprint_r)。无价之宝。
    • 在执行 db 查询后检查错误(或者更好:编写您自己的查询函数来自动检查。或者更好:使用一些库来构建查询)。
    • 了解结果mysql资源、结果集和结果行的区别。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-08
      • 1970-01-01
      • 2022-11-12
      • 2014-05-29
      相关资源
      最近更新 更多