我有PHP的基本知识,之前做了一些小的个人项目。由于我的程序很小并且通常包含不到五个类,我立即跳入编码 - 考虑到我的数据库表和用户界面设计。问题是我经常发现自己在项目中间迷失了自己的想法。因此,我认为某种形式的正式规划从一开始就是切实可行的。
我最近一直在阅读几本软件工程书籍。一本书说,在网络工程中,应该使用极端编程和scrum等敏捷过程。我被介绍用于诸如用例,CRC卡和UML之类的工具 - 我认为对于我想到的简单项目来说,这些工具太复杂且不切实际。
另一方面,我阅读的网页文章简单地提出了UI的简要草图,站点地图和简单的工作流程图。它们看似实用,但过于简陋和非正式。
构建简单Web应用程序的实用但正式的方法是什么?
答案 0 :(得分:2)
不要如此迅速地丢弃用例或类似的概念,例如'用户故事'。这些工具带来的好处是让您考虑网站需要做什么。这可以指导所有进一步的技术工作,并帮助您专注于重要的事情而不是迷失在有趣但低价值的工作中。
考虑网站需要做的最重要的 n 事项,并列出每个事项:
通过少数这些用例,您可以全面了解为实现目标而需要构建的内容。如果它开始看起来像是太多的工作,你可以看看哪些目标具有更大或更小的重要性,并削减或推迟那些提供更少价值的目标。如果你想到网站应该做的新事情,现有的用例如下:
诀窍是选择适当的抽象和形式。高水平的工作,非正式地写,你可以快速解决这些问题。当它们不再有用时(你已经将大部分应用程序勾勒出来并且现在正在努力处理细节),将它们放在一边。当你想到新事物时,看看它们是否合适。泡沫,冲洗,重复。
答案 1 :(得分:1)
首先要问自己一些简单的问题:
1)我想稍后重新使用和扩展此代码吗? 如果是这样,使用一些基本模式(如MVC(模型 - 视图 - 控制器))或使用许多可用的PHP框架之一可能是个好主意。已经建立的框架在设计中有更多的格式以及如何使用它。您也可以将它们作为设计自己的基础。
2)您正在进行的网站是否会经常增长或变化?如果网站不会发生太大的变化,你可能会做一些非常简单的事情,而不必过分担心好的设计原则。
3)您想学习并应用您提到的一些技巧吗?如果是这样,那么去城里尝试不同的技术,看看哪些吸引你。
这些问题将帮助您决定如何决定构建网站。
答案 2 :(得分:1)
从小开始,模拟几个简单的屏幕,他们的数据库结构等。使用适合你的任何方法 - 如果这是UML图表,那么很好。从那里获得完成,评估和迭代的东西。
这可能不是你想要的,但也帮自己一个忙,选择一个框架,如CodeIgniter,让你的生活更轻松地编写服务器端代码。同样,请考虑使用jQuery等客户端框架。当您准备好坐下来编写代码时,这将使您更容易。
答案 3 :(得分:1)
我发现有一个(大致)四步流程可以使应用程序开发变得更加容易,并帮助我避免在此过程中迷路。我没有假装使用敏捷开发方法。这就是我工作的方式。
这个过程有两个关键。首先是要分离各种组件的设计。在设计UI等时,您不希望考虑实现细节。第二个关键是迭代。专注于您现在需要添加所需的内容并忽略其他所有内容。
完成后,您可以进行迭代和调整,重复步骤1-4等。但是不要在任何步骤中陷入太长时间。如果事情没有完全符合您的要求,您可以随后再次进行迭代。 (我认为敏捷称迭代为“冲刺”,但我不是在理论上。)
如果你有一个轻量级框架(至少)可以帮助4.1(ORM,如Propel)和4.2(JQuery等)。您希望将UI和数据访问保持为模块化和分区,以便以后更改。
如果将所有内容混合到一个代码块中,那么您必须更改程序的每个部分,以便(例如)向数据库添加新列或向应用程序添加新按钮。你有一些经验,所以你应该知道要避免的陷阱。