A. 為什麼做AI的都選Python
主要是爬取數據,並把爬回來的數據進行分析和挖掘
B. 微軟為什麼敵視java
Windows是非常受人們歡迎的操作系統,它是微軟立足於軟體界的根本所在;Java是非常受人們歡迎的編程語言,它是SUN公司的心血之作,Java最大特點是:一次編寫,可以適應於任何平台, 包括IBM的大型機,SUN公司的伺服器,裝有Windows的PC機,甚至還包括手機這樣的終端設備。1996年,微軟遇到了SUN,兩者一拍即合,微軟利用Java開發出IE瀏覽器,它們攜手打敗了網景的瀏覽器,然而,此後發生的事情打碎了SUN的美好幻想。
Java曾經是Windows的親密戰友
事情還得從80年代說起,當時借PC機東風,微軟與英特爾組成的Wintel聯盟所向披靡,它們踩在藍色巨人IBM的肩上發達起來,微軟生產的Windows操作系統一度控制著整個PC市場,獲得巨大成功,但是它卻忽略了互聯網的發展,被另外一家以生產瀏覽器軟體而聞名的網景公司(Netscape)搶佔了先機,它先於微軟推出瀏覽器軟體。當時,SUN公司以生產UNIX伺服器為主,這種伺服器可以用於網站建設,所以它始終堅持"網路就是電腦"(The Network Is the Computer)的信條。當時,SUN公司也嘗試設計一種名為Java的程序語言,一開始准備將其用在家用電器市場的,Java代碼靈活小巧,可移植性強,並能夠跨平台操作,不局限於某種操作系統,1995年,互聯網大行其道,SUN立刻意識到這是一個機會!因為Java語言結構新穎、可實時操作、而且安全性強,適合用於編寫瀏覽器軟體。由於SUN當時對開發軟體產品尚缺乏信心,所以它免費將Java放在網上,任由人們使用,沒有想到此舉使Java獲得極大的成功和好評。SUN公司的CEO斯科特?麥克尼利從此將自己稱做是"JavaMan"。
微軟為了打敗網景(Navigator瀏覽器),跟SUN達成某項交易,SUN允許微軟使用Java言來開發IE瀏覽器,當IE成功問世時,微軟將IE捆綁進操作系統中,使得很多電腦用戶不得不使用IE作為預設的瀏覽器軟體。網景受到強烈的沖激,1996年春,網景(Navigator瀏覽器)擁有87%的市場佔有率,1998年就降到40%,最後它也不得不免費供用戶使用,終於在1998年11月,網景(Navigator瀏覽器)被美國在線(AOL)收購。
那麼原本是親密戰友的SUN與微軟是如何翻臉無情?以至Java最後也被Windows無情地拋棄呢?
Java成了Windows中不受歡迎的客人
1996年9月的某個星期日,微軟資深的軟體工程師艾達姆.波茨瓦斯在幾經考量之後,提筆給時任微軟CEO的比爾.蓋茨寫了一封信,波茨瓦斯當時是微軟瀏覽器部門的主管,在信中,他非常懇切地提醒比爾.蓋茨注意一個正在形成的威脅,這個威脅不是來自別人,正是其盟友SUN公司創建的一種編程語言--Java,這種語言允許編程者一次性編寫程序代碼、就可以在多個不同的操作系統上運行(如從IBM的大型機到Sun公司的Unix伺服器,再到WindowsPC機都能運行,甚至在手機平台上也可以);而不需要針對每個計算機硬體和操作系統配置的不同而改動程序代碼,並且這種語言在網路上是安全的。在信中,他寫到:"必須意識到Java不僅僅是一種語言,如果它僅只是一種語言,對微軟是不會造成威脅的。我們願意並且能夠容易地為它建立最佳的表現形式,事情可以圓滿解決了。但是事實上,Java絕不僅僅是一種語言,它是COM的替代者。"--而COM恰恰是Windows基於的編程模型。然後,波茨瓦斯用大約1000字解釋了使用Java編程是多麼容易,相反,當程序需要執行許多任務時,使用C++編程語言則要用到相當多的復雜的代碼,這比Java麻煩得多。波茨瓦斯也提出了一些對抗Java的方法,其中一條是悄悄地為Java提供某些擴展,使得用Java編寫的程序能夠在Windows中工作得更好,但是在其它平台上卻不能運行。他警告說這項工作應當以誘導而不是沖突的方式來進行,最重要的是微軟必須意識到Java的力量,"我們首先必須承認Java正在與COM相競爭,然後想出對策,而不只是把頭埋在沙子中逃避問題。"
蓋茨在收到這封信時,正是他准備"閉關清修"的前幾天,原來比爾.蓋茨每年都要抽出一點時間來考慮微軟長期發展戰略,人稱"思考周計劃"。蓋茨顯然被這封信嚇壞了,他第二天就回信了:"這可把我嚇壞了。我不清楚微軟的操作系統要為Java的客戶應用程序代碼提供什麼樣的東西,而這些東西將足夠讓它來取代我們的市場地位。了解這一點非常重要,是應該最優先考慮的事情。"(沒想到,這封信成為幾年後司法部針對微軟的反托拉斯案的呈堂證供。)
於是,Java成了Windows中不受歡迎的客人,微軟開始對其進行清掃,SUN又豈是好惹的?一場針尖對麥芒的好戲就開場了。
Java與Windows的殊死斗爭
作為一對死對頭,微軟和SUN一直官司不斷。1997年,Sun公司以歧視使用Java軟體,旨在維持其視窗操作系統的壟斷地位,違反反壟斷法為由起訴微軟,2001年1月,SUN勝訴,根據雙方達成的和解協議,微軟不得對Windows操作系統中包含的Java語言作任何改動,並獲賠2000萬美元。這是SUN首次與微軟的正面交鋒,誰想這為日後微軟拒絕支持Java語言埋下了伏筆,因為理由很正當,既然你SUN不準我對Java進行改動,而隨著操作系統的發展,不改動Java是適應不了新的形勢,那隻能棄用Java了。
然而,有關Java的事情還不算完,2001年年底,微軟在推出新版操作系統Windows XP和新版IE時,故意不安裝Java軟體,2002年的3月8日,SUN公司向美國加州地區法庭提出起訴,稱此舉造成它直接經濟損失高達10億美元。根據反壟斷法,原告可以要求被告支付實際損失三倍的賠償,因此SUN如果打贏了這場官司,也許最多可以得到30億美元的經濟賠償,看來SUN這回動真格的了!微軟豈能甘心,乾脆一不做二不休,開始了新一輪的報復,2002年6月,微軟稱從2004年起,微軟的Windows操作系統將不再支持Java語言,並解釋這樣做的原因是考慮到安全問題。2002年7月,微軟關閉了一個自動向Windows XP用戶提供Java軟體的站點,據微軟稱,此舉是因為Sun公司聲稱微軟沒有權利通過在線方式發行Java軟體,為了避免產生糾紛,只好停止此項服務。就在雙方口水戰日益升級之際,迎來了有關SUN訴微軟案的第一次聽證會。
SUN起訴微軟的聽證會被安排在2002年12月的第一周,當時,在巴爾的摩市下了近三年來最大的一場雪。整個城市幾乎都停止運轉。但是弗雷德里克?摩茲法官堅持要求開庭,並且要求幾十位與案件有關的律師到場出席;據審判時一位目擊者說,為了保證早上能夠到庭,法官他自己在會議室中睡了一晚。
幾周後,也就是2002年12月23日,摩茲法官發布了那份長達42頁的判決書,他裁定微軟公司必須在其Windows操作系統和IE中發布與其競爭的Java編程語言。這份裁定書可謂是司法界的一部力作,在平實的、以第一人稱的敘述中,摩茲法官回顧了SUN和微軟之間關於Java斗爭的歷史,充分展示了雙方各自的論據,相當藝術地解釋了為什麼要求在Windows操作系統中提供對Java的支持是對相關各方最好的選擇。從過去的情況來看,每當涉及復雜技術的訴訟時,法官經常在面對著術語時顯得無所適從。但是,摩茲法官給人的印象卻是對Java和.NET相當熟悉,而且他表現出強烈的支持SUN的立場,但是他那對微軟不利的判決是有技術和商業上的事實作為基礎的。
簡而言之,摩茲法官的意見是:在微軟的壟斷下,Java擁有一個並不健全的市場,比如說,大部分PC上所安裝的Java軟體要麼就是舊版本,要麼就是僅適用於Windows的版本,這使得其它軟體開發者對Java平台產生了厭惡的情緒,這些都是因為微軟反競爭行為的結果,看來微軟已經利用Windows的壟斷地位來破壞SUN對Java的銷售渠道。樹立市場正義的唯一方法是糾正微軟的所作所為,"阻止微軟從它過去的錯誤中獲得將來的利益!"
拉鋸戰仍在繼續
雖然2002年12月,法官已經作出對SUN有利的判決,並且再一次召集雙方律師,舉行了特別聽證會,2003年1月15日,摩茲法官下令微軟必須在120天完成在其視窗軟體中載入Java的工作。
2003年2月21日,微軟正式提出反訴,稱此案有違公平,微軟公司在其上訴請求中聲稱,即使微軟不在Windows系統中發布Java技術,Sun公司也不會馬上就面臨任何"不可挽回的傷害"。Sun公司則聲稱說,在Windows系統中發布Java技術是一個時間敏感性的問題,一再推遲可能會給Sun公司及其技術帶來損害。美國第四巡迴法院已經宣布將在今年4月3日舉行初步庭審,以此看來,此案究竟如何了結,還是一個未知數。
Java作為一個跨平台水平,一經問世就受到人們的歡迎,據統計,全世界目前有200多萬Java程序員。但即使Java獲勝,也仍然耽誤了最好的發展時機,希望微軟早已經推.NET戰略,並且C#語言就是專門針對Java開發出來的語言,微軟的各種軟體在市場上的佔有率都很高,即使最終的裁決對Java有利,也不會改變微軟目前雄踞軟體世界的局面。
以微軟、SUN的財力物力,對付訴訟的經驗來看,一場拉鋸戰仍然是在所難免的了。
C. 怎樣才能在stackexchange上面提問
這里虎嗅對Stack Exchange多介紹兩句。Stack Exchange是一系列問答網站的平台,旗下的子網站總共有133個,覆蓋了包括數學、園藝、物理、密碼學、天文學、數據科學、攝影、經濟學等不同領域的問答話題,其中最有名的就是程序員們耳熟能詳的Stack Overflow。
Joel Spolsky認為,他們與Quora不一樣之處在於:Quora是社交型的綜合問答網站,而Stack Exchange則更注重事實型問答。在盈利模式上,Stack Exchange主要依靠招聘服務和廣告,各佔三分之二與三分之一。
Stack Exchange在把握社區氛圍方面控製得很嚴格。以下這篇文章也展現了這一點:Stack Overflow是如何一路擴張成長到 Stack Exchange,而還牢牢把控把社區的凝聚力的。
今天,Stack Exchange非常高興的向大家宣布一個好消息,我們剛剛籌資了4千萬美元,而這大部分都歸功於Andreessen Horowitz。
大家可能會對我們會如何使用這筆錢充滿好奇。首先,當然我們需要先給我們辦公司已經陳舊的Aeron座椅都鍍一層金,然後我們會升級下我們已經老化的游戲廳了,同時我們也早已給我們的明星用戶們送去了慶祝蛋糕。
但,這些還是先按下不表。首要的,我們還是帶大家一起回顧下Stack Exchange從創建以來經歷的一些事情吧。
2008年,我和Jeff Atwood當時還在為如何解答開發人員碰到的問題而白了少年頭。在當時,要找到一個編程類的問題的答案是一件非常讓人痛苦的事情。因為我們想要的答案往往都是藏在一座座的金錢砌成的牆後面——要付費的網站,要不就是在一堆已經休眠了有如幾百年的散發出臭味的論欄裡面。
所以我們當時就一心一意的帶著強迫症和滿腔的熱情來為廣大的程序員打造了現在大家看到的Stack Overflow——這個更好的問答網站。
Stack Overflow今天存在的意義和價值就是為了讓程序員可以工作得更輕松點。網站中我們允許成員對答案進行投票,這樣我們就可以優先給大家提供最好的得分最高的答案了。我們這里不歡迎固執己見自以為是的提問方式,因為這會很容易引發如山爆發般一發不可收拾的口水戰,而這對其他想要立刻得到答案的用戶是沒有任何幫助的。同時我們也要小心謹慎的防止Stack Overflow上面的文字內容朝商業化的方向發展,因為商業以為太重的話會失去用戶對我們的信任。
大家會覺得更不可思議的是,我們這里還不允許任何動畫廣告的出現,雖然在很多其他網站上這都是個標准做法。但對我們來說並非如此,我們不想將程序員專注的眼神從閱讀答案中分神到你這正在大跳江南style的動畫廣告中來。也就是說,如果我們因為鳥叔的如耍猴般的左蹦右跳讓程序員分神了的話,我們也就不能保證能給這些程序員提供100%的服務了,最多隻能提供98%級別的服務……但,你要知道我們都是偏執狂,如果只能做到98%的話,我們倒不如直接將Stack Overflow關門大吉然後跑拉斯維加斯去開出租拉活兒得了。
無論如何,最終我們做到了!這完全歸功於你們。你們這班多得嚇死人的開發者站出來成為了知識傳遞的火炬手,給大家提供了眾多的幫助。因為你們的貢獻,Stack Overflow很快就成為全世界有關編程知識的最大、最值得信賴的社區網站。
很快,我和Jeff就發現要給程序員提供服務的話,僅僅一些跟編碼相應的問答服務是遠遠不夠的。所以我們跟著又建立了Server Fault和Super User。當發現這還是不能滿足你們的需求的時候,最終Stack Exchange開始出爐,整個社區根據不同的主題來擴展出不同的網站來為大家服務。所以當你要幫助隔壁的美眉建立一個伺服器,或者安裝一個PC,或者資料庫,或者裝個Ubuntu, 或者搞搞iPhone新意思的時候,你就可以先來我們的網站上面找到那些完全可以幫助你解決問題的大神或他們提供的答案,然後再去隔壁美眉家裡大展身手了。
但大家應該都很清楚程序猿這個群體是怎麼回事,他們都是安分守己兢兢業業的好人啊,所以很容易一不小心就成家立室兒女成群了。那麼育兒和給小孩拍照這些事情對程序猿來說往往是一竅不通的事情啊,所以我們的用戶就開始為這些與編程不相關的主題創建相應的Stack Exchange網站了,如育兒主題和攝影主題。因為我們所服務的程序猿往往會想要有個地方可以知道更多有關保姆和下單買奶粉相關的知識!這些有如Stack Overflow那麼優秀的可以滿足程序猿學習如何育嬰和給小孩拍出藝術照之類特殊要求的網站就營運而生了。
因為我們把這群程序猿服務的是如此的周到,一些聰明的非猿類群體就開始盯著我們:「打住!我需要額外的那個功能!」 而我們當然就會很耐心的告訴他們,兄弟!你要知道所有適合程序猿的東西也應該會適合其他所有人的,只要你們願意按照程序員的思維去思考問題就萬事大吉了,且你要是嘗試過的話,你要知道程序員的思考方式才是世上最好的思維方式。所以,我們這里對所有想加入Stack Exchange大家庭的人都會廣開方便之門。且他們創建的這些網站都是為了他們所認同的一個社群所服務的,比如「自行車維修」、以及其他你能想到的主題網站。
所以從Stack Exchange創建伊始,我們加盟進來的用戶已經打造了共133個各式各樣的社區了。當然Stack Overflow還是最大的老大哥。這樣我想起了下面這張中世紀時代的圖畫。這顯示了在熙熙攘攘的大城市耶路撒冷這個標桿城市周圍,聚攏了一堆小一點的村落房屋。
D. 張近東:劉強東是誰
劉強東,江蘇省宿遷市宿豫區人,是大型網購平台京東商城的CEO。2011年12月12日,獲得第十二屆中國經濟年度人物。
劉強東,1974年生,江蘇省宿遷市宿豫區來龍鎮長安村人。於宿遷中學畢業後,考取中國人民大學,就讀社會學系,1996年畢業於中國人民大學社會學系。大學期間,在完成學業的同時,酷愛計算機的他將所有課余時間用來學習編程,自稱大學期間把90%的時間花在了編程上,「在第一代程序員中還算是比較出色的」。1996年進入某日企(RBLF),歷任銷售,物流,信息等多個職位。1998年自主創業,最早在中關村做傳統的IT代理和零售,據說最初靠誠信在一個論壇打開了銷路。2004年,轉型做電子商務,成立京東。 轉型做京東,據說是因為劉強東發現上游是神碼等大的分銷商,下游是零售商,代理不上不下,難以持久,於是主動選擇了下沉做零售。做電子商務選擇產品很重要,於是從賣IT產品轉向賣小家電。當然,還有SARS的大背景推動。
E. 高德地圖內部程序員們的工作氛圍怎樣
個人感覺,輕松,愉快,工作氛圍好,同事相處融洽。一般工作時間內都能完成任務所以幾乎都不需要加班,早上大家一般都10點附近來,下午一般6點20大家也就陸陸續續的開始散了。收購前,收購後,變動的是高層,我們還是該寫代碼寫代碼啊。今年進來的應屆生被裁了很多,由於業務線與UC重合就是2014年7月正式入職的,2014年12月底都通通滾蛋,卡著你轉正前讓你滾蛋,什麼補償金都沒,公司就是這樣對待應屆生的,要你你來,不要你滾蛋,年前整出這么一出戲,連個年終都不給,真是夠了晚上加班飯補拖欠不給技術上比網路地圖差著一大截了,活動也搞不好...我就不說之前某卡活動辦得一塌糊塗,連個基本要點都說不出,當然拿不到咯所以應屆生還是不要來咯,省的被坑,不管你乾的多好,裁應屆是最劃算省錢的,在高德也不太能學到太多東西,學還是能學一點的,非應屆可以來,下班一般比較早人才流失嚴重,走了很多人對了,看到二樓說裁員不是造謠的那個應屆生也在被裁名單,你不出來說句話?省的你的學弟學妹幹了半年被裁然後什麼都沒拿到。直到現在,不明真相的吃瓜群眾們還是不知道誰是第一。不過對於吃瓜群眾來說,誰是第一可能不重要,重要的是誰更好用。網路地圖和高德地圖都是國民級產品,要了解這起口水戰的前因後果,還得從它們的發展歷程講起。
F. 在php程序員里用面向對象寫sql語句好還面向過程好那個效率更快、速度更高
面向對象與面向過程在許多編程語言中只能使用二者之一來進行編程,但是PHP語言與其他編程語言有不同之處,那就是我們可以自由的選擇或者將如果你是剛接觸PHP,用PHP面向過程的風格來書寫代碼很可能是你唯一的選
面向對象與面向過程在許多編程語言中只能使用二者之一來進行編程,但是PHP語言與其他編程語言有不同之處,那就是我們可以自由的選擇或者將 如果你是剛接觸PHP,用PHP面向過程的風格來書寫代碼很可能是你唯一的選擇。但是如果你經常上PHP論壇和新聞組的話,你應該會看到有關「對象」的文章。你也可能看到過如何書寫面向對象的PHP代碼的教程。或者你也可能下載過一些現成的類庫,並嘗試著去實例化其中的對象和使用類方法--盡管你可能沒有真正理解這些類為什麼可以工作,或者為什麼需要使用PHP面向對象的方法來實現功能。
應該使用「面向對象」的風格還是「面向過程」的風格?雙方各有支持者。像「對象是低效的」或「對象非常棒」這樣的議論也時有耳聞。本文不嘗試輕易判定兩種方法的哪種具有絕對的優勢,而是要找出每種方法的優缺點。
以下是PHP面向過程風格的代碼示例:
<?php
print"Hello,world.";
?>
以下是PHP面向對象風格的代碼示例:
<?php
classhelloWorld{
functionmyPrint(){
print"Hello,world.";
}
}
$myHelloWorld=newhelloWorld();
$myHelloWorld->myPrint();
?>
如果你想了解一些「面向對象」的基本知識,請使用Google搜索,網路上有非常多精彩的文章。
誰像這樣寫代碼?
為了理解為什麼這個論題成為論壇上口水戰的導火線,我們看一些每個陣營的比較極端的例子。我們看看「過程狂熱」和「對象狂熱」。看看他們的觀點聽起來是不是有點熟悉。
過程狂熱
過程狂熱曾在上課時被計算機教師批評,因為這種方法沒有使用更加抽象的實現方式。而支持PHP面向過程者的觀點「它可以工作!」並不能提高其編程水平和檔次。畢業後他們可能找到一個工作,寫驅動程序,文件系統或其它的偏向底層的編程,他們的注意力集中於速度和代碼的精煉。
「過程狂熱」極端的例子是抵制對象,抵制抽象化。他們總在想著如何讓程序運行起來更快,而不在乎別人是否能讀懂他們的代碼。他們常常把編程當成競賽而不是團隊活動。除了PHP外,他們最喜愛的編程語言是C和匯編。在PHP世界中他們可能會開發PECL模塊,貢獻出高效率的代碼。
對象狂熱
對象狂熱者熱衷於在任何時候使用PHP面向對象的風格來書寫代碼。他們沒有真正考慮過用這種方式是否會影響程序的執行效率。有時候讓人覺得他們更享受抽象的設計概念而不是現實的代碼。他們通常很可能是項目管理者或文檔書寫者。
對象狂熱者指出,如果沒有抽象的設計方法我們仍然在使用0和1進行編程。他們喜歡用偽碼來描述問題。極端的例子是對象狂熱者即使知道有時候會犧牲效率仍然使用對象。除了PHP,他們最喜歡的語言是Java和Smalltalk。在PHP世界中,他們可能會開發PEAR模塊,貢獻文檔化非常好,易於維護的代碼。
不要偏激和諷刺
你知道為什麼論壇上總是充斥著各種偏見嗎?你的經驗閱歷,你對新事物的態度都可能是原因。作為程序員,我們需要時常注意這些偏見並以開放的心態去學習新事物。
你的編碼傾向?
考慮一下當你書寫PHP代碼時有什麼偏好或傾向。通常這些偏好是比較隱晦的。有時候你可能在每個項目中有著同樣的偏好。我個人傾向於「優雅」,但我不想在此定義如何才是「優雅」的代碼,那應當出現在另一篇文章里。但是,理論化的偏好不一定適合於實際項目—相反地,他們常常是一種偏見。
理論化的傾向
•用最少行數的代碼提供一個完整的解決方案
•在問題層次上考慮問題
這聽起來似乎很不錯。但「代碼行數最少」如何來衡量呢?要把代碼注釋算在內嗎?我們是否要把每一行都串起來而只用分號來區分呢?大括弧呢?很明顯這種想法是錯誤的。
再解釋一下什麼是「問題層次」。這是否意味著在我們的方案中的每個概念都需要建立一個類?或者需要在每個獨立的文件里保持問題的每個部分,並建立一個復雜的文件樹來與現實中的問題相對應?就是這樣的想法--為每個想法准備一個文件或類!
很明顯這些概括極端化後變得可笑。但現實中存在更微妙的證明。是否常常會有程序員在團隊合作時插入一行復雜的,強大的但沒有注釋的代碼?這對於接手維護這些代碼的人來說無疑是非常令人沮喪的事。相反地,是否你的官僚的自以為是的上一級程序員常常「橫沖直撞」般地,建立介面和類?而那些介面和類不僅僅限制了負責實現的程序員,也限制了效率和靈活性,導致客戶要求擴展程序時手足無措。這些都是以上各種傾向的微妙的證明。
實際傾向
一個項目開始的時候,首先要尋求實際的編碼目的和方向。這個項目的實現目標是什麼?下面是可能是答案。
•開發快,發布快
•盡可能快地運行
•易於維護,改進和擴展
•發布一個API
第一、二個方向傾向於使用過程化的風格,而最後兩個傾向於使用PHP面向對象的風格。
什麼時候某種方式更有效?
現在讓我們試著評價每種方式在現實中的優勢。
PHP面向過程案例
有關PHP的面向過程化編程優勢的一個基礎性的論據是:PHP是一個解釋性的語言--這意味著,不像其它的語言一樣,它不會被編譯成一個可執行的包,而是被解釋並馬上執行。它是一種腳本語言並存儲於文本文件中(例外的,如果使用了Zend編譯工具)。
另一個反對在PHP4及更低版本中使用面向對象方式進行編碼的理由是:在PHP的早期版本中對象的功能並沒有經過良好設計。就像Rasmus曾說過的:「那是事後才想起要增加的功能」。這意味著在PHP4及更早的版本中,對象的效率是個問題。但PHP5出來後,這種情形會有改觀。
以下兩個最流行的PHP程序--OsCommerce和PhpMyAdmin.主要使用面向過程的編碼方式。它們構建起來很快,運行起來也很快。兩者都很自然地採用嵌入HTML的方法。
OsCommerce
OsCommerce實際上使用了很多對象,但絕大部分功能是通過「過程」來實現的。我曾經hack過OsCommerce,為其增添一些對於客戶非常實用的自定義功能。這個過程是挺麻煩的,因為OsCommerce中的很多過程代碼,沒有使用模板化的系統,並且設計成多語言版,所以需要花一定的時間才能上手。但是它可以工作,事實上它已經很好地運行在數目眾多的電子商務站點上了。OsCommerce同時提供了一個論壇和一個開發框架用來開發模塊和插件。因此,現在已經有了很多其它開發者提供的實用的功能模塊。
PhpMyAdmin
PhpMyAdmin直接使用的類只有一個:MimerSQLValidator類,依賴於PEAR包中的Mail_Mime,Net_DIME和SOAP。這可能是考慮到開發的方便:利用現成的可以實現目的的代碼。除此之外,一切都是面向過程的,HTML和PHP代碼也是混雜在一起。
PhpMyAdmin是我幾乎每天都要用到的一個工具,用來對少量的數據表進行不太復雜的處理。有時我甚至鼓勵我的客戶將它當作後端的管理工具來使用(當然我會限制他們的許可權)。PhpMyAdmin的表現非常棒,也很快。有時我想在一些項目中擴展PhpMyAdmin作為後端的管理工具,利用它的一些新功能如數據查詢語句書簽可以很方便地展示給我的客戶和編輯。隨著每個新版本的推出,PhpMyAdmin越來越實用,功能越來越強大。 軟體開發網
PHP面向過程小結
以上兩個使用面向過程風格的程序都有非常好的文檔和代碼注釋。OsCommerce提供的開發框架可以增加維護性和擴展性。但是兩者都沒有提供API,不能擴展程序到另外的體系中。
如果你想把OsCommerce整合到一個帳單程序中,需要花費大量的時間和精力,就像擴展PhpMyAdmin成一個供客戶使用的後端管理工具。不過從它們設計的目的來看,確實在各自的領域中都表現地很出色。
PHP面向對象案例
支持面向對象風格者的觀點都集中於擴展性和封裝。僅僅用面向對象的方式來寫代碼不會為你的代碼產生文檔,但它可以鼓勵你為之添加文檔。並且,為了易於擴展,你可能會寫一個API。PHP5許諾讓面向對象編程更加愉快。我開玩笑地將它稱為PHP中的」Java2」版本,因為它整合了Java中的許多特性,像介面,面向對象模型,try-catch語句等。但即使在對面向對象支持不
力的PHP4中,仍然出現了許多出色的面向對象應用程序。
Smarty
Smarty用來構建帶有復雜表單並基於模板的站點。最近,我寫了一個可以完全換「皮膚」的在線考試系統—可以不用改變任何底層的代碼和功能就可以將整個站點的外觀界面和風格完全改變。為了讓設計師可以易於設計新的界面,我設計了一個自定義的標簽庫作為Smarty標簽庫的擴展。可以像這樣簡單地插入:
["|"]
在一個頁面的頂端有分隔開的導航。因為Smarty已經提供了非常強大的機制來表現變數中包含的數據,這是一個映射較復雜的Smarty標簽到skin標簽的簡單過程。
由於Smarty封裝成一個類,並且它的方法都有很詳盡的文檔,使得使用模板的過程變得令人難以置信地易於擴展。同時,通過強制性地只能顯式地傳遞你要使用的變數給Smarty模板的方法,Smarty也為PHP的環境變數提供了一個保護層。這種方法有助於在Smarty模板設計師和程序員間建立安全、可靠的工作關系。
Fpdf
FPDF是一個非常優秀的工具。如果你被改來改去的pdflib的API所困惑,或者不願為商業化的解決方案而交錢;或者由於共享主機的限制,無法使用擴展模塊—請考慮使用這個免費的,純PHP構建的PDF生成工具。
這個類有很好的文檔,包括許多很好的例子來闡述如何在PDF中布局文本和圖片。在上面提到的同一個在線學習站點我使用FPDF來動態生成PDF文件,使用truetype字體和300dpi精度的圖像。在PHP中實例化FPDF類並進行PDF操作並不會花費太多額外的時間,因為PDF本身就可能需要花費幾分鍾來下載。事實上,動態生成並傳送一個PDF所花的時間不比當使用一個慢速的網路連接來傳送靜態PDF文件所花的時間多。這都是相對而言的。並且,由於FPDF是基於類的,他可以被擴展。事實上,有些類方法雖然存在但還沒有完全實現,僅作為一個框架,這可以為你在子類中建立你自己的內容(如自定義的頭尾元素)提供向導。
PHP面向對象小結
Smarty和FPDF都提供了帶有良好文檔的API來擴展主類。這說明了在類的內部組織方法和數據的必要性--有時同樣的功能可以用函數和全局變數來完成,但這樣不易於擴展。並且,使用對象對跟蹤和保持PDF或HTML文檔的風格非常有幫助,你可以將同樣的數據用不同的格式來發布。Smarty和FPDF都是使用對象來建立靈活實用的類庫的極好的例子。
為什麼兩種方式都是必需的?
回到我們充滿熱情的程序員身上,我們開始贊美他們:
•我們欣賞Smarty和FPDF的實用性和擴展性
•我們欣賞osCommerce和phpMyAdmin的運行速度和良好表現
這種欣賞還包括對PHP的一些基礎開發。PECL和PEAR都收到了很多贊揚和批評。我想這兩個項目為闡明PHP面向過程和面向對象編程的區別提供了很好的例子。
PECl提供了PHP的擴展庫,用C和面向過程的方式開發,注重速度和簡潔精煉。通常,這些都是從已經存在的LGPL軟體中移植而來,其中許多有趣的特性已經加入PHP。畢竟,PHP是用C寫的。
PEAR則貢獻了很多有趣的類如建立Excel表或改變DNS記錄等。使用PEAR類庫可以為你節約大量時間,甚至可以讓你在不怎麼熟悉PHP的情況進行開發—「我不理解但它能用!」。
總結
希望本文能加深你對PHP面向對象和PHP面向過程的兩種編程方式的理解,並且更重要地—鼓勵你在更具體的細節上進行探索。我希望你會有自己的想法,並在實際開發中檢驗你的項目開發傾向,總結出更多實際的案例,並不嗇寫些針對本文的評論。
總之,每種方式都有其優勢的一面,糾纏於爭論不如離開去寫些實際的代碼!
G. 為什麼程序員那麼高的工資,比銷售人員的平均薪資都高
在一個公司里,不同部門和不同職位的工資有高有低,這是一種正常現象。有些公司可能是基於銷售,所以一般的銷售收入很高,有些公司是技術或產品驅動的公司,而研發人員工資相對較高。
一位從事銷售的網友說,公司的程序員的工資一般是15K到20K,高出他們一大截,銷售部門的平均工資也低於最底層的程序員。
該樓主吐槽的點在於銷售部門的平均工資甚至低於一個底層程序員,這是不公平的。然而,這種吐槽很容易引起各方的口水戰。以下是一些網友的回復。據估計,他們基本都是程序員。
吃瓜群眾A:沒有什麼不公平的,每個公司的運營模式是不同的,主要是看每個公司的需求,像阿里和騰訊,比較依靠技術,所以薪水比較高。
吃瓜群眾B:你心裡沒數嗎?你告訴我銷售是不是零門檻,是個人都能幹?你們銷售難道沒有業績比較突出的嗎,業績好的銷售四五萬一個月的你告訴我有沒有?技術人員你到大街上隨便拉一個人來都能寫代碼?
當然,同時也有一些吃瓜群眾指出,樓主不應該妄自菲薄,很多程序員都喜歡吹牛:不要聽他們吹牛,做好自己的事。雖然我也是一個程序員,但我特別討厭那些顯擺工資的那些程序員,工資再高有能高到哪去,還不是一個打工的,像沒見過錢一樣,一點意義也沒有。
銷售人員和程序員本就是不同的職業,工資水平有高有低是很正常的。雖然行業不分貴賤,但是工資還是有所差別的。
後記:對於大部分轉行的人來說,找機會把自己的基礎知識補齊,邊工作邊補基礎知識,真心很重要。
「我們相信人人都可以成為一個web前端大神,現在開始,找個師兄,帶你入門,學習的路上不再迷茫。這里是前端修真院,初學者轉行到互聯網行業的聚集地。"
H. 360騰訊口水戰的全過程
第一階段
騰訊推出QQ醫生1.0 Beta版本,此後很長一段時間內只作為查殺盜號木馬的小工具。隨後QQ醫生3.2推出,界面及功能酷似360,同時宣布贈送諾頓防病毒軟體半年試用。之後QQ醫生利用春節期間強行推廣。 敏感的360很快意識到QQ醫生的威脅,一些正在休假的員工被緊急召回以應對這起突發事件。360快速反應,加上QQ醫生本身產品並不成熟就匆忙上陣,很多用戶陸續卸載QQ醫生,其市場份額也快速降至10%以下。360成為此次交鋒的勝利者。
第二階段
5月31日,騰訊悄然將QQ醫生悄然升級至4.0版並更名為"QQ電腦管家"。新版軟體將QQ醫生和QQ軟體管理合二為一,增加了雲查殺木馬、清理插件等功能,模仿涵蓋了360安全衛士所有主流功能,用戶體驗與360極其類似,騰訊這招讓360和金山措手不及。 周鴻禕在微博上扔出40多條消息,自爆360與金山的多年積怨,金山隨即強烈回應。兩家公司隨後互訴對方,口水戰訴訟戰不止。就在這時,騰訊的出手讓360措手不及。周鴻禕在接受專訪時,建議騰訊應該加大投入解決QQ內部安全問題。
第三階段
中秋節期間QQ軟體管理"和"QQ醫生"自動升級為"QQ電腦管家",模仿涵蓋了雲查殺木馬、系統漏洞修補、安全防護,系統維護和軟體管理等功能,而這也是目前360安全衛士的主流功能。而憑借著QQ龐大的用戶基礎,QQ電腦管家將直接威脅360在安全領域的生存地位。 9月27日,360發布直接針對QQ的"隱私保護器"工具,宣稱其能實時監測曝光QQ的行為,並提示用戶"某聊天軟體"在未經用戶許可的情況下偷窺用戶個人隱私文件和數據。引起了網民對於QQ客戶端的擔憂和恐慌。
第四階段
10月14日,針對360隱私保護器直接針對QQ,並在QQ用戶中製造恐慌情緒,騰訊正式宣布起訴360不正當競爭,要求奇虎及其關聯公司停止侵權、公開道歉並作出賠償。法院已受理此案。 針對騰訊起訴,360隨即回應三點,表示將提起反訴。在回應中,360稱"各界對騰訊提出的質疑,騰訊一直迴避窺探用戶隱私,這時候起訴360,除了打擊報復外,不排除是為了轉移視線,迴避外界質疑"。
第五階段
10月27日,騰訊刊登了《反對360不正當競爭及加強行業自律的聯合聲明》。聲明由騰訊、金山、網路、傲遊、可牛等公司聯合發布。要求主管機構對360不正當的商業競爭行為進行堅決制止,對360惡意對用戶進行恫嚇、欺騙的行為進行徹底調查。 10月29日,360公司推出一款名為"360扣扣保鏢"的安全工具。360稱該工具全面保護QQ用戶的安全,包括阻止QQ查看用戶隱私文件、防止木馬盜取QQ以及給QQ加速,過濾廣告等功能。這已觸及了騰訊收入和媒體流量的核心。
第六階段
11月3日傍晚6點,騰訊公開信宣稱,將在裝有360軟體的電腦上停止運行QQ軟體,倡導必須卸載360軟體才可登陸QQ,這是360與騰訊一系列爭執中,騰訊方面迄今為止最激烈的行動。此舉引發了業界震動,業內認為,騰訊這招是逼迫用戶作出二選一的選擇。 晚上9點左右,360公司"扣扣保鏢"軟體在其官網悄然下線,360發表公開信,呼籲網民停用QQ三天。在國家相關部門的強力干預下,4日凌晨2點開始QQ與360開始恢復兼容。4日上午,360公司宣布召回"扣扣保鏢",請求用戶卸載。
I. 1月12日百度被黑了,有沒人知道點詳細的
12日早上7時許,網路出現訪問中斷的情況,查詢域名.com的WHOIS信息後發現網路域名出現不可理解的問題。
目前Bai.com的DNS伺服器被更換,同時主域名已經被解析到一個荷蘭的IP,並且訪問網路旗下子域名會被跳轉到雅虎的錯誤頁面,WHOIS數據也正在不斷被刷新中,目前問題並未解決,網路也並沒有對此發表回應。
8:20更新:有網友曾經被定向到一個黑頁「Iranian Cyber Army」上,域名被盜取或劫持的可能性相當大,不過網路如此大的請求數量是任何一個黑頁伺服器也無法抵禦的,因此只能是訪問失敗。
回想起twitter上次域名被轉向,和這次攻擊有著驚人的相似。
8:30更新:網路DNS數據已經被改回,但WHOIS數據依然沒有刷新
8:36更新:被黑圖像出現,果然是伊朗網軍。
也有些朋友在訪問時,被定向至一個「Iranian Cyber Army」的頁面上,域名被盜取或劫持的可能性相當大。此次事件於上個月17號出現的Twitter被黑如出一轍。
經查詢,目前Bai.com的DNS伺服器已被更換,主域名已被解析為一個荷蘭的IP。
截至發稿時,目前問題依舊持續,而網路方面尚並沒有對此發表回應。
國際在線消息:1月12日早上,搜索引擎網站網路(www..com)被發現無法打開,網站處於無法訪問狀態,也沒有出現任何提示消息。
據網友反應,今早8點多,www..com曾經被定向到一個「Iranian Cyber Army」
「網路已經順利通過了網路史上最大規模的黑客攻擊。」9月13日下午,網路CTO劉建國對本報記者稱,這是網路高層首次回應被「黑」事件。
9月12日17∶30,有北京、重慶、廣東等地的網友反映網路無法正常使用,在對網路伺服器執行「Ping」命令時,均返回「請求超時」(Request timed out)的信息。
隨後,這次攻擊使網路搜索服務在全國各地出現了近30分鍾的故障。
劉建國介紹,此次黑客攻擊採用的工具被稱為同步泛濫技術(syn flooding),通過大量的虛假IP地址建立不完整連接,使得服務超載,從而使網路不能提供正常的服務。
一位程序員告訴記者:「對於一個普通的伺服器,只能同時並發幾萬個鏈接,但通過同步泛濫技術這種攻擊工具,就可以同時並發幾十萬次鏈接,造成伺服器的超載,從而導致網路服務無法正常訪問。」
劉建國稱:「這次黑客攻擊背後肯定有商業目的,這么大規模的攻擊是人為組織並精心策劃的,已經涉嫌違法犯罪。」劉透露,網路已經報案,請求公安機關介入協助偵查。
事實上,最近一段時間以來,網路負面事件不斷。最新的情況是,一些原廣告客戶因商業糾紛正准備起訴網路。
這些原網路廣告客戶接受本報記者采訪時稱,由於今年沒有跟網路續簽廣告協議,即使翻到搜索結果的最後一頁,也無法找到與他們相關的鏈接,「這是網路利用壟斷行為欺負我們」。
但這些原廣告客戶的起訴卻遇到障礙,眾多律師事務所不願意受理他們的案件。一位律師告訴記者:「他們(廣告客戶)只有情理上的優勢,而沒有法理上的優勢。作為商業公司,網路可以選擇在搜索結果呈現哪些網頁,或不呈現哪些網頁,網路沒有義務必須呈現起訴者的網頁。」
有分析人士猜測,廣告客戶有可能鋌而走險,不得已使用這種惡性攻擊手段。
頗有意思的是,就在本報截稿之前,有業內資深黑客向本報報料,稱已經聯繫上黑網路的「黑客」。該資深黑客透露,「該『黑客』不喜歡網路,尤其是最近裁員、與天極及搜狐的口水戰等事件中,網路的處理方式讓他非常不滿,於是決定黑網路。」該資深黑客強調,「黑網路只是這名『黑客』的個人行為。」
網路方面對此不予評論,只表示尚未獲得「黑客」的任何消息。
J. 什麼是2016年最值得學習的編程語言
對程序員而言,如今已經有了很多編程語言可供選擇,編程風格也發生了很大變化。因此,很少有程序員只會一門編程語言,隨著行業的不斷發展,只會一門編程語言會嚴重限製程序員的就業前景。
此外,多學一門編程語言可以使程序員具備在不同規則和功能集之間進行轉換的技能。而且,即便語言不同,邏輯也是相近的。考慮到這一點,選擇合適的編程語言還是很有必要的。不同的編程語言在可用性、直觀性和特定功能上還是有差異的,沒有任何一種編程語言是完美的——盡管我確信會有程序員不同意這個說法。但我還是給出了如下五大不錯的編程語言:
Java
因咖啡而得名是不是在暗示著java會很火熱呢?好吧,開個玩笑。現在的各種編程語言排行榜上,java都是最常見和最流行的編程語言。通過「一次寫入、隨處可用」的標簽,java以其極少的依賴關系而聞名,並且可以在任何支持java的平台上運行,而無需重新編譯。在數十年的時間里,Java沒有顯示出任何衰減的跡象。
RedMonk的編程語言排行榜統計了GitHub和Stack Overflow上的數據,對比了各大編程語言的性能,Java排第二。TIOBE排行榜根據全球各地的程序員,培訓機構和第三方供應商,還考慮了Google,Yahoo!,Amazon,YouTube,Bai等搜索引擎的數據,最終,java在受歡迎指數上排名第一。
C++
很多人初次接觸C++時,大概都是一種既恨又愛的心情吧,但C++確實是絕對不能錯過的,C++實際上影響了java,並仍然在今天的編程世界中起著核心作用。實際上,目前它在許多平台上都可以實現,由微軟,英特爾,IBM等巨型科技機構提供。
至於排名,RedMonk編程語言排行榜上,C++排在第五位,TIOBE排行榜上,C++排在第三位。
Python
學習Python對java和c++還是有一些好處的,但要聲明本文中列出的語言排名不分先後,以免引起程序員們的口水大戰,畢竟,哪種語言最好用還是取決於程序員的個人喜好。
Python的重點在於它的設計理念,例如,它強調代碼可讀性,並開發了一種語法,旨在讓程序員完成類似結果時,與java和C++相比使用較少的代碼行。代碼行縮減是Python一直致力於做的一件事情。
Python在RedMonk上排名第四,在TIOBE上排名第五,再次成為最流行和最常用的語言之一。
Ruby
Ruby及其框架Ruby on Rails一起構成了最有爭議的選項之一。是的,關於是否該學習該編程語言的爭議。搜索「Ruby on Rails死了嗎」,你會發現一堆關於這種語言是否值得學習的想法。
但是兩大理由使Ruby和Ruby on Rails成為程序員編碼的堅實選擇。首先,調查和研究的數據顯示,Ruby仍然非常有用和有市場需求。其次,設計理念。雖然其他語言優先考慮終極定製和無限選項,但這些功能通常以犧牲直觀性為代價,Ruby on Rails想通過簡化流程來解決這個問題。
對自定義軟體開發相關的程序員來說,與其他諸如PHP,Node.js和Angular之類的編程語言相比,Ruby具有一些重要的優勢,值得被認真考慮。
每個Ruby程序員都知道它的一些缺點,但是任何編程語言都有優點和缺點。而且,Ruby的缺點也是有解決方法的。Ruby與其他編程語言略有不同,因此可能不會對所有程序員的胃口。但是,它仍然是2017年值得學習的編程語言之一。
SQL
在兩次調查中,整體來說,SQL性能較弱。它在TIOBE中排名第18,在RedMonk中也排在第18位。
但它的優勢在於預測。Stack Overflow做的一項關於開發者的調查中,總共對173個國家的56,000多名開發人員進行了調查,結果在這些程序員最常用的技術中,SQL落後於JavaScript排在了第二位。另一個調查報告也將SQL列為去年最受歡迎的語言。事實上,SQL似乎深受很多程序員的喜歡,絕對是值得新手好好研究的。