導航:首頁 > 編程語言 > php編程藝術

php編程藝術

發布時間:2022-10-30 03:13:46

『壹』 phpjavapython,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類庫)

閱讀全文

與php編程藝術相關的資料

熱點內容
nfs怎麼加密ipsec 瀏覽:245
國二考試調用編譯器運算選擇題 瀏覽:750
同濟大學高等數學pdf 瀏覽:234
延時的宏命令怎麼設置 瀏覽:596
資料庫有哪些加密 瀏覽:209
改之理反編譯注冊教程 瀏覽:391
什麼是編譯程序和翻譯程序 瀏覽:207
python課程心得總結 瀏覽:17
派派中怎麼看對方在哪個伺服器 瀏覽:794
xp配置java環境變數配置 瀏覽:7
python中1到100怎麼算 瀏覽:765
小度我想看程序員 瀏覽:507
bs刷裝備建立後文件夾沒有 瀏覽:81
找漫畫看應該下載什麼app 瀏覽:182
如何在vps上搭建自己的代理伺服器 瀏覽:744
nginxphp埠 瀏覽:403
內臟pdf 瀏覽:152
怎麼看雲伺服器架構 瀏覽:87
我的世界國際服為什麼登不進伺服器 瀏覽:998
微盟程序員老婆 瀏覽:932