編輯:Android開發教程
Q:最近看到很多文章都在說MVP怎麼怎麼好,還有MVVM啥的
最近看到很多文章都在說MVP怎麼怎麼好,還有MVVM啥的,請問你認為哪個比較適合android,而你現在采用的是哪些模式呢?
【郭霖】A:郭霖
對於這個問題,我還是有點心得的。像MVP這種架構模式,肯定是有它的意義的,它提供了一種設計規范,讓我們能把業務邏輯從Activity中提取出來,讓代碼看起來更工整,這裡先給個肯定。但至於用不用那就純粹是看個人了,比如我自己就是不用的。對於架構模式這種東西沒必要迷信,好像大家都說這個好,那我也必須要用這個,因為代碼永遠也是寫不到最好的,如果你覺得你自己完全能夠管理好Activity中的業務邏輯而不會混亂不堪的話,那也完全可以不用MVP模式,在MVP出現之前仍然有需要出色的代碼架構,這些都是靠工程師自己的思路創造出來的,而不是按照一個模式循規蹈矩寫出來的。在我看來,MVP引入了大量的Presenter這點就做得不夠優雅,並且去年Android全球開發者大會談項目架構時,Google工程師也沒有推薦使用MVP,只是提到了一下有這個東西,但話鋒一轉:今天沒准備講它。如果問我我是使用什麼模式來設計架構的話,那我的回答就是,我沒有任何模式。但我問遵守一個原則,就是DRY(Don’t Repeat Yourself),當你把同樣一段代碼寫兩遍的時候,就是你需要思考去重構的時候,我覺得這樣寫下來的代碼架構同樣非常優雅,大家可以試試。
Q:《第一行代碼》之後有什麼推薦書籍嗎?
【郭霖】A:可以看《Android開發藝術探索》這本書,這本書寫得挺好的。不過我給你一個建議,最好的學習方式就是做項目,以項目驅動的方式進行學習。當你需要實現一個功能的時候,你需要學習各種相關的技術來完成它,其實在這個過程中你就已經在慢慢成長。如果只看書不練習的話,一是理解層次可能會比較淺,二是學完要不了多久你就又會忘記了。
Q:如何提升自己的編程水平
應該有很多跟我一樣的老菜鳥,做android也做了3年甚至更多 但是水平總是跟以前入門一樣,到處找點代碼貼貼代碼。不知道怎麼才能有質的提高 希望大神給出寶貴意見
【郭霖】A:我也見過很多你這樣的同學,他們做編程有段時間了,但是更深點的東西都不會。或者說搜索能力可以,但是自己學不出來東
西。我給給他們的建議就是先找些小的輪子造一造(可以是重復的輪子,重要的是自己親自碼代碼,不是光看)。小輪子造完
了就造大的。當然剛開始的時候你可能會覺得無從下手,感覺小輪子也造不了,那就照著別人的優秀開源項目的片段功能或
模塊抄一抄。熟能生巧,時間長了自己就提高了很多,也會自己寫出東西了。溫馨提示:一定要自己親手多代碼。
Q:你是如何如何快速學習提高技術水平的?
[羅迪]A:有句話說的好: Read the f**k source code。在一項語言基礎扎實的情況下,去學習具體平台的開發,絕佳的方式就是閱讀優秀的源碼。無論代碼做得是什麼,優秀的代碼都會在不經意間讓你有所感悟。現在,網上各種文章介紹著各種各樣的設計模式。盡管你可能看懂了它的組織形式,卻不一定能夠融會貫通。閱讀源碼的過程,你能夠真切的體會到一個設計模式的妙處。Google開源了Android這個珍貴的寶藏,閱讀它的源碼成為了我提高技術水平的方式。Android雖然為開發者提供了詳細的文檔,但是如果僅僅止步於SDK層,很多的問題你都會有”知道怎麼處理,但是不知道原因”的感覺。我敬佩思想的創造人,因為有了思想,輪子可以再造,但是如果沒有思想,輪子是不可能造出來的。
讀再多的書,不如坐下來寫兩行代碼有成效。編程是實踐科學。實踐是首要的,其次才是閱讀。
讀項目源碼是一種非常好的學習方式.
URL:http://www.bianceng.cn/OS/extra/201608/50388.htm
QQ國際版 for Android 的最新版本(ver. 4.6.11)已經正式上線了。作為全球最流行的即時通信工具之一,QQ國際版的用戶已經覆蓋全球180多個國家和地區
先明確幾個概念的區別:padding margin:都是邊距的含義,關鍵問題得明白是什麼相對什麼的邊距padding:是 控件的內容相對控件的邊緣的邊距.margin &
android中的很多游戲的游戲都使用了重力感應的技術,就研究了一下重力感應以屏幕的左下方為原點,箭頭指向的 方向為正。從-10到10,以浮點數為等級單位,想象以下情形:
AutoCompleteTextView和EditText很相似,事實上,AutoCompleteTextView就是EditText的子類。使用 AutoComplet