發表於 2015-04-16前端
http://xielong.me/2015/04/16/%E6%9C%8D%E5%8A%A1%E7%AB%AF%E5%B7%A5%E7%A8%8B%E5%B8%88%E5%85%A5%E9%97%A8%E4%B8%8E%E8%BF%9B%E9%98%B6Java%E7%89%88/git
歡迎加入咱們。這是一份針對實習生/畢業生的服務端開發入門與進階指南。遇到問題及時問你的 mentor 或者直接問我。 建議:github
google
查找技術資料。stackoverflow
找找,大部分都已經有人回答。ibm developerworkers
的文章質量總體上有保障。github
上閱讀優秀項目源碼。
發表於 2015-04-17web
來源 http://xielong.me/2015/04/17/%E6%9C%8D%E5%8A%A1%E7%AB%AF%E6%8A%80%E6%9C%AF%E9%80%89%E5%9E%8B/shell
MVC Framework:Rose 框架簡單易用,而且我米內部服務和工具都優先支持 Rose 項目,默認使用 Rose 框架是很好的選擇。文藝一點想作個異步化 web 服務,能夠選擇 Spring MVC 3.2 以上版本,並搭配高版本 Resin/Jetty 服務器,該方案已有線上服務使用,只是搭項目時會稍複雜些。數據庫
RPC:咱們線上使用的是 Apache Thrift,是 0.5.0 版本。咱們計劃下一步升級並完善他。具體能夠訪問咱們的 Thrift RoadMap 頁面。apache
Javascript Library:隨大流用 JQuery,也能夠申請前端支持。編程
CSS Framework:用 Bootstrap。設計模式
ORM Framwork:天然是 paoding-rose-jade,成熟好用,不管是簡單的數據表操做,或者是「高大上」的分表分庫都不在話下。更集成了 perfcouter 功能,能夠實時查看和監控 MySQL 語句執行效率。緩存
數據庫鏈接池:jade 使用 Apache DBCP。Tomcat JDBC 聲稱更快更強,還沒測試過,暫時仍是繼續 Apache DBCP 吧。
No SQL:Hadoop, Hive, HBase。
Cache:本地 cache 使用 Ehcache,Guava 的 cache 也可使用。中央式緩存,用 Memcached。
傳統數據庫:MySQL。線上業務先和 DBA 確認服務器磁盤是不是 SSD。
General:Apache Commons 必備。必須使用 3.0 以上版本。Guava 是 Google 推出的產品,新鮮的功能更多一些。
JSON:Jackon功能強大。
XML:聽說 JDK 自帶的 JAXB 就很好。
Email:直接用 Spring 的封裝。
Logging:Slf4j + Log4j + Scribe + Kafka。新同窗掌握 Slf4j 和 Log4j 就好。
Schedule:使用 Spring 的 Schedule。Spring Cook Book 部分有演示代碼。
時間日期:JodaTime。請看咱們的代碼示例自學。
io:簡單的文件 io 用 apache commons 或者 google guava。zip 文件處理用 zip4j。
讀取命令行參數:JCommander是一個簡單好用的命令行參數解析框架。
Spring測試框架:Spring Test 配合 JUnit 很是順暢,須要確認項目中使用 Spring 版本 3.0 以上版本。
Mock:Mockito 是如今最優雅簡潔的 mock 框架了,強烈推薦使用。Mockito 搞不定的部分,好比static 函數,搭配 PowerMock。
數據庫測試:使用 H2 Database 內存數據庫。仍是怕慢?用 maven-surefire-plugin 多線程執行測試任務。
功能測試:在 onebox 環境測試,一遍遍發佈部署太麻煩,使用 jetty-maven-plugin,一鍵就能夠把服務啓動起來。
Performance/Stability Test:Jmeter 是成熟的工具。
JDK:線上大多數項目使用 JDK6,JDK8 版本會從離線服務開始用,Maven 編譯的包須要保證 JDK6 源碼與二進制兼容。
版本控制:用 Git,先閱讀咱們的 Git 文檔。若是想深刻了解Git,推薦閱讀《Git權威指南》。
構建工具:用 Maven。須要熟練掌握如下技巧:1.使用 Maven 打包,好比 Jar、War、Jar with dependency、distribution 包;2.使用 Maven 發佈包;3.熟知 Maven依賴管理原理。推薦閱讀《Maven權威指南》。
應用服務器:Nginx + Resin,Nginx 做爲反向代理,Resin 承擔應用服務器和 Java 容器的角色。須要注意,線上服務記得要調優 JVM,線程數等參數。測試環境用 Jetty 插件就好。
============= End