原创 PHP+Java來寫Web應用

PHP是最好的語言,大家都知道。但這個語言有個缺點,就是無狀態性。你想在php中hold一個連接池什麼的,是做不到的。但php用來做前端頁面確實方便,而且說句大不敬的,phper的工資也相對低不是嗎? 這時候可以用php+java來解決

原创 Java Web項目應當小型化

用Java開發Web項目,隨着項目功能的增加,類也越來越多,系統越來越臃腫,內存佔用也越來越大,如果用到jsp,jsp文件也越來越多,這帶來幾點問題。 由於GC帶來的卡頓。我們知道GC的時候,整個JVM是暫停的。這時候是不能處理任何請求

原创 Spring boot中用Profile配置多個環境參數

一般我們在開發中,都有多套環境,比如數據庫配置,有:開發、測試、發佈三個環境。如果人工修改,一方面浪費人力,一方面也容易亂中出錯。 Spring提供了profile的功能,可以配置多套配置,在運行時指定使用那套,這樣代碼只要一套,運行時

原创 微服務架構

優點 容易掌控 小的程序容易掌控。如果只有少數幾個功能的服務,即使是對初級的程序員,也不難迅速掌握程序全貌。無論是新增功能、修改Bug、重構,都很方便。反之,一個巨大的程序怪獸,即使是非常資深的程序員,恐怕也很頭痛。 服務性能高 對於有垃

原创 架構師之我的看法

微博上看到一個笑話,某造船結構師接到華爲HR電話,問他有無興趣做架構師,談了半天才知道雙方說的架構師不是一回事兒。那麼在軟件行業中,什麼是架構師,具體架構師應該作什麼呢? 這個方面似乎沒有統一的認識。軟件業畢竟還是個新興行業,從第一個程序

原创 Spring服務發現、動態路由、斷路器

服務發現 服務發現是Eureka的服務器,引入這個服務,在Application上加入 @EnableEurekaServer即可,無需任何其他操作。 每個服務配置一個application name,方便區分。 多個可以構建成集羣,相

原创 用Gitlab進行強制代碼Review

代碼Review,是被主流IT行業普遍認同的,提高代碼質量的有效途徑之一。但有些團隊在執行的時候,由於人員的慣性等問題,造成不是100%Review。其實在Gitlab下,有一些手段可以進行強制Review。 首先,項目master分支用

原创 一個程序員的自我修養

勇氣 程序員每天面對很多你不敢得罪的人:老闆、上級、客戶,哪個你都惹不起。但有些事兒,你惹不起也得惹,這就需要勇氣。 正在開計劃會議,老闆說:這些功能必須在下週結束前完成提交給用戶。你很清楚這做不到,你應該咬咬牙接下來呢,還是應該跟老闆分

原创 用AOP自動管理Session數據

在互聯網應用開發中,由於涉及到分佈式運算,一般來說都是不使用容器默認的Session管理的,如Tomcat。因爲這些容器的Session管理,默認是基於單機的(Tomcat可以配置爲用Memcache管理Session,這裏不談)。這種情

原创 對Spring 的RestTemplate進行包裝

Spring的RestTemplate及大地簡化了REST Client的開發,但每次還要編寫大量的模板代碼,代碼不夠簡潔。我對他進行了一次包裝,採用接口來聲明REST接口,使用Annotation對interface的方法進行標註。如下

原创 一個Java無鎖的高性能對象Buffer

最近有個小功能,需求是多線程寫,單線程讀。 考慮採用AtomLong作爲寫的指針,用一個2的N次方長度的數組作爲Buffer的存儲,超出後自動循環,不擴容。 讀由於是單線程,採用普通long作爲指針即可。 代碼如下: pri

原创 Scrum解決產品和開發的矛盾

IT行業最常見的玩笑之一就是產品和開發之間的相愛相殺了。在很多公司兩者似乎成了“仇家”,從一定程度上也說明了產品和開發之間確實有不少矛盾。主要體現在如下幾個方面: 工期問題 經常出現的是說產品突然某個時候出現,通知開發要在某個時間點之前完

原创 影響代碼可閱讀性的常見問題

含混不清的命名 命名問題是很嚴重的問題,我見過有些系統用大量拼音縮寫命名,有些縮寫長達5-6個字母以上,這種除非是長期維護系統的程序員,其他人看了都是一臉懵逼。 命名最好用英文加上駝峯命名法,比如getAccount,userName。對

原创 用Nginx作爲微服務核心

Spring下面提供了完整的微服務核心Enureka、zuul,Herix,從服務註冊、發現、路由、斷路都有。缺點是都是Java平臺的,但大型系統又往往不是單一技術平臺,除了netfix這樣的。(是否可以爲單一技術平臺這裏不討論)。Ngi

原创 Java Stream的性能問題

有人做了個實驗,通過比較Java Stream和For循環的性能,得出結論說Stream的性能是For循環的1/10不到,性能低下,要警惕。 我沒有重複實驗,這裏假設他得到的數據沒錯。他的實驗是循環了幾百萬次後,差了幾個毫秒。在循環中幾乎