
目錄:
一、理想與現實
1.故事伊始
2.所謂提升
二、“人月神話”
1.吐槽篇
2.項目經驗
三、前人栽樹
四、團隊感悟
五、讀書筆記
1.第一行代碼
2.代碼品質
六、亮相
一、理想與現實
1.故事伊始
不敢妄言,自己最大的收獲就是發現了一群更牛的大佬們
他們裝X與無形之間,就在談笑間寫下了不朽的行行代碼,叫人折服
新工具新軟體
以上就是這學期接觸到的軟體,值得一提的有:
cmd與Evernote,支援MD文法的富文本編輯,簡化了生産随筆的時間;
還有就是StartUML與VISIO,幫助整理思路,繪制流程圖,類圖等等
最後就是墨刀了,幫助繪畫原型。
新語言與新平台
語言沒有更新,平台是加入了Android studio 大家庭。
從第一行代碼到代碼統計
比較欣喜的是自己的代碼得到了複用,整體的架構結構也有所提升
從XML,到activity到Javabean再到adapter最後是application都有涉及,感覺大緻都有所了解了,成功的寫出了demo。
寫的不是很多吧,我一開始就安排到前端了,之後雖然積極向model和controller靠近,但是能做的還是比較少的,等于是給自己的Java送出一份考卷般的心情。
以前,我基本上沒做過前端的工作,這次的鍛煉讓我了解到前端也是一門藝術。我想這個寒假有時間的話,自己再把安卓裡的所有構件都玩一邊,加深一下影響。
新的學習方法與思考角度
在思考上,更加多元化了;
在學習風格上也不孤僻了;
在學習品格上比較沉穩了;
以前的我喜歡一個人寫代碼,一個人的思考,這次的軟工,基本上都是團隊的合作,協作的過程中,融入是一個過程,希望自己之後能打開一點。
于此同時,我還是希望下學期有個人軟體設計的作業,畢竟一個人獨立完成的一門作業,成長我想回更快
一、人月神話
1.吐槽篇
我們隻是一個打着軟體開發的帽子,沖沖撞撞的代碼猿
2.項目經驗
簡單寫一下:
1.充分利用背景給的API使用文檔,這樣可以在完全不了解背景的實作過程的情況下,更好地進行項目開發
2.注意函數分類打包,為一類功能單獨編寫一個實作類,直接調用,降低代碼的耦合性。
3.注意接口的靈活使用,自定義接口,然後通過setListener()或者直接在構造函數中傳過來,就可以實作接口的回調。
沒什麼經驗分享,就隻有一句話,如果暑假的時候你已經選擇了這門課,那就充分的應用暑假的時間磨煉自己,大三實在是大家都很忙,感覺身體被掏空~~~
在一開始做項目的時候一定要使用git,在觀看網上的demo的時候一定要自己了解意思,在動手敲,不要複制粘貼
這裡是需要表達自己觀點的地方,不要羞于表達,在一開始做項目的時候一定要使用git,在觀看網上的demo的時候一定要自己了解意思,在動手敲,不要複制粘貼,在需求分析的時候,一定要好好你們的架構怎麼做,一些規範一定要開始就訂好。
大家都是相輔相成的夥伴,有問題一定要及時溝通。
1.第一行代碼
我就是讀《第一行代碼》
全局擷取Context的技巧
我們大多數的操作都是在活動中進行的,而活動本身就是一個Context對象,但是,當程式結構越來越複雜的時候,一些邏輯代碼可能會脫離Activity類,可此時又需要用到Context,比如一些自定義的工具類裡根據狀态資訊彈出Toast,解決的辦法是可以在該工具類的方法中傳入Context參數,但此時擷取Context的任務就轉移給了調用方,如果擷取失敗,則此次工具類的方法也就不會執行,一個更好的解決辦法就是自定義Application類,管理程式内一些全局的狀态資訊,比如全局Context
(不隻是Context)
Android提供了一個Application類,每當應用程式啟動的時候,系統就會自動将這個類初始化,擷取Context的任務,即可放在我們自定義的Application類中,首先需要建立一個MyApplication類繼承自Application類,代碼如下:
[code]public class MyApplication extends Application {
private static Context mContext;
//重寫父類onCreate()方法
@Override
public void onCreate() {
mContext = getApplicationContext();
super.onCreate();
}
//傳回取到的context
public static Context getContext(){
return mContext;
}
}
安卓UI布局
•LinearLayout 線性布局,關鍵屬性: ◦android:orientation=”vertical/horizontal”
用于指定排列方向 ◦android:layout_gravity=”?”
用于指定空間對齊方式,而android:layout指定的是文字在控件的對齊方式 ◦android:layout_weight=”?”
用于使用比例指定空間的大小
•RelativeLayout 相對布局,通過相對定位的方式讓空間出現在布局的任何位置。 關鍵屬性:
◦第一類:屬性值為true或false android:layout_centerHrizontal 水準居中
android:layout_centerVertical 垂直居中 android:layout_centerInparent
相對于父元素完全居中 android:layout_alignParentBottom 貼緊父元素的下邊緣
android:layout_alignParentLeft 貼緊父元素的左邊緣
android:layout_alignParentRight 貼緊父元素的右邊緣
android:layout_alignParentTop 貼緊父元素的上邊緣
android:layout_alignWithParentIfMissing 如果對應的兄弟元素找不到的話就以父元素做參照物
◦第二類:屬性值必須為id的引用名“@id/id-name” android:layout_below 在某元素的下方
android:layout_above 在某元素的的上方 android:layout_toLeftOf 在某元素的左邊
android:layout_toRightOf 在某元素的右邊 android:layout_alignTop
本元素的上邊緣和某元素的的上邊緣對齊 android:layout_alignLeft 本元素的左邊緣和某元素的的左邊緣對齊
android:layout_alignBottom 本元素的下邊緣和某元素的的下邊緣對齊
android:layout_alignRight 本元素的右邊緣和某元素的的右邊緣對齊
◦第三類:屬性值為具體的像素值,如30dip,40px android:layout_marginBottom 離某元素底邊緣的距離
android:layout_marginLeft 離某元素左邊緣的距離 android:layout_marginRight
離某元素右邊緣的距離 android:layout_marginTop 離某元素上邊緣的距離
•FrameLayout 所有的控件都擺放到布局的左上角,比較另類。 •TableLayout 使用表格的方式來排列控件
難掌握的UI控件
ListView
優化方法:
a)、每一個子項被滾動到螢幕内都會調用getView()方法,為了優化快速滾動的性能,不必每次都要加載一次布局,因為getView()方法中有一個convertView參數,用于将之前加載好的布局進行緩存以便重用。
b)、不必每次都要用findViewById()擷取子項布局控件的執行個體,将子項布局中的控件各個字段封裝成一個類,利用view.setTag()和view.getTag()來存儲和擷取子項布局中的控件。
2. 代碼品質
Stephen Vance所撰寫的《高品質代碼——軟體測試原則、實踐與模式》
1.軟體産品品質
軟體産品品質通常可以從以下六個方面去衡量(定義) :
l 功能性(Functionality),即軟體是否滿足了客戶業務要求;
l 可用性(Usability),即衡量使用者使用軟體需要付出多大的努力;
l 可靠性(Reliability),即軟體是否能夠一直處在一個穩定的狀态上滿足可用性;
l 高效性(Efficiency),即衡量軟體正常運作需要耗費多少實體資源;
l 可維護性(Maintainability),即衡量對已經完成的軟體進行調整需要多大的努力;
l 可移植性(Portability),即衡量軟體是否能夠友善地部署到不同的運作環境中;
由此可見,軟體産品的品質有其明顯的特殊性。而目前提高軟體産品品質的主要方法是軟體過程品質控制。
提高代碼品質的方法
提高代碼品質的方法主要有:教育訓練和審查監督。教育訓練主要是針對業務領域、程式設計工具和技術、服務意識等基礎方面的增強;而審查監督是針對編碼規範、代碼走查、代碼評審、單元測試、內建測試、持續內建、執行流程等程式設計方面的增強。
1.亮相