代码之家  ›  专栏  ›  技术社区  ›  Arshdeep

如何在启动代码之前计划基于Web的项目?

  •  10
  • Arshdeep  · 技术社区  · 14 年前

    我和我的朋友开始作为合作伙伴一起工作,我们决定在一个又一个网站上制作Kick as*网站。 我们把想法写下来,就像100个一样(是的,我们首先在其中选择最好和容易的)。

    我的朋友负责布局设计和安排工作,我的工作是编码和服务器管理。

    我面临的一个小问题是缺乏规划项目的经验。我要做的是,我只是直接启动代码,并与我生成DB的代码一起,就像我需要一个表时一样。

    我知道对于中等规模的项目来说,这是非常糟糕的方法。

    在StackOverflow,我看到了许多经验丰富的编码人员。需要向你们学习很多:)。

    所以你能帮我规划一个项目,以及使用什么样的编码标准/结构/框架吗(我做PHP代码)。

    事先谢谢。

    3 回复  |  直到 14 年前
        1
  •  5
  •   Jan K.    14 年前

    首先定义范围。写一段到一个页面,并试图描述你的网站。一个自顶向下的方法是开始考虑您想要实现的功能,并通过添加更多细节来改进它。

    自顶向下的方法(也称为逐步设计)本质上是对系统进行分解,以深入了解其组成子系统。在自顶向下的方法中,首先对系统进行概述,指定但不详述任何一级子系统。然后对每个子系统进行更详细的细化,有时在许多额外的子系统级别中进行细化,直到整个规范简化为基本元素。自顶向下的模型通常是在“黑盒”的帮助下指定的,这使得操作更容易。然而,黑盒可能无法阐明基本机制,或者不够详细,无法实际验证模型。 http://en.wikipedia.org/wiki/Top-down_and_bottom-up_design .

    然而,还有许多其他的方法。

    http://en.wikipedia.org/wiki/Software_project_management#Software_development_process

    再一次, 最重要的一步是能够用语言表达您的想法;在您能够充分做到这一点之前,我甚至不会考虑开始编写一行代码。 .

        2
  •  5
  •   clyfe    14 年前

    关于编码标准/结构/框架,我建议 zend framework coding standard , MVC structure Zend Framework .

    A的简要指南 MVC 建筑学。这个想法是帮助你记住想法(当你的大脑在蒸代码时),并为未来的程序员准备文档。

    • 设计数据库。绘制一个ER图。把它放在文件里。
      简要描述设计背后的重要问题的原因(为什么选择多态关系、为什么使用此视图、什么选择您希望更棘手等)。这会随着代码的改变而改变(而且你也无能为力)。记录更改。要处理更改,请使用数据库的版本控制系统,如 rails migrations .

    • 设计网站的结构(节、页、链接、页面流等)。把它记录下来。(如:“现场2段,此段由……”等构成)
      在此基础上,制作一个描述控制器和视图的文档。(文章的控制器,带有列表视图和文章视图,也可以编辑和创建视图,但仅用于管理员)等。
      描述如何执行身份验证和授权(在控制器和视图级别)。谁被允许去哪里。
      描述如何在需要时抵御主要Web攻击(XSS、CSRF)。(示例:“我使用HTMLEntities对所有视图变量进行XSS保护和…”)

    • 设计您的模型和侧边功能(发送电子邮件、后台作业等)。这些将是大部分代码。记录每一个问题并描述主要问题(例如,如何处理时区,此特定模型如何连接到货币服务,该模型如何解析和操作一些crone文件,根据您的应用程序,您应该使用什么算法来决定前5篇文章。)描述您使用的库、如何以及用于什么目的。(示例:“我们将使用curl来废弃so并生成rss feed”)。
      描述如何在需要时抵御主要Web攻击(SQL注入、XSS)。

    当你编码的时候,事情就变了。你对系统离散工作的了解不断发展,你开始在新发现的启示的基础上改进设计。记录您的更改。

        3
  •  2
  •   Lauri Lehtinen    14 年前

    喜欢抽象的人的一些想法。

    弄清楚你的网站有什么共同点。一旦确定了主要的共性,就要寻找尽可能多地处理它们的框架或库(除了满足您的其他标准之外),例如样板数据库代码。

    对于那些你找不到任何现成代码的常见功能(它们总是存在于定制的网站中),你将有机会编写一个公共库,供你自己在网站上使用。这可以是标记的模板、JavaScript库或可重用的服务器端组件,或者是一起使用。

    根据您的描述,听起来您在创作过程中享有极大的自由(而不是要求您提交并要求实现需求规范)。我也会说不要过度计划,“马上开始编码”是很有趣的,也不是很糟糕。经验将是你最好的朋友,当你到达网站100时,你将拥有很多经验。在构建第二个网站时,您对第一个网站的体验将帮助您避免犯一些错误,并且您将发现计划阶段没有预料到的新的相似之处。只需确保花点时间,将公共代码移动到单个库中,然后返回并编辑第一个使用它的网站。再重复几次,你就会学到很多值得学习的东西。