昨天转载了一篇wp2.7的介绍文章,不知道怎么回事,原作者留言偏偏说我没有注明出处。
1 我既写明出处,也没有删除原文中任何链接自身的链接。
2 如果删除了链接,作者怎么收到TB。(我不知道他到底收到几个TB)
3 作者信誓旦旦说我是后来加了链接,真是碰到有理说不清了。
昨天有用google reader之类订阅这里的朋友,或者是否看到我写明这篇文章出处的朋友,麻烦留言告知一下。
对于这样的小朋友,我只能说,不要过于低估别人的素质。
昨天转载了一篇wp2.7的介绍文章,不知道怎么回事,原作者留言偏偏说我没有注明出处。
1 我既写明出处,也没有删除原文中任何链接自身的链接。
2 如果删除了链接,作者怎么收到TB。(我不知道他到底收到几个TB)
3 作者信誓旦旦说我是后来加了链接,真是碰到有理说不清了。
昨天有用google reader之类订阅这里的朋友,或者是否看到我写明这篇文章出处的朋友,麻烦留言告知一下。
对于这样的小朋友,我只能说,不要过于低估别人的素质。
最近开始业余时间学习php,水平还相当菜鸟,当然觉得php还是很好玩的,特别是有很多的opensource项目都是php,于是可以方便的学习。下面这篇文章来自这里,对于初学者是不错的指点。
过去的几周对我来说是一段相当复杂的经历。我们公司进行了大裁员,我是其中之一,但却体验到了其中的乐趣。我从来没有被开除过,所以很难不去想得太多。我开始浏览招聘板块,一个全职PHP程序员的职位很吸引人,所以我寄去了简历并获得了面试机会。在面试之间,我和其主要的程序员们在咨询电话中聊了聊,最后他们给我出了一套测试题,其中有一道很耐人寻味。
找出以下代码的错误之处:
<?
function baz($y $z) {
$x = new Array();
$x[sales] = 60;
$x[profit] = 20:
foreach($x as $key = $value) {
echo $key+" "+$value+"<BR>";
}
}
你能找到几个呢?
如果你发现函数参数列表中少了逗号、“new Array()”是不正确的、行末用了冒号而不是分号、foreach中没有用“=>”及用“+”来连接字符串,那恭喜你,你找到了所有的错误,你已经掌握了PHP编程的基础。
现在我来说说我是怎么回答这道题的。我当然也找出了以上这些问题,但我更进一步。比如,你有没有发现在数组索引里没有用引号将字符串括起来?虽然这不会造成严重错误,但这是一个编码错误。另外,你注意到在echo一行它使用了双引号而不是单引号吗?使用了PHP开始标志的缩写形式?并且没有用“<br/>”而是用了“<BR>”?
在找出了实际错误后,我又在上面找到的问题后面加了注释。这足够让这份答卷从“正确”转变为“发人深省”了,这也给我的申请加了不少分,所以他们决定聘用我。(但最后我拒绝了,因为我喜欢紧凑的生活节奏,并将自己的PHP技能奉献给我的客户,而不是一家涉猎电信市场的公司。我需要一个舞台来大展身手。)
那么接下来就来看看我写的10条PHP编程习惯吧:
1、使用单引号括起来的字符串
当使用双引号来括字符串时,PHP解释器会对其进行变量替换、转义等操作,如“\n”。如果你只想输出一个基本的字符串,就用单引号吧,这样会节省一些资源。当然,如果你需要进行变量替换的,那就必须用双引号了,但其他情况下还是用单引号吧。
2、字符串的输出
你认为以下哪一条语句的运行速度最快?
print “Hi my name is $a. I am $b”;
echo “Hi my name is $a. I am $b”;
echo “Hi my name is “.$a.”. I am “.$b;
echo “Hi my name is “,$a,”. I am “,$b;
echo ‘Hi my name is ‘,$a,’. I am ‘,$b;
也许这看起来很奇怪,但事实上最后一条的运行速度是最快的。print比echo要慢,在字符串中进行变量替换时会慢,而连接字符串要比用逗号连接来得慢,最后一句则是第一个习惯的体现。所以,不在字符串中进行变量替换不仅会加快程序运行速度,也会让你的代码在任何语法高亮显示的编辑器中显得更为易懂(变量会被高亮显示出来)。很少人知道echo的参数可以用逗号连接,且速度会比字符串连接要来得快。最后再用上第一个习惯,那这条语句就非常好了。
3、在数组索引中使用单引号
正如你在上面的测试题中所看到的,我指出了$x[sales]从严格意义上来说是错误的,索引应该被括起来,即$x['sales']。这是因为PHP会将没有括起来的索引辨认为“裸”字符串,并把它解释为一个常量。当找不到该常量的定义时,才将其解释为一个字符串,所以这条语句才是可运行的。把索引括起来可以省去这部分工作,如果将来正好要用这一字符串定义常量时也就不会有错误了。我甚至听说这样做要快七倍左右的时间,虽然我没有亲自测试过。更多关于这一话题的讨论,请看PHP手册“数组”一章中的的“数组的能与不能”一节。
4、不要使用开始标志的缩写形式
你正在使用这样的符号吗?“<?”是非常糟糕的符号,它会引起与XML解释器的冲突。而且一旦你发布了这些代码,那么使用者就必须修改php.ini文件来打开对此符号的支持。所以实在没有理由去使用这种形式。用“<?php“吧。
5、尽量不要使用正则表达式
在进行常规的字符串操作时,尽可能不要去使用正则表达式(preg和ereg系列函数)。str_replace函数要比preg_replace快得多,甚至strtr函数也要比str_replace来得快。省去这些不必要的麻烦吧,你的老板会感谢你的。
6、不要在循环声明中使用函数
这个问题不单单出现在PHP中,你可以在其他语言的代码中经常看到:
差:for($i=0;$i<count($array);$i++){…}
好:$count=count($array);for($i=0;$i<$count;$i++){…}
这因该很好解释,但许多人就是想少写一行代码而浪费了系统资源。如果在循环声明中使用了count函数,那每次循环都会调用一次。如果你的循环次数很多,那就会浪费非常多的时间。
7、永远不要使用register_globals和magic quotes
这是两个很古老的功能,在当时(十年前)也许是一个好方法,但现在看来并非如此。老版本的PHP在安装时会默认打开这两个功能,这会引起安全漏洞、编程错误及其他的问题,如只有用户输入了数据时才会创建变量等。如今这两个功能都被舍弃了,所以每个程序员都应该避免使用。如果你过去的程序有使用这两项功能,那就尽快将其剔除吧。
8、一定要对变量进行初始化(这里的“初始化”指的是“声明”——译者注)
当需要没有初始化的变量,PHP解释器会自动创建一个变量,但依靠这个特性来编程并不是一个好主意。这会造成程序的粗糙,或者使代码变得另人迷惑,因为你需要探寻这个变量是从哪里开始被创建的。另外,对一个没有初始化的变量进行递增操作要比初始化过的来得慢。所以对变量进行初始化会是个不错的主意。
9、对代码进行注释
这个问题已经提过很多次了,但再多次也不够。我知道有些地方是不聘用不对代码进行注释的程序员的。我在前一次工作面试后和副总、面试官一起浏览我写的代码,当他们对我所做的代码注释印象深刻,还了解了一下我的这一习惯。一天之后,我得到了这个工作。
我知道有些自称为PHP大师的人声称自己的代码写得很好,不需要添加什么注释。在我看来,这些人都是垃圾。学一写注释的规范和技巧,熟悉一下phpDocumentor或Doxygen之类的注释辅助软件,都是值得的。
10、遵循一个编程规范
关于这一点,是你需要在面试中询问你潜在的老板的,问问他们正在使用什么编程规范。PEAR?Zend?内部规范?要提及你正在使用的编程规范,不管是你自己创建的,还是目前普遍流行的一种。对于PHP这种松松垮垮的语言来说,如果没有一个好的编程规范,那么那些代码就会看起来想一堆垃圾。%
GetCarDetail 函数说明
功能:
输入车型ID,返回该车型的基本参数。
输入:
1 车型ID:car_id,VARCHAR(100)
输出
一个对象,其中包含以下属性:
car_id : 车型ID
car_name:车型名称
car_dblink:在中国汽车网车型数据库的链接地址
car_import:国产/进口
car_price,FLOAT :厂商报价
car_depletion:百公里油耗
car_truedepletion:真实油耗
car_length,FLOAT:车型长
car_width,FLOAT:车型宽
car_height,FLOAT:车型高
car_factory:车厂
car_brand:品牌
car_series:车系
car_exhaust:排量
car_color:颜色,用/分割
car_style:厢式
car_engine:发动机
car_time,FLOAT:百公里加速时间
car_containment,FLOAT :邮箱容积
举例:
通过GetCarDetail(’7000′,”)读入一个车型ID(car_id)为7000的车型的详细信息。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | <?php /** * file: demo_GetCarDetail.php * * function:demo of the REST for db Open API * * * author: david * version: 0.0.1 * last update: 2008-7-30 * * 2008-7-30 first build */ //header("content-type: text/xml"); error_reporting(E_ALL|E_STRICT); require_once 'Zend/Rest/Client.php'; $client = new Zend_Rest_Client('http://127.0.0.1/~yijun/odb_rest_server.php'); echo '<br>'; $car = $client->GetCarDetail('7000','')->get(); echo $car->car_name.'<br>'; echo $car->car_factory.'<br>'; echo $car->car_brand.'<br>'; echo $car->car_series.'<br>'; echo '<br>'; |
输出:
乐骋 1.4 SL手动型
上海通用汽车有限公司
雪佛兰(上海通用)
乐骋
很久以前写过不知道中国那么多网站有多少重复的内容,大家都在做自己的。或许,互联网早期处于内容积累,可以理解。
康生创想说互联网到了第三代,是开发者的时代了。我非常同意这个观点。
从3月份开始,我和同事们一直在讨论一个垂直网站如何进行开放API,如何为互联网做出贡献。
最近,开放API在国内成为一个流行的名词,淘宝开放了API,校内开放了API,discuz uchome即将开放震撼性的manyou平台。有人说目前国内有开放API的公司有大概几十家。
我正在做一个独立的子站点,介绍我所在公司开放API的计划。当然,还会有mind3,信息聚合的初步尝试。
我的理念是,互联网只有开放,通过开放才能得到更多的用户,我们可以大家平台,也可以在平台上构筑应用,无论是平台还是应用,都可以对用户有帮助,对用户有帮助就自然能够产生效益。
开放API及其引用,还是一个新的事物。欢迎大家讨论
转载自这里
工作九年了,网站相关的开发工作也干了八年多。负责带领团队也好几年了。面试和带领刚工作的人也不少了。其中的优秀者不少,但是大多数都存在下面提到的几个认识误区。把这些问题提出来,希望对刚参加工作没有多久的程序员们有所帮助,少走弯路。
公司招你进来,其实最重要的就是看到你的工作能力和工作态度是可以接受的。
工作能力指你能满足他们的工作期望,或者在可接受的时间范围内,经过培训后,可以满足这个工作期望。
工作态度指你能有些做职员的基本素质。
这个道理应该所有人都清楚。但是到实际事情时候就经常犯迷糊。下面几点是经常会出问题的地方:
1、不经测试,Review,就认为自己工作完成了。
你的代码或者应用一旦被别人Review ,或者进行试用。这时候你代码的好坏,或者功能是否在各种场景下是否可用,都会影响你这个人在上级及同事眼里的可信任度。
代码书写的规范,性能的高质量,各种功能在各个场景都可用,则表示你这个人是完全可信的。下次上级给你分派任务的时候,就可以给你更多的自由度来发挥。长此以往,前途和钱途自然就随手可得。
反之,代码不规范,功能好些场景不可用。这只能让上级或同事觉得你不可信任。每次都需要处理你带来的这些问题,说恶心点就是你每次拉完大便都没擦屁股,每 次都得你的同事和上级帮你擦屁股。数次都这样后,上级或同事下次跟你沟通的时候就会觉得你这个人不可信任,一件事情必须反复多次强调,总觉得你还会作出问 题。你的信用已经非常危险了。
你在别人眼里的信用就这样被你慢慢透支了。透支到一定程度,走人吧。整个团队的效率会因为你而变慢(每个人跟你沟通的成本都会影响到他本人的产出),你不走人谁走人。
2、最短可接受的工作时限
你有没有统计过,公司分派给你一个工作时候,上级指定的这项工作计划做多久的预计,跟你自己的预计有多大差异?
如果你预计时间大于上级给的工作计划时间,同时上级没有增派人手进行相关工作。除了BT的领导外,那只有一种情况:上级对你的工作态度非常不满,认为你的薪水对应的工作能力不是这么点。
对于刚工作的,更多的是你表现出来的工作能力在公司的平均工作能力之下。同时公司觉得你对工作没有表现出足够的热情。 一个能力在平均水平下面,又缺乏工作激情的人,他的前途在那里??
如果这个人还没有表现出几个月后能达到平均水平之上的希望,为啥会留这样一个人呢?
3、工作能力不等于技术水平
我曾看到过有人抱怨说大公司的员工也不过是这技术水平, 这么简单的技术问题都不会。我自己早期也有这样想法,后来发现是不对的。
不论大公司还是小公司,要得是解决问题的工作能力。 我的曾经手下就有好几个技术水平很牛的,但是作出来的应用却一次次返工的。为啥,工作能力这些非技术因素他们做的很不好。
工作能力的非技术因素包括的很多: 责任心,表现就是对自己写出来的代码有一定要让人放心的责任; 沟通能力,一个典型的表现就是需求不理解或者需求不明时,及时得跟相关人沟通,而不是自己先按自己想法实现,造成代码写完后再返工的恶果等等。
技术水平低,但是解决问题能力强的,我也碰到过一些人。 工作的能力更重要的是这些非技术的工作能力,而不是技术水平。技术人员很容易技术水平高,但是非技术的工作能力差。 这是很糟糕的。
4、发展潜力,学习能力
公司使用的技术不可能一直不变,一直不变的公司只能慢慢被市场淘汰。这就要求员工能不断的学习新的知识,并应用到工作中来。
要想不会出现几年后,自己发现跳槽找个工作都没人要,赶快学习吧。
坚持,是一个人最难做到的。 但是不坚持,那就等着灭亡吧。
5、笨鸟先飞
一个人,在公司,如果工作能力在平均线以下, 加班吧, 不要有任何幻想。
最可怕的是自己没这个意识, 自认为自己技术水平很牛, 但是解决问题的工作能力却在平均水平线以下, 眼高手低 , 这样的人, 公司是不能留的。
6、承诺到的事情一定要做到,不要找理由
一件事情没有被做完,想找理由能找很多的。既然你承诺了某个时间点前完成,就不要再找各种理由推脱。
公司同事和上级虽然可能这次接受了你的理由,但是下次呢, 慢慢的就会让你的上级,同事觉得你是一个喜欢推托的人。 感觉你干事是非常不可靠的。不知道那次就会不完成,下次谁敢再找你干事?
可能很多人在看到我这篇博客的时候,觉得我写的很刻薄,好像都是从公司的角度欺压技术人员。很没有人情味。
只要你不是公司的董事, 你永远是被剥削者,公司的目的就是利润最大化,这是公司存活的根本目的。作为普通的职员,要有所为的白领意识,其实就是被剥削意识。这是个适者生存的生态圈,不适用的人只能被淘汰。
实际的公司其实有很多人情味在里面,或者同事和领导有些话不便于说出口。 这也就造成了一些技术人员被开除,还自以为如何如何? 都是没有这些意识造成的。我写这篇博客就是希望能增加技术人员的这些意识,不要犯了这些问题还自己不知道。
下面的文章颇有道理, 转载自这里.
评估你的实力与不足,将你不擅长的业务外包出去。
正如任何企业都定期对实物资产进行清点,同等重要的是,你需要评估公司的无形资产与负债。不管你面对的是一家新企业,或已实现盈利的成熟企业。
如果你尚处于初创期——有可能你是公司的唯一雇员——盘点你的企业存货,实质上也就是清点你自己。虽然深入了解并清晰评估你的实力与不足,可能会比较难;但随着你的前进与成长,这一步骤将有利于你更好地作出企业决策。
举个例子:你的企业有一年了,是时候开展大规模销售了。你急需设立一家网站。尽管你什么都想干,但你仅有时间立即做其中的某一块业务。如果你有评估自己的实力与不足,那么你会知道你该做什么,以及哪些业务应当外包。如果你擅长于搞技术,而不会做销售,那你建网站好了。如果任何与计算机相关的东西都让你抓狂,那你应该负责销售部分,且雇用一名网络设计师。当然,这只是一个例子。通过对你的资产与难题做全面盘点,你所有的决策也就有了指导。
这做起来并不难,先拿张纸,然后在中间划一条竖线。在左边写下你的资产:你为公司带来了那些实力,包括技能、资本、知识以及关系?这可不是谦虚的时候,不要对你的才干不予重视。在右边写下你的难题:有那些你必须得承认和提出的不足之处?
事实上,我所认识的一位成功企业家就有做过这种练习。她有许多业务要处理,这让她疲于应付,也很难把事情都做好。于是她评估了她的优势,查明了自己的弱项。她认识到,在经营服装制造厂的过程中,她耗费甚巨;她的优势是服装的设计、销售与宣传,而并非制造厂经营。她意识到自己不一定非得做这些,于是她卖出那家工厂,将制造环节外包了出去。她从来就没为此后悔过。
随着你的企业的成长,你将不可避免地堕入越来越多的方向——远离了首先使你得以成功创业的核心优势。例如,如果你的优势是销售和公关,你会发现自己陷入了内在的管理困境,你花了很多时间用于你并不精通的业务上。如果你善于产品设计或开发,你就不再有充足的时间去做它们。很多时候——尤其当资产与利润开始增长时——你会发现,再度专注于你的核心能力,同时找些顾问或雇员处理其它领域的业务,是至关重要的。
别忘了向你朋友或家人求助,他们可能有些你不具备的技能:你的侄女可能擅长组织,你最好的朋友可能是名优秀的写作者,你的丈夫可能是位对数字敏感的人。这一切都有助于你建设自己的企业。他们极可能乐意为你效劳。
根据这里的消息,北京的地低有巨大的地下水库,有可能造成一些岩石的不稳定。
“科学家们通过对地球内部深处的扫描发现了在东亚的地表下有巨大的地下水库,其容量相当于北冰洋。这是第一次在地表下发现如此多的水,华盛顿州立大学的地质学家Michael Wysession和校友加州大学的Jesse Lawrence合作完成的论文已发表在美国地球物理协会的杂志上。他们通过对地震波的研究发现了这一情况,按照原先的预计,海洋板块下沉,水会灌进岩石并由于地核内部高温而蒸发。Wysession表示确实如此,岩石中的水随着下沉而冷却,接着在内部加热,此时岩石会变得不牢固,最终水会流失,之后会上升并分散到地表各处。Wysession把这种新的地底特征称为“北京异常”(Beijing anomaly),因为他们发现地震波衰减的地方正好位于中国首都的地底深处。”
Latest Comments
RSS