Java開發(fā)的應該
如何掌握上述相關技術?
Java開發(fā)的應該如何掌握上述相關技術?
一:首先,有這樣的一種情況很常見,對于想自學Java開發(fā)的人來說,他們
大多數(shù)都是非常盲目的,不知道自己改如何入手,很多人在網(wǎng)上找一些視頻,然后瘋狂的過視頻,很快就把一塊內容都學完,他們理解的學完了就是視
頻看完了,但是讓他們動手去做東西卻做不出來,而我的理解學完了就是自己能寫出東西,所以對于初學者來說一定不能盲目,要有自己的規(guī)劃,不然
就是浪費時間白忙活。
二:既然是學習Java開發(fā)專業(yè)技術,我個人的建議是,一定要有一個能指導
你的人,不能都靠自己閉門造車,這樣的行為并不聰明,結識一位這方面的人才,時不時去問問人家問題,不然你可能會發(fā)現(xiàn)一個小問題能困擾你一天
,**后還不知道是什么原因。
三:學習Java開發(fā)技術,不能跟學數(shù)學語文一樣對待,比較剛接觸代碼是不
容易記住的,所以要掌握上述的技術,你還要知道學習Java開發(fā)技術有哪些“坑”。對于學習方法這塊是尤為重要的,怎么學才能讓你學完了能記住之
前學的那些,不至于學完了就忘,這個問題值得你學習之前去思考的。
四:根據(jù)我多年的學習情況來看,你平時一定要養(yǎng)成好的學習習慣,就說我
自己吧!我就喜歡把自己曾經(jīng)遇到的問題整理在電腦的日記本上,然后我會搜集一下博客相關的Java技術文章,一些我認為比較有用的網(wǎng)站,以后都能
用的上,這是我個人的學習習慣,相信我,如果你想走的更遠,一定要養(yǎng)成習慣。
**后給大家一些詳細的學習安排路線:
Java基礎:Java基礎語法、數(shù)組、類與對象、繼承與多態(tài)、異常、范型、集
合、流與文件、反射、枚舉、自動裝箱和注解。
數(shù)據(jù)庫:mysql、oracle
Javaweb:HTML與CSS網(wǎng)頁開發(fā)基礎、Java腳本語言、搭建開發(fā)環(huán)境、JSP基
本語法、JSP內置對象、JavaBean技術、Servlet技術、Ajax技術
框架:Struts2、Hibernate、Spring、SpringMVC、mybatis
Java設計和編程思想
Java基礎
環(huán)境搭建(包括Windows下和
Linux下的Java環(huán)境搭建)
Java語言基礎
Java流程控制
Java常用類
Java面向對象
Java類與對象
介紹面向對象多態(tài)
接口與抽象類
Java高級
異常處理
I/O、JavaBean
反射
多線程
網(wǎng)絡編程
泛型/Java集合類
Java與數(shù)據(jù)庫
MySQL
ORACLE
JDBC開發(fā)與應用
Redis
課程優(yōu)勢
1.行業(yè)一線講師講解,深入淺出。
2.全面、完善的java課程體系,幫助學員更深更廣的體驗java魅力。
本階段學習目標
1.精通java面向對象思想和基礎語法。
2.熟練java中異常處理。
3.精通java中I/O操作。
4.掌握java中多線程操作。
5.精通java中集合類的使用。
6.掌握java中網(wǎng)絡編程。
7.精通數(shù)據(jù)庫/JDBC/redis/mysql的使用
本階段學習效果
1.精通Java語言及其高級特性。
2.具備本地應用開發(fā)能力,能夠開發(fā)一些本地軟件,例如:聊天室,文件傳
輸助手等。
大神總結的App重構經(jīng)驗
>
**近跟一個朋友聊到關于App架構的問題, 其中就聊到一個App, 開發(fā)了很長時間, 一開始沒有去想框架的事兒, 迭代過程中, 由于時間緊, 任務重, 人員更替等原因, 也沒能保證代碼質量, 很多設計原則被拋之腦后, 代碼質量逐步下降, 以致難于閱讀, 難于維護. 進而導致迭代困難, 而形成惡性循環(huán).
從而引申出如何重構App代碼的話題, 談點個人理解:
什么情況下需要重構
1, 結構錯亂
代碼無法分出層次, 無法分清業(yè)務線.
各個業(yè)務模塊間/層次間的代碼互相夾雜.
由于多人協(xié)作導致的多種架構(MVP/MVVM/MVC等)并存.
規(guī)范性問題, 導致各個模塊內的代碼形式互相不一致, 風格迥異.
2, 可讀性差
超長函數(shù), 超大類
代碼的格式不規(guī)范或不一致.
冗余代碼, 無用代碼, 重復代碼.
過于高明, 使用一些不常用的小技巧而且沒有相關注釋.
濫用繼承, 接口實現(xiàn)等, 導致難以跟蹤.
3, 不能很好的適應產品的發(fā)展
維護困難, 前一發(fā)動全身.
不具備擴展靈活性, 無法很快引入系統(tǒng)版本更新時新特性.
不具備可變更性, 產品添加新功能或修改需求時需要修改大量的代碼.
重構的目標
重構的目的就是要提高代碼質量, 而高質量的代碼指標個人認為有如下幾點, 當然其實也是老生常談的幾點.
排名分先后:
1, 可讀性
規(guī)范一致性.
結構, 層次明了.
命名有含義, 注釋要清晰.
邏輯簡短, 沒有長篇大幅的代碼塊.
方法提取, 類繼承關系合理.
不濫用設計模式.
聰明是可讀性的敵人.
2, 可維護性
杜絕魔鬼數(shù)字/字符串/尺寸值/顏色值等
代碼復用, 以便維護.
不寫死, 預測可能的變化(但不要提前設計).
3, 可擴展性
良好的分層結構, MVx模式運用.
**一些設計模式的使用來提高可擴展性.
開閉原則: 修改關閉, 擴展開放.
如何重構
首先讓我們重溫下"重構"的含義:
<<重構 --- 改善既有代碼的設計>> 這本大神作品強烈建議大家翻閱下~ 里面對重構的定義, 以及如何從一個個小的Bad Smell開始重構等都有詳細的描述.
那么作為一個進行已久的Android工程, 我們應該如何重構呢?
其實這是一個對癥下藥的問題, 針對為什么要重構提出的幾個代碼問題, 重構也可以分成以下幾步:
1, 架構選擇, 結構調整
根據(jù)App的業(yè)務場景(展示型, 交互型, 后臺工具型...)選擇合適的架構.
并不是說一定要選用一個架構, 比如說后臺工具型的App, 可能界面不多, 也服務器的交互也少, 基本是由Service組成, 可能直接用Android原生的結構就可以.
界面較多, 且與服務器交互較多的建議選用MVP架構. 可以**P來做數(shù)據(jù)處理, 將數(shù)據(jù)源M與展示層V解耦, 便于替換數(shù)據(jù)源或是改變UI.
根據(jù)選用的架構以及業(yè)務模塊分包
2, 技術/開源庫選定
ListView/RecyclerView的選擇, Fragment/Activity的選擇等.
根據(jù)業(yè)務特點和選擇的架構, 選用相關技術/開源庫支持或對當前使用的進行整理.
例如HTTP請求庫, 緩存庫, 圖片加載庫等等.
3, 確定規(guī)范
制定編碼規(guī)范, 可以根據(jù)Google推薦的java編碼規(guī)范, 適當定制.例如我的項目中的基本規(guī)范.
制定代碼提交規(guī)范, git flow管理流程規(guī)范等.
4, 自底而上, 由小至大
從底部開始, 也就是常說的Model層,數(shù)據(jù)層開始, 因為這部分相對獨立, 可以**提供接口與UI層隔離.
不要一下就大面積重構, 需要逐個小的case進行重構驗證, 保證當前運行.
5, 持續(xù)重構, 伴隨測試
持續(xù)進行小的重構, 每次重構需要伴隨測試, 保證重構結果.
提取方法, 去除重復代碼.
結構調整.
融入面向對象/接口編程思想, 注意SOLID原則.
多用組合, 少用繼承
......
**好有單元測試支持.
6, 重構而非重寫
不到萬不得已不要想重寫.
重寫會產生各種意想不到的問題, 諸如設計過度, 對于當前代碼把握不夠(例如現(xiàn)在看起來很不友好的代碼可能就是為了解決一個架構無法解決的問題等).
相關推薦:
蘇州JAVA培訓 蘇州JAVA培訓班 蘇州JAVA培訓機構