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