散文说python半篇——景观三元论与盖茨比的对话
今天,
天氣晴朗,風(fēng)和日麗;
我事實(shí)上在說謊……
愛說謊事實(shí)上是我的天性
上個(gè)禮拜四我就用景觀三元論說了非常多謊話。然后一頭大象自己上吊了。
了不起的大象啊,蓋茨比也要從墳?zāi)估锱莱鰜砹税?#xff0c;
陳年舊事,
紫露凝煙,
沒有了蓋茨比的墳?zāi)挂琅f是遺址公園。景觀三元論如是說。
景觀三元論問:蓋茨比,你為何不用C++寫代碼?非要用ruby或者python這樣的執(zhí)行非常慢的語言呢?
蓋茨比說:
老兄,你要求快,干脆直接用匯編語言去寫吧。
舉個(gè)樣例吧。
你用C++寫一個(gè)實(shí)現(xiàn)某個(gè)功能的程序,這個(gè)程序的執(zhí)行速度確實(shí)非常快。僅僅要0.0001s就可以,
而我用python或者ruby寫相同一個(gè)程序,它的執(zhí)行速度確實(shí)慢非常多。須要0.01s,確實(shí)慢了非常多非常多倍。
可是,
你寫那段C++的程序。你花了一天的時(shí)間,
而我用python或者ruby寫這段相同的代碼,僅僅要10分鐘,
而0.01s已經(jīng)綽綽有余地滿足了我的功能需求,它和0.0001s對我來說都是一眨眼的功夫。
所以人生苦短,我用python/ruby
接下來我就說python了
由于是散文。所以不會那么系統(tǒng)地說。
主要就點(diǎn)到為止地說說怎樣像一個(gè)pythonic一樣去寫python
在曾經(jīng)寫排序代碼的循環(huán)體內(nèi)。常常會須要單獨(dú)搞個(gè)中間變量,然后z=a,a=b,b=z
如今一句話優(yōu)雅的搞定了,如上。
列表推導(dǎo)式式這類語法糖可謂兇器啊,不僅簡單優(yōu)雅。并且威力非常大。(相同適用于元組、集合、字典)
請不要適用type(1.3)去看變量類型,這樣不專業(yè),用isinstance吧,isinstance(1.3, float),并且isinstance還能夠接受類型的元組從而適用多個(gè)類型。非常優(yōu)雅吧。
帶關(guān)鍵詞的格式化。
有點(diǎn)模板引擎的味道。
python對Haskell這樣的有趣的函數(shù)式編程語言的繼承借鑒還是非常多的,在此就點(diǎn)到為止地提一下filter(),reduce(),map(),lambda...由于是散文,就不說細(xì)了。
。。。
寫代碼的習(xí)慣。排版上。空格上,注意一些,也非常重要。雖說推薦似乎名叫pep8規(guī)則,可是我認(rèn)為基本上注意到一些這些細(xì)節(jié)就夠了
看過一排how to use python as a pythonic,好像叫這個(gè)名字的網(wǎng)頁。
事實(shí)上我認(rèn)為最實(shí)用的就是注意括號里參數(shù)的空格,以及等于號前后加個(gè)空格,看起來舒服清爽點(diǎn)
注意就可以
在此推薦一些關(guān)于python的好的參考站點(diǎn):
https://pyzh.readthedocs.org/en/latest/
http://python.net/~goodger/projects/pycon/2007/idiomatic/handout.html
不推薦多,就推薦者兩個(gè),一個(gè)中文的,一個(gè)英文的。
至于面向科學(xué)計(jì)算的,建議學(xué)numpy和scipy。忘了還推薦眼下僅僅有4個(gè)api的jerkpy,博客中的還有一篇文章介紹了。
做圖像識別 建議opencv。骨骼識別openNI
對于網(wǎng)絡(luò)編程,建議用request代替urllib和urllib2
異步的twisted我還沒看。
網(wǎng)絡(luò)框架嘛。python的網(wǎng)絡(luò)框架還是有非常多的,比較白話開放。從plone、django(這個(gè)詞的d不發(fā)音,讀“江go”,可是在中國。入鄉(xiāng)隨俗也沒問題)、flask、bottle、tornado
基本上都接觸過。可是我終于選定了優(yōu)雅的異步框架tornado
說說吧
django盡管非常多人用,也非常全,非常快,可是太重、耦合性相對較高。不適合做大型站點(diǎn),用來給普通公司做私活能夠;
flask是個(gè)比較新的框架,也非常輕,非常新。社區(qū)也比較團(tuán)結(jié)新銳,我本來也用這個(gè),可是后來還是決定不用它,原因是綜合的,一個(gè)是自身喜好吧,我事實(shí)上挺喜歡flask的,可是還是似乎認(rèn)為他位于一個(gè)不輕不重的位置。盡管社區(qū)非常不錯(cuò),是牛B團(tuán)隊(duì)開發(fā)的。可是感覺略微還是有那么一點(diǎn)亂,有種逐步從webpy的量級向django發(fā)展的趨勢。
web.py是個(gè)不可逾越的輕量級鼻祖,盡管創(chuàng)始人掛了??墒沁@個(gè)經(jīng)典的框架很經(jīng)典。只是似乎又太輕了,以及缺乏創(chuàng)始人維護(hù)。
做大型站點(diǎn)就應(yīng)該松耦合,用輕量級的框架來干事,用密斯凡德羅的話。少即是多。以小打大。
bottle可謂一個(gè)玩具,上手非???#xff0c;非常適合給小學(xué)生玩。也算經(jīng)典吧。
tornado我最推崇。很優(yōu)雅的一個(gè)基于web.py發(fā)展而來的異步框架,即使不用他的異步,他也是一個(gè)值得推崇的東東。不不過由于其能承受高并發(fā)、異步、安全cookie、防止xsrf攻擊等。而更是由于這個(gè)框架的架構(gòu)高明,優(yōu)雅。
在此之前。我實(shí)踐了ruby on rails,django, flask, web.py, nodejs ,盡管這些都是杰出的框架,可是自從我遇到了tornado,我已經(jīng)決定tornado是我的歸宿。
一把利器啊。經(jīng)過大半年的實(shí)踐。我總結(jié)到centos+nginx+tornado+memercached+nosql+mysql+python。為何沒人從一開始就告訴我這個(gè),這樣就不用走彎路了,所以天才都不是憑爹的,而是拼哥的,我真羨慕我堂弟有我這樣一個(gè)哥哥。等他中考后就去教他這個(gè),瞬間認(rèn)為自己高中三年,大學(xué)四年,研究生兩年半真是糊里糊涂地走了好多彎路啊,被三元論這類。
。。
。事實(shí)上三元論還不錯(cuò)。是一個(gè)不錯(cuò)的思想??墒羌僭O(shè)稱同濟(jì)景觀為中國最好的景觀學(xué),那太不夠了。眼下中國根本沒有景觀學(xué)專業(yè),回過頭。發(fā)現(xiàn)被騙了好多年啊。。
。
假設(shè)上天在給我一次機(jī)會,我會在高一后就退學(xué),然后自行軟硬兼修外加學(xué)規(guī)劃設(shè)計(jì)。如今老了。。。。幸虧去年受到了松本行弘的思想的感染,讓我斷筋再續(xù)。盡管不用ruby了。可是這樣的思想已然扔不掉了。。
。。
曾經(jīng)寫的都是技術(shù)博客,今天寫了一篇技術(shù)散文,
正所謂形散而神不散。松耦合。強(qiáng)內(nèi)聚。我又說謊了,事實(shí)上想到什么寫什么吧,為所欲為。
。
。
python上手非???#xff0c;未來每一個(gè)人都必須會編程,而python和ruby是非常人性化的語言。所以會有大部分人都會python或者ruby的
python上手非???#xff0c;可是代碼質(zhì)量以及把代碼寫得跟機(jī)器合二為一還是須要境地的,要充分《深入了解計(jì)算機(jī)系統(tǒng)》,事實(shí)上講簡單點(diǎn)。不說套話,最基礎(chǔ)的一個(gè)步驟就是充分利用cpu的運(yùn)算能力,注意內(nèi)存,異步的核心我原以為僅僅是釋放cpu資源,后來發(fā)現(xiàn)非堵塞不僅僅是釋放cpu,也同一時(shí)候釋放網(wǎng)絡(luò)資源,說的比較土,原因非常easy,沒學(xué)過計(jì)算機(jī)系統(tǒng)那門課。那本書也沒看完。。
。
。
只是,換句話說點(diǎn)到為止,慢慢看完那本書足以,匯編語言真的不是必需學(xué)了,compilers這樣的都是有追求的碼農(nóng)去學(xué)的,從一個(gè)景觀設(shè)計(jì)師的角度來說怎樣像松本所說的那樣從人的角度出發(fā),怎樣讓人更舒服地編碼?!o碼農(nóng)捶背,讓碼農(nóng)更舒服地編碼。這當(dāng)讓是說笑。事實(shí)是前一段時(shí)間,從一個(gè)播客上聽了一個(gè)騰訊的產(chǎn)品經(jīng)理說他們團(tuán)隊(duì)的敏捷開發(fā),本來看中了騰訊的產(chǎn)品經(jīng)理的薪資高,可是還沒聽完那個(gè)產(chǎn)品經(jīng)理的播客。我徹底失望了。打消了去騰訊的念頭了——他媽的。就是個(gè)工頭,當(dāng)你與什么樣的人共事,則意味著未來的高度,我寧愿與一群無業(yè)游民共事也不愿與一群號稱敏捷開發(fā)的包工頭共事,工頭僅僅知道project,而不關(guān)心戰(zhàn)略。也不關(guān)心產(chǎn)品,更不關(guān)心怎樣碼農(nóng)地死活與生活。松本行弘作為一個(gè)技術(shù)大牛的角度,他已經(jīng)詮釋了怎樣讓程序猿更舒服地編程,而我,作為一名“未知方面”的“自封大牛”也將要詮釋怎樣讓程序猿更舒服地編碼“?谷歌一樣地舒服的環(huán)境,是物質(zhì)基礎(chǔ)。可是真正牛B的方法是少寫代碼,不寫代碼。慎重需求提出,用心的架構(gòu)設(shè)計(jì),從產(chǎn)品設(shè)計(jì)層面就思考怎樣盡量少寫代碼。把時(shí)間花在精心設(shè)計(jì)一個(gè)api,讓這個(gè)api精到能夠考慮到后期的迭代開發(fā)。
從產(chǎn)品設(shè)計(jì)層面就考慮到代碼架構(gòu),從而花時(shí)間在畫“草圖”上,而不是直接拿著“cad來畫草圖”。盡管是景觀與建筑設(shè)計(jì)的經(jīng)驗(yàn),可是這是通用的。
松本行弘,他讓程序猿更加舒服地編程。
弓長一葦,他讓程序猿更少乃至不用編程。
跳出圈圈看世界。無所謂你是碼農(nóng)。還是建筑師。無所謂你是vc還是cto,無所謂你是教授還是學(xué)生,
那些都不重要。
重要的是生活。
生活乃天賦人權(quán)。
所謂名利乃身外之物,
無法舍棄追求的不是名利,
而是那種自我的成就感,
可是,我時(shí)常提醒朕,
生死由命
富貴在天
人之生,
乃天賦人權(quán)。
我并不是生來為了寫論文,
我生來也并不是為了寫代碼,
我生來也并不是為了做設(shè)計(jì)繪圖。
這些不是必須的,
這些是沒有必要的,
關(guān)鍵在于你是否有勇氣去選擇。
選擇在于每一個(gè)人的自己手中。
發(fā)現(xiàn)寫的太直白了,
不能這樣。
我應(yīng)該寫的高深一點(diǎn)。
清晨,我撞死一輛卡車。
可惜這首我的成名詩,失傳了,可惜。。
。
我自己也忘了當(dāng)年怎么寫的。
總結(jié)
以上是生活随笔為你收集整理的散文说python半篇——景观三元论与盖茨比的对话的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [清华集训2015 Day1]玛里苟斯-
- 下一篇: 标签体系应用及设计思路