上周中秋,鬧得最兇的就是“阿里程序員腳本搶月餅被開除事件”。
作為程序猿我是同情他們的,覺得阿里小題大做;
但換到公司角度,這類事還是防微杜漸比較好。
看著江水,向往著未來(lái)。
某位著名的架構(gòu)師說:
代碼如惡魔,在你完成編碼后,應(yīng)回頭并且優(yōu)化它。從長(zhǎng)遠(yuǎn)來(lái)看,這里或那里1些的改進(jìn),會(huì)讓后來(lái)的支持人員更加輕松。
在學(xué)習(xí)了1些設(shè)計(jì)模式以后,我看見代碼就想優(yōu)化。
有1天遇到1個(gè)問題,1個(gè)自定義 View ,業(yè)務(wù)邏輯也寫在里面。新的需求里也用到了這個(gè) View ,但數(shù)據(jù)和業(yè)務(wù)邏輯不1樣,直接復(fù)制粘貼修改邏輯不太好。
我想到了適配器模式,業(yè)務(wù)跟視圖分離,然后抽成1個(gè)可復(fù)用的 View,具體業(yè)務(wù)在 Activity 里實(shí)現(xiàn)。
結(jié)果在修改老代碼的時(shí)候,發(fā)現(xiàn)這個(gè) Activity 已好幾百行了,如果用我寫的自定義 View ,Activity 里還得增加1兩百行,變得更臃腫了。在復(fù)用 View 和 Activity 之間我猶豫了好久,最后終究決定不修改老代碼了。
非著名程序猿小張說:
不要過于重視程序的 “設(shè)計(jì)模式”。有時(shí)候,寫的簡(jiǎn)單直觀點(diǎn),要比引入某種模式更有助于項(xiàng)目演進(jìn)。在多數(shù)情況下,程序代碼應(yīng)是簡(jiǎn)單易懂,乃至小白也能看懂。
盡可能做到強(qiáng)拓展多復(fù)用。但是如果某個(gè)類復(fù)用的代價(jià)是需要在本來(lái)就很臃腫的 Activity 中添加更多代碼,還是斟酌清楚再做吧。
1.返回?cái)?shù)據(jù)解析毛病
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 2 path
期望返回1個(gè)對(duì)象但是卻返回了1個(gè)數(shù)組,解決辦法:
修改期望返回?cái)?shù)據(jù)為 LIst<該對(duì)象>,這樣才能解析到數(shù)據(jù)。
2.使用 rebase 進(jìn)行代碼提交、合并:
3.git pull 和 git fetch 區(qū)分
http://blog.csdn.net/hudashi/article/details/7664457
git pull origin master
等價(jià)于
git fetch origin master:tmp
git diff tmp
git merge tmp
先拉去 master 分支代碼到1個(gè)新分支 temp
然后對(duì)照當(dāng)前分支跟 temp 區(qū)分
最后決定合并
4.fast-forward , –no–ff 和 squash 區(qū)分
https://segmentfault.com/q/1010000002477106
a.fast-forward 快速前進(jìn),即合并時(shí)如果沒有問題直接把 HEAD 指針指向最新,把舊提交分支指向新提交內(nèi)容的末端,移動(dòng)指針而不多進(jìn)行1次提交,是為快速提交。是默許的 git merge 方式。
- 優(yōu)點(diǎn):提交歷史看起來(lái)是直線,穩(wěn)定
- 缺點(diǎn):沒有提交歷史,如果刪除分支,會(huì)丟失分支信息
b.–no–ff 即不使用 fast-forward,雖然難看點(diǎn),有了分歧,但是保存了提交歷史。
c.squash 把多個(gè)提交歷史合并成1個(gè)。
5 ListView RecyclerView 復(fù)用的注意事項(xiàng):
6.堆,棧,常量池,靜態(tài)域
http://blog.csdn.net/miraclestar/article/details/6039743#comments
7.字符串 加深理解:
String s1 = "china";
String s2 = "china";
String s3 = "china";
String ss1 = new String("china");
String ss2 = new String("china");
String ss3 = new String("china");
對(duì)通過new產(chǎn)生1個(gè)字符串(假定為”china”)時(shí),會(huì)先去常量池中查找是不是已有了”china”對(duì)象,如果沒有則在常量池中創(chuàng)建1個(gè)此字符串對(duì)象,然后堆中再創(chuàng)建1個(gè)常量池中此”china”對(duì)象的拷貝對(duì)象。
8.final 修飾的變量1定不會(huì)改變嗎?
答:
9.as 快捷操作
http://www.jianshu.com/p/bc8f6bfe12c6
10.跟小火伴在不同 git 分支同時(shí)進(jìn)行開發(fā),想對(duì)照兩個(gè)分支差異怎樣辦?
看這里 http://blog.csdn.net/u011240877/article/details/52586664