摘要:
简介 2001年,为了解决许多公司的软件团队陷入不断增长的过程泥潭,一批业界专家一起概括出了一些可以让软件开发团队具有快速工作、响应变化能力的价值 观和原则,他们称自己为敏捷联盟。敏捷开发过程的方法很多,主要有:SCRUM,Crystal,特征驱动软件开发(Feature Driven Development,简称FDD),自适应软件开发(Adaptive Software Development,简称ASD),以及最重要的极限编程(eXtreme Programming,简称XP)。极限编程(XP)是于1998年由Smalltalk社群中的大师级人物Kent Beck首先倡导的。 ... 阅读全文
摘要:
第1章 引言随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题。对于一个大型的 互联网应用,每天几十亿的PV无疑对数据库造成了相当高的负载。对于系统的稳定性和扩展性造成了极大的问题。通过数据切分来提高网站性能,横向扩展数据层 已经成为架构研发人员首选的方式。水平切分数据库,可以降低单台机器的负载,同时最大限度的降低了了宕机造成的损失。通过负载均衡策略,有效的降低了单台 机器的访问负载,降低了宕机的可能性;通过集群方案,解决了数据库宕机带来的单点数据库不能访问的问题;通过读写分离策略更是最大限度了提高了应用中读取 (Read)数据的速度和并发量。目前国内的大型互联网应用中,大 阅读全文
摘要:
可能 MySQL Proxy 很多数据库技术人员都比较熟悉了,在前不久,国内也有开发者发布了一个Amoeba(变形虫)项目(http://sourceforge.net/projects/amoeba),这个项目专注分布式数据库 Proxy 开发,引起了广泛的关注。 DBA notes( http://www.dbanotes.net ) 站长Fenng 有幸采访了阿米巴项目的开发者陈思儒,以下是采访全文。Fenng:你好,思儒,很高兴能接受采访,简要介绍一下自己吧? 陈思儒: 我目前是盛大计算机(上海)有限公司的一位高级研究员。 在就业生涯中从事分布式消息系统、分布式应用、多层框架设计、规则 阅读全文
摘要:
//核查ULR是否有效function checklongurl($src){ $matches = array(); preg_match('@^(?:http://)?([^/]+)@i', $src, $matches); $host = $matches[1]; // get last two segments of host name preg_match('/[^.]+\.[^.]+$/', $host, $matches); $ischeck = isValid($matches[0]);}首先我们分解'@^(?:http://)?([^/ 阅读全文
摘要:
单例模式可能是所有设计模式中最简单,但却是非常重要的一种设计模式。 很多情况下都需要类只有一个实例,比如说数据库的实例对象(可以看深空的那个数据库类。就是采用了单例模式)。因为他只有一个类图。所以说他简单。 通过几个提问,可能你能更容易的理解单例模式! 你如何创建类的实例? 使用new关键字 那如何避免一个类的实例创建? 可以这样操作么? class MyObject{private function __construct() {}} 那这样将如何获取这个类的实例? 因为构造函数已经被私有化。只有类的内部才能调用这个类的实例。外部想调用是没办法的。 那如果这样操作是不是就解决了? clas. 阅读全文
摘要:
上几章都大致了解了在OOP设计中,应该针对抽象编程而不是具体实现编程。 但是上面几章的代码中或多或少都又"new"来创建对象的实例。那么在这些地方,就不是针对抽象编程,而成了具体实现的编程。 但使用"new" 有错吗?从本质上讲是没错的,因为这是OOP的基础。但是,从另一个角度去说,他是错误的。但错不在他。而在程序上面。 简单的说,就是我们使用了new关键词将代码的执行硬编码进了程序之中。他不能在程序运行时来决定运行哪一个。也就是说,当我们希望一个项目需要改变的时候,需要添加新的对象的时候,需要打开文件进去修改 第三节的装饰模式重点讲过一个原则:对修改关 阅读全文
摘要:
cURL 是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP、FTP、TELNET等。最爽的是,PHP也支持 cURL 库。本文将介绍 cURL 的一些高级特性,以及在PHP中如何运用它。为什么要用 cURL?是的,我们可以通过其他办法获取网页内容。大多数时候,我因为想偷懒,都直接用简单的PHP函数:$content = file_get_contents("http://www.nettuts.com");// or$lines = file("http://www.nettuts.com");// orreadfile(http 阅读全文
摘要:
http://www.51jobdoc.com/TypeDesign/PHP/1_2.html 阅读全文
摘要:
定义和用法PHP extract() 函数从数组中把变量导入到当前的符号表中。对于数组中的每个元素,键名用于变量名,键值用于变量值。第二个参数 type 用于指定当某个变量已经存在,而数组中又有同名元素时,extract() 函数如何对待这样的冲突。本函数返回成功设置的变量数目。语法extract(array,extract_rules,prefix)参数描述array必需。规定要使用的输入。extract_rules可选。extract() 函数将检查每个键名是否为合法的变量名,同时也检查和符号表中的变量名是否冲突。对非法、数字和冲突的键名的处理将根据此参数决定。可以是以下值之一:可能的值: 阅读全文
摘要:
phpmt_srand播下一个更好的随机数发生器种子mt_srand(PHP 3 >= 3.0.6, PHP 4, PHP 5)mt_srand -- 播下一个更好的随机数发生器种子说明voidmt_srand(intseed)用 seed 来给随机数发生器播种。从 PHP 4.2.0 版开始,seed 参数变为可选项,当该项为空时,会被设为随时数。例子 1. mt_srand() 范例代码<?php//seedwithmicrosecondsfunctionmake_seed(){list($usec,$sec)=explode('',microtime());r 阅读全文