【问题标题】:Good coding practice良好的编码习惯
【发布时间】:2011-03-21 07:46:53
【问题描述】:

我今年六月毕业,所以在此之前我想为在这个行业工作做好准备:)

My Question:

例如,我想使用列表框列出表格中的所有歌曲,这就是我的实现方式:

playlist.php

<tr id='' >
<td  width="" class="">&nbsp;&nbsp;<font color=#00000 />Select Songs</td>
<td width="" colspan="">
<select size='25'multiple='multiple' id="select_songs" name="playlist_songs[]">
<?php
display_songs_list();
?>
</select></td>
</tr>

我有一个单独的 php_functions.php 文件,我在其中实现了所有 php 函数

function display_songs_list(){
    $query = "select * from songs order by ID asc";

    $result = mysql_query($query);
    if(!$result)
    echo "<script language = 'javascript'>alert('$result Sorry couldn't connect to the database...');</script>";
    else{
        $num_rows = mysql_num_rows($result);
        if($num_rows > 0){
            while($row = mysql_fetch_array($result)){
                $ID = $row['ID'];
                $title = $row['title'];
                $value = $ID.'_'.$title;
                echo "<option id=\"$ID\" value=\"$value\">$ID : $title</option>";
            }
        }
    }
}

是否推荐这种实施方式。我还能做些什么来增加scalability/maintainability/re-usability。请指导我。是否建议遵循任何行业编码标准,如果是的话,你喜欢什么。谢谢。

【问题讨论】:

  • 首先,您可以尝试将数据操作与视图分开,这样您就可以使用 playlist.php 来查询数据库并构建需要显示的条目的数组/stdClass 对象,在构建数组后,您测试数组中是否有足够的条目(例如,超过 0 ),然后调用(包括)playlist_view.php,如果没有任何基于查询的条目,您可能会使用错误。 php 视图或类似的东西。
  • 也作为另一个开始,我希望你没有在你的布局中仍然使用表格
  • 按预期方式使用表格没有问题,即显示表格数据!

标签: php mysql html coding-style


【解决方案1】:
  • 不推荐使用内联样式属性 (color=#00000) 并杀死小猫。了解 CSS。
  • 不鼓励使用除表格数据(想想电子表格)以外的任何内容的表格,请改用 CSS 进行布局。
  • 使用&amp;nbsp; 硬编码空格是不可取的,如果它没有添加任何含义,请学习使用 CSS 添加空格。
  • echoing 来自同一函数的 HTML Javascript 是不好的。 Javascript 警报会在您调用函数时导致 HTML 语法无效。
  • 如此紧密地混合数据库调用和 HTML 并不好。研究 MVC 分离。
  • 在半成品页面的中间向用户输出一个随机的、毫无意义的 Javascript 警报是不好的。您应该改为显示一个专用的错误页面。请参阅 MVC,它可以帮助您完成此任务。
  • 属性的单引号和双引号混合使用不一致,使代码更难阅读。改用一种引号。
  • 您的标记中没有显示用于提交所选选择选项的表单

【讨论】:

  • 非常感谢..您是否推荐任何书籍或网站来深入了解 MVC,因为我以前没有尝试过。这些天以来,我并没有对 CSS 给予太多重视,认为它是为“设计”的人而设计的,但现在它似乎非常重要。
  • @Mahin 我建议您使用 PHP 框架。这可能会让您陷入困境,因为这通常也意味着学习 OOP,但是当您完成它时会值得。例如,参见 Zend、CakePHP 或 CodeIgniter。
【解决方案2】:

对我的建议持保留态度,但首先,您应该真正将与数据库对话的代码与给出用户错误的代码分开,它们是两个不同的东西。因此,如何在 php 中实现这一点的想法可能是一个函数,它查询数据库并返回一个关联数组,其中包含另一个函数然后打印的所有结果。此外,您应该有一个更通用的数据库类,您的所有查询都可以通过。首选此方法的原因是,您可以在以后轻松切换数据库,只需对代码进行最少的更改,但如果在每个函数中调用 mysql_query(),它可能会变得更加复杂。

【讨论】:

    【解决方案3】:

    这是一个相当不错的 php 方法。

    我通常将我的代码拆分为模型/视图/控制器类型的模型。

    “控制器”是当 URL 到达服务器时运行的程序。它:-

    • 从屏幕上抓取并检查所有 get/posted 变量。
    • 启动任何请求的操作,例如数据库更新。
    • 启动一些“模型”函数来获取下一个屏幕的数据。
    • 使用“查看”函数或函数格式化下一个屏幕。

    请注意,控制器本身不会发出任何 html。

    “模型”函数执行数据库访问并应用“业务”规则。

    “视图”函数发出 html 标签等

    除了一般的整洁性之外,这样做的一大优势是您处理序列不依赖于字段在屏幕上出现的顺序。所以它确实使程序更易于维护。

    【讨论】:

    • 非常感谢..您是否推荐任何书籍或网站来深入了解 MVC,因为我以前没有尝试过。
    • 使用 Zend Framework,现在越来越多的公司在使用它进行开发,这意味着如果您知道它,您将有更好的机会找到工作。
    猜你喜欢
    • 1970-01-01
    • 2013-09-11
    • 2012-02-29
    • 2013-11-29
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多