10

多年来,我一直是 PHP/MySQL 开发人员,但不幸的是,到目前为止,我只从事过小型项目。我现在正在创建一个非常复杂的新网站,并且我开始对工作流程感到困惑。我不确定首先要处理哪些部分,因为它们都相互交织在一起。

我很想知道你们中的一些人如何管理新网站的工作流程。我是独立工作的,所以在没有多个开发人员参与的情况下解释起来会更容易。此外,我将使用 CodeIgniter 框架,因此最好让工作流包含 MVC 模型,这实际上应该使工作流更容易。

经过一番搜索,我发现了这个有用的图表:工作流程图

但是,我不太确定每个类别都有哪些内容。这是我到目前为止所了解的总体概要。当我错了或有更好的选择时,请随时纠正我。

规划

确保你有明确的项目目标:你提供什么,为谁提供?对其他人有什么帮助?ETC

网站地图

列出将出现在网站上的所有页面和子页面。

线框

浏览您的整个站点地图,并为每个页面绘制一个粗略的草图。(你应该得到多详细的信息?)你可以使用铅笔和纸,或者像 Axure 或 Mockingbird 这样的程序。

工作流程图中的下一个主要类别是内容,但我不确定这涉及到什么。是网站上的所有文字吗?数据库结构?还有什么?

艺术品

网站的实际设计/模板。不过,这真的是合适的地方吗?我认为编码和功能更重要,然后再进行设计。

编码

这一步似乎包罗万象,我认为它需要分解。数据库结构是先制作的(还是在内容中完成,在线框之后?)我是否为站点地图中每个页面的所有功能制作大纲?我是否只是创建所有必要的控制器并评论我将要放置哪些功能以及在哪里?模型是否遵循控制器的轮廓,反之亦然?我什么时候开始填写所有的控制器和模型?

涉及持续测试以确保您的代码正常工作。

内容人群

这会包括 MVC 框架中的视图文件吗?换句话说,控制器和模型提供的所有数据?

最终测试

确保在所有浏览器中一切正常。在这里和那里进行调整和更改。全力以赴应对无数“假设”案例。

生产

网站上线。

结论

以上是我理解的开发复杂网站的步骤的有组织的流程图,但我的理解可以大大提高。应该改变什么?我可以使用所有可能的建议。谢谢你。

编辑:这里有人提到了“敏捷开发”——从我目前所读的内容来看,它实际上并没有结构。如我错了请纠正我。正如我对那个答案的评论,真的有可能以这种方式为复杂的网站开发,比如亚马逊或 Ebay?工作流程,在我不知情的情况下,应该有一个明确的计划,否则项目将没有重点。

最终编辑:虽然这个问题已经结束,但我想为以后可能会发现这个问题的人添加一些信息。我发现以下工作流程很有用:http ://www.webassist.com/free-downloads/tutorials-and-training/web-dev-workflow.php 。一般工作流程的 PDF:http: //assets.webassist.com/how-tos/Short-Dev-Checklist.pdf。当然也可以使用敏捷开发,但对于那些不知道从哪里开始的人来说,这可能是一个很好的起点。当我找到它们时,我可能会在此处添加其他工作流程和示例。

4

3 回答 3

3

研发界正在朝着敏捷开发的方向发展,在这种情况下,您不会做太多的计划并从头到尾写下所有内容,而是进行小迭代并进行小改动,以便您始终拥有一个明确的目标,并且您可以随着对需求的理解提高而调整方向(真实的,基于用户反馈,而不是根据您认为客户想要/使用的估计猜测工作)

我建议你研究敏捷开发和精益创业方法,它改变了我构建在线服务的方式,并且会让你更有效率和生产力。

我可以告诉你,我的在线服务在我开始编码后大约 2 天就上线了。这并不意味着您从一开始就向真实用户开放它,但您可以立即从现实世界中获得反馈,而不是在您“准备好上线”之前将其全部保存在您的开发机器上。

于 2012-12-21T19:28:27.303 回答
0

TheZuck 的回答很好而且很有帮助,所以我将添加一些我自己的经验,这并不一定意味着你会经历同样的事情,如果你对生意有半点心思(这是我所缺乏的。:S)。

内容一直是​​我的客户的问题,所以我会说让他们尽早开始工作!如果您正在与撰稿人合作,我想那不是问题。但是,如果没有及时将内容交付给您,应该会受到某种惩罚。

还值得注意的是,您的客户只有在开始考虑内容后才会真正开始考虑他们的网站。当他们开始工作时,期望听到他们想要一些改变。

如果您的客户是小型企业,那么他们往往不了解实际需要时间的是什么。尽管敏捷开发非常好,但我相信这对于小型企业来说很难实施,因为他们没有太多的钱可以使用,并且可能希望成品的价格固定。如果它被修复了,如果他们用完所有的时间或他们付出的任何代价而没有给他们一个成品(工作交付物,与成品不同!),他们就会生气。

客户往往是 IT 文盲,有时甚至是极端的。指望你必须投入一些或相当多的时间来向他们解释“显而易见”的事情。

不要高估自己和自己的能力,因为这可能意味着您收取的费用低于实际合理的费用。一个优质的网站应该花钱,但我会理解,如果你收费很少,你知道只是为了获得几个客户。

我意识到这并不是您问题的真正答案,但我希望它会有所帮助。

于 2012-12-21T19:59:02.510 回答
0

敏捷开发对于网站来说绝对是一个好主意(因为通常情况下,编码既相对简单又独立)。关于敏捷的要点是它允许更改,并且还允许针对“执行功能 B 花费的时间比预期的要长,因此 C 和 D 将在另一个迭代中交付”进行调整。正如您可能知道的那样,规划更大的项目可能需要付出很多努力,而且几乎总是比您预期的要长。使用敏捷,您将每一点都作为“垂直切片”进行 - 这意味着所做的任何事情都应该为产品贡献一些有用的东西,从在首页[或它所属的任何地方]添加一个 ling 到添加处理它的代码以及用于存储/检索相关数据的数据库模型。

我很确定您仍然需要为具有大量页面和大量数据库表等的大型站点做一些规划。但是只要您在一般网站/数据库设计方面有合理的基础,敏捷方法将让您设计“行走的骨架”(在基本概念中起作用的东西,但需要更多的骨头上的肉才能成为工作产品)。然后你用更多的功能充实草图,每个功能本身都是“完整的”,并添加了客户需要的东西。这样,您总是可以在每个工作项完成后交付给客户的东西。

我也相信亚马逊或 Ebay 有超过 20-30 张桌子。我在一个名为 www.planetcatfish.com 的网站上工作,它比 Amazon 或 Ebay 更小更简单,它有 25 个表(除了论坛的 phpbb 表,它也用于特定于站点的用户功能)。那是多年编写的,在 php 代码中主要使用 php、一点 javascript 和相当多的 mysql。

于 2012-12-21T19:49:29.233 回答