每到周末,張大胖都要去龍穴寺修身養性,順便向編程大師請教一些問題。
這一次,他拿出了一幅圖。
張大胖:大師,我發現一件神奇的事情,你看看這幅圖。
大師:這是什麼?
張大胖:這是Google Trends畫出的趨勢圖。
大師:哦?全世界都在用Hibernate,只有中國程序員在用MyBatis。
張大胖:是啊,全世界都不用MyBatis,只有咱們在用,太孤獨了!這是為什麼呢?
大師:MyBatis,原來叫iBatis,這是淘寶二十年前使用的主力ORM框架。
大師順手遞給了張大胖一本書《淘寶技術這十年》。
張大胖:這又有什麼關係?
大師:阿里在Java領域對國內程序員的影響力巨大啊,貢獻了很多開源工具,,比如Dragonwell JDK、Dubbo、Druid、fastjson等等。還有《阿里巴巴Java開發手冊》這樣的開發規約。
張大胖:那又如何?
大師:阿里的選擇可能會影響到Java社區啊,你想想,一個人從阿里公司,加入了你們公司,要做技術選型,你說他會選自己不熟悉的Hibernate還是玩得滾瓜爛熟的MyBatis?
張大胖:嗯,很可能是MyBatis。
大師:這就對了。
張大胖轉念一想:不對啊,國內那麼多公司,不會都受阿里的影響吧,他們總會根據自己的項目特點來選型吧?
大師:好,你提到了項目特點,你說說中國的項目特點是什麼?
張大胖:短平快,CRUD比較多,面向數據庫表進行編程,還有就是項目周期短,要得急,上午說需求,恨不得下午就上線,加班非常嚴重。
大師:那MyBatis的特點是什麼?
張大胖:簡單易學,上手快,非常靈活,可以自己寫SQL,手工優化方便。
大師:你看,MyBatis是不是很適合國內的項目?面向表編程,方便實現事務腳本。
張大胖:事務腳本?
大師:我之前給你講過,忘了?
大師又給張大胖遞過一本書《企業應用架構模式》
張大胖:那國外為啥用Hibernate? 不用這麼靈活的MyBatis?
大師:國外的開發環境比較好,流程規範更注重質量,有充足的時間設計和實現一個項目,並且長期去維護,如果業務邏輯複雜,使用領域模型比較好,例如DDD
張大胖:DDD我知道,領域驅動開發。
大師:既然領域模型都有了,用Hibernate根本不用關心底層存儲模型,很自然就選它了。
張大胖:有點道理。
大師:再說了,國外才多少人啊,互聯網用戶也少,你開發一個應用,主要關注業務就行,不用那麼費勁地去進行SQL調優,用Hibernate就可以了。
張大胖:可是國外很多互聯網應用是面向全球的,用戶數也很多啊。
大師:面向全球的應用只有巨頭才能搞,國外大部分應用用戶數很少的。
張大胖:所以,大師的意思是,國外都用Hibernate,中國用MyBatis,那是市場驅動的結果?
大師:對啊,不然呢?
張大胖掏出另外一幅圖:
張大胖:大師您看,除了中國之外,MyBatis在日本,韓國,香港,台灣都是主流,東亞的程序員都很喜歡MyBatis,難道他們的項目特點和我們一樣?也是短平快,996?這作何解釋?
大師:這個....
張大胖:您的理論好像不太對啊......
大師:你走吧,為師要休息了!