我在点我的自由职业者的职业生涯里,我已经开发了若干网络应用程序为中小型企业的支持的东西,如项目管理、预定/保留和电子邮件管理。

我喜欢的工作,但发现最终我的应用程序得到一个点,在那里所听到的维护是非常高的。我回头看码我写了6个月前发现我必须花费一段时间刚刚重新学习如何我最初的编码之前我可以让一个修复或功能的补充。我尝试实践中使用框架(我用Zend框架之前,考虑到Django为我的下一个项目)

什么样的技术或战略做你使用规划出一个应用程序,能够处理一个很大的用户不断,并仍然保持码清理到足以维持很容易吗?如果任何人有任何书籍或文章,他们可以建议,那将是极大的赞赏。

有帮助吗?

解决方案

尽管有关于该主题的文章肯定很好,但它们都不能代替现实世界的经验。

除了非常小的项目之外,可维护性是你无法直接计划的。这是整个项目中需要注意的事项。实际上,提前创建大量的类和基础结构代码可以产生比天真的意大利面条代码更难理解的代码。

所以我的建议是清理你现有的项目,不断重构它们。看看那些难以改变的部分,并寻求更容易理解和调整的更简单的解决方案。如果代码甚至太糟糕了,请考虑从头开始重写。

不要启动新项目并期望它们成功,只是因为您阅读了更多文章或使用了新框架。相反,确定现有项目的失败并修复其特定的问题。每当您需要更改代码时,请问自己如何对其进行重组以支持将来的类似更改。无论如何,这是你需要做的,因为 将来会有类似的变化。

通过做那些重构,你会偶然发现各种具体问题,你可以询问和阅读有关的文章。这样你就可以学到更多,只需要提出一般性问题并阅读有关维护和框架的一般文章。

立即开始清理代码 。不要将其推迟到未来的项目中。


(对于文档来说也是如此。每个人的第一个文档都非常糟糕。几个月之后,它们变得过于冗长,并且充满了不重要的东西。因此,文档补充了解决问题的方法真的

其他提示

我诚实地建议您查看Martin Fowlers 企业应用程序架构模式。它讨论了许多使应用程序更有组织和可维护的方法。另外,我建议使用单元测试来更好地理解您的代码。 Kent Beck关于测试驱动开发的书是学习如何解决的一个很好的资源通过单元测试更改为您的代码。

提高可维护性的,你可以:

  • 如果你是唯一的开发,然后采用一种编码的风格和坚持下去。会给你的信心后,当航行通过自己的代码有关的事情,你可能做的事情,你绝对不会的。正相信在哪里看什么看为什么不去寻找将节省很多时间。

  • 总是需要时间来把文件上的日期。包括任务纳入发展计划;包括那段时间成本计划一部分的任何变化或新的特征。

  • 保持平衡的文件:一些高级图,有意义的意见。最好的的意见说,不能阅读的代码本身。像商业原因或"原因"背后的某些区块的代码。

  • 包括到计划的努力,以保持代码结构、文件夹的姓名、名称空间、对象、变量和常规的名称,最新的,并且反射什么,他们实际上做的。这将有助于提高可维修性。总是叫铁锹"铁锹".避免大量代码,结构,它通过内提供你选择的语言,给块有意义的名称。

  • 低联接和较高的一致性。确保你最新的技术实现这些:设计合同,依赖注射方面,设计模式等等。

  • 从任务管理的角度来看你应该估计更多的时间和费率高于非连续性的碎片的工作。毫不犹豫地使客户知道你需要额外的时间做小的非连续变化的传播时间而不是更大的连续项目和正在进行的维护由于行政管理和分析,开销更大的(你需要管理和分析每一个变化,包括影响现有系统的分开).一个有利于你的客户是会得到更大的预期寿命的系统。另一个是准确的文件,将保留自己的选择寻求其他人的帮助,他们应该决定这样做。这两个保护客户的投资,并强的卖点。

  • 使用源的控制,如果你不这样做已经

  • 保持详细记录所做的一切工作,为客户及任何重要的通讯(一个简单的计算机或基于纸张的CMS)。刷新你的记忆前每个分配。

  • 保持一个记录问题持开、想法、建议每个客户;再次刷新你的记忆之前开始的任务。

  • 提前规划如何实施后的支助是将要进行的,讨论与客户。让你的系统便于维护。计划参数设置、监测工具,在建立健全的检查。出售后的执行支助客户的一部分初始合同。

  • 扩大招聘,甚至如果你需要有人只是提供实施后的支持,不管理位。

建议:

我可以提供的最重要的建议是帮助将旧的Web应用程序发展为极高可用性,高需求的Web应用程序,即封装所有内容。 - 特别是

  1. 使用良好的MVC原则和框架将视图层与业务逻辑和数据模型分开。
  2. 使用强大的持久层不将业务逻辑与数据模型相结合
  3. 规划无状态和异步行为。
  4. 这是一篇关于eBay如何解决这些问题的优秀文章 http://www.infoq.com/articles/ebay-scalability-best-做法

  1. 使用框架/ MVC系统。您的代码越有条理和集中就越好。

  2. 尝试使用Memcache。 PHP有一个内置的扩展,它需要大约十分钟设置,另外二十分钟放入你的应用程序。您可以缓存您想要的任何内容 - 我将所有数据库记录缓存在其中 - 适用于每个应用程序。它确实徘徊。

  3. 我建议使用Subversion等源代码管理系统。如果你还没有。

您应该考虑使用SharePoint。这是一个环境,已经设计为你提到的所有,并有许多你可能没有想过的其他功能(但也许你将来需要:-))

这里来自官方网站的一些信息。
您可以使用2种不同的SharePoint环境:Windows Sharepoint Services(WSS)或Microsoft Office Sharepoint Server(MOSS)。 WSS是免费的,并附带Windows Server 2003,而MOSS不是免费的,但具有更多功能,几乎涵盖了您所有企业的需求。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top