“天下皆知美之為美,斯惡已;皆知善之為善,斯不善已。故有無相生,難易相成,長短相形,高下相傾,音聲相和,前後相隨。是以聖人處無為之事,行不言之教。萬物作焉而不辭,生而不有,為而不恃,功成而弗居。夫唯弗居,是以不去” ———《道德經》小時候,常被人教誨,要揚長避短,於是就形成了一種思維定勢:長處永遠是好的,短處就永遠見不得人。長大後讀《道德經》,才有所明悟:長短相形,長無恆長,短無恆短。屈原在《卜居》中說:“夫尺有所短,寸有所長,物有所不足,智有所不明,數有所不逮,神有所不通,用君之心,行君之意”。說的也是同一個道理,長和短是會相互轉化的,做人做事,遵循你的內心就好了,如果要無所不用其極的想做好一件事,反而可能會取得相反的效果。 成為一名程式設計師是我從高中時代就有的興趣和理想,經過各種曲折,終於是得償所願了,寫程式碼確實給我帶來了很多快樂和心靈的充實。隨著時間的推移,我逐漸收穫了程式設計帶給我的另一種快樂:以程式設計悟道修心。我知道我說的這話玄而又玄的,很容易被人誤解成一名「神棍」。當然,如果是跟我有相同感受的有緣人,能明白我說什麼。不明白的也不用急,可以跟著我的思緒一起思考一下。江湖中有一句流傳已久的話:“PHP是最好的語言”。 絕大部分人是把這句話當作一句笑料,一種嘲諷,經常在各種場合來使用,當然也包括曾經的我。但是也有小部分人會問:“為什麼PHP技術群裡很少有人去探討語法特性呢?” 。但是反觀其他語言的技術群,比如C++,比如Haskell,聊的最多的就是語法。噴子請不要誤會,我並沒有要黑哪個的意思。這其實是我思考的一個點:“PHP語法簡單,是事實,沒有那麼多高大上的語法特性,可能相比於C++/Haskell/Ruby/Python等語言沒有那麼多思想內涵,從這個角度來看,這一點正是PHP的短板。可恰恰是這個短板,成就了PHP”。恰恰是因為PHP語法簡單,沒有那麼多複雜的概念,沒什麼好討論的,捋起袖子就是幹,反而會更加聚焦於業務和領域層面的問題。反觀Golang語言也是類似,見過很多人吐槽Golang,也就那麼一句:“if err != nil”, 或者說“golang怎麼沒有泛型?“,但實際Golang技術群裡也很少有人討論具體的語法,因為沒什麼好討論的,就是那麼點內容。Golang簡潔的設計,是很多人眼裡的短處,但其實也是它自身的長處。君不見,Golang社群生產力多麼強?噴子請不要誤會,我不是Golang社群派來的,目前我也沒用Golang。有一段時間,我對軟體架構比較上心,還經常把軟體和建築去類比,甚至還找我做建築行業的朋友去諮詢,有哪些建築方面的書可以閱讀。朋友跟我說了一句話:”我們建築行業,是絕不能出bug的,如果出了bug,付出的就是生命的代價。軟體和建築還是不一樣的”。 我當時並沒有對這句話有過多的考慮,只是覺得,不都是架構嗎?我學習的是架構的「神」,又不是要學建築,就沒有進行深入的思考。後來機緣巧合,又讓我回到了這個問題上,這一次的思考讓我有所明悟。建築行業,正是因為要避免付出生命的代價,所以會在專案實施之前會做好非常詳細的規劃,藝術性和工程性都需要保證,然後還需要嚴格的監督才能交付一個完整的工程。而軟體架構不一樣,軟體需求是經常變化的,軟體架構在保證穩定的同時,還需要有一定的靈活性和可擴充套件性,這和建築行業有本質的不同。所以,瀑布模型在建築行業,是極具優勢的,因為它安全,但是拿來軟體行業,就不一定了,除非是對安全有嚴格要求的專案。尺有所短,寸有所長,要看它所處的環境或領域去取捨,所以我們需要敏捷。這種哲學性的思考,正如我前面所說的「悟道修心」,也是現階段,程式設計所帶給我的另一種樂趣。其實再往大了思考,整個人類的發展不也是這樣嗎? 人類的大腦計算速度比不過計算機,行動也只是線性的,從物理學方面考慮,人類簡直就是渣渣,但是為什麼能發展出高度發達的文明呢?正是因為這種限制,讓人類擁有了抽象的能力,這種能力可以讓人類簡化萬物從而對宇宙有更進一步的認知。宇宙有多少顆星星?我們不需要一顆一顆數,我們只需要找到規律做出預估就可以了。再反觀生活,又何嘗不是如此?當你想做點事,但資源有限怎麼辦?其實沒必要擔憂,用有限的資源也許能做出更偉大的事呢?故有無相生,難易相成,長短相形,高下相傾,音聲相和,前後相隨。永遠不要給自己設限,永遠不要害怕限制,與君共勉。
“天下皆知美之為美,斯惡已;皆知善之為善,斯不善已。故有無相生,難易相成,長短相形,高下相傾,音聲相和,前後相隨。是以聖人處無為之事,行不言之教。萬物作焉而不辭,生而不有,為而不恃,功成而弗居。夫唯弗居,是以不去” ———《道德經》小時候,常被人教誨,要揚長避短,於是就形成了一種思維定勢:長處永遠是好的,短處就永遠見不得人。長大後讀《道德經》,才有所明悟:長短相形,長無恆長,短無恆短。屈原在《卜居》中說:“夫尺有所短,寸有所長,物有所不足,智有所不明,數有所不逮,神有所不通,用君之心,行君之意”。說的也是同一個道理,長和短是會相互轉化的,做人做事,遵循你的內心就好了,如果要無所不用其極的想做好一件事,反而可能會取得相反的效果。 成為一名程式設計師是我從高中時代就有的興趣和理想,經過各種曲折,終於是得償所願了,寫程式碼確實給我帶來了很多快樂和心靈的充實。隨著時間的推移,我逐漸收穫了程式設計帶給我的另一種快樂:以程式設計悟道修心。我知道我說的這話玄而又玄的,很容易被人誤解成一名「神棍」。當然,如果是跟我有相同感受的有緣人,能明白我說什麼。不明白的也不用急,可以跟著我的思緒一起思考一下。江湖中有一句流傳已久的話:“PHP是最好的語言”。 絕大部分人是把這句話當作一句笑料,一種嘲諷,經常在各種場合來使用,當然也包括曾經的我。但是也有小部分人會問:“為什麼PHP技術群裡很少有人去探討語法特性呢?” 。但是反觀其他語言的技術群,比如C++,比如Haskell,聊的最多的就是語法。噴子請不要誤會,我並沒有要黑哪個的意思。這其實是我思考的一個點:“PHP語法簡單,是事實,沒有那麼多高大上的語法特性,可能相比於C++/Haskell/Ruby/Python等語言沒有那麼多思想內涵,從這個角度來看,這一點正是PHP的短板。可恰恰是這個短板,成就了PHP”。恰恰是因為PHP語法簡單,沒有那麼多複雜的概念,沒什麼好討論的,捋起袖子就是幹,反而會更加聚焦於業務和領域層面的問題。反觀Golang語言也是類似,見過很多人吐槽Golang,也就那麼一句:“if err != nil”, 或者說“golang怎麼沒有泛型?“,但實際Golang技術群裡也很少有人討論具體的語法,因為沒什麼好討論的,就是那麼點內容。Golang簡潔的設計,是很多人眼裡的短處,但其實也是它自身的長處。君不見,Golang社群生產力多麼強?噴子請不要誤會,我不是Golang社群派來的,目前我也沒用Golang。有一段時間,我對軟體架構比較上心,還經常把軟體和建築去類比,甚至還找我做建築行業的朋友去諮詢,有哪些建築方面的書可以閱讀。朋友跟我說了一句話:”我們建築行業,是絕不能出bug的,如果出了bug,付出的就是生命的代價。軟體和建築還是不一樣的”。 我當時並沒有對這句話有過多的考慮,只是覺得,不都是架構嗎?我學習的是架構的「神」,又不是要學建築,就沒有進行深入的思考。後來機緣巧合,又讓我回到了這個問題上,這一次的思考讓我有所明悟。建築行業,正是因為要避免付出生命的代價,所以會在專案實施之前會做好非常詳細的規劃,藝術性和工程性都需要保證,然後還需要嚴格的監督才能交付一個完整的工程。而軟體架構不一樣,軟體需求是經常變化的,軟體架構在保證穩定的同時,還需要有一定的靈活性和可擴充套件性,這和建築行業有本質的不同。所以,瀑布模型在建築行業,是極具優勢的,因為它安全,但是拿來軟體行業,就不一定了,除非是對安全有嚴格要求的專案。尺有所短,寸有所長,要看它所處的環境或領域去取捨,所以我們需要敏捷。這種哲學性的思考,正如我前面所說的「悟道修心」,也是現階段,程式設計所帶給我的另一種樂趣。其實再往大了思考,整個人類的發展不也是這樣嗎? 人類的大腦計算速度比不過計算機,行動也只是線性的,從物理學方面考慮,人類簡直就是渣渣,但是為什麼能發展出高度發達的文明呢?正是因為這種限制,讓人類擁有了抽象的能力,這種能力可以讓人類簡化萬物從而對宇宙有更進一步的認知。宇宙有多少顆星星?我們不需要一顆一顆數,我們只需要找到規律做出預估就可以了。再反觀生活,又何嘗不是如此?當你想做點事,但資源有限怎麼辦?其實沒必要擔憂,用有限的資源也許能做出更偉大的事呢?故有無相生,難易相成,長短相形,高下相傾,音聲相和,前後相隨。永遠不要給自己設限,永遠不要害怕限制,與君共勉。