想了解南昌的javascript嗎?想了解Java小技巧之分階段學(xué)習(xí),拳打南山敬老院,腳踢北海幼兒園的 JavaScript?? 嗎?......本文帶你一探究竟。
1.Java小技巧之分階段學(xué)習(xí)
像南昌*,廈門*等這些211院校出來的學(xué)生對于Java這塊的教學(xué)會特別的精準,那如果一些想自學(xué)Java的學(xué)員們該怎么去羅列自己的學(xué)習(xí)階段呢,小編這邊分享一些課程上的安排可供參考學(xué)習(xí)的過程中就像馬拉松,需要分階段學(xué)習(xí)能夠提升效率:*階段:小型桌面應(yīng)用開發(fā)階段目的:掌握Java語言的語法、理解面向?qū)ο蟮木幊趟枷?,能夠熟練使用Java語言開發(fā)小型桌面應(yīng)用。1. 基礎(chǔ)技能訓(xùn)練a. 操作系統(tǒng)與網(wǎng)絡(luò)基礎(chǔ): 學(xué)習(xí)Windows及Linux系統(tǒng)的安裝和使用等,能夠熟練使用Windows和Linux的常用命令,掌握使用技巧及網(wǎng)絡(luò)管理。b. Java面向?qū)ο蟪绦蛟O(shè)計: 學(xué)習(xí)Java語言特點、Java類的結(jié)構(gòu)、Java開發(fā)運行環(huán)境搭建、Java數(shù)據(jù)類型、流程控制、數(shù)組的使用、關(guān)聯(lián)關(guān)系、繼承關(guān)系、方法覆蓋、多態(tài)性、Object類、接口、Java注解、枚舉、異常處理、斷言等,熟練掌握Java基本語法與特性,理解面向?qū)ο缶幊趟枷?。c. Java核心編程: 學(xué)習(xí)Java集合類及常用數(shù)據(jù)結(jié)構(gòu)和算法、Java程序的加載運行原理與過程、文件系統(tǒng)管理和文件操作API、日期時間處理API、反射API等,掌握Java多線程并發(fā)應(yīng)用的開發(fā),快速提高Java程序設(shè)計能力。d. Java網(wǎng)絡(luò)編程: 學(xué)習(xí)不同網(wǎng)絡(luò)協(xié)議的特征與適用領(lǐng)域、Socket/UDP/HTTP編程,掌握Java網(wǎng)絡(luò)編程技巧。2. 項目實戰(zhàn)企業(yè)IM系統(tǒng)設(shè)計im系統(tǒng)第二階段:中小型網(wǎng)站應(yīng)用開發(fā)階段目的:掌握數(shù)據(jù)庫設(shè)計與開發(fā)技能,熟練使用JavaEE組件技術(shù)開發(fā)中小型網(wǎng)站應(yīng)用。 1. 數(shù)據(jù)庫Oracle數(shù)據(jù)庫管理及開發(fā):學(xué)習(xí)表、視圖、存儲過程等對象創(chuàng)建、修改、刪除和數(shù)據(jù)操作、常用的查詢、分組、子查詢、連接查詢、排序等SQL語句、數(shù)據(jù)庫安裝、數(shù)據(jù)庫管理等,能夠熟練使用Oracle數(shù)據(jù)庫進行開發(fā),能夠編寫正確并高效的SQL語句。2. UI開發(fā)a. Web頁面開發(fā)基礎(chǔ):學(xué)習(xí)HTML、CSS、DOM、等Web頁面開發(fā)核心技術(shù),掌握最常用的Web頁面開發(fā)技巧與技能,了解常見的JS、CSS三方庫。b. XML:學(xué)習(xí)XML文件的作用、XML文件的驗證、解析XML文件,能夠熟練使用XML進行數(shù)據(jù)封裝及傳輸。c. Ajax:學(xué)習(xí)Ajax基本概念、運行機制、JSON,掌握Ajax跨域訪問的方式,能夠使用Ajax技術(shù)進行異步通訊、局部刷新等編程。3. JavaEE組件開發(fā)a. JSP:學(xué)習(xí)JSP的本質(zhì)、JSP的運行過程、JSP中常用的腳本、隱含對象、EL表達式、JSTL標(biāo)簽、自定義標(biāo)簽、異常處理等,能夠熟練使用JSP開發(fā)動態(tài)頁面。b. Servlet:學(xué)習(xí)Servlet的概念、Servlet開發(fā)及部署、Servletd訪問、Servlet的基本特性、Servlet生命周期、Session、Filter、Listener、常見應(yīng)用服務(wù)器的安裝、配置及管理、文件上傳下載、服務(wù)器消息推送等,掌握WEB環(huán)境中的會話跟蹤技術(shù),能夠熟練使用Servlet開發(fā)MVC模式的服務(wù)器端組件,了解MVC模式開發(fā)中的重復(fù)提交等注意事項。c. JDBC:基于Oracle/MySQL數(shù)據(jù)庫,學(xué)習(xí)JDBC基本特性、高級特性、事務(wù)、并發(fā)控制、數(shù)據(jù)庫連接池的實現(xiàn)原理及配置方法,能夠熟練使用JDBC進行數(shù)據(jù)庫訪問封裝。4. 框架技術(shù)a. Struts 2.0:學(xué)習(xí)Struts2的基本概念、工作流程、運行原理、控制器啟動順序、OGNL表達式、攔截器、自定義攔截器、數(shù)據(jù)封裝、類型轉(zhuǎn)換、action組件、result組件、struts標(biāo)簽、攔截器、i18n國際化、token令牌、文件上傳等,熟練使用Struts框架進行MVC編程。b. Hibernate 學(xué)習(xí)Hibernate框架的實現(xiàn)原理、運行流程、Hibernate持久化概述、持久化對象及配置、操縱持久化對象、一對多關(guān)聯(lián)、一對一雙向關(guān)聯(lián)、多對多關(guān)聯(lián)、Hibernate檢索策略、Hibernate檢索方式、配置連接池、二級緩存等,熟練使用hibernate框架進行持久層編程。c. Spring:學(xué)習(xí)Spring 框架實現(xiàn)原理、依賴注入控制反轉(zhuǎn)、面向切面的編程、聲明式事務(wù)、編程事務(wù)、整合JDBC、整合Hibernate、整合Struts等,熟練使用Spring框架進行整合。d. Spring MVC:學(xué)習(xí)Spring MVC的基本概念、運行流程、工作機制、、控制器、基于注解控制器、、、異常處理、攔截器、數(shù)據(jù)傳遞、國際化、類型轉(zhuǎn)換、驗證,熟練使用Spring MVC進行MVC編程。e. myBatis:學(xué)習(xí)myBatis基本概念、工作機制、運行流程、配置數(shù)據(jù)源、元素、plugin元素、select元素、insert元素、update元素、delete元素、sql元素、resultMap元素、cache元素、邏輯判斷元素、trim、where、set元素、foreach元素等,熟練使用myBatis框架整合Spring進行數(shù)據(jù)層編程。5. WEB項目實戰(zhàn)物流運作管理系統(tǒng)(LES),電力營銷管理信息系統(tǒng),軌道交通業(yè)務(wù)管理系統(tǒng)等等web項目第三階段:軟件工程工業(yè)實踐階段目的:熟悉軟件工程流程及規(guī)范,使用以前三個階段所學(xué)的技能,進行軟件工程工業(yè)實踐。1. 軟件工程方法論軟件需求分析、UML、面向?qū)ο蠓治雠c設(shè)計、設(shè)計模式、軟件體系架構(gòu)、軟件開發(fā)過程管理2. 軟件工程項目實戰(zhàn)以小組為單位,采用標(biāo)準項目流程,完成管理系統(tǒng),執(zhí)行系統(tǒng)(MES)等等。
2.拳打南山敬老院,腳踢北海幼兒園的 JavaScript
起因是我近日對 Atom 編輯器 的架構(gòu)好奇,就去讀了 Atom 和 Electron 的誕生歷程。然后順藤摸瓜的擼了 Node.js 等一些新的技術(shù)介紹,發(fā)覺 已經(jīng)不是 20 年前的毛頭小伙了……。它的觸角已經(jīng)伸展到幾乎所有的編程領(lǐng)域,成了名副其實的萬金油。本文就簡單梳理一下我這幾天看的無所不能的 。一、為表單驗證而誕生的 年 Erendan Eich 為網(wǎng)景設(shè)計了*版 ,主要用于表單校驗并獲成功。愛搞自己一套的微軟隨后也發(fā)布了自己的 方言 JScript。在其后幾年微軟和網(wǎng)景互坑互助,最終聯(lián)合推動了 的標(biāo)準化版本—— 的確立。2000 年左右隨著網(wǎng)站的高速發(fā)展, 的價值越來越大,跟 HTML 和 CSS 并稱網(wǎng)頁三劍客。HTML 負責(zé)結(jié)構(gòu),CSS 負責(zé)樣式, 負責(zé)行為。 成為網(wǎng)頁必不可少的組成部分。由于當(dāng)時的機能限制, 的使用場景有限,驚艷的動效都是由 Flash 負責(zé)。二、前端制霸的 Ajax1999 年,愛搞自己一套的微軟又在 IE 里做了個 的對象,卻沒有太重視,直到 2005 年,Jesse James Garrett 基于當(dāng)時的一些 的應(yīng)用,提出了 Ajax ( and XML) 的概念。之前,網(wǎng)頁向服務(wù)器提交數(shù)據(jù)(如發(fā)帖)就需要刷新頁面來顯示操作的結(jié)果,Ajax 通過異步交互實現(xiàn)無刷新的網(wǎng)頁更新方式,使得網(wǎng)站的交互操作更接近原生應(yīng)用。還記得我在*機房*次用 Google Maps 的時候,感受它絲滑流暢的拖動和放大縮小,直接跪了,這才是黑科技!這個時期,隨著 HTML/CSS 標(biāo)準化,使得 具有了更重要的作用,比如操作 DOM 樹;機能提升使得 可以實現(xiàn)比肩 Flash 的動畫效果,而且更加輕量。所以涌現(xiàn)出以 jQuery 為代表的無數(shù)前端庫,極大的提升用網(wǎng)站的交互體驗和視覺效果。 借著 Ajax 和 Web2.0 的浪潮,成為真正意義上的前端王者。再之后則涌現(xiàn)出 MVC 架構(gòu)的 Angular.js,專注于表現(xiàn)層的 React.js 等框架,則是在“網(wǎng)頁即是應(yīng)用”的路上持續(xù)進化。三、魔爪伸向服務(wù)端的 Node.js2008年,Lars Bak 在他的丹麥農(nóng)場為谷歌的 Chrome 寫了性能超群的 引擎 V8,V8 做為 Chrome 殺手級的亮點功能之一(沙盒和多進程是我認為的另外兩大殺手功能),對 Chrome 的成功功不可沒。2009年,Ryan Dahl 借助 V8 的卓越性能和 天生的單線程特(缺)性(陷),腦洞大開的發(fā)布了 Node.js 項目。Node.js 是具有事件驅(qū)動,異步 I/O 特性的高性能,高并發(fā),輕量級 Web 服務(wù)框架。江湖中也不時傳來某公司用 Node.js 后少用了多少服務(wù)器的故事。需要說明的是,Node.js 本身是基于 V8 引擎,也就是說它本身并不是用 編寫的,而是用 C++。Node.js 服務(wù)上面跑的腳本語言是 而已。Node.js + 的組合就像 Nginx + Lua,一個是底層服務(wù),一個是上層腳本。后來,Node.js 變成了一個通用的 運行時,可應(yīng)用的領(lǐng)域不僅限于服務(wù)器。如果說 Ajax 是*個引爆點,幫助 奠定了前端老大的地位,那 Node.js 就是第二個引爆點。隨著 Node.js 的快速發(fā)展, 真正變成了一種通用的腳本語言,在下面的各種領(lǐng)域大放異彩。四、 CLI 應(yīng)用的軍火庫 NPM如果說 Node.js 是廚房,NPM (Node Package Manager) 則提供了豐富的各式食材,并在很短的時間成為了開發(fā)界*的包管理平臺。在 NPM 上涌現(xiàn)出涵蓋網(wǎng)絡(luò)服務(wù),數(shù)學(xué),文檔處理,數(shù)據(jù)庫,開發(fā)工具等幾乎涵蓋所有領(lǐng)域的各類應(yīng)用??梢栽L問 Awesome Node.js 了解其強大之處。?五、奮戰(zhàn)在移動端的 Hybird App隨著 iOS 和 Android 的崛起,只會 的前端工程師開始眼紅收入超越自己的 iOS 和 Android 工程師,于是他們聯(lián)合起來提出了 PhoneGap,一個將 HTML5 和 封裝成移動應(yīng)用的平臺。希望借此實現(xiàn)開發(fā)一份代碼,適配兩個平臺,賺三份工資的偉大理想。然而事與愿違, PhoneGap 生成的跨平臺應(yīng)用(Hybird App)由于性能、兼容性、對 native 功能支持不理想等問題,并沒有被特別廣泛的使用,也沒有實現(xiàn)前端工程師的漲薪夢想?;诰W(wǎng)頁的 Hybrid App 也有一些獨特優(yōu)勢,比如可以遠程推送更新,無需像原生程序一樣需要編譯和發(fā)布新版本,這個特性尤其適合電商或內(nèi)容為主的應(yīng)用。而且畢竟開發(fā)容易,可用于早期試錯和產(chǎn)品方向驗證。真正要追求性能和品質(zhì),還是要用原生代碼(native code)來改寫。所以很多應(yīng)用采用了原生和網(wǎng)頁混合模式,交互操作多,有性能要求,內(nèi)容相對固定的部分用原生實現(xiàn);重內(nèi)容重排版需要經(jīng)常更新的部分用網(wǎng)頁實現(xiàn),*化兩者的優(yōu)勢。六、桌面端即是網(wǎng)頁的 年,Atom 項目啟動。隨著 Atom 的演化,團隊獨立出用于支撐 Atom 跨平臺的底層架構(gòu) Atom Shell,后更名為 Electron。包括著名的 Slack,Visual Studio Code 的客戶端都是基于 Electron 構(gòu)建的。Electron 底層是基于 Chromium 和 Node.js。Electron 做了幾件事:1. 創(chuàng)建主進程(main process),主進程將為每個界面創(chuàng)建單獨的渲染進程(renderer process)。2. 每個界面本質(zhì)上就是一個網(wǎng)頁,渲染進程將網(wǎng)頁代碼在 Chromium 中渲染成網(wǎng)頁顯示出來。3. Electron 實現(xiàn)了各平臺的特殊功能(比如菜單,Dock),并為這些網(wǎng)頁界面提供原生功能的調(diào)用接口,使得應(yīng)用可以實現(xiàn)原生應(yīng)用才能做的很多功能,并可以使用 Node.js 的全部模塊(Module)。如果你需要實現(xiàn)一些 Electron 或 Node.js 不支持的功能,可以自己用 C++ 寫 Module 來實現(xiàn)。由于 Electron 內(nèi)建了特定版本的 Chromium,所以優(yōu)勢是網(wǎng)頁設(shè)計時不用考慮兼容性(謝天謝地),劣勢是會導(dǎo)致 Electron 什么也不做的情況下,應(yīng)用體積也在 100 MB 左右,打包壓縮后大約 30-50 MB。Electron 也繼承了 Chromium 的特點,啟動慢,利用資源(內(nèi)存占用)換性能(流暢度)。NW.js 也是類似的框架,他采用了 Node.js + Webkit 組合。兩者各有優(yōu)劣,NW.js 跟 Electron 的完整功能對比。國內(nèi)釘釘客戶端是基于 NW.js 做的。網(wǎng)易自己造了兩個輪子貌似已經(jīng)停更的 Hex 和 NEJ,網(wǎng)易云音樂客戶端是基于 NEJ 的。Electron 類的網(wǎng)頁封裝成客戶端另一個問題是源代碼很難被保護。由于 是解釋型語言,無法通過編譯來保護代碼,自身也沒有很好的代碼混淆方式,所以并不適用于需要版權(quán)保護或者純靠客戶端功能收費的應(yīng)用。Electron 上曾有 issus 討論源代碼保護的話題,但官方的態(tài)度是 wontfix 。如果需要寫一些需要保密的代碼,可以考慮用 C++ 寫 Node module 來解決。結(jié)語、Learn once, write 這幾天查資料時而感覺 威力無窮,時而又覺得它在哪個平臺都是點到為止,像玩具和試驗,距離工程性還有距離。 有種鳩摩智用吐蕃內(nèi)功練少林七十二絕學(xué)的意味。或許照這個發(fā)展勢頭,以后世上只有兩種工程師, 工程師和其他工程師……這幾天調(diào)研有些倉促,如果寫的不對的地方也請斧正。
上述文章了解到關(guān)于Java小技巧之分階段學(xué)習(xí),拳打南山敬老院,腳踢北海幼兒園的 JavaScript?? ,讓我們對南昌的javascript 有一個直觀的認知。我們發(fā)現(xiàn),作為一個優(yōu)秀的Java程序員是多么的自豪。