所謂偉大軟體
Step1. 讓客戶滿意 做客戶要它做的事情 ,最好確保Step1.已達到,再前進Step2.。
Step2. 應用基本OO原則 (&設計模式) ,增加軟體彈性。(擴充性)
尋找大問題,像是重複程式碼以及壞的類別設計。
切記 : 程式架構改善後記得回頭驗證功能性是否依舊。
Step3. 努力達成可維護 可重複利用的設計。
物件導向
列舉
列舉型別 使避免拼字錯誤與大小寫錯誤
就像下拉選單一樣給設計師提供選項
封裝 - 在考慮繼承與多型之前先考慮封裝,因為繼承跟多型這兩種技術與重複程式碼跟封裝都有關
1.每一筆資料是獨特的 不封裝 = > 像是serialNumber 或是 price(價格)...等
2.任何時候看到重複程式碼,就找個地方進行封裝
使用成員變數不想讓應用程式其他部分直接操作 可用private宣告外
會配合封裝使用
封裝將資料與應用程式的行為分離開來.
繼承
多型(為了彈性)
Airplane plane = new Airplane(); //一般
Airplane plane = new Jet();//多型 (其中Jet是繼承Airplane的子類別)
設計原則
OCP->一步一步來
DRY ->不自我重覆
SRP ->單一責任原則
LSP -> Liskov替代原則
設計模式
關於我 : Kun-hsien(KH)
研究&開發是一段艱難的旅程:享受在資料字串與信號間遊走。
從VB->HTML->PHP->MySQL->Fedora->MCSE->JAVA->XML->Android->Embeded C->C ->C# ->Python-> Arduino -> IoT ->MQTT ->Spark ->CAN ->I2C->無人機....
這裡除了紀錄開發Apps遇到問題的Solution並分享給大家外,各種開發技術的文章也在此探討!希望大家都能順利解決自己遇到的問題!
2015年8月27日 星期四
2013年12月29日 星期日
2013年7月13日 星期六
[Android]我的Android工作學習地圖
我的Android學習地圖 2019/03/28更新
現在還不是寫學習回憶錄的時候,但中途檢視&修正&小省思:
還記得一開始會跑來學Android完全是因為碩論的實作,傳統DRM在PC上根本是老掉牙的議題,甚至後面的雲端運算、雲端系統都覺得有DRM的影子!
剛好2009跨2010那時候Android系統正夯,給定了一個主題就是行動裝置,但其實java開發經驗也寥寥無幾。又更何況是android,跟業界大哥聊天,聊了一下需求--是一個文件管理系統,那我就先從DRM Controler開始,起頭是手邊一個java寫成的Notepad,但界面完全不是那麼一回事,以為是像Netbeans一樣拉一拉真是天真了...
後來認識了一個好用的工具DroidDraw後,依照androidbmi這個專案來用,
後面的開啟文件機制檢查搭配xml讀取大致完成一半,後面加解密卡了一陣子就靠一邊跑步(入伍準備)+思考。於是我順利畢業了。本以為不會再用到。
直到第一份工作,一開始就從app開始訓練。我覺得這樣久了也會熟練,分享學習地圖 也希望有經驗的人能指引 看我這樣是否正確 ,獻醜... : )
======================================================================[Android雜項 - 非關程式]
還記得一開始會跑來學Android完全是因為碩論的實作,傳統DRM在PC上根本是老掉牙的議題,甚至後面的雲端運算、雲端系統都覺得有DRM的影子!
剛好2009跨2010那時候Android系統正夯,給定了一個主題就是行動裝置,但其實java開發經驗也寥寥無幾。又更何況是android,跟業界大哥聊天,聊了一下需求--是一個文件管理系統,那我就先從DRM Controler開始,起頭是手邊一個java寫成的Notepad,但界面完全不是那麼一回事,以為是像Netbeans一樣拉一拉真是天真了...
後來認識了一個好用的工具DroidDraw後,依照androidbmi這個專案來用,
後面的開啟文件機制檢查搭配xml讀取大致完成一半,後面加解密卡了一陣子就靠一邊跑步(入伍準備)+思考。於是我順利畢業了。本以為不會再用到。
直到第一份工作,一開始就從app開始訓練。我覺得這樣久了也會熟練,分享學習地圖 也希望有經驗的人能指引 看我這樣是否正確 ,獻醜... : )
======================================================================[Android雜項 - 非關程式]
=======================================================================
[Android五大Layout]
五大Layout原理架構 survey:http://wisekingokok.iteye.com/blog/1155806 待完成
[Android五大Layout]
五大Layout原理架構 survey:http://wisekingokok.iteye.com/blog/1155806 待完成
android view的setVisibility方法有三種值
VISIBLE - 常數值0,意思是可見的;INVISIBLE - 常數值4,意思是不可見的;GONE - 常數值8,意思是不可見的,而且不占用布局空間
l MediaPlayer(音樂播放ListView(ArrayList)
← 2013/1/6~2013/1/7
l 自製圖片Layout → 圖片變換效果(Selector)
← 2013/1/11
l [Android]Android 應用程式全螢幕作法
← 2013/12/26
---------------------------REF----------------------------------------
===========================================
[Android四大元件與其生命週期]
l Activity to Activity(用Intent傳遞)
← 2013/1/22
l Activity to Activity(show
Listview) ←2013/1/24
l Activity間用startActivityForResult(intent,requestCode);作回傳 未完成
l [Android]再談Activity的實務應用經驗 ←2013/2/19
l [Android]BroadcastReceiver最基本應用入門 ←2013/3/1完成
l [Android]Service + BroadcastReceiver的結合運用 未完成
l [Android]用BroadcastReceiver實作Socket傳遞Streaming 未完成
l Service生命週期原理+實作→Intent&Bundle's Survey
← 2013/1/8
====================================================================
Android訊息顯示( Toast 與AlertDialog )及處理快顯訊息系統 ( Looper、Handler、Thread )
l Looper、Handler、Thread
l [Android]Looper &Handler
l [Android]用Handler控制Alertdialog的顯示
l Survey1:使用handler更新dialog显示
l Survey2:Android Dialog in thread 線程中放Dialog
l Survey3:如何使用Thread和Handler
l Survey4:無痛執行緒
l Survey5:清新下午茶 - 多執行緒Handler與Thread的關係
=====================================================================
Android中高階應用
Android中高階應用
l MediaPlayer之章-
3. Android MediaPlayer(網路電台)
l 軟體應用之章-
1. [Android]SQLite實作
l Android 進階View - Canvas 及 OpenGL ES
l 底層硬體應用之章
-------------------------------------------------------------------------------
1. [Android]Ubuntu
+ Android NDK 之章(完整版)(含轉貼) 2013/5/08
4. [Android] Remote Procedure Command(RPC)之章
6. [Android]Android GPS 未完成
7. [Android]Android hard key(透過底層跟硬體按鍵溝通) 未完成
8. [Android]底層G-sensor運作與溝通 未完成
訂閱:
文章 (Atom)