【问题标题】:sequence of features implementation on a large scale website,大型网站上的一系列功能实现,
【发布时间】:2011-12-08 22:16:31
【问题描述】:

在我的大部分时间里,我更像是一名营销人员。然而,我最近决定为我正在从事的一家雄心勃勃的初创公司换档学习编程。基本上,该项目基于社交网络元素的元素(关注、订阅、帖子、通知等),但有所不同。我想知道我应该以什么顺序为网站的基础设施编写代码。我想我先在 MYSQL 中写下整个数据库模式,然后用 PHP 编写所有数据库查询,然后制作注册页面,然后用 PHP 编写网站的整个后端。这种方法正确吗?我会很感激你能给我的任何指示。我应该先从后端开始吗?高扩展性网站的哪些基础架构组件最好使用 C++ 而不是 PHP?

谢谢

【问题讨论】:

    标签: php web-applications scalability social-networking


    【解决方案1】:

    你描述的是经典的Waterfall Model。它几乎永远不会起作用,因为规格会改变,因为

    • 客户(您的案例中的初创公司)改变了需求
    • 与软件 Alpha 版本交互的客户
    • 您意识到可以通过不同方式解决问题

    因此,我建议您逐个功能地实施。从一个空数据库和一个只连接到该数据库的 php 脚本开始,然后实现一个功能。

    对于每个功能,确定需要添加哪些数据库字段。您可以使用现有的数据库条目或重组您的数据库以适应新的表和行吗?

    然后,您可以同时或依次执行以下三个步骤:

    • 更改代码中数据库对象的模型。模型的基本测试将在以后为您节省大量白发。
    • 添加一个控制器来执行新的操作,或者修改一个现有的。同样,控制器测试对于确保您以后不会破坏该功能至关重要。
    • 添加或修改 视图 (HTML/CSS/JavaScript)。如果您不确定该功能究竟应该做什么,您可以从视图开始,并向管理层提供一个粗略的(仅 HTML)版本。如果更改请求开始与元素的精确位置或颜色有关,您就知道您走在正确的轨道上。您可以手动测试视图(使用不同的浏览器)和/或使用Selenium

    既不需要严格的 MVC 也不需要测试,但它们极大地简化了软件开发,并让您可以确定您的代码实际上可以在生产环境中运行。

    【讨论】:

    • 写下你想要拥有的所有功能,然后给它们打一个重要性分数。然后,您可以缓慢地进步(?),但肯定会一步一步地进步。稍后,优化可能只是此步骤中的一个。
    【解决方案2】:

    PHP 在与 MySQL 数据库交互以及向数据库服务器发送 SQL 命令方面具有一些出色的功能。

    您的数据库结构应尝试获取您网站的所有数据元素(用户详细信息、消息、cmets 等),并将这些信息分解为其最合乎逻辑和最有效的结构。这是通过将全部数据分解为逻辑和离散表来实现的,使用索引号(主键)或您希望关联每个表中的元组的任何字段(外键)进行引用。

    使数据库达到这个阶段被称为第四范式 (4NF) 或 Boyce Codd 范式 (BCNF)。

    一旦确定了数据库的结构,您就可以使用 SQL 命令查询它以将数据放入某个表中或检索它。

    假设您使用 PHP 的 mysql_query ( string $query [, resource $link_identifier ] ) (http://www.php.net/manual/en/function.mysql-query.php),您可以将 SQL 数据加载到数组中,并在一些 HTML 中打印出数据。

    一旦你开始这样做,你可能还想使用 PHP $_SESSION global var 来跟踪任何登录的用户。这个全局变量使用 cookie 来跟踪经过身份验证的用户,对于登录用户非常有用。你需要实现一些登录代码来匹配用户名和密码,然后如果成功就创建会话。

    希望对您有所帮助! :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-21
      • 2010-11-18
      • 2012-06-15
      • 2020-12-02
      • 2015-06-10
      • 2021-04-22
      • 2015-12-05
      相关资源
      最近更新 更多