代码之家  ›  专栏  ›  技术社区  ›  Erik van Brakel scottrakes

“干净代码”的性能影响

  •  3
  • Erik van Brakel scottrakes  · 技术社区  · 15 年前

    我们主要担心的是,开发时间/成本呈指数级增长,因为在不相关的地方突然出现错误,并且没有一个健全的通用体系结构来获得最常见的功能(每个模块基本上是从上一个模块复制/粘贴,然后进行调整)。

    好了,介绍够了,开始提问: -我应该依赖缓存模块吗?使用一个好的体系结构是否可以消除大部分开销?有点像APC。

    • 应用程序主要是读取。写入主要是单个值(更改记录上的单个字段)。有哪一个或/M for PHP擅长于此?
    • 同时寻找一个灵活的MVC框架。我认识Zend,CakePHP,也许Symfony?

    我目前正在考虑的堆栈包含:

    • 日志(log4hp?)
    • 可选的OR/M(不必是动态的,代码生成也可以)
    • 操作码缓存的选择(我们正在使用一个,忘记了哪一个,必须问系统管理员)

    我担心的主要问题是在PHP中创建干净代码的性能影响。如果看到它是一种经过解析的语言,而不是像.NET/javaweb堆栈那样的语言,那么为其他内联代码创建抽象(在不同的文件中强制分隔)可能会在另一个层面上产生新的问题。


    5 回复  |  直到 15 年前
        1
  •  3
  •   johannes    15 年前

    通常,拥有一个干净的设置并不是一个性能问题。大多数性能都花在与之交谈的数据库或其他外部系统上。

    除此之外,通常有一两个热点可能值得优化,但为此,您应该从一个干净的设计开始,然后使用探查器(如XDebug或zenddebuger)来识别瓶颈。

    干净的软件设计比“优化”设计带来的0.01%的性能提升要重要得多。通常购买和运行更多的硬件比担心无法维护的“优化”代码库更便宜。

        2
  •  2
  •   Dean J    15 年前

    我会强调预算时间来构建测试,并向管理层提出以下论点:

    1. 当开发人员修复bug时,允许他们为bug编写测试。虫子再次出现的频率比它们可能应该出现的频率要高得多,而这是一种廉价而有效的方法来完全阻止这种情况的发生。
    2. 最便宜的 是时候建立自动化测试的“安全网”了。

        3
  •  2
  •   timpone    15 年前

    至于用意大利面条代码组件管理MVC组件,我们在一个大型项目中遇到了类似的问题。有效的方法是获取一个目录并使新的docroot for MVC应用程序(本例中为Zend框架)成为:

    旧零件:
    http://site.com/data.php
    http://site.com/other.php

    新零件: http://site.com/app/controller/action/ ...

    重新验证,您有两个选择。最合乎逻辑的可能是重新定向登录.php编写MVC登录的脚本,然后将其传递回您想要进入的原始页面,并将必要的信息作为GET参数传递。这将允许遗留系统和新系统同时透明地存在。

        4
  •  1
  •   Asaph    15 年前

    在数据库驱动的web应用程序中,结构良好的面向对象代码的性能要比sapghetti php代码差得多,这没有什么好的理由。您需要进行一些分析,以找到瓶颈所在,并进行相应的优化。

        5
  •  0
  •   Community CDub    7 年前

    对于性能问题,这些问题很容易找到,因为它们的速度非常慢, by this technique .