首頁>Club>
現在會用框架開發
12
回覆列表
  • 1 # 程式汪布丁

    第一層次是程式碼的長相,也就是編碼的規範化,比如為什麼不提倡用tab鍵縮排,而是用四個空格代替?類似的問題……

    第二層次是程式碼的封裝,也就是模組化,也許有現成的框架,但是有人也就是真的是日復一日的重複,腦子裡從來沒有這方面的意識,也從來沒有去主動看過那些框架的原始碼,就比如Spring框架的原始碼,那裡面可是各種設計模式和JAVA反射,註解啊等的綜合應用,非常有學習的必要,看看別人是怎麼設計的架構……自己能不能也寫一個輪子~要知道造輪子不是目的,關鍵是過程中得到昇華!而且很多大公司都是自己二次封裝或者重寫的框架,比如阿里……

    第三層次是程式碼的可重用性,所謂的設計模式,什麼程式碼複用,高內聚,低耦合那一套……知道JAVA的哪些api用了哪些設計模式麼?思想很重要。

    第四層次是程式碼的可重入性,也就是涉及到併發環境。針對JAVA就是JAVA的多執行緒,比如JAVA常用的集合,有沒有了解過集合這些演算法的內部原始碼?一些執行緒安全的集合都是如何實現執行緒安全的?別的公司不知道,稍微大點的網際網路公司,多執行緒是必考的,也是常用的,比如網易,阿里,等等等等,因為這些公司我都面過或者有朋友在裡面。他們的東西不是說簡單搭個框架,寫個網站的事情,後臺也不是僅僅就JAVA。

    這四個層次都有,或者都一直在注意和學習,那麼針對JAVA,還有,有沒有對JAVA虛擬機器做過調優?JAVA的記憶體模型,類載入機制瞭解麼?對JAVA虛擬機器的垃圾回收演算法有過研究麼?JAVA會發生記憶體洩露麼?舉例子什麼情況會發生?如何避免?這些都是我曾經被面試問過的……

    再針對框架進一步瞭解,對Spring框架或者ibatis框架的原始碼研究過麼?用過如今流行的restful麼?如果讓你設計,你有什麼想法?為什麼要用框架?為什麼用依賴注入……spring的事務機制的原理是什麼?hibernate的快取機制……還有osgi,太多了……

    再進一步,對JAVA虛擬機器的架構,JAVA位元組碼檔案格式,編譯原理,計算機作業系統,c++的掌握?讀一讀《深入理解計算機系統》?最後試著自己寫一個教學用的JAVA虛擬機器。

    再想進階,用了那麼久的tomcat,讀過《深入剖析tomcat》麼?tomcat的整體設計方案?一次請求tomcat的處理,servlet在tomcat中的載入,編譯過程?tomcat自定義的ClassLoader有什麼作用? 知道使用者點選連結到網頁出現內容的內部過程麼?http協議瞭解多少? 這些都是我曾經被考過的……

    繼續進階,有沒有用過JAVA的netty框架?對它研究研究?絕對是學習JAVA併發,nio,和網路的好東西!

    有沒有github?對linux瞭解多少?會指令碼語言麼?

    再進階,針對JAVA web離不開資料庫~那麼對sql調優瞭解過麼?是否能熟練的寫出儲存過程?遊標?資料庫的索引是如何實現的?也就是b樹和hash……對NOSQL瞭解麼?對常見資料庫引擎的差異性有了解麼?知道他們內部原理麼?資料庫的設計,正規化……

  • 2 # JAVA架構

    初級Java程式設計師的重心在編寫程式碼、運用框架->中級Java程式設計師重心在編寫程式碼和框架->高階Java程式設計師技術攻關、效能調優->架構師 解決業務和技術問題

    架構師基礎:

    工程構建管理:Maven 、GIT、SVN;

    Java開發規範:程式設計規約、異常處理、日誌處理、單元測試、安全問題、MySQL資料庫、工程結構、p3c程式碼規約掃描外掛;

    網路程式設計:網路程式設計的偽非同步IO模式、模型概念、原理,網路程式設計的NIO、AIO程式設計模型講解,通訊框架Netty實戰部署以及Netty服務講解,Netty的TCP粘包拆包、序列化以及自定義協議,Netty實戰資料通訊以及叢集心跳檢測服務,基於Netty的資料交換專案通訊服務場景實戰;

    高併發程式設計與系統調優:JavaAPI調優、Java併發程式設計、JVM調優;

    不管是開發、測試、運維,每個技術人員心裡都有一個成為技術大牛的夢,畢竟“夢想總是要有的,萬一實現了呢”!正是對技術夢的追求,促使我們不斷地努力和提升自己。

    一.熱門框架原始碼

    二、分散式

    三、微服務架構

    四、效能最佳化

    五、多執行緒併發程式設計

    六、工程化

    7、電商專案實戰

    技術的突破需要依賴業務場景的需求和自身刻意的規劃學習,二者缺一不可。但前者是機會,往往不是自己能完全把控的,如果在工作中沒有實踐場景,最好的辦法就是系統的學習與梳理,待機會來臨時才能一展身手。

    為粉絲講解福利資源:特講解免費教程教你如何學習 ,原始碼、分散式、微服務、效能最佳化、多執行緒併發,從0到1,帶你領略底層精髓。

    如何學習:

    如何獲取:

  • 3 # Java技術宅

    其實Java並沒有想象中的那麼難,首先想要入這個行,要做好一個心理準備,那就是你想走遠點,就得不間斷的去學習,去汲取知識,前期不能怕辛苦,不要閒下來就打LOL、吃雞、王者農藥,有空就得多看看各種開源專案的程式碼,API的設計方式,各大網站的設計架構,理解各個環節的作用。補齊自己的知識視野。

    下圖是我更新過的自學表,分別分為5個部分。按照這5個方向平穩的去學習並在每一個階段做完相應的專案和練習,找一份工作是完全沒有問題的 。當然,這裡有個前提是你能學的下去,且透過檢視網上的資料或影片能起碼看得懂第一階段的內容。如果第一階段全職學習耗時2個月以上的話,我個人建議你就需要仔細考慮考慮是否真的要人這個行業吧。因為這個時間節點還沒能夠搞明白第一階段的內容的話,從我個人的經驗來講可能後續走起來會更加吃力。

    Java學習前的一些準備JDK - (Java SE Development Kit)

    JDK是Java開發所需要的環境,就跟我們想玩某個網遊一樣,玩之前一定是需要先安裝相應的程式包的。 那這個JDK就是我們準備登陸Java大陸前需要安裝的一個程式包。

    下載地址 : Java SE - DownloadsIDE - (Integrated Development Environmen)

    IDE是整合開發環境,一般整合開發環境都會帶有JDK,可以使用自帶的JDK也可以使用我們下載的JDK,不同的IDE配置不同。Java常用的IDE有Eclipse、MyEclipse、IntelliJ IDEA。IDE具備程式碼分析、補全、變異、除錯等常用功能,可以大大的提高開發人員的程式設計效率。

    eclipse下載地址 : https://www.eclipse.org/downloads/MyEclipse下載地址 : MyEclipse官方中文網IntelliJ IDEA : IntelliJ IDEA: The Java IDE for Professional Developers by JetBrains我提到的這些東西都能搜到對應的資料,無非多踩點坑罷了。但是,看文件or專案永遠進步不了。一定要上手敲,想再多也不如動手。有機會聯絡一名優秀學長,有個走在前面的人給你指路肯定比你自己走要快得多。 最後,一定要動手,一定要動手,一定要動手。把程式碼敲爛,你才會有收穫,不要被影片誘導,敲一遍之後誤認為你自己會了,如果第二天你起來時已經忘了昨天學習了什麼的話,那說明你還是沒學會。好好加油吧。 在所有的學習過程中,每一個節點都應該有相應的練習或者專案來進行練手,看再多的博文和影片都是不行的, 不能讓自己的雙手停下來,只有不停的敲打鍵盤,寫出自己的專案,然後在實際的開發中學會如何使用debug,總結所有遇到的bug及解決思路,這樣才叫做學習技術。所以,希望有興趣的同學,能夠好好努力,不要因為一點點難度就懈怠、放棄。開發這條路途,無論你工作多久,都會遇到各種奇奇怪怪的問題,以及形形色色的bug等著你去解決。
  • 中秋節和大豐收的關聯?
  • 喜歡你的女生會怎麼暗示你?