代码之家  ›  专栏  ›  技术社区  ›  Ibrahim Azhar Armar

几个逻辑编程问题

  •  5
  • Ibrahim Azhar Armar  · 技术社区  · 15 年前

    我最近开始编写代码,这个社区帮助我理解了很多我不知道的事情。然而,许多著名的程序员告诉我一些模式,我必须编码的方式和我不应该写代码的方式。虽然我感激地接受了他们的建议,但有许多事情我还是不明白。

    我希望你的观点能理解过去几天来我脑子里一直在想的几个问题。

    MySQL数据库

    1. 为什么每次我用电脑的时候,很多程序员都对我竖起大拇指 * 在select语句中?他们为什么建议使用 entityname.tablename 即使有时我需要一个表中几乎所有的数据?

    2. 如果我的代码在一个页面上频繁访问数据库,比如说5-8请求,可以吗?更准确地说,在一个页面中,我希望更新值、插入值、计算行数、求和值等等。

      我曾经把几乎所有的select语句作为一个查询,这个社区的一个著名用户建议我不要这样做,而是建议我使用一个用户定义的函数。(顺便说一句,用户定义的函数帮助我清理代码并更快地理解错误)。你对此有何看法?

    框架

    当我开始学习PHP时,我对编程和网络了解得很少,虽然我在大学里学习过C、C++、.NET、java等流行的计算机语言。这只是我学到的正式的和理论性的课程,当我知道我想成为一名网络开发人员时,互联网是我最好的朋友,社区帮助了我。

    对我这样的学习者来说,框架是邪恶的吗?

    5 回复  |  直到 5 年前
        1
  •  7
  •   Thomas Clayson    15 年前

    MySQL数据库

    使用*很好。当您开始对MySQL查询(连接和比较表)感到非常复杂时,您需要考虑使用 entityname.tablename 只是为了不让自己搞糊涂。

    下一个问题太主观了。这取决于服务器和脚本的效率。这还取决于有多少人将使用该脚本。很明显,和任何东西一样,你用得越少越好。如果你可以做一个sql查询而不是5个,那么就这样做吧,但是如果你只会有几百人浏览你的博客,那么我就不会太担心了。功能也一样。显然,把所有的东西都放到函数中会更好。从长远来看,这很有帮助,因为您只需在一个地方编辑脚本即可进行更改。这样说吧——如果你在复制和粘贴代码,那么你应该使用函数。但是如果你的脚本只有1个文件,200行长,那么如果你不想,我也不会担心。

    框架

    这是我的看法,但这是一个非常主观的问题。

        2
  •  3
  •   erisco    15 年前

    在SQL中选择所有合适的参数: http://www.joelango.com/2007/04/30/why-you-should-never-use-select-star/

    关于框架:如果您想在其基础上学习PHP,那么现在就避免框架。否则,如果您真的想跳进去完成任务,那么从一个框架开始就可以了。例如,我不了解JavaScript本身,但我可以很好地使用JQuery(JavaScript库/框架)。

        3
  •  2
  •   jameslimousin    15 年前

    就像Thomas Clayson所说的那样,使用*对于简单的查询是很好的,但是当您有复杂的join语句时,您应该指定字段并为表指定一个名称(比如someTable作为a),并使用a.someField来组织您的查询。

    当学习一门特定的语言时,框架只是帮助开发人员在更短的时间内完成工作的工具(包括维护,jaja最糟糕的事情),但是如果你是初学者,你真正应该学习的是语言支持什么样的编程范式(面向对象,过程的或函数的)和重点或学习这些范式和语言的具体命令,因为例如,如果你预先提供面向对象的类将始终是类,函数和过程将始终具有相同的squelet,但在每种语言的实现不同,因此,如果你学习范式将很容易学习任何语言。

    我的拙见希望对你有所帮助,问候

        4
  •  1
  •   Ryan Chouinard    15 年前

    虽然从技术上讲,在大多数情况下,在SELECT请求中使用*并没有错,但是扩展列名可以使语句更容易理解,并使代码中可能存在的其他开发人员能够更好地自行编写文档。他们可以查看查询并查看row对象应该具有哪些属性。除此之外,*也是 轻微地 查询期间效率较低。这真的没什么好担心的,除非你只需要一小部分可用的列。

    至于多个查询,则视情况而定。如果为特定项目运行10 SELECT比为多个项目运行1 SELECT并解析它们快,那么运行10 SELECT。运行多个小而快的查询比运行一个大而慢的查询要好得多。显然,每个应用程序都是不同的。

        5
  •  1
  •   foo    15 年前
    1. 在SELECT语句中使用*时:虽然它是非常有效的语法,但由于两个原因,通常建议不要使用它。一是速度;二是代码质量。使用*时,您请求(和获取)哪些行以及它们的顺序并不明显;如果更改了数据库并添加了行,那么您也将获取这些行,如果更改了行的顺序,那么结果将非常出乎意料。

    也就是说,为了方便和一些测试,您仍然可以使用*。 但是对于生产代码,请考虑指定行。

    1. 存储过程(或“用户定义函数”)效率更高,而且对注入之类的攻击也更安全。如果你能在不牺牲灵活性或其他你需要的方面的情况下制作它们,那么就这样做吧。 过早的优化是万恶之源

    所以学习你的基础知识,一旦你掌握了它们,你就可以开始使用框架了。

    推荐文章