ZendOptimizer和PHP 5.3的兼容问题
我完全无法理解为什么会有人愿意被一个应用程序绑住。无非两种情况:一种是这个应用程序是花钱买来的,一种是这个应用程序没花钱。花钱买来的程序,没啥可废话的,直接要求对方提供就好了。如果不是花钱买的,可选的东西那么多,为什么非得选那么一个破玩意呢?
共 6 篇文章。
我完全无法理解为什么会有人愿意被一个应用程序绑住。无非两种情况:一种是这个应用程序是花钱买来的,一种是这个应用程序没花钱。花钱买来的程序,没啥可废话的,直接要求对方提供就好了。如果不是花钱买的,可选的东西那么多,为什么非得选那么一个破玩意呢?
前几天clive大长辈发了杨维中的《新同事》给我,Jeff Huang的歌词摘录如左:
喔耶,爆炸吧~爆炸吧!
愛用 .lib 嘛… 爆炸吧!
愛亂用 global variable 嘛… 爆炸吧!
愛亂 call function 嘛… 爆炸吧!
愛 copy & paste 嘛… 爆炸吧!
喔耶,我聽到 windiff 了,爆炸吧!爆炸吧~~~
(在 VC6 裡,做 .lib 時,是不會檢查 dependency 的。也就是說,如果你呼叫了另外一個 .lib 的 function,只有 compiler 會檢查該 function 有否宣告過,linker 不會檢查該 symbol 是否存在。因此,如果 include path 有設,header 也有 #include,就不會顯示任何錯誤。必須要等到用該 .lib 的人,在做 .exe 或 .dll 時,才會產生 missing symbol 的錯誤。
另外,.lib 相當於是把所有 function 都赤裸裸地開放出來,這樣就沒有所謂的「模組介面」,因此很容易就會亂呼叫 function,而沒有注意到,呼叫了不應有相依關係的 component 裡的函式。又由於前述不會有 missing symbol 錯誤的關係,而無法察覺這樣的錯誤,因而導致最終程式的 dependency 關係會一團亂。
亂 call function,除了上面「呼叫了不應有相依關係的 component 裡的函式」的狀況之外,還包含了「喜歡自行在 .c/.cpp 檔前面,重複宣告函式,而不是用 #include 將對應的 header 引入」。 這會造成當所依存的 component 更新,prototype 改變時,會無法於 compile-time 察覺,若僅 prototype 改變,function name 不變的話,甚至連 link-time 也不會產生 error,假使 test-time 還是無法測到這個問題,那就等著在客戶那邊爆炸。)
有点想骂人了,您讲讲您做过的项目,跟大家讨论自己的经验一下不很好吗?干吗非得拔高,懂的跟不懂的一起讲?
与许多混迹于各大论坛、吹牛不上税的Linux咨询顾问类似,这位仁兄的惊人之语还有:
曾经只是觉得一个人想法幼稚,后来觉得那个人有点阴险,现在明白那个人不仅阴险,而且还有点贪婪。
当干活儿的人生病的时候,那个人居然还腆着脸说什么狗屁健康之路,他从来没有想过自己的荣誉和地位是怎么来的,从来没有挂记过周围的伙伴,在他的眼中一切都是他应该得到的,因为他的卑鄙,或者他所谓的智慧——这就是玩政治的和搞技术的人之间的不同吧。
1、听到噩耗,手中的碗一定会掉到地上碎掉。
2、遭遇突变,伤心难过时冲到外面,天气一定是打雷下暴雨。
3、掉到悬崖底下一定死不了,因此,跳海跳崖是百试不爽的逃生法。
4、直觉一般总是对的,不祥的预感总是应验的特别准,算命先生的话一般也挺准。