‘壹’ php,java,python,C,C++ 这几种编程语言都各有什么特点或优点
汇编:
C:
Java:
C#:
PHP:
Python:
Go:
Haskell:
Lisp:
C++:
Java
犹如宫泽贤治的《不畏风雨》中出现的、性格木讷的女孩子。从小就由于迟钝和大食量等特征被别人当作笨蛋,从小学入学开始进入田径部、坚持跑步,在中长跑中经常取得好成绩,给人以活泼的印象。是十分努力的女孩子。
她的家境并不算好。父亲Sun是有才能的艺术家,但不擅长理财,在她14岁的时候因为苦于借债积劳成疾而去世。她被Oracle叔叔收养,那时还与Google叔叔之间因为对她的扶养权问题而引起争端并闹上法庭。
在周围的人都担心,正值青春期时她在这样的处境下会不会一蹶不振的时候,她却处变不惊、继续着每天练习跑步的生活。
朴素的、认真的、难说是聪明的她,进入高中后不知是不是稍稍开始对异情在意,被人看到她偷偷地学着别的女孩子的时尚穿着在街上行走。虽然会受到“虽然很努力,也许稍微有点过时”、“那衣服与Java的印象不合”之类的否定评价,但感到“意外地很萌?”的好意的人也很多。
喜欢喝咖啡,只喝印度尼西亚产的。其本人曾说过“喜欢咖啡胜过三顿饭”,不禁让人稍稍担心“这样对健康没问题吗?”
C++
苗条的双腿和协调的五官。被许多人称作“IT界首屈一指的美女”的她,也因为拥有插花、茶道、钢琴和小提琴、柔道、剑道、合气道等等才能而出名。
她的粉丝大多很狂热,还存在着“黑暗军团”这样的粉丝俱乐部。黑暗军团的是规模仅次于共济会(Freemason)的巨型团体,一般人无法入会。据说如果能回答出对她非常狂热的问题,就会有察觉到的军团成员来询问“你愿意进入黑暗军团吗?”
与她同父异母的姐妹Objective-C一心专注于弹钢琴,她的专注被IT界的天才史蒂夫乔布斯(也被一部分人称为紫色蔷薇)相中,而一跃成为明星,而C++则是由于其美貌和才能被人关注,长年坐稳业界明星的宝座。姐妹二人真可谓是对比鲜明。
她根据心情不同频繁地变换发型和服装这一点也很出名。昨天还是和服配黑发,今天却是红发哥特系登场之类的,因为她的变身而使轻度的粉丝惊奇道“啊嘞?今天是C++小姐吗?”的事也常有发生。远离业界时私下经常穿HYSTERIC GLAMOUR的服装。
关于她的出身年月日其事务所并不公开。虽然也有出身于1983年一说,本文采用的是在一部分粉丝中流传甚广的1985年10月14日说。其间也流传有“她自己也许也记不清自己的生日……”这样煞有介事的传言。与其说“C++小姐的话记不清自己的生日也不是什么不可思议的事情”,倒不如看作是她天真烂漫的性格的表现。
Python
由Guido父上养大的深闺中的大小姐。她出身于荷兰的阿姆斯特丹,但在小时候就搬到了美国,父亲也在家里使用英语,所以不怎么会说荷兰语。
她个性随和。最出名的是她听C++宣布“想出去旅行一趟改变一下形象。200x年回来哦”出门旅行后(结果回来的时候已经2011年了……),放言说“我也稍稍出门旅行一下,公元3000年再回来哦”后出门数年未归。
虽然有着这样冒失的行动,但多亏抱着“养成大家都喜爱的孩子”的心愿的Guido父上大人的教育,实际上和她接触后会觉得她非常容易亲近。
前些天,她来到作者的朋友的公司打工(她现在似乎在边上大学边打工),被人们评价为“能充分融入工作、八面玲珑、给我们帮了大忙”。她不怎么说多余的话,彬彬有礼的样子,被评价为是在“天真烂漫、自由第一”的人众多的业界中与众不同的存在。
据说她擅长的科目是数学,经常看到她轻松地解决各种统计相关的难题。喜欢穿白色的连衣裙或浅粉色的开衫这样清新的服装。
实际上她还喜欢爬行动物,据说在家里还有养蛇。粉丝们经常讨论“她会给宠物们起什么样的名字呢?”这样的话题。大多得出的都是“肯定是Monty吧”这样的结论。会不会飞就不得而知了。(估计指的是英国的六人喜剧团体Monty Python的作品The Flying Circus,译者注)
Ruby
由松本爸爸养大的日本的女孩子。因为生日在圣诞节,人生最大的烦恼是生日礼物和圣诞节礼物变成一份了。出生地是岛根县松江市,除了旅游和工作以外没有到过其它的县。
由于受的教育是自由奔放式的,她性格好动、好奇心旺盛。平时是一个率真的好孩子,但偶尔也会看到她喜欢恶作剧的一面,这让周围的人十分困扰。看到她的身影时经常会想起IT业的“Just For Fun !”这句话。
小时候过着一个人在荒山野岭到处跑的生活,10岁的时候与一个叫Rails的女孩成为朋友,生活开始变化。两个人玩耍时停在了演艺事务所门前,谈起可以两个人结对进行演艺活动。以“Ruby与Rails”的艺名出道、主要从事杂志模特,也有拍过电视广告,所以很多人都听过她们名字。
人们想着她在这多愁善感的年龄段体验各种演艺活动、性格多少会产生一些变化吧,但在前些天与她久违的谈话中,却惊讶地发现她仍是与从事演艺活动之前一样行动自由奔放。虽然行为举止多多少少显得更加稳重,其喜欢恶作剧、活泼的本性却和以前一样没有变化。
想着已经是高中生了差不多也要开始穿一些成熟一点的服装的她,对于洋装却和小时候一样穿着Mickey Mouse。虽然她个子小又是娃娃脸与这样的衣服很配,不过这样真像一个女高中生吗?
她的粉丝也分为想要她一直保持现在的样子,和想要看到她更成熟的样子的两派。
PHP
以强化Web世界为目的制作出来的女性机器人。竖着的头发是用作天线来随时接收主人的命令的。
为了有与人类相近的触感,使用了硅树脂来制作其皮肤。内部是类似于刀片服务器的构造,常常使用多台服务器进行复用。因此体重比人类更重一些。
在她最初登场的时候,还能看到她关节可动部分的骨架,行动也很僵硬,与人类的形象差别很大。然而经过了18年间6次的大版本升级之后,其行为和言语已经渐渐变得像人了。最近更是达到了像初音未来这样(比起人类仍然有少许违和感但已经十分自然了)的级别。
虽然笨笨的、工作时也磕磕绊绊的,但由于她遵循机器人三原则、服从主人的命令,也有很多人成为她的粉丝。她的粉丝俱乐部官网“PHPer!”无需入会费便可简单入会,是会员数在IT界首屈一指的大团体。
对于她持拒绝态度的人也很多,常有“她的行为在生理上有些难以接受”、“如果再聪明点就好了”、“与她稍有过接触但觉得还是与人类差别很大”这样的评论。
平常穿从Forever12和志村买来的衣服。想着穿便宜的快速时尚(fast fashion)衣服便可以将省下的钱花在机器开销上。可以说是标准的机器人的效率优先的花钱方式。或许会有她也在意流行、为样子烦恼的那一天吧?
C#
在着名的微软公司接受精英教育、11岁时便跳级进入大学学习、倍受人们关注的少女。也被称为“IT界的最强幼女”。
因为与C++的名字很像,一段时间内盛传“难道是私生子吗?”的流言,实际上两人没有直接的血缘关系。也有报道称两人是远房亲戚,但实际情况如何则不得而知。
似乎喜欢成熟的行为、讨厌像小孩子一样玩耍。有生日的时候收到父母送的名为安迪的毛绒玩具时说道“这是啥。没sense。不要”的传闻。
然而对于食物的兴趣却仍停留在小孩的阶段,多次目击到她在学校食堂点儿童套餐的样子。不喜欢喝咖啡,就算是甜味的罐装咖啡也会令她皱眉头。
虽然偶尔会见到她意外地孩子气的一面,多数情况下见到的还是她说话、待人接物彬彬有礼的样子。是一个既有成熟的一面又有稚气的一面的孩子。由于还在成长期,见到她时常有“又长高了啊”、“有些像大人的样子了”这样的感慨。一直会期待着下见到她时会长成什么样子。
常穿秀兰邓波的洋装。据说都是她本人挑选的,与她自己非常相配。她的可爱让人们无论男女都会成为她的粉丝。
她的志向是在大学毕业后不仅在养育她生长的微软公司的旗下工作、还要活跃于整个IT界。虽然没有问到更详细的计划,但据说是要做出能让苹果和企鹅等也能和睦相处的东西。到底会做出怎样的东西来呢?
JavaScript
在争议地区长大的17岁的女孩子。常常面无表情、谈话时总给人以一定的距离感。
虽然与Java的名字很像,两个人之间却没有血缘关系。在当时Java这样的名字很流行,所以父母也给她起了类似的名字。她本人似乎对自己的名字并不在意,有时也以“ECMA”的笔名进行活动。偶尔也会被叫“JS”的外号,对此则更不在意,甚至对这种称法公然无视。
她的生涯非常不幸。刚一出生祖国便爆发战争。懂事之前便母亲去世、离开了父亲。在大人们任性的争斗中,她学会了将自己藏在壳中、保护自己周围的生存之术。同年龄的女孩子随着年龄的变化都在挑战各种风格的时候,她却不顾周围的话语、一个人继续闭锁在壳中。当时就是非得这样才能生存的艰难环境。
由于有了这样的儿童时期,她的说话、思考、待人接物的方式与其它的孩子都稍显不同。有很多人在与她说话时都会烦恼该怎样说才好。不过,也有人对她持有简单的一根筋的思考方式“容易接触”、“某种程度上来说,很好理解”的印象。
现在,她的国家正向努力解决纷争、开拓新的居住土地的方向前进着。大人们虽然仍旧任性地互相斗争,至少在这几年里,已经没有发生像以前那样互相憎恨、互相残杀的战争了。
在开始复兴的祖国里,她如今应该能幸福地生活着吧?什么时候才能看到她像同龄的女孩一样欢笑呢?
Perl
Perl于1987年12月、美国的沃尔夫妇家中诞生。其父亲拉里精通计算机、语言学,母亲也从事中世纪文艺复兴和语言学专业,Perl就是在这样接受了高等教育的父母身边长大的。
父亲的教育虽然严厉,却也给了Perl许多自由。父亲在教育过程中经常说的一句话是:“方法不止有一个。”(There’s more than one way to do it)
想到实现什么时,达成的方法不只有一种。可以考虑各种方法。父亲的这种教育方式,对她的性格形成产生了很大的影响。
“这样做的话会怎么样?”……“那样做又会如何?”……张开好奇心的翅膀长大的她渐渐发现了自己“发明”方面的天赋。绝代的发明家、Perl诞生了。
从她踏上发明家的道路的20年来,其发明多达128890件(2014年1月统计数),她的发明,从没什么用处的玩具,到能解决世界上许多问题的有益的发明,应有尽有。她发明的物品的原型,全都捐赠给了CPAN博物馆,任何人都可以阅览。
如今仍然不论实用与否、不断做出想做的新发明的她自打趣地在采访中说道:“我比起发明家,更像是各种破烂的生产装置。”她露出牙齿的笑容,非常振奋人心。
Perl对洋装不怎么讲究,平时因为调整机械时觉得麻烦,会穿便于运动的休闲装。最近常穿的羽绒服据说是在ame横(东京上野的一条商业街)的WEGO买的。喜欢的食物是草莓。她说作业中对集中注意力而疲劳的大脑来说最适合的食物就是草莓。
C
支撑着这个世界的女神大人,也被称为“圣母大人”。
关于C的出身年月没有定论。有人说她在创世纪(指1970年1月1日左右)之前就存在于这个世界,也有人说她是在稍后的1972年左右诞生的。
她是女神大人,因此像“1970年左右出身的话,她现在的年龄是……”这样的想法是不信教的行为。绝对不要有这样的想法。
她的名字是字母表的第三个字母“C”。据新约史书上的记载,在她之前还有叫作B的女神大人。一些资料显示“肯和丹尼斯创造了B,但对此并不满足。此后丹尼斯和其它人又合力创造了C”。
世界上有许许多多她的信徒。然而在一段时间内都没有正确传达她的教诲的圣经。当初丹尼斯和布莱恩留下的诗篇虽然担负着这样的使命,人们却希望有更加明确的言语。此后有许多有识之士将各种逸闻编辑整理、编着出了正确传达她的教义的圣经。
本书至今已被修订过多次,根据修订年的不同,被称作C89、C99、C11等。
一般人与C不能直接对话。只有积累了足够的修行者才会被允许与C交流。
修行是十分严格的,需要理解”指针的指针“之类的问题,以及要求100%地成功解决无论多么努力地修行都难以克服的“malloc/free”问题。由于这样的背景,真正能跟她进行日常交流的人非常地少。
然而由能够交流的人经手、世界上诞生了多种多样的知识与技术。即使你没有见过她的样子,她的慈爱也确实地每天都围绕在你身边。
Visual Basic
姓氏是Basic,名字是Visual,也有很多人叫她的绰号:VB。小名是Ruby(与那个Ruby没有关系)。从小被某个资产家(不能说他的名字)看上,一家人都寄身于资产家的身边。那时她的名字换了好多次,如今才定下这个名字,有着比较复杂的家庭环境。
关于资产家要收养尚处于幼年的她原因,据不可靠的传言称,他从她身上看到了从前就很憧憬的Basic女士的影子。收养与具有与憧憬的女性相似气质的小孩,也即实行所谓的光源氏计划。
也许年轻人并不了解,Basic女士曾是《微电脑Basic杂志》的封面模特,在当时是每个人都非常向往的麦当娜一样的女性。实际上我的认识的人里面年轻时为她倾倒的人非常之多。
VB在接受严格教育的同时,也在关于兴趣方面拓展天性,她在手工制品、装饰品方面有着独特的才能。看着她制作珠子的装饰品的样子会觉得犹如魔法一般。仅仅是动动手,一瞬间就可以做出一串项链。
在她10岁的时候,资产家的家里来了一位新的养女。(人们常说的那位)
由于这个原因,她现在正在家中努力做一位好姐姐。然而本来便懦弱、不擅长说话的她却时常反过来被小她10岁、认真的、发言时间长的妹妹说教。加油啊,VB小姐。
小时候的VB会穿着父母买的Emily Temple的衣服,现在更多时候穿着是自己买的Lowrys Farm的衣服。今年就要大学毕业进入社会了,目标是VB小姐特有的成熟路线。
R
她于2000年2月29日出身。正是残存在人们记忆中400年一遇的被诅咒的那一天。虽然出身于非常不吉利的日子,她自己却成长为人见人爱的聪明的孩子。
她的母亲名叫S。虽然在神话的世界里C是在B之后出生的,她的名字却是S的前一位R。这几个都是很难用Google搜出来的名字。(注:因为太短了!)
她的母亲非常擅长数学,是统计学者的助手,R也继续了这一性质。她从小时候起就很擅长数学,小学时代就已经达到能快速解决高中数学问题的级别。此外,她对几何图形也很感兴趣,经常有人看到她画着各种二维、三维图形、画好后一个人露出满足愉悦的表情。是一个稍微有点奇怪的孩子。
R在擅长数学的同时却也对语言表达方面稍显逊色。前些日子采访她的时候,她对提出的问题想要回答却找不着合适的词,取而代之“刷——”地画了一幅散点图说“这样的感觉”。或许在她的眼里,这个世界里用语言来表达就像折叠复杂的数学公式那样复杂吧。
她对服装不怎么讲究,常常穿着不紧不松的连衣裙和衬衫。
对于父母给她买的洋装是多少价格、哪儿买的这样的问题没有认识。仅仅是,对于最近买来的喇叭裙的裙摆张开的角度很在意。
她的梦想是将来成为一名统计学者,尽管只有14岁却经常混迹于大学学生中间每天都在解各种问题。最近光是大学已经不能满足、又向父母请求、在各种各样的研究所里进出。
Scala
O教和F教之前有着长着的宗教战争。Scala是这两个宗教的牧师和修女结婚诞生的异端。她出身后立即引起了两家之间激烈的对立,察觉到危险的父母将她送到私立JVM学校的Odersky老师那儿作为养女寄养。
现在两个宗教比起当时已有了关系改善的征兆,有一部分人也将她视为两家融合的象征。然而抱有强烈的对立心态的人仍然很多,也常常有针对她的存在引起的争论。F教的人们认为她的存在没有充分认识F的本质,而O教的人则对混有F的她感到难以理解。
虽然诞生于这样复杂的环境,她自己对于周围的环境却不关心,而是十分平静地到双方的教会中取面包、坚强地生活着。被她这种天真烂漫的姿态所感动、成为她的粉丝的人也很多。
Scala似乎喜欢同校的高年级部里上学的Java小姐,休息时间经常去找她。Java小姐也并不讨厌她,经常会像大姐姐一样让她坐在她的膝盖上温柔地抚摸她的头。虽然在Scala把Java喜欢的Duke的人偶用红绳子绑起来进行恶作剧时把Java惹得十分生气,在此以外则几乎没怎么吵过架。两个人就好像亲生姐妹一样。
有着见多识广的父亲和温柔的姐姐的Scala现在也许是,与其出身的复杂情况相反、实际上非常幸福地生活着吧。
她对于洋装喜欢明快的颜色和花纹,经穿着Algonquin的衣服。虽然是比较有个性的时装,由与生俱来的有个性的她穿来却不可思议地自然。
Shell
创世纪(1970年1月1日)起经过数年后被目击到的妖精。会寄宿在家中,有着类似于棕精灵(Brownie)的生活方式,向她们拜托家务事或着杂活的时候,会回答两次并接受的温顺的孩子的。
她们不常出现在人间存在的地方,因为不通言语,会用信件交流。如果拜托的事情说得比较含糊的话,有可能会造成误解而发生不得了的事情。对此的技巧是明确地像“做那个|做这个>放在这里”这样有顺序地将要拜托她们做的事写好。如果对拜托的事理解得很好的话,她们会在夜里将事情都处理好。如果很好地完成了工作的话,请别忘了在第二天的晚上放上作为谢礼的方糖。
Shell中有各种各样的种族。现在已确认的种族中比较有名的有:“ba”、“c“、”k”、”tc”、“z”等等。其服装根据种族不同而不同,我所目击到的是一只身高60cm左右、穿着巴宝莉的儿童服装的个体。恐怕人们目击到最多的是”ba”种。个人而言我也想遇到身高更高一些、尖耳朵的“z”种,现在虽然知道如何写信,却从未见过实物。
尽量她们会在同一个屋子里居住,却很少有人有机会见到,也不如何才能遇到他们。
有一种说法是,每天都把写程序这一仪式进行到午夜、勉强靠咖啡因支撑着抬起头的状态下突然向屏幕看去,能够看到她的身影。确实我遭遇她,也是在公司里熬夜写程序的时候。
Shell的个体非常地多,据说每家每户都会有一只。在大家的家里,实际上有着许多的她们居住着、等着来信也说不定。
ActionScript
在争议地区诞生的13岁女孩子。
她的父亲是有名的设计师,但是她5岁的时候被卷入战火身亡。幸运的是她那时年纪还小、将她收养的Adobe叔叔非常用心地将她养大,没有在她心中留下很大的伤痕。叔叔和她父亲同样都是设计师。也许在她的记忆中已经把两个人混淆一起了也说不定。
她所居住的国家与JavaScript所居住的国家是邻国,两国同样是ECMA人种构成的。在外国人看来JavaScript和ActionScript的外貌非常相似。确实在看她们儿童时期的照片,在肤色和五官上都很相像,但如今长大了的照片看了的话会如何呢。
她把“为祖国和叔叔努力”作为座右铭努力着,然而努力却经常得不到回报,是一个运气不太好的孩子。
在争论地区盛传将实行新的公用语的时候,她希望为即将到来的和平时代出一份力,比谁都更早开始学习这门语言,然而在好不容易能说好这门语言的时候,这语言被采用为公用语的提案泡汤了。
在她刚开始学习移动端上的设计时,她想着在移动方面强大了会对叔叔的工作有用。也可以减少祖国的外贷。在这样的想法中努力的时候,叔叔经营的公司却被某个巨型移动终端公司强行终止的交易,关于移动端的工作也急剧减少。
十分努力却常常得不到回报的她,伫立于这片如今也看到到纷争停止的土地上,继续地前进着。
有朝一日努力会得到回报的吧。祝福她在10年后仍能平安,不断地前进着、生活着。
‘贰’ 掌握PHP 中的正则表达式,第 2 部分: 如何在 PHP 中处理文本
虽然术语数据 和信息 可以互换使用,但是两者之间有很大的差别。数据是有据可依的。温度列表、近期销售状况说明或者库存零部件清单,这些都是数据。信息含有一定见解。天气预报、损益表和销售趋势属于信息。数据是由若干个 1 和 0 表示,而信息则经由人脑分析得出。数据和信息之间是软件应用程序:引擎将把数据和信息来回转换。例如,如果在线购买图书,购书应用程序将把信息 —— 书名、身份信息、银行帐号信息 —— 转换为数据,例如订单号、售价、信用卡交易详细信息和对存货清单的调整。类似地,购书应用程序将把数据再转换为仓库提货请求、运输标签和跟踪编号等完成销售所需的信息。当然,创建应用程序的复杂度与其影响的转换直接成正比。Web 站点留言本十分简单,它把姓名和地址转换为数据库中的字段。同时,在线商店十分复杂,它将把各类信息转换为业务数据模型并把数据转换为信息来推动决策。编程的艺术在于对数据和信息的熟练处理 —— 类似于在明暗处理中捕捉亮色的技能。如第1 部分 中所述,regex 是处理数据的最强大工具之一。使用简明的简写方式,regex 说明了数据的格式并分解数据。例如,您可以使用下面的 regex 处理所有摄氏或华氏温度:/^([+-]?[0-9]+)([CF])$/。regex 将匹配行的开头(由脱字符号 ^ 表示),后接一个正号,一个负号,或者两者都不是 ([+-]?),后接一个整数 ([0-9]+),数值范围限定符 —— 摄氏或华氏 ([CF])—— 并在行尾(用美元符号 $ 表示)终止。在温度 regex 中,行开头和行结尾操作符是两个零宽度断言 示例,或者匹配位置而非文字。括号也不是文字。相反,嵌入到括号内的模式将捕捉匹配模式的文本。因此,如果文本匹配了整个模式,第一组括号将生成表示一个正整数或负整数的的字符串,例如 +49。第二组括号将生成字母 C 或F。 第1 部分介绍了 regex 的概念和可用于比较文本与模式和提取匹配的 PHP 函数。现在我将更深入地研究 regex 并查看一些高级操作符和处理方法。(再次)使用括号在大多数情况下,使用一组括号可以定义子模式和捕捉匹配子模式的文本。但是,括号不需要捕捉子模式。正如在复杂的数学公式中,您可以简单地使用括号来给术语分组。下面是一个示例。您能否说出它匹配哪类数据? /[-a-z0-9]+(?:\.[-a-z0-9]+)*\.(?:com|e|info)/i 您可能已经预料到此 regex 将匹配主机名(虽然只在 .com、.e 和 .info 这几个域中)。差别是添加了 ?:。子模式限定符 ?: 将禁用捕捉,留下括号来阐明操作的优先次序。例如,在这里,短句 (?:\.[-a-z0-9]+)* 将匹配零个或多个字符串实例(例如 “.ibm”)。类似地,短句 \.(?:com|e|info) 表示句点,后接字符串 com、e 或info 中的任意一个。禁用捕捉可能看似毫无意义,直至您意识到捕捉需要额外的处理。如果代码将处理大量数据,则忽略捕捉可能是有意义的。此外,如果 regex 特别复杂,禁用某些子模式中的捕捉可以更轻松地提取真正感兴趣的子模式。注:使用regex 末尾的 i 修饰语可以使模式内的所有匹配都不区分大小写。因此,子集 a-z 将匹配所有字母,而不区分大小写。PHP 将提供其他子模式修饰词。使用第 1 部分中提供的 regex 测试 jig(如 清单1 所示),将针对候选字符串 “EDU”、“e” 和“E” 匹配 regex ((?i)e)。如果子模式以修饰词 (?i) 为开头,则在子模式中进行匹配不区分大小写。只要子模式结束,区分大小写将被重新启用(将此修饰词与上面的 /.../i 修饰词相比较,后者应用于整个模式)。清单1. 简单的 regex 测试实用程序 另一个有用的子模式修饰词是 (?x)。它允许您在子模式中嵌入空白,使 regex 更易读。因而,子模式 ((?x) e | com | info)(请注意备用操作符之间的空格,这些空格是为了易读性而添加的)与 (e|com|info) 相同。您可以使用全局修饰词 /.../x 在整个 regex 中嵌入空白和注释,如下所示:清单2. 嵌入空白和注释 $matches = preg_grep( "/ [- a-z 0-9]+ # machine name (?: \. [- a-z 0-9]+)* # subdomains \. (?: com | e | info)# domain /xi", $words ); 正如您所见,还可以根据需要组合修饰词。另外,如果需要在使用 (?x) 时匹配空格,那么,使用元字符 \s 来匹配所有空格字符或使用 \ (反斜杠后接空格)来匹配单个空格,如 ((?x) hello \ there)。回页首其他应用regex 的大量应用都是验证或分解存储为存储库中的数据或由应用程序立即执行的各个小块的输入。处理表单中的字段、解析 XML 代码以及解释协议都是典型应用。regex 的另一个应用是格式化、规范化或提高数据的可读性。格式化不是使用 regex 查找和提取文本,而是使用 regex 查找并在正确位置插入文本。下面是一个有用的格式化应用程序。假定 Web 表单把按照美元计算的薪金提交给应用程序。由于把薪金存储为整数,因此应用程序必须先去掉所粘贴数据中的标点符号,然后再保存。但是,在从存储库中检索出数据时,则需要使用逗号重新设定数据的格式使其具有可读性。下面显示了一个用于把美元金额转换为数字的简单 PHP 调用。清单3. 把美元金额转换为数字 $salary = preg_replace( "/[\$\s,]/", '', $_REQUEST[ 'salary' ] ); if ( is_numeric( $salary ) ) { // persist the data } else { // error } 调用preg_replace() 函数将用空字符串替换美元符号、所有空格和每个逗号,生成认为是整数的内容。如果调用 is_numeric() 对输入进行了验证,则可以存储数据。接下来,让我们反向操作输出带有货币符号和用于分隔百、千、百万的逗号的数字。您可以编写代码来查找这些数字单元,也可以使用向前查找 和向后查找 在正确位置上插入逗号。子模式修饰词 ? "Wicked" [1] => "Mirror, Mirror." ) regex ".*?" 变为匹配一个引号,后接刚好足够的 字符,后接一个引号。但是,使用 * 操作符有时可能太懒惰。例如,采用以下代码片段。它将生成什么输出?清单7. 简单的 regex 测试实用程序 if (preg_match( "/([0-9]*)/", "-123", $matches ) ) { print_r( $matches ); } 猜测输出是什么?“123”?“1”?没有输出?实际上,输出是 Array ( [0] => [1] => ),表示找到一个匹配,但是未捕捉到任何内容。为什么?回想一下操作符 * 可以匹配零次或多次。在这里,表达式 [0-9]* 针对字符串开头匹配零次,随后停止处理。要解决此问题,请添加零宽度断言来锚定匹配,这将强制 regex 引擎继续进行匹配;/([0-9]*\b/ 就可解决问题。回页首更多提示和技巧regex 可以解决简单或复杂的文本处理问题。首先掌握一些操作符,随着经验逐渐丰富,您可以进一步扩展词汇表。要立即开始使用,请参考下面这些提示和技巧。用字符类实现可移植的 regex您已经看到过匹配所有空格字符的元字符,例如 \s。此外,许多 regex 实现都支持更易于跨多种编写语言使用和移植的预定义字符类。例如,字符类 [:punct:] 表示当前语言环境中的所有标点字符。您可以使用 [:digit:] 代替[0-9],并且 [:alpha:] 是比[-a-zA-Z0-9_] 更具有可移植性的替代者。例如,您可以使用以下语句移除字符串中的所有标点符号: $clean = preg_replace( "/[[:punct:]]/", '', $string ); 使用字符类比清楚说明所有标点符号更简洁。要获得字符类的完整列表,请参阅适用于您的 PHP 版本的文档。排除不需要查找的内容与将逗号分隔的值 (CSV) 转换为用制表符分隔的数据一样,列出不 需要匹配的内容有时更容易也更精确。以脱字符号 (^) 为开头的集合将匹配集合中不包括的所有字符。例如,您可以使用正则表达式 /[2-9][0-9]{2}[2-9][0-9]{2}[0-9]{4}/ 来验证美国电话号码。使用排除集合,可以把 regex 编写为更显式的 /[^01][0-9]{2}[^01][0-9]{2}[0-9]{4}/。两个 regex 都可以正常运行,但是显然后者意图更加明显。跳过换行符如果输入跨度多行,则使用典型的 regex 是不够的,因为扫描将在 $ 所指示的换行符处终止。但是,如果使用 s 或m 修饰词,regex 引擎将按照不同的方式处理输入。前者将把字符串处理为单行,强制用点匹配换行符(它通常不这样做)。后者将把字符串处理为多行,其中 ^ 和$ 将分别匹配每行的开头和结尾。下面是一个示例:如果设置 $string = "Hello,\nthere";,则语句 preg_match( "/.*/s", $string, $matches) 将把$matches[0] 设为Hello,\nthere(删除 s 将生成 Hello)。正则表达式几乎无所不能,也许惟一的限制因素就是您的想象力和创造力了。参考资料 学习 您可以参阅本文在 developerWorks 全球站点上的 英文原文。
阅读“掌握PHP 中的正则表达式” 系列中的其他文章。
PHP.net 是PHP 开发者的重要资源。
查阅“PHP 推荐读物列表”。
浏览developerWorks 上的全部 PHP 文章和PHP 教程。
查看IBM developerWorks 的 PHP 项目资源 扩展PHP 技巧。
收听针对软件开发人员的有趣访谈和讨论,一定要访问 developerWorks podcast。
要将数据库与 PHP 结合使用?查看 Zend Core for IBM,它是一个无缝的、可以立即使用、易于安装、支持 IBM DB2 V9 的 PHP 开发和生产环境。
随时关注 developerWorks 的 技术事件和网络广播。
查阅最近将在全球举办的面向 IBM 开放源码开发人员的研讨会、交易展览、网络广播和其他 活动。
访问developerWorks 开放源码专区,获得丰富的 how-to 信息、工具和项目更新,帮助您用开放源码技术进行开发,并与 IBM 产品结合使用。
查看免费的 developerWorks On demand demo 观看并了解 IBM 及开源技术和产品功能。
获得产品和技术使用IBM 试用软件,改进您的下一个开发项目,这些软件可以通过下载或从 DVD 中获得。
下载IBM 产品评估版,并开始使用 DB2�0�3、Lotus�0�3、Rational�0�3、Tivoli�0�3 和 WebSphere�0�3 的应用程序开发工具和中间件产品。
讨论参与developerWorks blog 并加入 developerWorks 社区。
关于作者Martin Streicher 是 McClatchy Interactive 的首席技术官、linux Magazine 的主编、Web 开发人员以及 developerWorks 的定期投稿者。他毕业于普渡大学并获得计算机科学硕士学位,从 1986 年起他一直从事类 UNIX 系统的编程工作。关闭[x]关于报告滥用的帮助报告滥用谢谢! 此内容已经标识给管理员注意。关闭[x]关于报告滥用的帮助报告滥用报告滥用提交失败。 请稍后重试。关闭[x]developerWorks:登录IBM ID:需要一个 IBM ID?忘记IBM ID?密码:忘记密码?更改您的密码 保持登录。单击提交则表示您同意developerWorks 的条款和条件。 使用条款 当您初次登录到 developerWorks 时,将会为您创建一份概要信息。您在developerWorks 概要信息中选择公开的信息将公开显示给其他人,但您可以随时修改这些信息的显示状态。您的姓名(除非选择隐藏)和昵称将和您在 developerWorks 发布的内容一同显示。所有提交的信息确保安全。关闭[x]请选择您的昵称:当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。昵称:(长度在 3 至 31 个字符之间)单击提交则表示您同意developerWorks 的条款和条件。 使用条款. 所有提交的信息确保安全。为本文评分评论回页首
‘叁’ 我想学编程,应该学哪一类,求助
原文地址:http://coolshell.cn/articles/4990.html
博文如下:
前言
你是否觉得自己从学校毕业的时候只做过小玩具一样的程序?走入职场后哪怕没有什么经验也可以把以下这些课外练习走一遍(朋友的抱怨:学校课程总是从理论出发,作业项目都看不出有什么实际作用,不如从工作中的需求出发)
建议:
不要乱买书,不要乱追新技术新名词,基础的东西经过很长时间积累而且还会在未来至少10年通用。
回顾一下历史,看看历史上时间线上技术的发展,你才能明白明天会是什么样。
一定要动手,例子不管多么简单,建议至少自己手敲一遍看看是否理解了里头的细枝末节。
一定要学会思考,思考为什么要这样,而不是那样。还要举一反三地思考。
注:你也许会很奇怪为什么下面的东西很偏Unix/Linux,这是因为我觉得Windows下的编程可能会在未来很没有前途,原因如下:
现在的用户界面几乎被两个东西主宰了,1)Web,2)移动设备iOS或Android。Windows的图形界面不吃香了。
越来越多的企业在用成本低性能高的Linux和各种开源技术来构架其系统,Windows的成本太高了。
微软的东西变得太快了,很不持久,他们完全是在玩弄程序员。详情参见《Windows编程革命史》
所以,我个人认为以后的趋势是前端是Web+移动,后端是Linux+开源。开发这边基本上没Windows什么事。
启蒙入门
1、学习一门脚本语言,例如Python/Ruby
可以让你摆脱对底层语言的恐惧感,脚本语言可以让你很快开发出能用得上的小程序。实践项目:
处理文本文件,或者csv(关键词pythoncsv,pythonopen,pythonsys)读一个本地文件,逐行处理(例如wordcount,或者处理log)
遍历本地文件系统(sys,os,path),例如写一个程序统计一个目录下所有文件大小并按各种条件排序并保存结果
跟数据库打交道(pythonsqlite),写一个小脚本统计数据库里条目数量
学会用各种print之类简单粗暴的方式进行调试
学会用Google(phrase,domain,usereadertofollowtechblogs)
为什么要学脚本语言,因为他们实在是太方便了,很多时候我们需要写点小工具或是脚本来帮我们解决问题,你就会发现正规的编程语言太难用了。
2、用熟一种程序员的编辑器(不是IDE)和一些基本工具
Vim/Emacs/Notepad++,学会如何配置代码补全,外观,外部命令等。
SourceInsight(或ctag)
使用这些东西不是为了Cool,而是这些编辑器在查看、修改代码/配置文章/日志会更快更有效率。
3、熟悉Unix/LinuxShell和常见的命令行
如果你用windows,至少学会用虚拟机里的linux,vmwareplayer是免费的,装个Ubuntu吧
一定要少用少用图形界面。
学会使用man来查看帮助
文件系统结构和基本操作ls/chmod/chown/rm/find/ln/cat/mount/mkdir/tar/gzip…
学会使用一些文本操作命令sed/awk/grep/tail/less/more…
学会使用一些管理命令ps/top/lsof/netstat/kill/tcpmp/iptables/dd…
了解/etc目录下的各种配置文章,学会查看/var/log下的系统日志,以及/proc下的系统运行信息
了解正则表达式,使用正则表达式来查找文件。
对于程序员来说Unix/Linux比Windows简单多了。(参看我四年前CSDN的博文《其实Unix很简单》)学会使用Unix/Linux你会发现图形界面在某些时候实在是太难用了,相当地相当地降低工作效率。
4、学习Web基础(HTML/CSS/JS)+服务器端技术(LAMP)
未来必然是Web的世界,学习WEB基础的最佳网站是W3School。
学习HTML基本语法
学习CSS如何选中HTML元素并应用一些基本样式(关键词:boxmodel)
学会用Firefox+Firebug或chrome查看你觉得很炫的网页结构,并动态修改。
学习使用Javascript操纵HTML元件。理解DOM和动态网页(DynamicHTML:TheDefinitiveReference,3rdEdition-O'ReillyMedia)网上有免费的章节,足够用了。或参看DOM。
学会用Firefox+Firebug或chrome调试Javascript代码(设置断点,查看变量,性能,控制台等)
在一台机器上配置Apache或Nginx
学习PHP,让后台PHP和前台HTML进行数据交互,对服务器相应浏览器请求形成初步认识。实现一个表单提交和反显的功能。
把PHP连接本地或者远程数据库MySQL(MySQL和SQL现学现用够了)
跟完一个名校的网络编程课程(例如:http://www.stanford.e/~ouster/cgi-bin/cs142-fall10/index.php)不要觉得需要多于一学期时间,大学生是全职一学期选3-5门课,你业余时间一定可以跟上
学习一个javascript库(例如jQuery或ExtJS)+Ajax(异步读入一个服务器端图片或者数据库内容)+JSON数据格式。
HTTP:TheDefinitiveGuide读完前4章你就明白你每天上网用浏览器的时候发生的事情了(proxy,gateway,browsers)
做个小网站(例如:一个小的留言板,支持用户登录,Cookie/Session,增、删、改、查,上传图片附件,分页显示)
买个域名,租个空间,做个自己的网站。
进阶加深
1、C语言和操作系统调用
重新学C语言,理解指针和内存模型,用C语言实现一下各种经典的算法和数据结构。推荐《计算机程序设计艺术》、《算法导论》和《编程珠玑》。
学习(麻省理工免费课程)计算机科学和编程导论
学习(麻省理工免费课程)C语言内存管理
学习Unix/Linux系统调用(Unix高级环境编程),,了解系统层面的东西。
用这些系统知识操作一下文件系统,用户(实现一个可以拷贝目录树的小程序)
用fork/wait/waitpid写一个多进程的程序,用pthread写一个多线程带同步或互斥的程序。多进程多进程购票的程序。
用signal/kill/raise/alarm/pause/sigprocmask实现一个多进程间的信号量通信的程序。
学会使用gcc和gdb来编程和调试程序(参看我的《用gdb调试程序》)
学会使用makefile来编译程序。(参看我的《跟我一起写makefile》)
IPC和Socket的东西可以放到高级中来实践。
学习WindowsSDK编程(Windows程序设计,MFC程序设计)
写一个窗口,了解WinMain/WinProcere,以及Windows的消息机制。
写一些程序来操作WindowsSDK中的资源文件或是各种图形控件,以及作图的编程。
学习如何使用MSDN查看相关的SDK函数,各种WM_消息以及一些例程。
这本书中有很多例程,在实践中请不要照抄,试着自己写一个自己的例程。
不用太多于精通这些东西,因为GUI正在被Web取代,主要是了解一下Windows图形界面的编程。@virushuo说:“我觉得GUI确实不那么热门了,但充分理解GUI工作原理是很重要的。包括移动设备开发,如果没有基础知识仍然很吃力。或者说移动设备开发必须理解GUI工作,或者在win那边学,或者在mac/iOS上学”。
2、学习Java
Java的学习主要是看经典的CoreJava《Java核心技术编程》和《Java编程思想》(有两卷,我仅链了第一卷,足够了,因为Java的图形界面了解就可以了)
学习JDK,学会查阅JavaAPIDocJavaPlatformSE6
了解一下Java这种虚拟机语言和C和Python语言在编译和执行上的差别。从C、Java、Python思考一下“跨平台”这种技术。
学会使用IDEEclipse,使用Eclipse编译,调试和开发Java程序。
建一个Tomcat的网站,尝试一下JSP/Servlet/JDBC/MySQL的Web开发。把前面所说的那个PHP的小项目试着用JSP和Servlet实现一下。
3、Web的安全与架构
学习HTML5,网上有很多很多教程,以前酷壳也介绍过很多,我在这里就不罗列了。
学习Web开发的安全问题(参考新浪微博被攻击的这个事,以及Ruby的这篇文章)
学习HTTPServer的rewrite机制,Nginx的反向代理机制,fast-cgi(如:PHP-FPM)
学习Web的静态页面缓存技术。
学习Web的异步工作流处理,数据Cache,数据分区,负载均衡,水平扩展的构架。
实践任务:
使用HTML5的canvas制作一些Web动画。
尝试在前面开发过的那个Web应用中进行SQL注入,JS注入,以及XSS攻击。
把前面开发过的那个Web应用改成构造在Nginx+PHP-FPM+静态页面缓存的网站
4、学习关系型数据库
你可以安装MSSQLServer或MySQL来学习数据库。
学习教科书里数据库设计的那几个范式,1NF,2NF,3NF,……
学习数据库的存过,触发器,视图,建索引,游标等。
学习SQL语句,明白表连接的各种概念(参看《SQLJoin的图示》)
学习如何优化数据库查询(参看《MySQL的优化》)
实践任务:设计一个论坛的数据库,至少满足3NF,使用SQL语句查询本周,本月的最新文章,评论最多的文章,最活跃用户。
5、一些开发工具
学会使用SVN或Git来管理程序版本。
学会使用JUnit来对Java进行单元测试。
学习C语言和Java语言的codingstandard或codingguideline。(我N年前写过一篇关C语言非常简单的文章——《编程修养》,这样的东西你可以上网查一下,一大堆)。
推荐阅读《代码大全》《重构》《代码整洁之道》
高级深入
1、C++/Java和面向对象
我个人以为学好C++,Java也就是举手之劳。但是C++的学习曲线相当的陡。不过,我觉得C++是最需要学好的语言了。参看两篇趣文“C++学习信心图”和“21天学好C++”
学习(麻省理工免费课程)C++面向对象编程
读我的“如何学好C++”中所推荐的那些书至少两遍以上(如果你对C++的理解能够深入到像我所写的《C++虚函数表解析》或是《C++对象内存存局(上)(下)》,或是《C/C++返回内部静态成员的陷阱》那就非常不错了)
然后反思为什么C++要干成这样,Java则不是?你一定要学会对比C++和Java的不同。比如,Java中的初始化,垃圾回收,接口,异常,虚函数,等等。
实践任务:
用C++实现一个BigInt,支持128位的整形的加减乘除的操作。
用C++封装一个数据结构的容量,比如hashtable。
用C++封装并实现一个智能指针(一定要使用模板)。
《设计模式》必需一读,两遍以上,思考一下,这23个模式的应用场景。主要是两点:1)钟爱组合而不是继承,2)钟爱接口而不是实现。(也推荐《深入浅出设计模式》)
实践任务:
使用工厂模式实现一个内存池。
使用策略模式制做一个类其可以把文本文件进行左对齐,右对齐和中对齐。
使用命令模式实现一个命令行计算器,并支持undo和redo。
使用修饰模式实现一个酒店的房间价格订价策略——旺季,服务,VIP、旅行团、等影响价格的因素。
学习STL的用法和其设计概念-容器,算法,迭代器,函数子。如果可能,请读一下其源码。
实践任务:尝试使用面向对象、STL,设计模式、和WindowsSDK图形编程的各种技能
做一个贪吃蛇或是俄罗斯方块的游戏。支持不同的级别和难度。
做一个文件浏览器,可以浏览目录下的文件,并可以对不同的文件有不同的操作,文本文件可以打开编辑,执行文件则执行之,mp3或avi文件可以播放,图片文件可以展示图片。
学习C++的一些类库的设计,如:MFC(看看候捷老师的《深入浅出MFC》),Boost,ACE,CPPUnit,STL(STL可能会太难了,但是如果你能了解其中的设计模式和设计那就太好了,如果你能深入到我写的《STLstring类的写时拷贝技术》那就非常不错了,ACE需要很强在的系统知识,参见后面的“加强对系统的了解”)
Java是真正的面向对象的语言,Java的设计模式多得不能再多,也是用来学习面向对象的设计模式的最佳语言了(参看Java中的设计模式)。
推荐阅读《EffectiveJava》and《Java解惑》
学习Java的框架,Java的框架也是多,如Spring,Hibernate,Struts等等,主要是学习Java的设计,如IoC等。
Java的技术也是烂多,重点学习J2EE架构以及JMS,RMI,等消息传递和远程调用的技术。
学习使用Java做WebService(官方教程在这里)
实践任务:尝试在Spring或Hibernate框架下构建一个有网络的WebService的远程调用程序,并可以在两个Service中通过JMS传递消息。
C++和Java都不是能在短时间内能学好的,C++玩是的深,Java玩的是广,我建议两者选一个。我个人的学习经历是:
深究C++(我深究C/C++了十来年了)
学习Java的各种设计模式。
2、加强系统了解
重要阅读下面的几本书:
《Unix编程艺术》了解Unix系统领域中的设计和开发哲学、思想文化体系、原则与经验。你一定会有一种醍醐灌顶的感觉。
《Unix网络编程卷1,套接字》这是一本看完你就明白网络编程的书。重要注意TCP、UDP,以及多路复用的系统调用select/poll/epoll的差别。
《TCP/IP详解卷1:协议》-这是一本看完后你就可以当网络黑客的书。了解以太网的的运作原理,了解TCP/IP的协议,运作原理以及如何TCP的调优。
实践任务:
理解什么是阻塞(同步IO),非阻塞(异步IO),多路复用(select,poll,epoll)的IO技术。
写一个网络聊天程序,有聊天服务器和多个聊天客户端(服务端用UDP对部分或所有的的聊天客户端进Multicast或Broadcast)。
写一个简易的HTTP服务器。
《Unix网络编程卷2,进程间通信》信号量,管道,共享内存,消息等各种IPC……这些技术好像有点老掉牙了,不过还是值得了解。
实践任务:
主要实践各种IPC进程序通信的方法。
尝试写一个管道程序,父子进程通过管道交换数据。
尝试写一个共享内存的程序,两个进程通过共享内存交换一个C的结构体数组。
学习《Windows核心编程》一书。把CreateProcess,Windows线程、线程调度、线程同步(Event,信号量,互斥量)、异步I/O,内存管理,DLL,这几大块搞精通。
实践任务:使用CreateProcess启动一个记事本或IE,并监控该程序的运行。把前面写过的那个简易的HTTP服务用线程池实现一下。写一个DLL的钩子程序监控指定窗口的关闭事件,或是记录某个窗口的按键。
有了多线程、多进程通信,TCP/IP,套接字,C++和设计模式的基本,你可以研究一下ACE了。使用ACE重写上述的聊天程序和HTTP服务器(带线程池)
实践任务:通过以上的所有知识,尝试
写一个服务端给客户端传大文件,要求把100M的带宽用到80%以上。(注意,磁盘I/O和网络I/O可能会很有问题,想一想怎么解决,另外,请注意网络传输最大单元MTU)
了解BT下载的工作原理,用多进程的方式模拟BT下载的原理。
3、系统架构
负载均衡。HASH式的,纯动态式的。(可以到Google学术里搜一些关于负载均衡的文章读读)
多层分布式系统–客户端服务结点层、计算结点层、数据cache层,数据层。J2EE是经典的多层结构。
CDN系统–就近访问,内容边缘化。
P2P式系统,研究一下BT和电驴的算法。比如:DHT算法。
服务器备份,双机备份系统(Live-Standby和Live-Live系统),两台机器如何通过心跳监测对方?集群主结点备份。
虚拟化技术,使用这个技术,可以把操作系统当应用程序一下切换或重新配置和部署。
学习Thrift,二进制的高性能的通讯中间件,支持数据(对象)序列化和多种类型的RPC服务。
学习Hadoop。
Hadoop框架中最核心的设计就是:MapRece和HDFS。MapRece的思想是由Google的一篇论文所提及而被广为流传的,简单的
一句话解释MapRece就是“任务的分解与结果的汇总”。HDFS是Hadoop分布式文件系统(HadoopDistributedFile
System)的缩写,为分布式计算存储提供了底层支持。
了解NoSQL数据库(有人说可能是一个过渡炒作的技术),
不过因为超大规模以及高并发的纯动态型网站日渐成为主流,而SNS类网站在数据存取过程中有着实时性等刚性需求,这使得目前NoSQL数据库慢慢成了人们
所关注的焦点,并大有成为取代关系型数据库而成为未来主流数据存储模式的趋势。当前NoSQL数据库很多,大部分都是开源的,其中比较知名的
有:MemcacheDB、Redis、TokyoCabinet(升级版为Kyoto
Cabinet)、Flare、MongoDB、CouchDB、Cassandra、Voldemort等。
写了那么多,回顾一下,觉得自己相当的有成就感。希望大家不要吓着,我自己这十来年也在不断地学习,今天我也在学习中,人生本来就是一个不断学习和练级的过程。不过,一定有漏的,也有不对的,还希望大家补充和更正。(我会根据大家的反馈随时更新此文)欢迎大家通过我的微博(@左耳朵耗子)和twitter(@haoel)和我交流。
—–更新2011/07/19—–
1)有朋友奇怪为什么我在这篇文章开头说了web+移动,却没有在后面提到iOS/Android的前端开发。因为我心里有一种感觉,移动设备上的UI最终也会被Javascript取代。大家可以用iPhone或Android看看google+,你就会明白了。
2)
有朋友说我这里的东西太多了,不能为了学习而学习,我非常同意。我在文章的前面也说了要思考。另外,千万不要以为我说的这些东西是一些新的技术,这份攻略
里95%以上的全是基础。而且都是久经考验的基础技术。即是可以让你一通百通的技术,也是可以让你找到一份不错工作的技术。
3)有朋友说学
这些东西学完都40了,还不如想想怎么去挣钱。我想告诉大家,一是我今年还没有40岁,二是学无止境啊,三是我不觉得挣钱有多难,难的是怎么让你值那么多
钱?无论是打工还是创业,是什么东西让你自己的价值,让你公司的价值更值钱?别的地方我不敢说,对于互联网或IT公司来说,技术实力绝对是其中之一。
4)有朋友说技术都是工具,不应该如此痴迷这句话没有错,有时候我们需要更多的是抬起头来看看技术以外的事情,或者是说我们在作技术的时候不去思考为什么会有这个技术,为什么不是别的,问题不在于技术,问题在于我们死读书,读死书,成了技术的书呆子。
5)对于NoSQL,最近比较火,但我对其有点保守,所以,我只是说了解就可以。对于Hadoop,我觉得其在分布式系统上有巨大的潜力,所以需要学习。对于关系型数据库,的确是很重要的东西,这点是我的疏忽,在原文里补充。
‘肆’ 《JavaScriptDOM编程艺术(第2版)》pdf下载在线阅读,求百度网盘云资源
《JavaScript DOM编程艺术 (第2版)》([英] Jeremy Keith)电子书网盘下载免费在线阅读
资源链接:
链接: https://pan..com/s/1cCbWo-yM6JWffag7jdY-fw 提取码: 47ci
书名:JavaScript DOM编程艺术 (第2版)
作者:[英] Jeremy Keith
译者:杨涛
豆瓣评分:8.6
出版社:人民邮电出版社
出版年份:2011-4
页数:300
内容简介:
JavaScript是Web开发中最重要的一门语言,它强大而优美。无论是桌面开发,还是移动应用。JavaScript都是必须掌握的技术。W3C的DOM标准是开发Web应用的基石。已经得到所有现代浏览器的支持,这使得跨平台Web开发成了一件轻松惬意的事。
本书是超级畅销书的升级版,由倡导Web标准的领军人物执笔,揭示了前端开发的真谛,是学习JavaScript和DOM开发的必读之作。
本 书在简洁明快地讲述JavaScript和DOM的基本知识之后,通过几个实例演示了专业水准的网页开发技术,透彻阐述了平稳退化等一批至关重要的 JavaScript编程原则和最佳实践,并全面探讨了HTML5以及jQuery等JavaScript库。读者将看到JavaScript、 HTML5和CSS如何协作来创建易用的、与标准兼容的Web设计,掌握使用JavaScript和DOM通过客户端动态效果和用户控制的动画来加强 Web页面的必备技术;同时,还将对如何利用库提高开发效率有全面深入的理解。
作者简介:
Jeremy Keith 国际知名的Web设计师,Web标准项目组成员,DOM Scripting任务组负责人之一,任职于Web咨询公司Clearleft。除本书外,还着有HTML5 for Web Designers、Bulletproof Ajax。可通过其个人网站adactio.com与他联系。
Jeffrey Sambells 资深平面设计师,Web开发人员,创办了软件公司We-Create并担任研发总监。除本书外,还着有《JavaScript高级程序设计》和 Beginning Google Maps Applications with PHP and Ajax等多部畅销书。
‘伍’ php有哪些框架
PHP的框架有很多,这里说一部分供大家参考:
国内框架:ThinkPHP, Canphp, KYPHP, InitPHP, SpeedPHP, CdvPHP,KPHP。
国外着名框架:Zend Framework,Codelgniter,CakePHP,Symfony,Yii,Seagull,Laravel。
小型框架:E,DuoLamPHP,Difeye,GalaxixPhp,PhpPeanuts,Rong Framework,Openbiz Framework。
‘陆’ 数字媒体艺术的大专生学点编程基础,什么语言或者软件适合他们呢都是艺术出身的学生,没有任何基础。
php相对简单些,同时也流行。
‘柒’ php 系统架构
网上收索的,共享给你:
《Beautiful Architecture》?
《Beautiful Code》的姐妹作,里面有三成的架构是自己感兴趣的,已经有国内出版社拿下了,架构师的唐诗三百首------O'reilly新书Beautiful Architecture(InfoQ)?。
《97 Things Every Software Architect Should Know 》?
一个开放的wiki?,O'Reilly 将它发布成书,不知道有没人在翻,架构公理的书(InfoQ)?。
《Pattern-Oriented Software Architecture, Volume 4 - A Pattern Language forDistributed Computing》?
架构模式的集大成者,号称有人在翻但等了一年中文版还是没翻出来啊,面向模式软件架构第4、5卷出版(InfoQ)?。
架构技术类
云计算已经开始代替SOA成为新一代Buz Word,回顾一下整个SOA出版风潮,自己觉得值得一读不忽悠的居然只有一本《SOA in Practic - SOA实践指南-分布式系统设计的艺术》?。
在热潮彻底退却前,SOA的书还在继续出着,OSGI与SCA的书也开始出现:
《SOA Design Patterns》?
又是Thomas Erl的书,很奇怪的连电子版都找不到,SOA设计模式出版啦(InfoQ)?。
还 没出版的呀一大堆 --《SOA Patterns》、《ESB Architecture for SOA》、《SOA with Java》、《Open Source SOA》、《OSGi in Action》、《SpringSource dm Server in Action》、《Molar Java: Creating Flexible Applications with OSGi and Spring》、《Understanding SCA》、《Apache Tuscany in Action》...
编程匠师类
立志做一个匠师的人今年比较幸福,可以看的书很多:
《Beautiful Code - 代码之美》 ?
很有经典潜质的一本,去年没有读完今年继续,《代码之美》的精选版(InfoQ)?。
《Protive Programmer - 卓有成效的程序员》?
Thoughtworks中国翻译的,看了下样章,熊节(透明)的翻译依然是这么好, 《卓有成效的程序员》推荐序:做一个懒人(InfoQ)?。
《Clean Code: A Handbook of Agile Software Craftsmanship》?
Rober。C大叔的书,不知道谁在翻,应该很容易翻啊,到后面大段大段都是代码。
《Effective Java中文版(第2版)》
Web系统架构及开发推荐书籍:
一、《Linux企业集群—用商用硬件和免费软件构件高可用集群》
深入分析了LVS, HeartBeat等,是构建Linux集群不可多得的资料。
二、《构建高性能Web站点》
重点介绍如何构建一个高性能的Web系统,国内为数不多的值得一读的技术书籍。
三、《大规模Web服务开发技术》
对大型网站涉及到的技术及相关知识点做了介绍。
四、《构建可扩展的Web站点》
Flicker的经验之谈,重点讲述如何构建一个可扩展的Web系统。
五、《Web容量规划的技术》
Flicker的经验之谈,重点讲述如何进行容量规划。
六、Scalability Rules: 50 Principles for Scaling Web Sites
主要讲述如何开发易扩展的系统。
七、《分布式数据库系统及其应用》(第二版)
中
科院研究生教材,很有料!大型网站的数据库通常是分布式的,如何设计分布式数据库系统?如何优化分布式查询?本书都作了比较专业的解答。另外,
《MongoDB权威指南》、《Cassandra权威指南》对了解NoSQL的同学来说,也非常值得一读。选择合适的数据存储工具是架构师经常面对的问
题。
php架构:
《企业应用架构模式》
《软件架构的艺术》
《J2EE核心模式》
四人帮《设计模式》——推荐其他衍生书籍。
《架构实战—软件架构设计的过程》英文版最好,中文翻译的太差。
《J2EE反模式》
《POSA》的5本(《面向模式的软件架构》系列)
《架构之美》
《模型驱动设计》
‘捌’ 麻烦给完整编程
print('\n'.join(input('请输入多种水果名称:').strip().split()))
‘玖’ spl是什么意思
spl,指SPL - Standard PHP Library 标准PHP类库。
不管是二次开发,还是自己全部重新设计,我们都得要有一个大前提,那就是最大化提高系统平台生命周期,国内很多phper开发者,很多项目的生命周期短得可怜,阅其代码坚酸难懂。接手的开发人员像被强奸的感觉,,合格的PHP程序员应把代码看成是一种艺术。
一个操作平台是否拥有良好的可扩展性,布局,可维护性是其根本的基础。其核心框架必需高度抽象化,有良好的命名空间与对象接口,,这样才能算是进入贵族艺术编程世界。
SPL(Standard PHP Library) IN PHP5
下一步中大型PHP商业应用的主流的开发将会是以OO,OA软件开发模式主领潮流,从PHP5到PHP6,google Trends足以证明这一点,过去传统的面向过程的开发模式将会被弃之,如果你是一位真正合格程序员。
你会发现OO所带来的好处是深远的,不仅是软件工程所带来的收益,而且此种思维理念对个人思维方式定有大的变革,你会发现你做事情开始方式无处不在。
当然笔者不想去论述用面向过程写PHP代码所带来的好处(如简单的应用),那种单人时代的开发方式如儿童时代已不适合需求复杂,变化过快的现代商业环境.笔者发现,如今支持面向过程的开发者大多知识不够全,够不够广,还不足以用OO来解决商业开发,当然这不是绝对。
但一位有着C++,JAVA, Smalltalk、EIFFEL等开发语言背景的程序员,他会无一不支持OO开发模式,相反网络知识框架基础较少,各种协议一知半解,只会PHP的开发人员他们会觉得面向过程最适合他们。
以上内容参考网络-spl (标准PHP类库)