散文說python半篇——景觀三元論與蓋茨比的對話

今天,html

天氣晴朗,風和日麗;node

我事實上在說謊……python

愛說謊事實上是個人天性mysql

上個禮拜四我就用景觀三元論說了很是多謊言。而後一頭大象本身上吊了。nginx

了不得的大象啊,蓋茨比也要從墳墓裏爬出來了吧,web

陳年舊事,sql

紫露凝煙,django

沒有了蓋茨比的墳墓依舊是遺址公園。景觀三元論如是說。編程


景觀三元論問:蓋茨比,你爲什麼不用C++寫代碼?非要用ruby或者python這樣的執行很是慢的語言呢?flask

蓋茨比說:

老兄,你要求快,乾脆直接用匯編語言去寫吧。

舉個樣例吧。

你用C++寫一個實現某個功能的程序,這個程序的執行速度確實很是快。僅僅要0.0001s就能夠,

而我用python或者ruby寫相同一個程序,它的執行速度確實慢很是多。需要0.01s,確實慢了很是多很是多倍。

但是,

你寫那段C++的程序。你花了一天的時間,

而我用python或者ruby寫這段相同的代碼,僅僅要10分鐘,

而0.01s已經綽綽有餘地知足了個人功能需求,它和0.0001s對我來講都是一眨眼的功夫。

因此人生苦短,我用python/ruby


接下來我就說python了

因爲是散文。因此不會那麼系統地說。

主要就點到爲止地說說怎樣像一個pythonic同樣去寫python


a, b = b, a

在曾經寫排序代碼的循環體內。經常會需要單獨搞箇中間變量,而後z=a,a=b,b=z

現在一句話優雅的搞定了,如上。


[ i*2 for i in xrange(3) ]

列表推導式式這類語法糖可謂兇器啊,不只簡單優雅。而且威力很是大。(相同適用於元組、集合、字典)


>>> isinstance(1, (float, int))
True
>>> isinstance(1.3, (float, int))
True
>>> isinstance("1.3", (float, int))
False

請不要適用type(1.3)去看變量類型,這樣不專業,用isinstance吧,isinstance(1.3, float),而且isinstance還可以接受類型的元組從而適用多個類型。很是優雅吧。



>>> print "Hello %(name)s !" % {'name': 'James'}
Hello James !
>>> print "I am years %(age)i years old" % {'age': 18}
I am years 18 years old
>>> print "Hello {name} !".format(name="James")
Hello James !

帶關鍵詞的格式化。

有點模板引擎的味道。



def add(x, y):
    return x + y

lst1 = [1, 2, 3, 4, 5]
lst2 = [6, 7, 8, 9, 10]
lst_sum = map(add, lst1, lst2)

# lst_sum == [7, 9, 11, 13, 15]

python對Haskell這樣的有趣的函數式編程語言的繼承借鑑仍是很是多的,在此就點到爲止地提一下filter(),reduce(),map(),lambda...因爲是散文,就不說細了。

。。。


寫代碼的習慣。排版上。空格上,注意一些,也很是重要。雖然說推薦彷佛名叫pep8規則,但是我認爲基本上注意到一些這些細節就夠了

看過一排how to use python as a pythonic,好像叫這個名字的網頁。

事實上我認爲最實用的就是注意括號裏參數的空格,以及等於號先後加個空格,看起來舒服清爽點

注意就能夠


在此推薦一些關於python的好的參考站點:

https://pyzh.readthedocs.org/en/latest/

http://python.net/~goodger/projects/pycon/2007/idiomatic/handout.html

不推薦多,就推薦者兩個,一箇中文的,一個英文的。


至於面向科學計算的,建議學numpy和scipy。忘了還推薦眼下僅僅有4個api的jerkpy,博客中的還有一篇文章介紹了。

作圖像識別 建議opencv。骨骼識別openNI


對於網絡編程,建議用request代替urllib和urllib2


異步的twisted我還沒看。


網絡框架嘛。python的網絡框架仍是有很是多的,比較白話開放。從plone、django(這個詞的d不發音,讀「江go」,但是在中國。入鄉隨俗也沒問題)、flask、bottle、tornado

基本上都接觸過。但是我終於選定了優雅的異步框架tornado

說說吧

django儘管很是多人用,也很是全,很是快,但是過重、耦合性相對較高。不適合作大型站點,用來給普通公司作私活可以;

flask是個比較新的框架,也很是輕,很是新。社區也比較團結新銳,我原本也用這個,但是後來仍是決定不用它,緣由是綜合的,一個是自身喜愛吧,我事實上挺喜歡flask的,但是仍是彷佛認爲他位於一個不輕不重的位置。儘管社區很是不錯,是牛B團隊開發的。但是感受略微仍是有那麼一點亂,有種逐步從webpy的量級向django發展的趨勢。

web.py是個不可逾越的輕量級鼻祖,儘管創始人掛了。但是這個經典的框架很經典。只是彷佛又過輕了,以及缺少創始人維護。

作大型站點就應該鬆耦合,用輕量級的框架來幹事,用密斯凡德羅的話。少便是多。以小打大。

bottle可謂一個玩具,上手很是快,很是適合給小學生玩。也算經典吧。

tornado我最推崇。很優雅的一個基於web.py發展而來的異步框架,即便不用他的異步,他也是一個值得推崇的東東。不不過因爲其能承受高併發、異步、安全cookie、防止xsrf攻擊等。而更是因爲這個框架的架構高明,優雅。

在此以前。我實踐了ruby on rails,django, flask, web.py, nodejs ,儘管這些都是傑出的框架,但是自從我遇到了tornado,我已經決定tornado是個人歸宿。

一把利器啊。通過大半年的實踐。我總結到centos+nginx+tornado+memercached+nosql+mysql+python。爲什麼沒人從一開始就告訴我這個,這樣就不用走彎路了,因此天才都不是憑爹的,而是拼哥的,我真羨慕我堂弟有我這樣一個哥哥。等他中考後就去教他這個,瞬間認爲本身高中三年,大學四年,研究生兩年半真是糊里糊塗地走了好多彎路啊,被三元論這類。

。。

。事實上三元論還不錯。是一個不錯的思想。但是假設稱同濟景觀爲中國最好的景觀學,那太不夠了。眼下中國根本沒有景觀學專業,回過頭。發現被騙了好多年啊。。

假設上天在給我一次機會,我會在高一後就退學,而後自行軟硬兼修外加學規劃設計。現在老了。。。。幸好去年受到了松本行弘的思想的感染,讓我斷筋再續。儘管不用ruby了。但是這樣的思想已然扔不掉了。。

。。


曾經寫的都是技術博客,今天寫了一篇技術散文,

正所謂形散而神不散。鬆耦合。強內聚。我又說謊了,事實上想到什麼寫什麼吧,隨心所欲。

python上手很是快,將來每個人都必須會編程,而python和ruby是很是人性化的語言。因此會有大部分人都會python或者ruby的

python上手很是快,但是代碼質量以及把代碼寫得跟機器合二爲一仍是需要境地的,要充分《深刻了解計算機系統》,事實上講簡單點。不說套話,最基礎的一個步驟就是充分利用cpu的運算能力,注意內存,異步的核心我原覺得僅僅是釋放cpu資源,後來發現非堵塞不只僅是釋放cpu,也同一時候釋放網絡資源,說的比較土,緣由很是easy,沒學過計算機系統那門課。那本書也沒看完。。

只是,換句話說點到爲止,慢慢看完那本書足以,彙編語言真的不是必需學了,compilers這樣的都是有追求的碼農去學的,從一個景觀設計師的角度來講怎樣像松本所說的那樣從人的角度出發,怎樣讓人更舒服地編碼。——給碼農捶背,讓碼農更舒服地編碼。這當讓是說笑。事實是前一段時間,從一個播客上聽了一個騰訊的產品經理說他們團隊的敏捷開發,原本看中了騰訊的產品經理的薪資高,但是還沒聽完那個產品經理的播客。我完全失望了。打消了去騰訊的念頭了——他媽的。就是個工頭,當你與什麼樣的人共事,則意味着將來的高度,我寧願與一羣無業遊民共事也不肯與一羣號稱敏捷開發的包工頭共事,工頭僅僅知道project,而不關心戰略。也不關心產品,更不關心怎樣碼農地死活與生活。松本行弘做爲一個技術大牛的角度,他已經詮釋了怎樣讓程序猿更舒服地編程,而我,做爲一名「未知方面」的「自封大牛」也將要詮釋怎樣讓程序猿更舒服地編碼「?谷歌同樣地舒服的環境,是物質基礎。但是真正牛B的方法是少寫代碼,不寫代碼。慎重需求提出,用心的架構設計,從產品設計層面就思考怎樣儘可能少寫代碼。把時間花在精心設計一個api,讓這個api精到可以考慮到後期的迭代開發。

從產品設計層面就考慮到代碼架構,從而花時間在畫「草圖」上,而不是直接拿着「cad來畫草圖」。儘管是景觀與建築設計的經驗,但是這是通用的。


松本行弘,他讓程序猿更加舒服地編程。

弓長一葦,他讓程序猿更少乃至不用編程。


跳出圈圈看世界。無所謂你是碼農。仍是建築師。無所謂你是vc仍是cto,無所謂你是教授仍是學生,

那些都不重要。

重要的是生活。

生活乃天賦人權。

所謂名利乃身外之物,

沒法捨棄追求的不是名利,

而是那種自個人成就感,

但是,我時常提醒朕,

生死由命

富貴在天


人之生,

乃天賦人權。

我並非生來爲了寫論文,

我生來也並非爲了寫代碼,

我生來也並非爲了作設計繪圖。

這些不是必須的,

這些是沒有必要的,

關鍵在於你是否有勇氣去選擇。

選擇在於每個人的本身手中。


發現寫的太直白了,

不能這樣。

我應該寫的高深一點。

清晨,我撞死一輛卡車。


惋惜這首個人成名詩,失傳了,惋惜。。

我本身也忘了當年怎麼寫的。

相關文章
相關標籤/搜索