dedecms 分頁采集,為什么一些優秀的java框架都是外國人寫的?
這個題設很尖銳不過卻是很現實。作為軟件開發從事者,我覺得這個問題應該引起反思。
許多優秀的框架尤其是spring全家桶,都是外國人寫的,而且寫框架的也并非什么科學家。都是一些國外有想法有毅力有能力的工程師。
jfinal而中國自己的框架,并非沒有,個人接觸過jfinal,這是有國內一位牛人創作,而且有它的官方文檔和論壇。相對來說這是一個比較優秀的框架,因為有一些企業在用這個框架進行開發并且有了盈利。
但是作為這個框架的直接使用者,不得不承認一點就是,他的數據持久層相比著名的mybatis確實用起來極其不方便,jfinal把SQL語句拼接在代碼里,而mybatis用配置文件集中管理SQL,這兩個細節決定了很多成敗。
差別根源在哪里?中國開發人員和外國開發者最大的區別就是,一個還在加班中掙扎,一個已經在開源里遨游。一個是為了更高的工資,一個是為了更高級的設計。
這就是環境所致,中國不缺乏開發能人,但是缺乏可以專研的環境,競爭壓力巨大的程序員環境,35歲可能就面臨轉行創業甚至失業,國外的35歲程序員可能才剛剛開始自己的框架設計生涯,這就是差別。
造成這樣的局面最主要的一點是你開發個開源框架可能沒有人家接一個實際項目來錢快,原因是,第一版權問題,第二商業價值。
當然,這也不是宇文氏在這里一兩句可以說明的道理,我相信中國以后會有超越國外的強大開源框架。
關注“極客宇文氏”,專注分享編程圈那些事黑客為什么可以做到無需知道源碼的情況下找出系統漏洞?
關注我,帶你以技術思維看世界~
作為一個7年老程序員,來強答一波。
找漏洞的過程題主這個問題其實是從一個慣性思維來提出的。為什么呢?
因為一個新的漏洞其實不是通過某種方式先知道這里有個漏洞之后再利用它來攻擊的,而更像是“蒙”的。是通過不斷的調整輸入的數據和輸入方式,直到出現“意料之外”的情況,這才是找漏洞的真正過程。
很多黑客雖然算不上是coding高手,但是對于一個程序是如何編寫出來的,還是有基本的認識的。借此,他其實就知道自己如果發起一個請求可能會怎么樣被處理,然后剩下的與編寫這部分代碼的程序員之間的博弈,這個過程有點像兩個人下圍棋。
一般黑客會將自己用過的“攻擊方法和攻擊數據”整合到自己的一個“武器箱”中,后續就通過程序化的方式自動去運行攻擊,自己則是觀察整個攻擊過程,看看能不能發現新的機會。
這些才是黑客的工作過程。
視角有什么區別嗎?黑客和軟件開發者的視角肯定是不同的,而且正好相反。
軟件開發者要做的事是什么?就是如何把一個程序寫“正確”,符合設定的預期。你可以這樣來理解,好比是帶著一個“參考答案”和“解題思路”去寫代碼。
但是我們知道,任何事物都有兩面性,或者說不是“完美”的,“解題思路”也是如此。
更何況,“解題思路”的目的是如何變得“正確”,而不是“不正確”,從思維慣性上就不會考慮那些讓它變得“不正確”情況。否則不是和自己要完成的事背道而馳么。
黑客的視角與軟件開發者正好相反,倒是和常見的「測試工程師」的視角比較接近。就是通過逆向思維來想盡辦法把這個程序搞的“不正確”。
具體的過程就是第一部分內容講的那些。
希望對你有所幫助:)
歡迎在留言區補充或者闡述不同觀點,與我交流。
如果覺得回答對你有所幫助的話給我點個「贊同」并「關注我」吧,支持我的創作。
謝謝你的舉手之勞~
了解Z哥更多,歡迎搜索微信公號:跨界架構師。讓我們一起為了理想的生活而奮斗。我還會不定期的送出粉絲福利哦。內容包括:架構設計丨分布式系統丨產品丨運營丨個人深度思考。