10、“飞行模式”(On-the-fly)编程
  大部分开发者都会遇到这样的情况:“快,客户需要一项新功能,要能运行ASAP”,于是你在源代码上新增一些功能,然后直接上传到正在运行的服务器上,这种编程方式我们称其为“飞行模式”(On-the-fly)编程。
  我们在开发软件时,尤其是中大型的项目,都必须按照工作流程来进行分析、编程和发布,这将大大减少未来软件的bug。这种“飞行模式”并不可取。
  数据库级别的错误
  11、没有将数据库读写分离
  为了能长时间运行复杂的系统,每一个程序员都应该考虑到系统的可扩展性,系统99%的时间都不需要考虑扩展,因为并没有如此大的流量。
  为什么要数据库读写分离?
  在每一个系统中,数据库将会是第一个出现的瓶颈,在大流量的冲击下,数据库很可能将会是第一个阵亡的。所以大部分情况下我们会用多个数据库来分散流量,开发者经常会使用Master – Slave模式或者Master – Master 模式。Master – Slave是受欢迎的一种数据库分压模式,它会将指定的select语句路由到每一个Slave服务器,这样Master服务器的压力会减轻不少。
  12、代码只能连接到一个数据库
  这和上一个错误非常像,但是开发者有时候因为某些原因需要连接到多个数据库,比如你会将用户日志、活动信息流、实时数据分析等高负载的数据放到不同的数据库中来缓解对主数据库的压力。
  13、没有检测数据库漏洞
  如果你不对数据库进行漏洞检测,相当于给大部分黑客敞开了服务器的大门。
  在众多漏洞中,数据库漏洞是脆弱的,常见的是SQL注入。因此定期做数据库漏洞检测还是很有必要的。
  14、数据表不建索引
  索引在数据表中有着非常重要的作用,合适的索引可以提高每张表的性能,这里有一篇文章讲述了如何创建索引以及何时创建索引。
  15、没有使用事务机制
  数据完整性对Web系统非常重要,如果数据一致性发生错误,那么整个系统都会崩溃并且难以修复。合理地运用数据库的事务机制将有效地解决这个问题。比如你要保存用户数据,在table1中有e-mail, username和password,table2中有first name, last name,和gender age。我们可以利用事务对两张表更新时保证数据同时被更新或者同时不被更新。
  16、没有加密敏感数据

  对于数据库中的敏感信息,如果你不对它们进行加密,或者用简单的算法进行加密,那么在2014年你肯定会遇到一些麻烦的问题,黑客们一旦入侵你的数据库,用户的密码或者其他重要信息会一览无余。
  PHP5.5中提供了一个哈希加密方法,使用如下:
  $hash = password_hash( $password, PASSWORD_BCRYPT );
  17、没有备份
  看到下面这张图片没,如果遇到这样的情况,你又没有备份,那么一切都over了。

  18、没有监控
  没有监控,你将不知道接下来会发生什么事情,对于监控,要注意以下几个问题:
  有多少人可以直接访问这个应用服务?
  服务器是否在高负载下运行?
  我们需要用另一台数据库服务器来扩展系统吗?
  应用系统的失败点在哪里?
  系统目前正处于离线状态吗?