代码执行的效率
在《性能调优攻略》里,我说过,要调优性需要找到程序中的Hotspot,也就是被调用最多的地方,这种地方,只要你能优化一点点,你的性能就会有质的提高。在这里我给大家举三个关于代码执行效率的例子(它们都来自于网上)
第一个例子
PHP中Getter和Setter的效率(来源reddit)
这个例子比较简单,你可以跳过。
考虑下面的PHP代码:我们可看到,使用Getter/Setter的方式,性能要比直接读写成员变量要差一倍以上。
<?php
//dog_naive.php
class dog {
public $name = "";
public function setName($name) {
$this->name = $name;
}
public function getName() {
return $this->name;
}
}
$rover = new dog();
//通过Getter/Setter方式
for ($x=0; $x<10; $x++) {
$t ...
一些文章和各种资源
下面是近期收录的一些文章和资源,希望对你有用。
目录
系统方面
各种教程
Web库
HTML 5
编程规范
其它
系统方面
印度的电子商务网站flipkart的性能扩展(PPT) http://www.slideshare.net/sids/how-flipkart-scales-php,都是一些最基本的东西,对于初学者来说很不错。PPT做的也不错。
Tagged.com的扩展之路 – 1亿用户,1000台服务器,50亿的PV http://highscalability.com/blog/2011/8/8/tagged-architecture-scaling-to-100-million-users-1000-server.html 还是PHP的WEB站点。另外,highscalability.com这个网站上有很多和高性能有关的文章,很不错。比如最新的:Stuff The Internet Says On Scalability For September 16,  ...
PHP分页技术的代码和示例
本文来自:10 Helpful PHP Pagination Scripts For Web Developers
分页是目前在显示大量结果时所采用的最好的方式。有了下面这些代码的帮助,开发人员可以在多个页面中显示大量的数据。在互联网上,分页是一般用于搜索结果或是浏览全部信息(比如:一个论坛主题)。几乎在每一个Web应用程序都需要划分返回的数据,并按页显示。下面的这个列表给出的代码可以让你的开发很有帮助。学习这些代码,对于初学者也很有帮助。
目录
1) 使用Ajax分页
2) MySql 分页
3) Facebook/Twitter 风格的分页
4) Php & MySql 分页
5) 分页风格
6) PHP 分页类
7) Easy Pagination
8 ) 基本分页
9) Php Page
10) perfect-php-pagination
1) 使用Ajax分页
下面这个示例使用了jQuery + PHP。&nb ...
开源中最好的Web开发的资源
文章来源:Best “must know” open sources to build the new Web。个人感觉这个收集贴收集成相当的全。
目录
学习HTML 5编程和设计
服务器端的软件
PHP 框架和工具
数据库
API 和 在线数据
在线代码和媒体编辑器
代码资源和版本控制
JavaScript 桌面应用框架
JavaScript 移动和触摸框架
jQuery 插件
其它 jQuery 资源
HTML5 视频播放器
JavaScript 音频处理与可视化效果
JavaScript 图形 和 3D
JavaScript 浏览器接口 (HTML5)
JavaScript 工具
客户端和模拟器
Website (FULL) 模板
学习HTML 5编程和设计
★ HTML5 Rocks : Major Feature Groups 的学习 HTML5 的资源 (HTML5 演示, 教程 ) ...
Web开发人员速查卡
无论你是多牛的程序员,你都无法记住所有的东西。而很多时候,查找某些知识又比较费事。所以,网上有很多Cheat Sheets,翻译成小抄也好 ,速查卡也好,总之就是帮你节省 时间的。之前给大家介绍过Web设计的速查卡、25个jQuery的编程小抄,还有程序员小抄大全,今天转一篇开发人员的速查卡,源文在这里。下面的文章我就不翻译了。
HTML Cheat Sheet
HTML/XTML in one page
HTML5: The Evolution of Web Standards by James Sugrue
(X)HTML Elements and Attributes
Doctype Declarations (DTDs)
XHTML Character Entity Reference
GoSquared HTML Help Sheet
CSS Cheat Sheets
CSS in one page
CSS Properties and Values
All CSS Properties Listed Alphabetically
CSS ...
最为奇怪的程序语言的特性
这些最为奇怪的程序语言的特性,来自stackoverflow.com,原贴在这里。我摘选了一些例子,的确是比较怪异,让我们一个一个来看看。
1、C语言中的数组
在C/C++中,a[10] 可以写成 10[a]
“Hello World”[i] 也可以写成 i[“Hello World”]
这样的特性是不是很怪异?如果你想知道为什么的话,你可以看看本站的这篇文章——《C语言的谜题》中的第12题。
2、在Javascript中
‘5’ + 3 的结果是:’53’
‘5’ – 3 的结果是:2
3、C/C++中的Trigraphs
int main() {
cout << "LOL??!";
}
上面的这段程序会输出: “LOL|”,这是因为 ??! 被转成了 | ,关于Trigraphs,下面有个表格:
??=
#
??(
[
...
程序员眼中的编程语言
下图是一个搞笑的图片——程序员眼中的编程语言。
图片的横轴是编程语言。
纵轴是各语言的程序员、粉丝、信徒。
中间的各个小图片则是,粉丝眼中的编程语言的形象。
比如说,
第一行第一列,是Java程序员看Java语言的样子,一幢现代化的大厦。
第一行第二列,是Java程序员看C语言,一个年老过时的骨灰级老头。
当然,C程序员看Java语言也比较搞,见第二行第一列。呵呵。
其它的大家自己看吧。还有另外一个关于操作系统的《粉丝眼中的操作系统》
SQL的Where语句
某DBA在查看自己的数库日志的时候,看到了数据库服务器上出现了很多很怪异的SQL的Where条件语句,是下面这个样子:(所有的where语句前都有了一个叫“1=1”的子条件)呵呵。
要理解这个事情的原因其实并不难。只要你是一个编写数据库的程序员,你就会知道——动态生成where后的条件的“麻烦”,那就是条件的“分隔”-and或or。下面听我慢慢说来。
我们知道,大多数的查询表单都需要用户输出一堆查询条件,然后我们的程序在后台要把这些子条件用and组合起来。于是,把and加在各个条件的中间就成为了一件“难事”,因为你的程序需要判断:
如果没有条件的话,则不需要where
如果只有一个条件的话,不需要and.
如果有多个条件的话,
如果and是持续加在每个条件后面的话,那么就要判断是否是最后一个条件,因为最后一个不能加and.
同样,如果and是要加在每个条件前面的话,你就需要判断是否是第一个,如果是,那就不加。
真是TMD太烦了,所以,编程“大拿”引入了“1=1”条件语句。于是,编程的难度大幅度下降,你可以用单一的方式来处理这若干的查询子条件了。 ...
Javascript程序员嘴最脏??
请看下图,我在Google Code上,针对每个程序语言都搜索了一下“fuck”一词的出现文件的个数X,以及没有出现fuck一词的文件的个数Y,然后放在Excel里求了一下百分比(X/(X+Y) * 100%),做了一个图。结果,JavaScript语言中出现的次数高达0.56%,名列全部语言之首,然后是Perl,C 和 PHP。(对于Javascript程序员的这种行为可以理解,因为IE,因为浏览器嘛,我就不多说了)
相关的数据表格如下:
(全文完)
MySQL性能优化的最佳20+条经验
今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显。关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情。当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能。这里,我们不会讲过多的SQL语句的优化,而只是针对MySQL这一Web应用最多的数据库。希望下面的这些优化技巧对你有用。
目录
1. 为查询缓存优化你的查询
2. EXPLAIN 你的 SELECT 查询
3. 当只要一行数据时使用 LIMIT 1
4. 为搜索字段建索引
5. 在Join表的时候使用相当类型的例,并将其索引
6. 千万不要 ORDER BY RAND()
7. 避免 SELECT *
8. 永远为每张表设置一个ID
9. 使用 ENUM 而不是 VARCHAR
10. 从 PROCEDURE ANALYSE() 取得建议
11. 尽可能的使用 NOT NULL
12. Prepared Statements
...
编程语言汽车
以前酷壳发布过《操作系统航空公司》戏谑了一下如果操作系统是航空公司会怎么样的一种情况。现在,我们来YY一下编程语言,如果编程语言是汽车,又会怎么样?
Ada 这是一辆坦克。一个很厚重但很丑的坦克,从不会崩溃。如果你告诉别人你正在驾驶Ada,别人会狂笑不已。但是,你会开着一辆跑车去打战吗?[from Amit Dubey]
汇编语言 只是一个祼露在外的引擎。你不得不自己去造车,并向其提供汽油,但你在驾车时要小心,因为他会像一只从地狱放出来的蝙蝠一样。其实,对于汇编语言,你自己才是车。[From “Subterfug” off digg.com:]
Basic 是一辆很简单的车,对于一些短途的交通比如去一些超市商店,他是很有用的。以前这是一个对初学者很流行的车,然而,近来它蜕变成脚本,而更新的车型被抛光以应对长途旅程,但那也只是新瓶装旧酒。[from Przemyslaw Wrzos]
C 是一辆赛车,它的速度是令人难以想象的快,可惜的是它每50公里就会损毁一次。
Cobol &nb ...
到处都是Unix的胎记
一说起Unix编程,不必多说,最著名的系统调用就是fork,pipe,exec,kill或是socket了(fork(2), execve(2), pipe(2), socketpair(2), select(2), kill(2), sigaction(2))这些系统调用都像是Unix编程的胎记或签名一样,表明着它来自于Unix。
下面这篇文章,将向大家展示Unix下最经典的socket的编程例子——使用fork + socket来创建一个TCP/IP的服务程序。这个编程模式很简单,首先是创建Socket,然后把其绑定在某个IP和Port上上侦听连接,接下来的一般做法是使用一个fork创建一个client服务进程再加上一个死循环用于处理和client的交互。这个模式是Unix下最经典的Socket编程例子。
下面,让我们看看用C,Ruby,Python,Perl,PHP和Haskell来实现这一例子,你会发现这些例子中的Unix的胎记。如果你想知道这些例子中的技术细节,那么,向你推荐两本经典书——《Unix高级环境编程》和《Unix网络编程》。
目录
...
编程真难啊
上周,在Sun的Java论坛上出现了一个这样的帖子,这个贴子的链接如下:http://forums.sun.com/thread.jspa?threadID=5404590&start=0&tstart=0
LZ的贴子翻译如下:
大家好,我是一个Java的新手,我有一个简单的问题:请问我怎么才能反转一个整数的符号啊。比如把-12转成+12。是的,毫无疑问这是个简单的问题,但我弄了一整天我也找不到什么好的方法。非常感谢如果你能告诉我Java有什么方法可以做到这个事,或者告诉我一个正确的方向——比如使用一些数学库或是二进制方法什么的。谢谢!
这个贴子的沙发给出了答案:
n = -n;
LZ在四楼回复到:
我知道是个很简单的事,可我没有想到居然这么简单,我觉得你可能是对的。谢谢你。
过了一会,又回复到:
不开玩笑地说,我试了,真的没有问题耶!
看到这样的贴子,就能想到国内论坛上很多这样的“问弱智问题的贴子”,结果可能都会是比较惨!是的,国外的互联网文化和国内差不多,都是恶搞的人多于热心的人,呵呵。不过,国外的网民们有一点是好的,再恶搞也是就事搞事,不会有 ...
十个Web开发文章和教程
下面是十个在2009年8月份里出现的十个非常不错的Web开发方面的文章和教程。推荐给大家,当然,都是英文啦。如果你愿意,欢迎翻译后提交给酷壳。
1)一个简单的Lava 灯式的菜单(使用jQuery完成)
2)使用jQuery自动生成文章内容的目录。就像是使用Word一样,设置一下标题,然后可以自动生成文章的目录。
3)使用jQuery为图片创建图片标题和描述。这是一个超Cool的效果,当你的鼠标移到图片上的时候,图片的上下会出现遮覆,上面是标题,下面是描述,相当不错的用户体验,当鼠标移开后,遮覆消失。
4)CSS3速成教程。主要讨论了CSS3的这些特性:旋转和改变大小,动画,Photoshop风格的遮罩,图片倒影,色彩渐变,转换等。有一个不错的flash视频。
5)30+相当有用的Wordpress的巧门。相当相当不错的一些和Wordpress相关的插件和小巧门,非常非常地实用。
6)htaccess技术的权威性指南。本文给出了12个非常有用的apache的设置,可以让你更容易设置你的站点,在这篇文章的最后,还列出了一些经验上的东西。另外,你可以参考本站的《16个简单实用的.hta ...
18个Web开发的IDE
Windows 下的IDE
目录
Visual Web Developer
phpDesigner
PHPEdit
Visual Studio 2008
Expression Web
PhpEd
BlueFish
Dreamweaver CS4
Eclipse
Aptana Studio
Netbeans
Nvu
Spket IDE
IntlliJ IDEA
Komodo IDE
Zend Studio
Visual Web Developer
免费
Visual Web Developer 是一个简单来说是Visual Studio的一个剥离版本,只有web 开发。和VS一样它有一个很不错的project 管理和数据库工具。这个IDE面对的是初学者。
phpDesigner
75€ (~$105)
www.phpeditors.com 开发的 phpDesigner 是一个五星级的产品。他是一个超级快速的拥有强 ...
7个免费强大的Ajax文件管理器
如果你正在开发一个WEB应用,需要一个不错的强大的文件管理器,并且可以简单的定制,那么,下面的这七个免费开源的文件管理器你一会喜欢的。这些文件管理器都很强大,他们全部都支持PHP,Javascript和Ajax,有几个还支持别的WEB开发语言。这些管理理可以让你完成目录文件浏览,搜索,上传/下载,编辑,拷贝,移动,删除等等文件操作功能。
1. AjaXplorer
AjaXplorer 是一个免费的 Ajax 文件管理器,其很容易安装。而且它的布局很丰富,可以用于多种应用,比如:文件管理,文件共享,图片库,代码库等等。不过它只支持(4 呀 5) ,不支持数据库。
改名/拷贝/移动/删除/下载文件或目录。
以进度条的方式上传多个文件 (需要Flash 支持,不支持https)
创建目录和空文件。
编辑纯文本文件和代码 (js, php, html, java, sql, perl),支持语法高亮。
查看图片,有缩略图功能。
可以在线地播放MP3文件。
在线地查看Flash videos (FLV) 文件。
可以在线地浏览或解压ZIP 文件。
链接:
...
使用PHP的cURL库
使用PHP的cURL库可以简单和有效地去抓网页。你只需要运行一个脚本,然后分析一下你所抓取的网页,然后就可以以程序的方式得到你想要的数据了。无论是你想从从一个链接上取部分数据,或是取一个XML文件并把其导入数据库,那怕就是简单的获取网页内容,cURL 是一个功能强大的PHP库。本文主要讲述如果使用这个PHP库。
启用 cURL 设置
首先,我们得先要确定我们的PHP是否开启了这个库,你可以通过使用php_info()函数来得到这一信息。
<?php
phpinfo();
?>
如果你可以在网页上看到下面的输出,那么表示cURL库已被开启。
如果你看到的话,那么你需要设置你的PHP并开启这个库。如果你是在Windows平台下,那么非常简单,你需要改一改你的php.ini文件的设置,找到php_curl.dll,并取消前面的分号注释就行了。如下所示:
//取消下在的注释
extension=php_curl.dll
如果你是在Linux下面,那么,你需要重新编译你的PHP了,编辑时,你需 ...
如何在Google App Engine上运行PHP
Google 在一年前发布了Google App Engine (GAE) 。这是一个免费的 App Engine 主机,可以让你的每个Application(免费的最多有10个)有1GB的磁盘空间和43.6个CPU小时与10GB的上传和10GB的下载带宽,以及2000个电子邮件。如果你需要地更多,那就是付钱了。
GAE 最近发布了正式支持Java的通知。于是,互联网上开始有了各种各样的BLOG评论文章,还有一些人居然在Google App Engine 中运行PHP程序,这个太不可思议了。因为GAE目前并不支持PHP。
其实,他们使用了一个叫做 Quercus的东东, Quercus 本质上是一个 100% 的用Java 实现的一个 PHP 引擎 (需要 JDK 1.5),所以,只要你把Quercus集成到你的GAE中,你自然也可以运行PHP脚本了。
下面是大体步骤:
1) 注删一个 免费的帐号。
2) 下载这个文件 到你本机。
3) 在 war\WEB-INF\appengine-web.xml 编辑 ...
9个强大免费的PHP库
1. ReCAPTCHA
reCAPTCHA 允许你的网站集成一个Advanced CAPTCHA 系统,这个系统可以帮助你阻止一些垃圾信息。可视化的CAPTCHA 同样也有一个有用的声音功能。另外,在reCAPTCHA 服务里,这个PHP库也包含了一个给 “Mailhide” 服务用的API,这个可以把你的邮件地址隐藏于一些抓邮件地址的程序。
这个API是免费并且非常容易使用的,你需要做的就是申请一个API的KEY。
下载 ReCAPTCHA | 获取一个API Key | 相关文档
2. Akismet
Akismet 是一个免费的服务项目,对于一些小型的网站它是完全免费的,对于一些大型的网址,他是部分免费的。这个库也是提供了处理一些和垃圾信息相关的功能。它主要通过比对自己数据库中已存在的被认定为垃圾的信息,而做出决定的。当然,数据库中的垃圾信息可能通过各个网站举报,大家供享的。这是一个每天都在更新,每天都在改进的库。许多许多的WordPress都装有这个库。
实施Akismet
3. Services_JSON
JSON 是一个非常小巧敏捷的PH ...