前言
這里筑夢師,是一名正在努力學(xué)習(xí)的iOS開發(fā)工程師,目前致力于全棧方向的學(xué)習(xí),希望可以和大家一起交流技術(shù),共同進(jìn)步,用簡書記錄下自己的學(xué)習(xí)歷程.
本文目錄&更新說明
目錄
1.學(xué)習(xí)方法
2.學(xué)習(xí)態(tài)度
3.全棧開發(fā)
4.學(xué)習(xí)路線(很長)
5.知識(shí)拓展(很長)
在這里收取很多人的建議以后決定說明一下,這是我的第一篇使用Markdown語法寫的文章,版面可能會(huì)有瑕疵,或者易讀性并不是那么高(但是知識(shí)點(diǎn)真的是這么多),這篇文章主要收集了全棧涉及到各個(gè)知識(shí)點(diǎn)
后期會(huì)根據(jù)我本人學(xué)習(xí)進(jìn)度進(jìn)行總結(jié),每個(gè)知識(shí)點(diǎn),對(duì),就是每個(gè)知識(shí)點(diǎn),我會(huì)根據(jù)自己的理解寫成簡書,到時(shí)候迫切的希望各位幫我參考,我的看法有時(shí)候會(huì)出現(xiàn)偏差,還希望各位及時(shí)指出.我會(huì)認(rèn)真的回復(fù)評(píng)論.
我會(huì)一直使用簡書和個(gè)人博客更新個(gè)人學(xué)習(xí)歷程~也希望各位能夠在這條路上一直走下去.
學(xué)習(xí)方法
這是個(gè)人學(xué)習(xí)方法,還請(qǐng)大家結(jié)合自身情況,制定適合自己的學(xué)習(xí)方法.
首先,我會(huì)去收集全棧工程師會(huì)涉及的方面,大致分為 前端,后臺(tái),服務(wù)器. 然后,細(xì)化各個(gè)階段不同的知識(shí)點(diǎn),逐一百度進(jìn)行了解.
了解相關(guān)知識(shí)的有名書籍,例如服務(wù)器的鳥叔私房菜系列書籍,前端的Head First系列,后臺(tái)的Linux開發(fā)手冊(cè). 本人整理過相關(guān)書籍,以及尋找書籍方法~傳送門
本人使用的筆記軟件是Omni outliner Mac版,windows的開發(fā)者可以使用 幕布 這個(gè)應(yīng)用.一般學(xué)習(xí)時(shí)間會(huì)開啟3個(gè)窗口
自學(xué)筆記+視頻學(xué)習(xí)筆記+總結(jié)筆記
自學(xué)筆記為讀書時(shí)的筆記和百度到的所有知識(shí)點(diǎn).
視頻學(xué)習(xí)筆記為視頻資料學(xué)習(xí)的筆記.會(huì)記錄視頻當(dāng)中的各個(gè)知識(shí)點(diǎn).
然后去其糟粕,取其精華,寫到總結(jié)筆記以后,再進(jìn)行總結(jié).
最后完成各個(gè)知識(shí)點(diǎn)的學(xué)習(xí)以及總結(jié).
當(dāng)遇到代碼知識(shí)點(diǎn)時(shí)一定要進(jìn)行實(shí)際操練以及考察.
要根據(jù)自身想法進(jìn)行延伸考察.才能將知識(shí)學(xué)到手.
一定要整理適合自己的學(xué)習(xí)方法,保證學(xué)習(xí)效率,學(xué)習(xí)過程中都會(huì)遇到瓶頸,當(dāng)自己無法理解新知識(shí)時(shí)就是瓶頸
1.可能是學(xué)習(xí)方法不夠完善,有些知識(shí)不夠融會(huì)貫通.
2.學(xué)習(xí)跨度不能太大,導(dǎo)致自己理解不了.
3.梳理自己的學(xué)習(xí)體系,程序語言不是死記硬背,而是靠理解和體會(huì)進(jìn)行使用,一定要有自己的理解看法,而不是生搬硬套書和視頻當(dāng)中的看法.
學(xué)習(xí)態(tài)度
謙虛,好學(xué),內(nèi)斂,成熟
學(xué)習(xí)態(tài)度,一定要是主動(dòng)學(xué)習(xí),主動(dòng)延伸,而不是被動(dòng)學(xué)習(xí).
我會(huì)主動(dòng)的去使用百度學(xué)習(xí)我每一個(gè)不懂的知識(shí)點(diǎn).
例如 :
- Apache 配置這個(gè)知識(shí)點(diǎn),我就會(huì)去搜索 "Apache配置" 以及 "httpd.conf配置".
- MySQL 數(shù)據(jù)庫這個(gè)知識(shí)點(diǎn),我就會(huì)去搜索 "MySQL開發(fā)"關(guān)鍵詞.
- 百度學(xué)習(xí)的效率如何提高,主要是在關(guān)鍵詞的搜索上,當(dāng)你學(xué)習(xí)一方面的知識(shí)時(shí),例如HTML知識(shí),你就搜索"HTML開發(fā)" +"空格"+"你想搜索的知識(shí)點(diǎn)".例如JavaScript開發(fā) "JS開發(fā)"+"空格"+"XXX效果實(shí)現(xiàn)".重點(diǎn)關(guān)注簡書、CSDN、github、Stackoverflow等網(wǎng)站的結(jié)果,而不是局限于百度知道,百度百科等.
知識(shí)很多,網(wǎng)絡(luò)上資源也有很多,你不學(xué)永遠(yuǎn)是0.
量雖然很大,但請(qǐng)一點(diǎn)點(diǎn)進(jìn)行學(xué)習(xí),循序漸進(jìn)~
全棧開發(fā)
全棧開發(fā)這里想說一下個(gè)人觀點(diǎn),有很多人說:"全棧全棧,全都懂點(diǎn),全都不精,全都不會(huì)."
這個(gè)觀點(diǎn),我不否定,但我不認(rèn)同,我投入全棧的學(xué)習(xí),有我自己的目的,那么我為什么要和那些全都不精的人在一個(gè)圈子里.不是因?yàn)閷W(xué)的多,就一定學(xué)不會(huì),那請(qǐng)問大神也都是什么都會(huì)啊.請(qǐng)不要因?yàn)閯e人否定自己,否則你就已經(jīng)輸了.
本文涉及的知識(shí)點(diǎn)也不是絕對(duì)的全棧,算是全棧入門,全棧水平也有高低,請(qǐng)勿學(xué)前自滿.
友情鏈接
在進(jìn)行全棧學(xué)習(xí)之前,我在小專欄認(rèn)識(shí)到了鋼哥-Keegen小鋼.
進(jìn)階全棧之路--小專欄
Keegen小鋼個(gè)人博客
根據(jù)他的文章,我找到了適合自己的學(xué)習(xí)方法.鋼哥注重的是全棧的思想和學(xué)習(xí)方法.跟隨鋼哥的腳步,進(jìn)行全棧的學(xué)習(xí).
在學(xué)習(xí)全棧的過程中,認(rèn)識(shí)到了一個(gè)比我更加努力并且愛分享的程序員.
Java3y的簡書主頁
Java3y的個(gè)人博客
因?yàn)楸救苏勒毡疚穆肪€進(jìn)行實(shí)踐(后端開發(fā)主要為PHP).
如果有想學(xué)習(xí)Java開發(fā)的同學(xué),可以點(diǎn)擊上面Java3y同學(xué)的主頁一起學(xué)哦.
進(jìn)行下面的學(xué)習(xí)時(shí),請(qǐng)先確定自己學(xué)全棧的目的和動(dòng)力.
下文主要分為兩部分,學(xué)習(xí)路線部分主要羅列出每一個(gè)全棧涉及的知識(shí)點(diǎn).
學(xué)習(xí)路線
在進(jìn)行學(xué)習(xí)路線學(xué)習(xí)時(shí),會(huì)遇到很多自己不懂陌生知識(shí)點(diǎn),請(qǐng)你毫不吝嗇的使用百度吧~
- Web前端
- 前端開發(fā)工具
- SEO
- HTML + CSS
- HTML簡介
- HTML標(biāo)簽詳解
- 標(biāo)簽語義化
- CSS概述
- CSS屬性
- CSS樣式的類型
- CSS選擇器
- CSS背景
- 元素的顯示模式
- CSS偽類
- 字體相關(guān)屬性
- 盒子模型
- margin
- padding
- 浮動(dòng)
- 定位
- CSS相關(guān)案例
- HTML5 + CSS3
- HTML5新增標(biāo)簽
- HTML5多媒體
- HTML5音頻播放
- HTML5視頻播放
- HTML5DOM擴(kuò)展
- HTMl5自定義屬性
- 地理定位
- 文件讀取
- 元素拖拽
- 應(yīng)用緩存
- 歷史管理
- web存儲(chǔ)
- CSS3選擇器
- CSS3新屬性
- 2D轉(zhuǎn)換與過渡
- 3D轉(zhuǎn)換
- 動(dòng)畫
- Web字體
- Flex彈性布局
- JavaScript + jQuery
- JavaScript
- JavaScript概述
- 數(shù)據(jù)類型
- 流程控制
- 算法基礎(chǔ)
- 企業(yè)編程規(guī)范
- JavaScript內(nèi)置對(duì)象常用方法
- 對(duì)象的創(chuàng)建方式
- JavaScript中的對(duì)象
- 面向?qū)ο?/li>
- 原型
- 作用域鏈
- 函數(shù)的調(diào)用方式及this指向
- 正則表達(dá)式
- JavaScript高級(jí)
- 遞歸與預(yù)解析
- 數(shù)據(jù)類型
- 函數(shù)
- 詞法分析
- 作用域鏈
- 事件編程
- canvas繪圖
- 面向?qū)ο?/li>
- JSON對(duì)象
- 原型鏈
- 設(shè)計(jì)模式
- 正則表達(dá)式
- JavaScript原理探究
- 原型
- 原型鏈
- 繼承
- 閉包
- ES5
- ES6
- jQuery
- jQuery簡介
- jQuery的優(yōu)勢
- jQuery選擇器
- jQuery中的動(dòng)畫
- jQuery插件
- jQueryUI
- jQuery編程思想
- 鏈?zhǔn)骄幊毯碗[式迭代
- 編寫jQuery插件
- jQuery選擇器
- 屬性操作
- 事件編程
- jQuery特效
- 文檔處理
- 插件機(jī)制
- jQuery中的Ajax
- 開源jQuery項(xiàng)目實(shí)踐
- JavaScript
- PHP +MySQL
- 搭建環(huán)境
- PHP簡介
- WEB程序的訪問流程
- 安裝Apache
- MySQL
- PHP7
- 配置虛擬主機(jī)
- PHP7基礎(chǔ)
- 變量和常量
- 數(shù)據(jù)類型
- 運(yùn)算符
- 流程控制
- 函數(shù)
- 字符串
- 數(shù)組
- PSR規(guī)范
- B/S結(jié)構(gòu)
- 參數(shù)傳遞GET/POST
- 動(dòng)態(tài)網(wǎng)站
- 后臺(tái)接口開發(fā)
- 分支循環(huán)語句
- MySQL數(shù)據(jù)庫
- MySQL簡介
- 基礎(chǔ)SQL操作
- 字符集
- 列類型
- 類屬性
- 表關(guān)系
- 高級(jí)查詢
- 外鍵
- 范式
- 用戶管理
- 權(quán)限管理
- 數(shù)據(jù)備份與還原
- MySQL優(yōu)化
- MySQL優(yōu)化概述
- MySQL存儲(chǔ)引擎
- 列類型的選擇
- 數(shù)據(jù)庫設(shè)計(jì)三范式與逆范式
- MySQL中的執(zhí)行計(jì)劃
- 數(shù)據(jù)庫中索引的設(shè)計(jì)
- MySQL中的其他功能
- MySQL分表技術(shù)
- Sphinx
- 讀寫分離
- 表單傳值
- 表單傳值的方式
- PHP接收數(shù)據(jù)的三種方式
- PHP處理復(fù)選框數(shù)據(jù)
- 文件上傳
- MySQLi擴(kuò)展
- 基本操作
- 執(zhí)行增刪改操作
- 執(zhí)行查詢操作
- 與MySQLi相關(guān)的函數(shù)
- MySQLi擴(kuò)展應(yīng)用案例
- 文件編程
- 文件操作的分類
- 目錄操作
- 文件操作
- 文件下載
- 會(huì)話技術(shù)
- 會(huì)話技術(shù)概述
- Cookie與Session的區(qū)別
- Cookie原理
- Cookie操作
- Session原理
- Session操作
- 垃圾回收機(jī)制
- GD圖像處理
- GD庫概述
- GD畫布實(shí)現(xiàn)
- 驗(yàn)證碼
- 縮略圖
- 水印圖
- 面向?qū)ο?
- 面向?qū)ο蟾攀?/li>
- 面向?qū)ο髮?shí)現(xiàn)
- 封裝
- 繼承
- 多態(tài)
- 對(duì)象遍歷
- 對(duì)象序列化
- 反射機(jī)制
- 命名空間
- Trait新特性
- PDO擴(kuò)展
- PDO簡介
- PDO類
- PDOStatement類
- PDO預(yù)處理
- PDO事務(wù)處理
- PDO異常處理
- PDO屬性
- 封裝PDO類
- Smarty
- Smarty概述
- 模板設(shè)計(jì)
- 程序設(shè)計(jì)
- ThinkPHP5.0
- ThinkPHP5框架概述
- 基礎(chǔ)
- 架構(gòu)
- 路由
- 控制器
- 視圖
- 模型
- 項(xiàng)目實(shí)用項(xiàng)
- RESTful
- RESTful概述
- HTTP協(xié)議
- RESTful API設(shè)計(jì)六要素
- 編寫API接口文檔
- 使用Lumen實(shí)現(xiàn)RESTful
- MVC設(shè)計(jì)模式
- MVC設(shè)計(jì)模式
- 搭建自定義MVC框架
- 博客項(xiàng)目
- 項(xiàng)目開發(fā)流程
- 數(shù)據(jù)表數(shù)據(jù)
- 后臺(tái)實(shí)現(xiàn)
- 前臺(tái)實(shí)現(xiàn)
- 擴(kuò)展功能
- 數(shù)據(jù)表設(shè)計(jì)、后臺(tái)設(shè)計(jì)、前臺(tái)設(shè)計(jì)、會(huì)員設(shè)計(jì)、購物車設(shè)計(jì)、訂單設(shè)計(jì)、接口設(shè)計(jì)(微信/支付寶、短信、QQ登錄、郵件、地圖、物流)、靜態(tài)化
- PHP+Swoole多進(jìn)程爬蟲
- Swoole概述
- Server
- Client
- Process
- AsyncIO
- Memory
- HttpServer
- WebSocket
- Swoole綜合案例:PHP+Swoole多進(jìn)程爬蟲
- 搭建環(huán)境
- Web API
- BOM操作
- DOM操作
- 事件處理
- 瀏覽器兼容性處理
- 頁面動(dòng)態(tài)效果
- 動(dòng)畫
- HTTP/HTTPS協(xié)議
- HTTP協(xié)議概念
- HTTP協(xié)議的特點(diǎn)
- HTTP協(xié)議的分類
- HTTP請(qǐng)求
- HTTP響應(yīng)
- HTTP狀態(tài)碼
- PHP模擬HTTP請(qǐng)求
- 擴(kuò)展:HTTPS協(xié)議
- Ajax
- Ajax概述
- Ajax對(duì)象
- GET與POST請(qǐng)求
- 同步與異步概念
- 緩存問題
- Ajax與XML
- Ajax與JSON
- 封裝Ajax框架
- 跨域請(qǐng)求
- 原生Ajax
- jQuery的Ajax相關(guān)API使用
- 低層原理分析
- 緩存問題及處理方式
- 跨域請(qǐng)求及解決方法
- 實(shí)用案例
- VueJS
- Vue概述
- Vue指令
- Vue屬性
- 方法、事件、過濾器、事件處理、鉤子函數(shù)
- 組件、動(dòng)畫、路由、API請(qǐng)求
- 常用系統(tǒng)指令
- 數(shù)據(jù)綁定
- 指令
- 過濾器
- 生命周期
- 組件化
- Vue組件
- Vue過渡效果(動(dòng)畫)
- 路由(vue-router庫)
- axios
- WAMP & MAMP & LAMP
- WEB程序的訪問流程
- Apache
- MySQL
- PHP
- 配置虛擬主機(jī)
- 設(shè)計(jì)模式
- MVC
- MVVM
- Git開發(fā)
- 命令行
- git的基本使用
- 對(duì)比文件差異、還原、合并 ,回滾操作
- 遠(yuǎn)端倉庫操作,使用github創(chuàng)建遠(yuǎn)端倉庫,生成ssh key 并添加到github
- Linux操作系統(tǒng)
- Linux系統(tǒng)概述
- VMware虛擬機(jī)的安裝
- CentOS系統(tǒng)安裝
- Shell指令
- VI編輯器
- Linux內(nèi)核分析
- 用戶和組
- 文件操作
- 網(wǎng)絡(luò)配置
- FTP
- LAMP部署
- Nginx服務(wù)器集群
- Nginx概述
- LNMP的安裝與配置
- 緩存設(shè)置
- 壓縮設(shè)置
- 負(fù)載均衡
- Memcache緩存設(shè)計(jì)
- 大型項(xiàng)目優(yōu)化概述
- Memcache軟件的安裝
- Memcache指令詳解
- 使用PHP操作Memcache
- Memcache應(yīng)用場景
- Redis 緩存\消息隊(duì)列
- Redis概述
- Redis支持的數(shù)據(jù)類型
- 持久化功能
- Redis主從模式
- PHP操作Redis
- 消息隊(duì)列
- 商城系統(tǒng)緩存設(shè)計(jì)與秒殺實(shí)現(xiàn)
- MongoDB (NoSQL數(shù)據(jù)庫)
- MongoDB概述
- MongoDB進(jìn)階
- MongoDB的權(quán)限機(jī)制
- 使用PHP操作MongoDB
- 網(wǎng)站優(yōu)化(MySQL高級(jí)優(yōu)化)
- MySQL優(yōu)化概述
- MySQL存儲(chǔ)引擎
- 列類型的選擇
- 數(shù)據(jù)庫設(shè)計(jì)三范式與逆范式
- 執(zhí)行計(jì)劃
- 索引
- 分庫分表技術(shù)
- 網(wǎng)站優(yōu)化(Sphinx,Xunsearch)
- 主從服務(wù)器的講解
- 主從復(fù)制
- 讀寫分離實(shí)戰(zhàn)
- 網(wǎng)站優(yōu)化(主從復(fù)制,讀寫分離)
- Sphinx概述
- 安裝Sphinx
- 使用PHP+API接口連接Sphinx
- Sphinx的匹配模式
- Sphinx增量索引
- 網(wǎng)站優(yōu)化(頁面靜態(tài)化)
- 頁面靜態(tài)化技術(shù)簡介
- 真靜態(tài)
- 偽靜態(tài)
- Laravel框架
- Laravel概述
- Laravel的安裝
- 目錄分析
- 控制器
- 路由
- 視圖
- HTTP請(qǐng)求與響應(yīng)
- 數(shù)據(jù)庫
- 模型
- Laravel實(shí)用項(xiàng)
- Redis數(shù)據(jù)庫
- 消息隊(duì)列
- Laravel +VueJS 在線直播平臺(tái)
- 前端界面開發(fā)
- Laravel后臺(tái)程序設(shè)計(jì)
- Socket編程
- Redis集群
- ffmpeg轉(zhuǎn)碼
- VOD點(diǎn)播
- CDN加速
- HLS技術(shù)
- 在線教育平臺(tái)實(shí)戰(zhàn)
- Canvas繪圖
- canvas概述
- 繪圖
- echarts
- svg
- svg圖標(biāo)的使用
- 移動(dòng)Web開發(fā)(響應(yīng)式設(shè)計(jì))
- 移動(dòng)端屏幕介紹
- 移動(dòng)端瀏覽器介紹
- 移動(dòng)端操作系統(tǒng)介紹
- Chrome模擬調(diào)試
- 真機(jī)調(diào)試
- Viewport
- rem
- 觸屏touch事件
- 手勢封裝
- 媒體查詢,設(shè)備尺寸劃分
- 主流響應(yīng)式布局框架
- 移動(dòng)端框架
- bootstrap
- iScroll
- swiper
- fastclick
- zepto
- framework7
- Canvas
- Sass
- vw
- CSS預(yù)處理器LESS
- 前端模塊化
- AMD
- CMD
- 模塊化開發(fā)基本概念
- 模塊化演變過程分析
- 設(shè)計(jì)規(guī)范
- RequireJS
- 淘寶的SeaJS
- NodeJS詳解
- NodeJS歷史
- 發(fā)展
- 特征與現(xiàn)狀
- ES6常用語法
- 同步與異步
- 環(huán)境安裝
- 文件操作
- 網(wǎng)絡(luò)操作
- 模塊化思想及操作
- npm
- 異步編程
- Express
- 工具模塊
- Web模塊
- 全局對(duì)象
- Express框架
- Express 簡介
- 安裝
- 請(qǐng)求與響應(yīng)
- 路由
- 靜態(tài)文件
- 文件上傳
- Cookiet管理
- AngularJS實(shí)戰(zhàn)開發(fā)
- 單頁應(yīng)用
- MVC
- 常用指令
- 雙向綁定和單向綁定
- 模塊
- 控制器controller
- $watch
- 自定義指令
- jqLite
- 過濾器
- 數(shù)據(jù)過濾
- 服務(wù)
location
- 前端路由
- http攔截器
- ReactJS實(shí)戰(zhàn)開發(fā)
- 快速入門
- 虛擬DOM
- 交互與動(dòng)態(tài)UI
- 數(shù)據(jù)渲染
- JSX 語法
- 組件開發(fā)
- 組件復(fù)用
- 生命周期
- React操作dom元素
- React絕對(duì)路由
- webpack和gulp集成構(gòu)建項(xiàng)目
- flux
- redux
- state props context 等
- 附加模塊
- 集成工具
- 重定向組件
- 代理方式進(jìn)行跨域
- 按需加載
- 移動(dòng)端項(xiàng)目 (全棧必備)
- mui框架使用
- 前端校驗(yàn)插件
- echarts數(shù)據(jù)可視化
- Ajax進(jìn)度條組件
- 模板引擎渲染
- 圖片上傳插件
- 后臺(tái)項(xiàng)目 (全棧必備)
- 后端渲染頁面,使用會(huì)話技術(shù)實(shí)現(xiàn)登錄,PHP操作MySQL數(shù)據(jù)庫,開發(fā)接口,使用AJAX技術(shù),模板引擎ArtTemplate完成頁面功能的實(shí)現(xiàn)
- vue項(xiàng)目 (全棧必備)
- webpack
- vue-cli
- vuex
- 打包發(fā)布
- 組件開發(fā)
- 權(quán)限管理
- 外部接口調(diào)用
- 微服務(wù)Docker (PHP進(jìn)階)
- Docker概述
- 為什么需要Docker
- Docker環(huán)境開發(fā)流程
- Docker安裝與配置
- Docker指令
- DockerFile應(yīng)用服務(wù)器
- Swoole聊天室 (PHP進(jìn)階)
- Swoole概述
- Server
- Client
- Process
- AsyncIO
- Memory
- HttpServer
- WebSocket
- PHP+Swoole聊天室
- 微信開發(fā)(微擎/ EasyWechat)
- 微信公眾平臺(tái)概述
- 微信開發(fā)前期準(zhǔn)備
- 微信6大接收接口
- 微信6大回復(fù)接口
- 微信LBS接口開發(fā)
- 微信機(jī)器人開發(fā)
- 響應(yīng)式設(shè)計(jì)
- 微擎/EasyWechat
- 微信綜合案例
- 微信小程序 (前端進(jìn)階)
- 微信框架
- 小程序界面設(shè)計(jì)
- API接口設(shè)計(jì)
- 小程序數(shù)據(jù)綁定
- 小程序性能優(yōu)化與實(shí)踐
- 小程序入門概念及演示
- 小程序開發(fā)工具介紹與創(chuàng)建quick_start項(xiàng)目
- 小程序文件結(jié)構(gòu)
- wxml
- wxss
- 常用組件(view,image,text,navigator,swiper等)
- 小程序常用api
- 微信公眾號(hào) (前端進(jìn)階)
- 用JS-SDK技術(shù)做分享、拍照、支付、登錄等功能。
- Web前端
知識(shí)拓展
這里是在進(jìn)行全棧涉及知識(shí)點(diǎn)時(shí),我本人進(jìn)行百度到的各種知識(shí)拓展,方便大家學(xué)習(xí)
-
前后端分離
- 目前市面上都是前后端分離
- 主要目的是 解耦 分離架構(gòu).
- 前后端使用JSON交流,后端架構(gòu)語言如何選擇將和前端沒有關(guān)系
- 聽說 TDD (Test-driven development,測試驅(qū)動(dòng)開發(fā)) 可以改善代碼的質(zhì)量,我們便實(shí)施了 TDD;接著,聽說 BDD (Behavior-driven development,行為驅(qū)動(dòng)開發(fā)) 可以交付符合業(yè)務(wù)需求的軟件,我們便實(shí)施了 BDD;后來,聽說 DDD (Domain-driven design,領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)) 可以分離業(yè)務(wù)代碼與基礎(chǔ)代碼,我們便實(shí)施了 DDD。今天,聽說了前后端分離很流行,于是我們就實(shí)施了前后端分離——這就是傳說中的 HDD(Hype-driven Development,熱鬧驅(qū)動(dòng)開發(fā))
- 前后端只通過 JSON 來交流,組件化、工程化不需要依賴后端去實(shí)現(xiàn)。
- 前后端分離和微服務(wù)一樣,漸漸地影響了新的大型系統(tǒng)的架構(gòu)。微服務(wù)和前后端分離要解決是類似的問題,解耦——可以解耦復(fù)雜的業(yè)務(wù)邏輯,解耦架構(gòu)。可要是說相像吧,消息隊(duì)伍和前后端便相似一些,通過傳遞數(shù)據(jù)的形式來解耦組件。
-
TCP/IP 協(xié)議
- TCP/IP協(xié)議簇是Internet的基礎(chǔ),也是當(dāng)今最流行的組網(wǎng)形式。TCP/IP是一組協(xié)議的代名詞,包括許多別的協(xié)議,組成了TCP/IP協(xié)議簇。其中比較重要的有SLIP協(xié)議、PPP協(xié)議、IP協(xié)議、ICMP協(xié)議、ARP協(xié)議、TCP協(xié)議、UDP協(xié)議、FTP協(xié)議、DNS協(xié)議、SMTP協(xié)議等。
-
HTTP協(xié)議
- 閱讀 圖解HTTP
-
OSI參考模型
- OSI(Open System Interconnect),即開放式系統(tǒng)互聯(lián)。 一般都叫OSI參考模型,是ISO(國際標(biāo)準(zhǔn)化組織)組織在1985年研究的網(wǎng)絡(luò)互聯(lián)模型。該體系結(jié)構(gòu)標(biāo)準(zhǔn)定義了網(wǎng)絡(luò)互連的七層框架(物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層、會(huì)話層、表示層和應(yīng)用層),即ISO開放系統(tǒng)互連參考模型。在這一框架下進(jìn)一步詳細(xì)規(guī)定了每一層的功能,以實(shí)現(xiàn)開放系統(tǒng)環(huán)境中的互連性、互操作性和應(yīng)用的可移植性。
-
web service 服務(wù)端應(yīng)用
-
webService 三要素
- SOAP、WSDL(WebServicesDescriptionLanguage)、UDDI(UniversalDescriptionDiscovery andIntegration)之一, soap用來描述傳遞信息的格式, WSDL 用來描述如何訪問具體的接口, uddi用來管理,分發(fā),查詢webService 。具體實(shí)現(xiàn)可以搜索 Web Services簡單實(shí)例 ; SOAP 可以和現(xiàn)存的許多因特網(wǎng)協(xié)議和格式結(jié)合使用,包括超文本傳輸協(xié)議(HTTP),簡單郵件傳輸協(xié)議(SMTP),多用途網(wǎng)際郵件擴(kuò)充協(xié)議(MIME)。它還支持從消息系統(tǒng)到遠(yuǎn)程過程調(diào)用(RPC)等大量的應(yīng)用程序。SOAP使用基于XML的數(shù)據(jù)結(jié)構(gòu)和超文本傳輸協(xié)議(HTTP)的組合定義了一個(gè)標(biāo)準(zhǔn)的方法來使用Internet上各種不同操作環(huán)境中的分布式對(duì)象。
- SMTP 隸屬于 TCP/IP協(xié)議
Web service是一個(gè)平臺(tái)獨(dú)立的,低耦合的,自包含的、基于可編程的web的應(yīng)用程序,可使用開放的XML(標(biāo)準(zhǔn)通用標(biāo)記語言下的一個(gè)子集)標(biāo)準(zhǔn)來描述、發(fā)布、發(fā)現(xiàn)、協(xié)調(diào)和配置這些應(yīng)用程序,用于開發(fā)分布式的互操作的應(yīng)用程序。 [1]
Web Service技術(shù), 能使得運(yùn)行在不同機(jī)器上的不同應(yīng)用無須借助附加的、專門的第三方軟件或硬件, 就可相互交換數(shù)據(jù)或集成。依據(jù)Web Service規(guī)范實(shí)施的應(yīng)用之間, 無論它們所使用的語言、 平臺(tái)或內(nèi)部協(xié)議是什么, 都可以相互交換數(shù)據(jù)。Web Service是自描述、 自包含的可用網(wǎng)絡(luò)模塊, 可以執(zhí)行具體的業(yè)務(wù)功能。Web Service也很容易部署, 因?yàn)樗鼈兓谝恍┏R?guī)的產(chǎn)業(yè)標(biāo)準(zhǔn)以及已有的一些技術(shù),諸如標(biāo)準(zhǔn)通用標(biāo)記語言下的子集XML、HTTP。Web Service減少了應(yīng)用接口的花費(fèi)。Web Service為整個(gè)企業(yè)甚至多個(gè)組織之間的業(yè)務(wù)流程的集成提供了一個(gè)通用機(jī)制。-
web廣泛用到的技術(shù):
. TCP/IP:通用網(wǎng)絡(luò)協(xié)議,被各種設(shè)備使用. HTML(標(biāo)準(zhǔn)通用標(biāo)記語言下的一個(gè)應(yīng)用):通用用戶界面,可以使用HTML標(biāo)簽顯示數(shù)據(jù)
. .NET: 不同應(yīng)用程序間共享數(shù)據(jù)與數(shù)據(jù)交換
. Java:寫一次可以在任何系統(tǒng)運(yùn)行的通用編程語言,因?yàn)閖ava具有跨平臺(tái)特性
. XML(標(biāo)準(zhǔn)通用標(biāo)記語言下的一個(gè)子集):通用數(shù)據(jù)表達(dá)語言,在web上傳送結(jié)構(gòu)化數(shù)據(jù)的容易方法
-
-
Apache Nginx IIS >服務(wù)器軟件
-
Apache
- Apache是世界使用排名第一的Web服務(wù)器軟件。它可以運(yùn)行在幾乎所有廣泛使用的計(jì)算機(jī)平臺(tái)上,由于其跨平臺(tái)和安全性被廣泛使用,是最流行的Web服務(wù)器端軟件之一。它快速、可靠并且可通過簡單的API擴(kuò)充,將Perl/Python等解釋器編譯到服務(wù)器中。
- Apache HTTP服務(wù)器是一個(gè)模塊化的服務(wù)器,源于NCSAhttpd服務(wù)器,經(jīng)過多次修改,成為世界使用排名第一的Web服務(wù)器軟件。
-
Nginx
- Nginx (engine x) 是一個(gè)高性能的HTTP和反向代理服務(wù)器,也是一個(gè)IMAP/POP3/SMTP服務(wù)器。Nginx是由伊戈?duì)枴べ愃饕驗(yàn)槎砹_斯訪問量第二的Rambler.ru站點(diǎn)(俄文:Рамблер)開發(fā)的,第一個(gè)公開版本0.1.0發(fā)布于2004年10月4日。
其將源代碼以類BSD許可證的形式發(fā)布,因它的穩(wěn)定性、豐富的功能集、示例配置文件和低系統(tǒng)資源的消耗而聞名。2011年6月1日,nginx 1.0.4發(fā)布。
Nginx是一款輕量級(jí)的Web 服務(wù)器/反向代理服務(wù)器及電子郵件(IMAP/POP3)代理服務(wù)器,并在一個(gè)BSD-like 協(xié)議下發(fā)行。其特點(diǎn)是占有內(nèi)存少,并發(fā)能力強(qiáng),事實(shí)上nginx的并發(fā)能力確實(shí)在同類型的網(wǎng)頁服務(wù)器中表現(xiàn)較好,中國大陸使用nginx網(wǎng)站用戶有:百度、京東、新浪、網(wǎng)易、騰訊、淘寶等。
- Nginx (engine x) 是一個(gè)高性能的HTTP和反向代理服務(wù)器,也是一個(gè)IMAP/POP3/SMTP服務(wù)器。Nginx是由伊戈?duì)枴べ愃饕驗(yàn)槎砹_斯訪問量第二的Rambler.ru站點(diǎn)(俄文:Рамблер)開發(fā)的,第一個(gè)公開版本0.1.0發(fā)布于2004年10月4日。
-
IIS
- iis是Internet Information Services的縮寫,意為互聯(lián)網(wǎng)信息服務(wù),是由微軟公司提供的基于運(yùn)行Microsoft Windows的互聯(lián)網(wǎng)基本服務(wù)。最初是Windows NT版本的可選包,隨后內(nèi)置在Windows 2000、Windows XP Professional和Windows Server 2003一起發(fā)行,但在Windows XP Home版本上并沒有IIS。IIS是一種Web(網(wǎng)頁)服務(wù)組件,其中包括Web服務(wù)器、FTP服務(wù)器、NNTP服務(wù)器和SMTP服務(wù)器,分別用于網(wǎng)頁瀏覽、文件傳輸、新聞服務(wù)和郵件發(fā)送等方面,它使得在網(wǎng)絡(luò)(包括互聯(lián)網(wǎng)和局域網(wǎng))上發(fā)布信息成了一件很容易的事。 [1]
IIS的安全脆弱性曾長時(shí)間被業(yè)內(nèi)詬病,一旦IIS出現(xiàn)遠(yuǎn)程執(zhí)行漏洞威脅將會(huì)非常嚴(yán)重。遠(yuǎn)程執(zhí)行代碼漏洞存在于 HTTP 協(xié)議堆棧 (HTTP.sys) 中,當(dāng) HTTP.sys 未正確分析經(jīng)特殊設(shè)計(jì)的 HTTP 請(qǐng)求時(shí)會(huì)導(dǎo)致此漏洞。 成功利用此漏洞的攻擊者可以在系統(tǒng)帳戶的上下文中執(zhí)行任意代碼,可以導(dǎo)致IIS服務(wù)器所在機(jī)器藍(lán)屏或讀取其內(nèi)存中的機(jī)密數(shù)據(jù)。
- iis是Internet Information Services的縮寫,意為互聯(lián)網(wǎng)信息服務(wù),是由微軟公司提供的基于運(yùn)行Microsoft Windows的互聯(lián)網(wǎng)基本服務(wù)。最初是Windows NT版本的可選包,隨后內(nèi)置在Windows 2000、Windows XP Professional和Windows Server 2003一起發(fā)行,但在Windows XP Home版本上并沒有IIS。IIS是一種Web(網(wǎng)頁)服務(wù)組件,其中包括Web服務(wù)器、FTP服務(wù)器、NNTP服務(wù)器和SMTP服務(wù)器,分別用于網(wǎng)頁瀏覽、文件傳輸、新聞服務(wù)和郵件發(fā)送等方面,它使得在網(wǎng)絡(luò)(包括互聯(lián)網(wǎng)和局域網(wǎng))上發(fā)布信息成了一件很容易的事。 [1]
-
-
web server 網(wǎng)頁端服務(wù)器
- Web服務(wù)器一般指網(wǎng)站服務(wù)器,是指駐留于因特網(wǎng)上某種類型計(jì)算機(jī)的程序,可以向?yàn)g覽器等Web客戶端提供文檔, [1] 也可以放置網(wǎng)站文件,讓全世界瀏覽;可以放置數(shù)據(jù)文件,讓全世界下載。目前最主流的三個(gè)Web服務(wù)器是Apache Nginx IIS。
-
Weblogic Tomcat Jboss > 應(yīng)用服務(wù)器
-
weblogic
- WebLogic是美國Oracle公司出品的一個(gè)application server,確切的說是一個(gè)基于JAVAEE架構(gòu)的中間件,WebLogic是用于開發(fā)、集成、部署和管理大型分布式Web應(yīng)用、網(wǎng)絡(luò)應(yīng)用和數(shù)據(jù)庫應(yīng)用的Java應(yīng)用服務(wù)器。將Java的動(dòng)態(tài)功能和Java Enterprise標(biāo)準(zhǔn)的安全性引入大型網(wǎng)絡(luò)應(yīng)用的開發(fā)、集成、部署和管理之中。
WebLogic是美商Oracle的主要產(chǎn)品之一,是并購BEA得來。是商業(yè)市場上主要的Java(J2EE)應(yīng)用服務(wù)器軟件(application server)之一,是世界上第一個(gè)成功商業(yè)化的J2EE應(yīng)用服務(wù)器, 已推出到12c(12.2.1.3) 版。而此產(chǎn)品也延伸出WebLogic Portal,WebLogic Integration等企業(yè)用的中間件(但當(dāng)下Oracle主要以Fusion Middleware融合中間件來取代這些WebLogic Server之外的企業(yè)包),以及OEPE(Oracle Enterprise Pack for Eclipse)開發(fā)工具。
- WebLogic是美國Oracle公司出品的一個(gè)application server,確切的說是一個(gè)基于JAVAEE架構(gòu)的中間件,WebLogic是用于開發(fā)、集成、部署和管理大型分布式Web應(yīng)用、網(wǎng)絡(luò)應(yīng)用和數(shù)據(jù)庫應(yīng)用的Java應(yīng)用服務(wù)器。將Java的動(dòng)態(tài)功能和Java Enterprise標(biāo)準(zhǔn)的安全性引入大型網(wǎng)絡(luò)應(yīng)用的開發(fā)、集成、部署和管理之中。
-
Tomcat
- Tomcat是Apache 軟件基金會(huì)(Apache Software Foundation)的Jakarta 項(xiàng)目中的一個(gè)核心項(xiàng)目,由Apache、Sun 和其他一些公司及個(gè)人共同開發(fā)而成。由于有了Sun 的參與和支持,最新的Servlet 和JSP 規(guī)范總是能在Tomcat 中得到體現(xiàn),Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 規(guī)范。因?yàn)門omcat 技術(shù)先進(jìn)、性能穩(wěn)定,而且免費(fèi),因而深受Java 愛好者的喜愛并得到了部分軟件開發(fā)商的認(rèn)可,成為目前比較流行的Web 應(yīng)用服務(wù)器。
Tomcat 服務(wù)器是一個(gè)免費(fèi)的開放源代碼的Web 應(yīng)用服務(wù)器,屬于輕量級(jí)應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場合下被普遍使用,是開發(fā)和調(diào)試JSP 程序的首選。對(duì)于一個(gè)初學(xué)者來說,可以這樣認(rèn)為,當(dāng)在一臺(tái)機(jī)器上配置好Apache 服務(wù)器,可利用它響應(yīng)HTML(標(biāo)準(zhǔn)通用標(biāo)記語言下的一個(gè)應(yīng)用)頁面的訪問請(qǐng)求。實(shí)際上Tomcat是Apache 服務(wù)器的擴(kuò)展,但運(yùn)行時(shí)它是獨(dú)立運(yùn)行的,所以當(dāng)你運(yùn)行tomcat 時(shí),它實(shí)際上作為一個(gè)與Apache 獨(dú)立的進(jìn)程單獨(dú)運(yùn)行的。
- Tomcat是Apache 軟件基金會(huì)(Apache Software Foundation)的Jakarta 項(xiàng)目中的一個(gè)核心項(xiàng)目,由Apache、Sun 和其他一些公司及個(gè)人共同開發(fā)而成。由于有了Sun 的參與和支持,最新的Servlet 和JSP 規(guī)范總是能在Tomcat 中得到體現(xiàn),Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 規(guī)范。因?yàn)門omcat 技術(shù)先進(jìn)、性能穩(wěn)定,而且免費(fèi),因而深受Java 愛好者的喜愛并得到了部分軟件開發(fā)商的認(rèn)可,成為目前比較流行的Web 應(yīng)用服務(wù)器。
-
Jboss
- 是一個(gè)基于J2EE的開放源代碼的應(yīng)用服務(wù)器。 JBoss代碼遵循LGPL許可,可以在任何商業(yè)應(yīng)用中免費(fèi)使用。JBoss是一個(gè)管理EJB的容器和服務(wù)器,支持EJB 1.1、EJB 2.0和EJB3的規(guī)范。但JBoss核心服務(wù)不包括支持servlet/JSP的WEB容器,一般與Tomcat或Jetty綁定使用。
-
-
RESTful API交互(如jQuery Ajax,F(xiàn)etch API,ReactiveX)
- Fetch API (新一代HTML請(qǐng)求方式)
- ReactiveX (響應(yīng)式編程)
- ReactiveX 是一個(gè)基于一系列可觀察的異步和基礎(chǔ)事件編程組成的一個(gè)庫。
它繼承觀察者模式,支持序列數(shù)據(jù)或者事件。更高級(jí)的用法允許你將如下的一些抽象概念操作一起聯(lián)合使用,比如低線程,同步,線程安全,數(shù)據(jù)并發(fā),非阻塞I/O流。
它通常被稱為“函數(shù)響應(yīng)式編程”,這是用詞不當(dāng)?shù)摹eactiveX 可以是函數(shù)式的,可以是響應(yīng)式的,但是和“函數(shù)響應(yīng)式編程”是不同的概覽。一個(gè)主要的不同點(diǎn)是“函數(shù)響應(yīng)式編程”是對(duì)隨著時(shí)間不停變化的值進(jìn)行操作的,而ReactiveX是對(duì)超時(shí)提交產(chǎn)生的離散值上。 - ReactiveX 簡稱 Rx,全稱 Reactive Extensions,最初是LINQ的一個(gè)擴(kuò)展,由微軟的架構(gòu)師Erik Meijer領(lǐng)導(dǎo)的團(tuán)隊(duì)開發(fā),在2012年11月開源,Rx是一個(gè)編程模型,目標(biāo)是提供一致的編程接口,幫助開發(fā)者更方便的處理異步數(shù)據(jù)流,Rx庫支持.NET、JavaScript和C++,Java等幾乎所有的編程語言。Rx擴(kuò)展了觀察者模式用于支持?jǐn)?shù)據(jù)和事件序列,添加了一些操作符,它讓你可以聲明式的組合這些序列,而無需關(guān)注底層的實(shí)現(xiàn):如線程、同步、線程安全、并發(fā)數(shù)據(jù)結(jié)構(gòu)和非阻塞IO。
- Reactive: 響應(yīng)式
- LINQ: Language Integrated Query的簡稱,它是集成在.NET編程語言中的一種特性。已成為編程語言的一個(gè)組成部分,在編寫程序時(shí)可以得到很好的編譯時(shí)語法檢查,豐富的元數(shù)據(jù),智能感知、 靜態(tài)類型等強(qiáng)類型語言的好處。
迭代器模式:核心思想是:通過定義遍歷或查看對(duì)象中所有元素的方法的接口,并根據(jù)不同的類進(jìn)行不同的方法實(shí)現(xiàn)相,已達(dá)到對(duì)類數(shù)據(jù)遍歷的抽象以及對(duì)類內(nèi)部如何獲取數(shù)據(jù)的過程進(jìn)行掩蓋的目的。當(dāng)于Java中的Iterator(迭代器)有它的繼承接口如ListIterator和它的實(shí)現(xiàn)類等,我們?cè)诒闅vSet、Map時(shí),用到他們的Iterator,這樣,他們具體怎么拿出數(shù)據(jù)的過程,我們不用知道。 - 觀察者模式:有時(shí)被稱作發(fā)布/訂閱模式,觀察者模式定義了一種一對(duì)多的依賴關(guān)系,讓多個(gè)觀察者對(duì)象同時(shí)監(jiān)聽某一個(gè)主題對(duì)象。這個(gè)主題對(duì)象在狀態(tài)發(fā)生變化時(shí),會(huì)通知所有觀察者對(duì)象,使它們能夠自動(dòng)更新自己。【下面RxJava的使用過程就是觀察者模式的體現(xiàn)】
- Rx = Observables【用于表示異步數(shù)據(jù)流】 + LINQ【用它的操作符查詢異步數(shù)據(jù)流】 + Schedules【參數(shù)化異步數(shù)據(jù)流的并發(fā)處理】
- Rx用到的設(shè)計(jì)模式精華:觀察者模式、迭代器模式
- ReactiveX 是一個(gè)基于一系列可觀察的異步和基礎(chǔ)事件編程組成的一個(gè)庫。
-
MVC & MVVM (設(shè)計(jì)模式)
- 閱讀 設(shè)計(jì)模式相關(guān)書籍
- 針對(duì)不同語言有著不同定義.
- 最典型的MVC就是JSP + servlet + javabean的模式
-
I/O (輸入輸出)
- I/O(input/output),即輸入/輸出端口。每個(gè)設(shè)備都會(huì)有一個(gè)專用的I/O地址,用來處理自己的輸入輸出信息。CPU與外部設(shè)備、存儲(chǔ)器的連接和數(shù)據(jù)交換都需要通過接口設(shè)備來實(shí)現(xiàn),前者被稱為I/O接口,而后者則被稱為存儲(chǔ)器接口。存儲(chǔ)器通常在CPU的同步控制下工作,接口電路比較簡單;而I/O設(shè)備品種繁多,其相應(yīng)的接口電路也各不相同,因此,習(xí)慣上說到接口只是指I/O接口。
-
C/S & B/S
- B/S
- B/S結(jié)構(gòu)(Browser/Server,瀏覽器/服務(wù)器模式),是WEB興起后的一種網(wǎng)絡(luò)結(jié)構(gòu)模式,WEB瀏覽器是客戶端最主要的應(yīng)用軟件。這種模式統(tǒng)一了客戶端,將系統(tǒng)功能實(shí)現(xiàn)的核心部分集中到服務(wù)器上,簡化了系統(tǒng)的開發(fā)、維護(hù)和使用。客戶機(jī)上只要安裝一個(gè)瀏覽器(Browser英 ['bra?z?]美 ['bra?z?]),如Netscape Navigator或Internet Explorer,服務(wù)器安裝SQL Server、Oracle、MYSQL等數(shù)據(jù)庫。瀏覽器通過Web Server 同數(shù)據(jù)庫進(jìn)行數(shù)據(jù)交互。
- C/S
- Client/Server結(jié)構(gòu)(C/S結(jié)構(gòu))是大家熟知的客戶機(jī)和服務(wù)器結(jié)構(gòu)。它是軟件系統(tǒng)體系結(jié)構(gòu),通過它可以充分利用兩端硬件環(huán)境的優(yōu)勢,將任務(wù)合理分配到Client端和Server端來實(shí)現(xiàn),降低了系統(tǒng)的通訊開銷。目前大多數(shù)應(yīng)用軟件系統(tǒng)都是Client/Server形式的兩層結(jié)構(gòu),由于現(xiàn)在的軟件應(yīng)用系統(tǒng)正在向分布式的Web應(yīng)用發(fā)展,Web和Client/Server 應(yīng)用都可以進(jìn)行同樣的業(yè)務(wù)處理,應(yīng)用不同的模塊共享邏輯組件;因此,內(nèi)部的和外部的用戶都可以訪問新的和現(xiàn)有的應(yīng)用系統(tǒng),通過現(xiàn)有應(yīng)用系統(tǒng)中的邏輯可以擴(kuò)展出新的應(yīng)用系統(tǒng)。這也就是目前應(yīng)用系統(tǒng)的發(fā)展方向。
- B/S
-
SOA 面向服務(wù)架構(gòu)
- 面向服務(wù)的架構(gòu)(SOA)是一個(gè)組件模型,它將應(yīng)用程序的不同功能單元(稱為服務(wù))通過這些服務(wù)之間定義良好的接口和契約聯(lián)系起來。接口是采用中立的方式進(jìn)行定義的,它應(yīng)該獨(dú)立于實(shí)現(xiàn)服務(wù)的硬件平臺(tái)、操作系統(tǒng)和編程語言。這使得構(gòu)建在各種各樣的系統(tǒng)中的服務(wù)可以以一種統(tǒng)一和通用的方式進(jìn)行交互。
-
J2EE 架構(gòu)
- J2EE(Java 2 Platform, Enterprise Edition)是一個(gè)為大企業(yè)主機(jī)級(jí)的計(jì)算類型而設(shè)計(jì)的Java平臺(tái)。Sun微系統(tǒng)(與其工業(yè)伙伴一起,例如IBM)設(shè)計(jì)了J2EE,以此來簡化在受客戶級(jí)環(huán)境下的應(yīng)用開發(fā)。由于創(chuàng)造了標(biāo)準(zhǔn)的可重用模塊組件以及由于構(gòu)建出能自動(dòng)處理編程中多方面問題的等級(jí)結(jié)構(gòu),J2EE簡化了應(yīng)用程序的開發(fā),也降低了對(duì)編程和對(duì)受訓(xùn)的程序員的要求。
- J2EE是一套全然不同于傳統(tǒng)應(yīng)用開發(fā)的技術(shù)架構(gòu),包含許多組件,主要可簡化且規(guī)范應(yīng)用系統(tǒng)的開發(fā)與部署,進(jìn)而提高可移植性、安全與再用價(jià)值。
J2EE核心是一組技術(shù)規(guī)范與指南,其中所包含的各類組件、服務(wù)架構(gòu)及技術(shù)層次,均有共同的標(biāo)準(zhǔn)及規(guī)格,讓各種依循J2EE架構(gòu)的不同平臺(tái)之間,存在良好的兼容性,解決過去企業(yè)后端使用的信息產(chǎn)品彼此之間無法兼容,企業(yè)內(nèi)部或外部難以互通的窘境。
J2EE組件和“標(biāo)準(zhǔn)的” Java類的不同點(diǎn)在于:它被裝配在一個(gè)J2EE應(yīng)用中,具有固定的格式并遵守J2EE規(guī)范,由J2EE服務(wù)器對(duì)其進(jìn)行管理。J2EE規(guī)范是這樣定義J2EE組件的:客戶端應(yīng)用程序和applet是運(yùn)行在客戶端的組件;Java Servlet和Java Server Pages (JSP) 是運(yùn)行在服務(wù)器端的Web組件;Enterprise Java Bean (EJB )組件是運(yùn)行在服務(wù)器端的業(yè)務(wù)組件。
路由概念 (網(wǎng)絡(luò)層)
-
微服務(wù)
- 在介紹微服務(wù)時(shí),首先得先理解什么是微服務(wù),顧名思義,微服務(wù)得從兩個(gè)方面去理解,什么是"微"、什么是"服務(wù)", 微 狹義來講就是體積小、著名的"2 pizza 團(tuán)隊(duì)"很好的詮釋了這一解釋(2 pizza 團(tuán)隊(duì)最早是亞馬遜 CEO Bezos提出來的,意思是說單個(gè)服務(wù)的設(shè)計(jì),所有參與人從設(shè)計(jì)、開發(fā)、測試、運(yùn)維所有人加起來 只需要2個(gè)披薩就夠了 )。 而所謂服務(wù),一定要區(qū)別于系統(tǒng),服務(wù)一個(gè)或者一組相對(duì)較小且獨(dú)立的功能單元,是用戶可以感知最小功能集。
- 微服務(wù)可以在“自己的程序”中運(yùn)行,并通過“輕量級(jí)設(shè)備與HTTP型API進(jìn)行溝通”。關(guān)鍵在于該服務(wù)可以在自己的程序中運(yùn)行。通過這一點(diǎn)我們就可以將服務(wù)公開與微服務(wù)架構(gòu)(在現(xiàn)有系統(tǒng)中分布一個(gè)API)區(qū)分開來。在服務(wù)公開中,許多服務(wù)都可以被內(nèi)部獨(dú)立進(jìn)程所限制。如果其中任何一個(gè)服務(wù)需要增加某種功能,那么就必須縮小進(jìn)程范圍。在微服務(wù)架構(gòu)中,只需要在特定的某種服務(wù)中增加所需功能,而不影響整體進(jìn)程。
- 為什么需要微服務(wù)
在傳統(tǒng)的IT行業(yè)軟件大多都是各種獨(dú)立系統(tǒng)的堆砌,這些系統(tǒng)的問題總結(jié)來說就是擴(kuò)展性差,可靠性不高,維護(hù)成本高。到后面引入了SOA服務(wù)化,但是,由于 SOA 早期均使用了總線模式,這種總線模式是與某種技術(shù)棧強(qiáng)綁定的,比如:J2EE。這導(dǎo)致很多企業(yè)的遺留系統(tǒng)很難對(duì)接,切換時(shí)間太長,成本太高,新系統(tǒng)穩(wěn)定性的收斂也需要一些時(shí)間。最終 SOA 看起來很美,但卻成為了企業(yè)級(jí)奢侈品,中小公司都望而生畏。
-
Spring (面向接口開源框架)
- Spring是一個(gè)開放源代碼的設(shè)計(jì)層面框架,他解決的是業(yè)務(wù)邏輯層和其他各層的松耦合問題,因此它將面向接口的編程思想貫穿整個(gè)系統(tǒng)應(yīng)用。Spring是于2003 年興起的一個(gè)輕量級(jí)的Java 開發(fā)框架,由Rod Johnson創(chuàng)建。簡單來說,Spring是一個(gè)分層的JavaSE/EE full-stack(一站式) 輕量級(jí)開源框架。
-
RESTful (軟件架構(gòu)風(fēng)格)
- 一種軟件架構(gòu)風(fēng)格、設(shè)計(jì)風(fēng)格,而不是標(biāo)準(zhǔn),只是提供了一組設(shè)計(jì)原則和約束條件。它主要用于客戶端和服務(wù)器交互類的軟件。基于這個(gè)風(fēng)格設(shè)計(jì)的軟件可以更簡潔,更有層次,更易于實(shí)現(xiàn)緩存等機(jī)制。
-
授權(quán)(如HTTP Basic、JWT等等)
- JWT
- Json web token (JWT), 是為了在網(wǎng)絡(luò)應(yīng)用環(huán)境間傳遞聲明而執(zhí)行的一種基于JSON的開放標(biāo)準(zhǔn)((RFC 7519).該token被設(shè)計(jì)為緊湊且安全的,特別適用于分布式站點(diǎn)的單點(diǎn)登錄(SSO)場景。JWT的聲明一般被用來在身份提供者和服務(wù)提供者間傳遞被認(rèn)證的用戶身份信息,以便于從資源服務(wù)器獲取資源,也可以增加一些額外的其它業(yè)務(wù)邏輯所必須的聲明信息,該token也可直接被用于認(rèn)證,也可被加密。
- HTTP Basic
- Basic Auth是開放平臺(tái)的兩種認(rèn)證方式,簡單點(diǎn)說明就是每次請(qǐng)求API時(shí)都提供用戶的username和password。
- OAuth
- OAuth為用戶資源的授權(quán)提供了一個(gè)安全、開放的標(biāo)準(zhǔn),將會(huì)是以后開發(fā)平臺(tái)普遍遵守的,目前Twitter、Sina微博、豆瓣、Google等都提供對(duì)它的支持。
- JWT
-
wget & curl Linux常用命令
- curl
- curl是利用URL語法在命令行方式下工作的開源文件傳輸工具。它被廣泛應(yīng)用在Unix、多種Linux發(fā)行版中,并且有DOS和Win32、Win64下的移植版本。
- wget
- wget 是一個(gè)從網(wǎng)絡(luò)上自動(dòng)下載文件的自由工具,支持通過 HTTP、HTTPS、FTP 三個(gè)最常見的 TCP/IP協(xié)議 下載,并可以使用 HTTP 代理。"wget" 這個(gè)名稱來源于 “World Wide Web” 與 “get” 的結(jié)合。
- curl
-
php-fpm ∈ FastCGI (通用網(wǎng)關(guān)接口) (php處理進(jìn)程的)
-
php-fpm
- PHP-FPM(FastCGI Process Manager:FastCGI進(jìn)程管理器)是一個(gè)PHPFastCGI管理器,對(duì)于PHP 5.3.3之前的php來說,是一個(gè)補(bǔ)丁包 [1] ,旨在將FastCGI進(jìn)程管理整合進(jìn)PHP包中。如果你使用的是PHP5.3.3之前的PHP的話,就必須將它patch到你的PHP源代碼中,在編譯安裝PHP后才可以使用。
相對(duì)Spawn-FCGI,PHP-FPM在CPU和內(nèi)存方面的控制都更勝一籌,而且前者很容易崩潰,必須用crontab進(jìn)行監(jiān)控,而PHP-FPM則沒有這種煩惱。
- PHP-FPM(FastCGI Process Manager:FastCGI進(jìn)程管理器)是一個(gè)PHPFastCGI管理器,對(duì)于PHP 5.3.3之前的php來說,是一個(gè)補(bǔ)丁包 [1] ,旨在將FastCGI進(jìn)程管理整合進(jìn)PHP包中。如果你使用的是PHP5.3.3之前的PHP的話,就必須將它patch到你的PHP源代碼中,在編譯安裝PHP后才可以使用。
-
FastCGI
- CGI全稱是“通用網(wǎng)關(guān)接口”(Common Gateway Interface),HTTP服務(wù)器與你的或其它機(jī)器上的程序進(jìn)行“交談”的一種工具,其程序一般運(yùn)行在網(wǎng)絡(luò)服務(wù)器上。 CGI可以用任何一種語言編寫,只要這種語言具有標(biāo)準(zhǔn)輸入、輸出和環(huán)境變量。如php,perl,tcl等。
- FastCGI像是一個(gè)常駐(long-live)型的CGI,它可以一直執(zhí)行著,只要激活后,不會(huì)每次都要花費(fèi)時(shí)間去fork一次(這是CGI最為人詬病的fork-and-execute 模式)。它還支持分布式的運(yùn)算, 即 FastCGI 程序可以在網(wǎng)站服務(wù)器以外的主機(jī)上執(zhí)行并且接受來自其它網(wǎng)站服務(wù)器來的請(qǐng)求。
FastCGI是語言無關(guān)的、可伸縮架構(gòu)的CGI開放擴(kuò)展,其主要行為是將CGI解釋器進(jìn)程保持在內(nèi)存中并因此獲得較高的性能。眾所周知,CGI解釋器的反復(fù)加載是CGI性能低下的主要原因,如果CGI解釋器保持在內(nèi)存中并接受FastCGI進(jìn)程管理器調(diào)度,則可以提供良好的性能、伸縮性、Fail- Over特性等等。
-
-
Ruby 面向?qū)ο笳Z言
- Ruby,一種簡單快捷的面向?qū)ο螅嫦驅(qū)ο蟪绦蛟O(shè)計(jì))腳本語言,在20世紀(jì)90年代由日本人松本行弘(Yukihiro Matsumoto)開發(fā),遵守GPL協(xié)議和Ruby License。它的靈感與特性來自于 Perl、Smalltalk、Eiffel、Ada以及 Lisp 語言。由 Ruby 語言本身還發(fā)展出了JRuby(Java平臺(tái))、IronRuby(.NET平臺(tái))等其他平臺(tái)的 Ruby 語言替代品。Ruby的作者于1993年2月24日開始編寫Ruby,直至1995年12月才正式公開發(fā)布于fj(新聞組)。因?yàn)镻erl發(fā)音與6月誕生石pearl(珍珠)相同,因此Ruby以7月誕生石ruby(紅寶石)命名。
-
perl 一門腳本語言
- Perl,一種功能豐富的計(jì)算機(jī)程序語言,運(yùn)行在超過100種計(jì)算機(jī)平臺(tái)上,適用廣泛,從大型機(jī)到便攜設(shè)備,從快速原型創(chuàng)建到大規(guī)模可擴(kuò)展開發(fā)。 [1]
Perl最初的設(shè)計(jì)者為拉里·沃爾(Larry Wall),于1987年12月18日發(fā)表。現(xiàn)在的版本為Perl 6,于2015年12月25日更新。
Perl借取了C、sed、awk、shell 腳本語言以及很多其他程序語言的特性,其中最重要的特性是它內(nèi)部集成了正則表達(dá)式的功能,以及巨大的第三方代碼庫CPAN。簡而言之,Perl像C一樣強(qiáng)大,像awk、sed等腳本描述語言一樣方便,被Perl語言愛好者稱之為“一種擁有各種語言功能的夢幻腳本語言”、“Unix 中的王牌工具”。
Perl 一般被稱為“實(shí)用報(bào)表提取語言”(Practical Extraction and Report Language),你也可能看到“perl”,所有的字母都是小寫的。一般,“Perl”,有大寫的 P,是指語言本身,而“perl”,小寫的 p,是指程序運(yùn)行的解釋器。
- Perl,一種功能豐富的計(jì)算機(jī)程序語言,運(yùn)行在超過100種計(jì)算機(jī)平臺(tái)上,適用廣泛,從大型機(jī)到便攜設(shè)備,從快速原型創(chuàng)建到大規(guī)模可擴(kuò)展開發(fā)。 [1]
-
Java SE /EE /ME (java語言分類)
- Java SE=Java Standard Edition
Java EE=Java Enterprise Edition
Java ME=Java Mobile Edition
SE主要用于桌面程序,控制臺(tái)開發(fā)(JFC)
EE企業(yè)級(jí)開發(fā)(JSP,EJB)
ME嵌入式開發(fā)(手機(jī),小家電) - Java SE=Java Standard Edition
-
less & sass CSS擴(kuò)展語言
- less
- Less 是一門 CSS 預(yù)處理語言,它擴(kuò)充了 CSS 語言,增加了諸如變量、混合(mixin)、函數(shù)等功能,讓 CSS 更易維護(hù)、方便制作主題、擴(kuò)充。Less 可以運(yùn)行在 Node 或?yàn)g覽器端。
- sass
Sass 擴(kuò)展了 CSS3,增加了規(guī)則、變量、混入、選擇器、繼承等等特性。Sass 生成良好格式化的 CSS 代碼,易于組織和維護(hù)。
SASS是對(duì)CSS3(層疊樣式表)的語法的一種擴(kuò)充,它可以使用巢狀、混入、選擇子繼承等功能,可以更有效有彈性的寫出Stylesheet。Sass最后還是會(huì)編譯出合法的CSS讓瀏覽可以使用,也就是說它本身的語法并不太容易讓瀏覽器識(shí)別(雖然它和CSS的語法非常的像,幾乎一樣),因?yàn)樗皇菢?biāo)準(zhǔn)的CSS格式,在它的語法內(nèi)部可以使用動(dòng)態(tài)變量等,所以它更像一種極簡單的動(dòng)態(tài)語言。SASS是Ruby語言寫的,但是兩者的語法沒有關(guān)系。不懂Ruby,照樣使用。只是必須先安裝Ruby,然后再安裝SASS。
假定你已經(jīng)安裝好了Ruby,接著在命令行輸入下面的命令:
gem install sass
然后,就可以使用了。
- less
-
JSP (java服務(wù)器頁面)
- JSP全名為Java Server Pages,中文名叫java服務(wù)器頁面,其根本是一個(gè)簡化的Servlet設(shè)計(jì),它 [1] 是由Sun Microsystems公司倡導(dǎo)、許多公司參與一起建立的一種動(dòng)態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn)。JSP技術(shù)有點(diǎn)類似ASP技術(shù),它是在傳統(tǒng)的網(wǎng)頁HTML(標(biāo)準(zhǔn)通用標(biāo)記語言的子集)文件(.htm,.html)中插入Java程序段(Scriptlet)和JSP標(biāo)記(tag),從而形成JSP文件,后綴名為(*.jsp)。 用JSP開發(fā)的Web應(yīng)用是跨平臺(tái)的,既能在Linux下運(yùn)行,也能在其他操作系統(tǒng)上運(yùn)行。
它實(shí)現(xiàn)了Html語法中的java擴(kuò)展(以 <%, %>形式)。JSP與Servlet一樣,是在服務(wù)器端執(zhí)行的。通常返回給客戶端的就是一個(gè)HTML文本,因此客戶端只要有瀏覽器就能瀏覽。
JSP技術(shù)使用Java編程語言編寫類XML的tags和scriptlets,來封裝產(chǎn)生動(dòng)態(tài)網(wǎng)頁的處理邏輯。網(wǎng)頁還能通過tags和scriptlets訪問存在于服務(wù)端的資源的應(yīng)用邏輯。JSP將網(wǎng)頁邏輯與網(wǎng)頁設(shè)計(jì)的顯示分離,支持可重用的基于組件的設(shè)計(jì),使基于Web的應(yīng)用程序的開發(fā)變得迅速和容易。 JSP(JavaServer Pages)是一種動(dòng)態(tài)頁面技術(shù),它的主要目的是將表示邏輯從Servlet中分離出來。
Java Servlet是JSP的技術(shù)基礎(chǔ),而且大型的Web應(yīng)用程序的開發(fā)需要Java Servlet和JSP配合才能完成。JSP具備了Java技術(shù)的簡單易用,完全的面向?qū)ο螅哂衅脚_(tái)無關(guān)性且安全可靠,主要面向因特網(wǎng)的所有特點(diǎn)。
- JSP全名為Java Server Pages,中文名叫java服務(wù)器頁面,其根本是一個(gè)簡化的Servlet設(shè)計(jì),它 [1] 是由Sun Microsystems公司倡導(dǎo)、許多公司參與一起建立的一種動(dòng)態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn)。JSP技術(shù)有點(diǎn)類似ASP技術(shù),它是在傳統(tǒng)的網(wǎng)頁HTML(標(biāo)準(zhǔn)通用標(biāo)記語言的子集)文件(.htm,.html)中插入Java程序段(Scriptlet)和JSP標(biāo)記(tag),從而形成JSP文件,后綴名為(*.jsp)。 用JSP開發(fā)的Web應(yīng)用是跨平臺(tái)的,既能在Linux下運(yùn)行,也能在其他操作系統(tǒng)上運(yùn)行。
-
ES6 / CoffeScript / TypeScript 轉(zhuǎn)譯語言
- ES6
- ES6是ECMAScript標(biāo)準(zhǔn)十余年來變動(dòng)最大的一個(gè)版本,其中添加了許多新的語法特性,既有大家耳熟能詳?shù)腜romise,也有聞所未聞的Proxy代理和Reflection反射;既有可以通過轉(zhuǎn)譯器(Transpiler)等方式在舊版本瀏覽器中實(shí)現(xiàn)兼容的let、const、不定參數(shù)、展開運(yùn)算符等功能,亦有無論如何都無法實(shí)現(xiàn)向前兼容的尾調(diào)用優(yōu)化。深入理解ES6的特性對(duì)于所有JavaScript開發(fā)者而言至關(guān)重要,在可預(yù)見的未來,ES6中引入的語言特性會(huì)成為JavaScript應(yīng)用程序的主流特性
- coffeScript
- CoffeeScript是一套JavaScript的轉(zhuǎn)譯語言,創(chuàng)建者 Jeremy Ashkenas 戲稱它是- JavaScript 的不那么鋪張的小兄弟。因?yàn)?CoffeeScript 會(huì)將類似 Ruby 語法的代碼編譯成 JavaScript,而且大部分結(jié)構(gòu)都相似,但不同的是 CoffeeScript 擁有更嚴(yán)格的語法。
- TypeScript
- 是一種由微軟開發(fā)的自由和開源的編程語言。它是JavaScript的一個(gè)超集,而且本質(zhì)上向這個(gè)語言添加了可選的靜態(tài)類型和基于類的面向?qū)ο缶幊獭0驳滤埂ず査共瘢珻#的首席架構(gòu)師,已工作于TypeScript的開發(fā)。2012年十月份,微軟發(fā)布了首個(gè)公開版本的TypeScript,2013年6月19日,在經(jīng)歷了一個(gè)預(yù)覽版之后微軟正式發(fā)布了正式版TypeScript 0.9,向未來的TypeScript 1.0版邁進(jìn)了很大一步。
- ES6
-
YAML語言
- YAML是“YAML不是一種記語言”的外語縮寫 [1] (見前方參考資料原文內(nèi)容);但為了強(qiáng)調(diào)這種語言以數(shù)據(jù)做為中心,而不是以置標(biāo)語言為重點(diǎn),而用返璞詞重新命名。它是一種直觀的能夠被電腦識(shí)別的數(shù)據(jù)序列化格式,是一個(gè)可讀性高并且容易被人類閱讀,容易和腳本語言交互,用來表達(dá)資料序列的編程語言。
它是類似于標(biāo)準(zhǔn)通用標(biāo)記語言的子集XML的數(shù)據(jù)描述語言,語法比XML簡單很多。 - 使用場景
腳本語言
由于實(shí)現(xiàn)簡單,解析成本很低,YAML特別適合在腳本語言中使用。列一下現(xiàn)有的語言實(shí)現(xiàn):Ruby,Java,Perl,Python,PHP,OCaml,JavaScript,Go 除了Java 和 Go,其他都是腳本語言。配置文件
YAML做配置文件也不錯(cuò)。寫YAML要比寫XML快得多(無需關(guān)注標(biāo)簽或引號(hào)),并且比ini文檔功能更強(qiáng)。
比如Ruby on Rails的配置就選用的YAML。對(duì)ROR而言,這很自然,也很省事.
由于兼容性問題,不同語言間的數(shù)據(jù)流轉(zhuǎn)建議不要用YAML.序列化
YAML比較適合做序列化。因?yàn)樗撬拗髡Z言數(shù)據(jù)類型直轉(zhuǎn)的。
- YAML是“YAML不是一種記語言”的外語縮寫 [1] (見前方參考資料原文內(nèi)容);但為了強(qiáng)調(diào)這種語言以數(shù)據(jù)做為中心,而不是以置標(biāo)語言為重點(diǎn),而用返璞詞重新命名。它是一種直觀的能夠被電腦識(shí)別的數(shù)據(jù)序列化格式,是一個(gè)可讀性高并且容易被人類閱讀,容易和腳本語言交互,用來表達(dá)資料序列的編程語言。
-
DOM (網(wǎng)頁文檔對(duì)象)
- 文檔對(duì)象模型(Document Object Model,簡稱DOM),是W3C組織推薦的處理可擴(kuò)展標(biāo)志語言的標(biāo)準(zhǔn)編程接口。在網(wǎng)頁上,組織頁面(或文檔)的對(duì)象被組織在一個(gè)樹形結(jié)構(gòu)中,用來表示文檔中對(duì)象的標(biāo)準(zhǔn)模型就稱為DOM。Document Object Model的歷史可以追溯至1990年代后期微軟與Netscape的“瀏覽器大戰(zhàn)”,雙方為了在JavaScript與JScript一決生死,于是大規(guī)模的賦予瀏覽器強(qiáng)大的功能。微軟在網(wǎng)頁技術(shù)上加入了不少專屬事物,既有VBScript、ActiveX、以及微軟自家的DHTML格式等,使不少網(wǎng)頁使用非微軟平臺(tái)及瀏覽器無法正常顯示。DOM即是當(dāng)時(shí)蘊(yùn)釀出來的杰作。
-
ajax 前端處理方式
- Ajax 即“Asynchronous Javascript And XML”(異步 JavaScript 和 XML),是指一種創(chuàng)建交互式網(wǎng)頁應(yīng)用的網(wǎng)頁開發(fā)技術(shù)。
Ajax = 異步 JavaScript 和 XML(標(biāo)準(zhǔn)通用標(biāo)記語言的子集)。
Ajax 是一種用于創(chuàng)建快速動(dòng)態(tài)網(wǎng)頁的技術(shù)。
Ajax 是一種在無需重新加載整個(gè)網(wǎng)頁的情況下,能夠更新部分網(wǎng)頁的技術(shù)
XMLHttpRequest 是 AJAX 的基礎(chǔ)。
XmlHttpRequest 術(shù)語縮寫為XHR,中文可以解釋為可擴(kuò)展超文本傳輸請(qǐng)求。XMLHttpRequest 對(duì)象可以在不向服務(wù)器提交整個(gè)頁面的情況下,實(shí)現(xiàn)局部更新網(wǎng)頁。
- 簡單來說就是網(wǎng)絡(luò)請(qǐng)求,然后響應(yīng)以后使用JavaScript操作DOM
- Ajax 即“Asynchronous Javascript And XML”(異步 JavaScript 和 XML),是指一種創(chuàng)建交互式網(wǎng)頁應(yīng)用的網(wǎng)頁開發(fā)技術(shù)。
-
數(shù)據(jù)格式(如JSON、XML)
- JSON (輕量級(jí)的數(shù)據(jù)交換格式)
- JSON(JavaScript Object Notation, JS 對(duì)象標(biāo)記) 是一種輕量級(jí)的數(shù)據(jù)交換格式。它基于 ECMAScript (w3c制定的js規(guī)范)的一個(gè)子集,采用完全獨(dú)立于編程語言的文本格式來存儲(chǔ)和表示數(shù)據(jù)。簡潔和清晰的層次結(jié)構(gòu)使得 JSON 成為理想的數(shù)據(jù)交換語言。 易于人閱讀和編寫,同時(shí)也易于機(jī)器解析和生成,并有效地提升網(wǎng)絡(luò)傳輸效率。
- XML (工作幾乎不用)
- 可擴(kuò)展標(biāo)記語言,標(biāo)準(zhǔn)通用標(biāo)記語言的子集,是一種用于標(biāo)記電子文件使其具有結(jié)構(gòu)性的標(biāo)記語言。
在電子計(jì)算機(jī)中,標(biāo)記指計(jì)算機(jī)所能理解的信息符號(hào),通過此種標(biāo)記,計(jì)算機(jī)之間可以處理包含各種的信息比如文章等。它可以用來標(biāo)記數(shù)據(jù)、定義數(shù)據(jù)類型,是一種允許用戶對(duì)自己的標(biāo)記語言進(jìn)行定義的源語言。 它非常適合萬維網(wǎng)傳輸,提供統(tǒng)一的方法來描述和交換獨(dú)立于應(yīng)用程序或供應(yīng)商的結(jié)構(gòu)化數(shù)據(jù)。是Internet環(huán)境中跨平臺(tái)的、依賴于內(nèi)容的技術(shù),也是當(dāng)今處理分布式結(jié)構(gòu)信息的有效工具。早在1998年,W3C就發(fā)布了XML1.0規(guī)范,使用它來簡化Internet的文檔信息傳輸。
- 可擴(kuò)展標(biāo)記語言,標(biāo)準(zhǔn)通用標(biāo)記語言的子集,是一種用于標(biāo)記電子文件使其具有結(jié)構(gòu)性的標(biāo)記語言。
- JSON (輕量級(jí)的數(shù)據(jù)交換格式)
-
構(gòu)建系統(tǒng)(gulp、grunt、webpack等等)
- gulp & grunt (前端構(gòu)建工具) & npm (NodeJS包管理和分發(fā)工具)
- npm
- NPM的全稱是Node Package Manager ,是一個(gè)NodeJS包管理和分發(fā)工具,已經(jīng)成為了非官方的發(fā)布Node模塊(包)的標(biāo)準(zhǔn)。
如果你熟悉ruby的gem,Python的pypi、setuptools,PHP的pear,那么你就知道NPM的作用是什么了。
Nodejs自身提供了基本的模塊,但是開發(fā)實(shí)際應(yīng)用過程中僅僅依靠這些基本模塊則還需要較多的工作。幸運(yùn)的是,Nodejs庫和框架為我們提供了幫助,讓我們減少工作量。但是成百上千的庫或者框架管理起來又很麻煩,有了NPM,可以很快的找到特定服務(wù)要使用的包,進(jìn)行下載、安裝以及管理已經(jīng)安裝的包。
- NPM的全稱是Node Package Manager ,是一個(gè)NodeJS包管理和分發(fā)工具,已經(jīng)成為了非官方的發(fā)布Node模塊(包)的標(biāo)準(zhǔn)。
- gulp
- Gulp基于Node.js的前端構(gòu)建工具,通過Gulp的插件可以實(shí)現(xiàn)前端代碼的編譯(sass、less)、壓縮、測試;圖片的壓縮;瀏覽器自動(dòng)刷新,還有許多強(qiáng)大的插件可以在這里查找。比起Grunt不僅配置簡單而且更容易閱讀和維護(hù)
- grunt
- Grunt基于Node.js,安裝之前要先安裝Node.js。
- 例如壓縮、編譯、單元測試、代碼檢查等,自動(dòng)化工具可以減輕你的勞動(dòng),簡化你的工作。
- npm
- gulp & grunt (前端構(gòu)建工具) & npm (NodeJS包管理和分發(fā)工具)
-
代碼質(zhì)量(如JSLint / ESLint / TSLint / CSLint)
- JSLint & CSSLint & TSLint (靜態(tài)代碼分析) &CodeClimate(代碼質(zhì)量分析) (工程化)
- JSLint
- JSLint定義了一組編碼約定,這比ECMA定義的語言更為嚴(yán)格。這些編碼約定汲取了多年來的豐富編碼經(jīng)驗(yàn),并以一條年代久遠(yuǎn)的編程原則 作為宗旨:能做并不意味著應(yīng)該做。JSLint會(huì)對(duì)它認(rèn)為有的編碼實(shí)踐加標(biāo)志,另外還會(huì)指出哪些是明顯的錯(cuò)誤,從而促使你養(yǎng)成好的 JavaScript編碼習(xí)慣。
- CSSLint
- TSLint
- JSLint
- JSLint & CSSLint & TSLint (靜態(tài)代碼分析) &CodeClimate(代碼質(zhì)量分析) (工程化)
-
安全性(如跨域)
- 跨域一詞從字面意思看,就是跨域名嘛,但實(shí)際上跨域的范圍絕對(duì)不止那么狹隘。具體概念如下:只要協(xié)議、域名、端口有任何一個(gè)不同,都被當(dāng)作是不同的域。之所以會(huì)產(chǎn)生跨域這個(gè)問題呢,其實(shí)也很容易想明白,要是隨便引用外部文件,不同標(biāo)簽下的頁面引用類似的彼此的文件,瀏覽器很容易懵逼的,安全也得不到保障了就。什么事,都是安全第一嘛。但在安全限制的同時(shí)也給注入iframe或是ajax應(yīng)用上帶來了不少麻煩。所以我們要通過一些方法使本域的js能夠操作其他域的頁面對(duì)象或者使其他域的js能操作本域的頁面對(duì)象(iframe之間)。
-
網(wǎng)頁設(shè)計(jì)
- 切頁面
- Flexbox布局
- 網(wǎng)格布局(Grid Layout)
- 響應(yīng)式設(shè)計(jì)
- 線框圖(Wireframe)
- 矢量圖形 / 矢量圖形動(dòng)畫(如SVG)
- 可縮放矢量圖形是基于可擴(kuò)展標(biāo)記語言(標(biāo)準(zhǔn)通用標(biāo)記語言的子集),用于描述二維矢量圖形的一種圖形格式。它由萬維網(wǎng)聯(lián)盟制定,是一個(gè)開放標(biāo)準(zhǔn)。
-
常用前端三駕馬車 react、vuejs、angularjs jQuery工具庫
-
Node.js Javascript運(yùn)行環(huán)境(runtime)
- Node.js是一個(gè)Javascript運(yùn)行環(huán)境(runtime),發(fā)布于2009年5月,由Ryan Dahl開發(fā),實(shí)質(zhì)是對(duì)Chrome V8引擎進(jìn)行了封裝。Node.js對(duì)一些特殊用例進(jìn)行優(yōu)化,提供替代的API,使得V8在非瀏覽器環(huán)境下運(yùn)行得更好。
V8引擎執(zhí)行Javascript的速度非常快,性能非常好。 [1] Node.js是一個(gè)基于Chrome JavaScript運(yùn)行時(shí)建立的平臺(tái), 用于方便地搭建響應(yīng)速度快、易于擴(kuò)展的網(wǎng)絡(luò)應(yīng)用。Node.js 使用事件驅(qū)動(dòng), 非阻塞I/O 模型而得以輕量和高效,非常適合在分布式設(shè)備上運(yùn)行數(shù)據(jù)密集型的實(shí)時(shí)應(yīng)用。
- Node.js是一個(gè)Javascript運(yùn)行環(huán)境(runtime),發(fā)布于2009年5月,由Ryan Dahl開發(fā),實(shí)質(zhì)是對(duì)Chrome V8引擎進(jìn)行了封裝。Node.js對(duì)一些特殊用例進(jìn)行優(yōu)化,提供替代的API,使得V8在非瀏覽器環(huán)境下運(yùn)行得更好。
-
jQuery JS框架
- jQuery是一個(gè)快速、簡潔的JavaScript框架,是繼Prototype之后又一個(gè)優(yōu)秀的JavaScript代碼庫(或JavaScript框架)。jQuery設(shè)計(jì)的宗旨是“write Less,Do More”,即倡導(dǎo)寫更少的代碼,做更多的事情。它封裝JavaScript常用的功能代碼,提供一種簡便的JavaScript設(shè)計(jì)模式,優(yōu)化HTML文檔操作、事件處理、動(dòng)畫設(shè)計(jì)和Ajax交互。
-
React (Facebook內(nèi)部項(xiàng)目)
- React 起源于 Facebook 的內(nèi)部項(xiàng)目,因?yàn)樵摴緦?duì)市場上所有 JavaScript MVC 框架,都不滿意,就決定自己寫一套,用來架設(shè)Instagram 的網(wǎng)站。做出來以后,發(fā)現(xiàn)這套東西很好用,就在2013年5月開源了。
- React主要用于構(gòu)建UI。你可以在React里傳遞多種類型的參數(shù),如聲明代碼,幫助你渲染出UI、也可以是靜態(tài)的HTML DOM元素、也可以傳遞動(dòng)態(tài)變量、甚至是可交互的應(yīng)用組件。
-
AngularJS
- AngularJS [1] 誕生于2009年,由Misko Hevery 等人創(chuàng)建,后為Google所收購。是一款優(yōu)秀的前端JS框架,已經(jīng)被用于Google的多款產(chǎn)品當(dāng)中。AngularJS有著諸多特性,最為核心的是:MVW(Model-View-Whatever)、模塊化、自動(dòng)化雙向數(shù)據(jù)綁定、語義化標(biāo)簽、依賴注入等等。
AngularJS 是一個(gè) JavaScript框架。它是一個(gè)以 JavaScript 編寫的庫。它可通過 <script> 標(biāo)簽添加到HTML 頁面。
AngularJS 通過 指令 擴(kuò)展了 HTML,且通過 表達(dá)式 綁定數(shù)據(jù)到 HTML。
AngularJS 是以一個(gè) JavaScript 文件形式發(fā)布的,可通過 script 標(biāo)簽添加到網(wǎng)頁中。
- AngularJS [1] 誕生于2009年,由Misko Hevery 等人創(chuàng)建,后為Google所收購。是一款優(yōu)秀的前端JS框架,已經(jīng)被用于Google的多款產(chǎn)品當(dāng)中。AngularJS有著諸多特性,最為核心的是:MVW(Model-View-Whatever)、模塊化、自動(dòng)化雙向數(shù)據(jù)綁定、語義化標(biāo)簽、依賴注入等等。
-
-
bootstrap 前端框架
Bootstrap,來自 Twitter,是目前很受歡迎的前端框架。Bootstrap 是基于 HTML、CSS、JavaScript 的,它簡潔靈活,使得 Web 開發(fā)更加快捷。 [1] 它由Twitter的設(shè)計(jì)師Mark Otto和Jacob Thornton合作開發(fā),是一個(gè)CSS/HTML框架。Bootstrap提供了優(yōu)雅的HTML和CSS規(guī)范,它即是由動(dòng)態(tài)CSS語言Less寫成。Bootstrap一經(jīng)推出后頗受歡迎,一直是GitHub上的熱門開源項(xiàng)目,包括NASA的MSNBC(微軟全國廣播公司)的Breaking News都使用了該項(xiàng)目。 [2] 國內(nèi)一些移動(dòng)開發(fā)者較為熟悉的框架,如WeX5前端開源框架等,也是基于Bootstrap源碼進(jìn)行性能優(yōu)化而來。
-
在2017年8月下旬,Bootstrap四周歲之際,Bootstrap團(tuán)隊(duì)發(fā)布了Bootstrap 4 alpha版,4的最主要變化包括以下方面:
從 Less 遷移到 Sass改進(jìn)網(wǎng)格系統(tǒng) 缺省彈性框支持 Dropped wells, thumbnails, and panels for cards 合并所有 HTML resets 到一個(gè)新的模塊中:Reboot 全新自定義選項(xiàng) 不再支持 IE8 重寫所有的 JavaScript 插件 改進(jìn)工具提示和 popovers 的自動(dòng)定位 改進(jìn)文檔 其他大量改進(jìn)
-
WeX5 多端部署工具
- WeX5遵循Apache開源協(xié)議,完全開源免費(fèi),上百個(gè)組件框架,全部開放,可視化的組件框架,開發(fā)者可自定義組件,集成第三方組件,采用MVC設(shè)計(jì)模式,數(shù)據(jù)和視圖分離,頁面描述和代碼邏輯分離,支持瀏覽器調(diào)試、真機(jī)調(diào)試、原生調(diào)試,等多種調(diào)試模式,開發(fā)者可掌握每一行代碼。
WeX5一直堅(jiān)持采用H5+CSS3+JS標(biāo)準(zhǔn)技術(shù),一次開發(fā),多端任意部署,確保開發(fā)者成果始終通用、不受限制。WeX5的混合應(yīng)用開發(fā)模式能輕松調(diào)用手機(jī)設(shè)備,如相機(jī)、地圖、通訊錄等,讓開發(fā)者輕松應(yīng)對(duì)各類復(fù)雜數(shù)據(jù)應(yīng)用,代碼量減少80%。同時(shí)開發(fā)出的應(yīng)用能夠媲美原生的運(yùn)行體驗(yàn)。
- WeX5遵循Apache開源協(xié)議,完全開源免費(fèi),上百個(gè)組件框架,全部開放,可視化的組件框架,開發(fā)者可自定義組件,集成第三方組件,采用MVC設(shè)計(jì)模式,數(shù)據(jù)和視圖分離,頁面描述和代碼邏輯分離,支持瀏覽器調(diào)試、真機(jī)調(diào)試、原生調(diào)試,等多種調(diào)試模式,開發(fā)者可掌握每一行代碼。
express & koa (nodeJS框架)
-
swig (nodejs前端模板引擎)
-
技能
CSS / CSS3 動(dòng)畫
能封裝業(yè)務(wù)組件和公用組件.
JavaScript 動(dòng)畫
Web字體嵌入
Icon 字體
圖形和圖表
CSS / SVG Sprite(如glue)
DOM操作(如jQuery、React等等)
-
模板引擎(如JSX、Handlebars、JSP、Mustache等等)
-
JSX
- JSX是陣營的核心組成部分,它使用XML標(biāo)記的方式去直接聲明界面,界面組件之間可以互相嵌套。可以理解為在JS中編寫與XML類似的語言,一種定義帶屬性樹結(jié)構(gòu)(DOM結(jié)構(gòu))的語法,它的目的不是要在瀏覽器或者引擎中實(shí)現(xiàn),它的目的是通過各種編譯器將這些標(biāo)記編譯成標(biāo)準(zhǔn)的JS語言。
-
JSP
- JSP技術(shù)使用Java編程語言編寫類XML的tags和scriptlets,來封裝產(chǎn)生動(dòng)態(tài)網(wǎng)頁的處理邏輯。網(wǎng)頁還能通過tags和scriptlets訪問存在于服務(wù)端的資源的應(yīng)用邏輯。JSP將網(wǎng)頁邏輯與網(wǎng)頁設(shè)計(jì)的顯示分離,支持可重用的基于組件的設(shè)計(jì),使基于Web的應(yīng)用程序的開發(fā)變得迅速和容易。 JSP(JavaServer Pages)是一種動(dòng)態(tài)頁面技術(shù),它的主要目的是將表示邏輯從Servlet中分離出來。
-
Handlebars
- Handlebars 是 JavaScript 一個(gè)語義模板庫,通過對(duì)view和data的分離來快速構(gòu)建Web模板。它采用"Logic-less template"(無邏輯模版)的思路,在加載時(shí)被預(yù)編譯,而不是到了客戶端執(zhí)行到代碼時(shí)再去編譯, 這樣可以保證模板加載和運(yùn)行的速度。Handlebars兼容Mustache,你可以在Handlebars中導(dǎo)入Mustache模板。
-
-
調(diào)試
- 瀏覽器調(diào)試
- Debug工具
- Wireshark / Charles抓包
- 遠(yuǎn)程設(shè)備調(diào)試(如Chrome Inspect Devices)
- 單元測試
- 服務(wù)測試
- UI測試
- 集成測試
版本管理(如git、svn)
PHP頁面跳轉(zhuǎn)、端口監(jiān)聽
依賴管理
包管理(如npm、bower)
-
模塊化(如CommonJS、WebPack)
-
commonJS
- CommonJS API定義很多普通應(yīng)用程序(主要指非瀏覽器的應(yīng)用)使用的API,從而填補(bǔ)了這個(gè)空白。它的終極目標(biāo)是提供一個(gè)類似Python,Ruby和Java標(biāo) 準(zhǔn)庫。這樣的話,開發(fā)者可以使用CommonJS API編寫應(yīng)用程序,然后這些應(yīng)用可以運(yùn)行在不同的JavaScript解釋器和不同的主機(jī)環(huán)境中。在兼容CommonJS的系統(tǒng)中,你可以使用 JavaScript程序開發(fā)
-
WebPack
- WebPack可以看做是模塊打包機(jī):它做的事情是,分析你的項(xiàng)目結(jié)構(gòu),找到JavaScript模塊以及其它的一些瀏覽器不能直接運(yùn)行的拓展語言(Scss,TypeScript等),并將其轉(zhuǎn)換和打包為合適的格式供瀏覽器使用。
- 其實(shí)Webpack和另外兩個(gè)并沒有太多的可比性,Gulp/Grunt是一種能夠優(yōu)化前端的開發(fā)流程的工具,而WebPack是一種模塊化的解決方案,不過Webpack的優(yōu)點(diǎn)使得Webpack在很多場景下可以替代Gulp/Grunt類的工具。
Grunt和Gulp的工作方式是:在一個(gè)配置文件中,指明對(duì)某些文件進(jìn)行類似編譯,組合,壓縮等任務(wù)的具體步驟,工具之后可以自動(dòng)替你完成這些任務(wù)。
Grunt和Gulp的工作流程
Webpack的工作方式是:把你的項(xiàng)目當(dāng)做一個(gè)整體,通過一個(gè)給定的主文件(如:index.js),Webpack將從這個(gè)文件開始找到你的項(xiàng)目的所有依賴文件,使用loaders處理它們,最后打包為一個(gè)(或多個(gè))瀏覽器可識(shí)別的JavaScript文件。- Webpack的工作方式是:把你的項(xiàng)目當(dāng)做一個(gè)整體,通過一個(gè)給定的主文件(如:index.js),Webpack將從這個(gè)文件開始找到你的項(xiàng)目的所有依賴文件,使用loaders處理它們,最后打包為一個(gè)(或多個(gè))瀏覽器可識(shí)別的JavaScript文件。
-
自動(dòng)構(gòu)建(腳本)
前端工程化開發(fā)測試 打包 發(fā)布
前端性能優(yōu)化.
在技術(shù)選型上,能給出你選擇的方案是最優(yōu)的數(shù)據(jù)說明
-
兼容性
- 跨瀏覽器測試 (Chrome,IE,F(xiàn)irefox,Safari等等)
- 跨平臺(tái)測試(Windows、GNU/Linux,Mac OS等等)
- 跨設(shè)備測試(Desktop,Android,iOS,Windows Phone)
- 跨版本測試(同一個(gè)瀏覽器的不同版本)
-
正規(guī)表達(dá)式
- 正規(guī)表達(dá)式由一個(gè)或多個(gè)字符型文字和/或元字符組成。在最簡單的格式下,正規(guī)表達(dá)式僅由字符文字組成,如正規(guī)表達(dá)式 cat。它被讀作字母 c,接著是字母 a 和 t,這種模式匹配 cat、location 和 catalog 之類的字符串。可以用它們驗(yàn)證數(shù)據(jù)、識(shí)別重復(fù)關(guān)鍵字的出現(xiàn)、檢測不必要的空格、分析字符串、驗(yàn)證電話號(hào)碼、郵政編碼、電子郵件地址、社會(huì)安全號(hào)碼、IP 地址、文件名和路徑名等的格式,也可以查找如 HTML 標(biāo)記、數(shù)字、日期之類的模式,或任意文本數(shù)據(jù)中符合任意模式的任何事物,并用其它的模式來替換它們。
-
性能與優(yōu)化
- 可用性
- 性能測試(特別是移動(dòng)Web
- 加載優(yōu)化(如gzip壓縮、緩存等等
- PageSpeed / Yslow 優(yōu)化
- Page Speed最 初是Google內(nèi)部使用的改進(jìn)網(wǎng)頁設(shè)計(jì)的工具——它整合在Firefox的著名插件Firebug中。當(dāng)用戶運(yùn)行Page Speed,可以立即獲得如何改進(jìn)網(wǎng)頁載入速度的建議。
- 壓縮(如Minify、Uglify、CleanCSS等等)
- CleanCSS是一個(gè)免費(fèi)的CSS精簡壓縮工具,通過這個(gè)在線工具,可以將你的CSS文件壓縮、優(yōu)化成更精簡,這將大大提高你的網(wǎng)站的載入速度。
-
SEO
- SEO
- SEO(Search Engine Optimization):漢譯為搜索引擎優(yōu)化。搜索引擎優(yōu)化是一種利用搜索引擎的搜索規(guī)則來提高目前網(wǎng)站在有關(guān)搜索引擎內(nèi)的自然排名的方式。SEO的目的理解是:為網(wǎng)站提供生態(tài)式的自我營銷解決方案,讓網(wǎng)站在行業(yè)內(nèi)占據(jù)領(lǐng)先地位,從而獲得品牌收益;SEO包含站外SEO和站內(nèi)SEO兩方面;SEO是指為了從搜索引擎中獲得更多的免費(fèi)流量,從網(wǎng)站結(jié)構(gòu)、內(nèi)容建設(shè)方案、用戶互動(dòng)傳播、頁面等角度進(jìn)行合理規(guī)劃,使網(wǎng)站更適合搜索引擎的索引原則的行為;使網(wǎng)站更適合搜索引擎的索引原則又被稱為對(duì)搜索引擎優(yōu)化,對(duì)搜索引擎優(yōu)化不僅能夠提高SEO的效果,還會(huì)使搜索引擎中顯示的網(wǎng)站相關(guān)信息對(duì)用戶來說更具有吸引力。
- Sitemap(站點(diǎn)地圖)
- Sitemap 可方便網(wǎng)站管理員通知搜索引擎他們網(wǎng)站上有哪些可供抓取的網(wǎng)頁。最簡單的 Sitemap 形式,就是XML 文件,在其中列出網(wǎng)站中的網(wǎng)址以及關(guān)于每個(gè)網(wǎng)址的其他元數(shù)據(jù)(上次更新的時(shí)間、更改的頻率以及相對(duì)于網(wǎng)站上其他網(wǎng)址的重要程度為何等),以便搜索引擎可以更加智能地抓取網(wǎng)站。
- 頁面靜態(tài)內(nèi)容生成
- 靜態(tài)頁面,即靜態(tài)網(wǎng)頁,是實(shí)際存在的,無需經(jīng)過服務(wù)器的編譯,直接加載到客戶瀏覽器上顯示出來。靜態(tài)頁面需要占一定的服務(wù)器空間,且不能自主管理發(fā)布更新的頁面,如果想更新網(wǎng)頁內(nèi)容,要通過FTP軟件把文件DOWN下來用網(wǎng)頁制作軟件修改(通過fso等技術(shù)例外)。常見的靜態(tài)頁面舉例:.html擴(kuò)展名的、.htm擴(kuò)展名的。
- MicroData / MicroFormat
- MicroData
- Microdata 以自定義的詞匯表(vocabulary)為中心,可以想象 HTML5 中所有的元素集合為一個(gè)詞匯表,這個(gè)詞匯表包含描述段落(section) 或文章(article)的元素,但是不包含描述事件(event) 或組織(organization)的元素。如果想在 Web 頁面中表示一個(gè)事件或組織,則需要定義自己的詞匯表,Microdata 允許你這么做,任何人都可以定義自己的詞匯表,并且將其包含在自己的 Web 頁面中。
- MicroFormat
- 微格式(Microformat),是通過語意相關(guān)讓內(nèi)容人機(jī)可讀。網(wǎng)頁上的允許的微格式數(shù)據(jù)包括事件、人物、地點(diǎn)等,它可以被其他的軟件檢測到,并提取出相應(yīng)的信息,以及對(duì)信息進(jìn)行索引、搜索、跨平臺(tái)的參考,把這些信息以其他形式重復(fù)使用或組合。
- MicroData
- 內(nèi)部鏈接建設(shè)
- SEO
面向?qū)ο?& 面向過程
-
Laravel (PHP框架)
- Laravel是一套簡潔、優(yōu)雅的PHP Web開發(fā)框架(PHP Web Framework)。它可以讓你從面條一樣雜亂的代碼中解脫出來;它可以幫你構(gòu)建一個(gè)完美的網(wǎng)絡(luò)APP,而且每行代碼都可以簡潔、富于表達(dá)力。
在Laravel中已經(jīng)具有了一套高級(jí)的PHP ActiveRecord實(shí)現(xiàn) -- Eloquent ORM。它能方便的將“約束(constraints)”應(yīng)用到關(guān)系的雙方,這樣你就具有了對(duì)數(shù)據(jù)的完全控制,而且享受到ActiveRecord的所有便利。Eloquent原生支持Fluent中查詢構(gòu)造器(query-builder)的所有方法。
- Laravel是一套簡潔、優(yōu)雅的PHP Web開發(fā)框架(PHP Web Framework)。它可以讓你從面條一樣雜亂的代碼中解脫出來;它可以幫你構(gòu)建一個(gè)完美的網(wǎng)絡(luò)APP,而且每行代碼都可以簡潔、富于表達(dá)力。
個(gè)人博客 HEXO
-
Java后臺(tái)
- Java基礎(chǔ)
- 閱讀 Head First Java
- 掌握DOS系統(tǒng)常用基本命令
- 面向?qū)ο?
- 匿名對(duì)象
- 繼承
- 多態(tài)
- 抽象類
- 接口
- 內(nèi)部類
- 異常
- 異常概述
- 異常分類
- 異常處理方案
- 自定義異常
- 集合
- Collection接口下的常用集合
- Map接口下的常用集合
- 泛型
- Iterator接口
- I/O
- 文件
- 字節(jié)流
- 字節(jié)緩沖流
- 轉(zhuǎn)換流
- 序列化流
- 多線程
- 多線程運(yùn)行原理
- 多線程的實(shí)現(xiàn)方案
- 線程生命周期
- 線程同步
- 線程池
- 網(wǎng)絡(luò)編程
- 網(wǎng)絡(luò)編程三要素
- Socket原理機(jī)制
- UDP傳輸
- TCP傳輸
- 反射
- 類加載機(jī)制原理
- 反射構(gòu)造方法、字段、方法
- Properties配置文件
- XML
- XML基本語法
- XML的約束
- XML的解析
- BeanUtils的使用
- 注解及動(dòng)態(tài)代理
- 注解的使用
- 自定義注解
- 動(dòng)態(tài)代理Proxy
- 類加載器
- Mysql及JDBC開發(fā)
- MySQL數(shù)據(jù)庫
- JDBC開發(fā)
- 連接池
- DBUtils
- JDBC事物管理
- 前端技術(shù)
- html
- css
- js
- jQuery
- BootStrap
- javaWeb核心
- Tomcat
- Servlet
- Request和Response
- Cookie和Session
- jsp , el , jstl
- Filter
- Listener
- ajax應(yīng)用
- ajax
- jQuery ajax
- EasyUI
- linux和redis
- Linux
- Redis
- javaWeb應(yīng)用
- 通用BaseServlet抽取
- 緩存技術(shù)
- JavaMail
- 在線支付
- 文件上傳
- Linux項(xiàng)目部署
- 能夠完成B/S結(jié)構(gòu)網(wǎng)站開發(fā),具備了真實(shí)環(huán)境的項(xiàng)目部署能力,能夠完成中小型企業(yè)管理系統(tǒng)等傳統(tǒng)項(xiàng)目的開發(fā)。
- 框架
- Hibernate5
- hibernate.cfg.xml配置
- hbm.xml映射文件詳解
- PO對(duì)象狀態(tài)及狀態(tài)的轉(zhuǎn)換分析
- Hibernate高級(jí)映射技術(shù)
- Hibernate數(shù)據(jù)檢索技術(shù)
- Hibernate性能優(yōu)化技術(shù)
- Struts2
- struts.xml詳解及使用
- 使用通配符定義action、動(dòng)態(tài)方法調(diào)用
- ActionContext及ServletActionContext使用
- 模型驅(qū)動(dòng)ModelDriven、屬性驅(qū)動(dòng).
- 默認(rèn)攔截器分析、自定義攔截器
- OGNL表達(dá)式、值棧ValueStack分析
- Spring
- applicationContext.xml配置文件編寫
- IoC思想、DI依賴注入
- 使用AspectJ切面編程
- JdbcTemplate模板使用
- 聲明式事務(wù)管理
- SSH整合
- CRM項(xiàng)目
- 使用struts2+spring4+hibernate5 +svn來開發(fā)項(xiàng)目
- 使用Jquery EasyUI進(jìn)行布局
- 使用svn進(jìn)行代碼管理
- oracle
- 簡單查詢
- oracle的常用函數(shù)
- 多表查詢
- 集合操作
- DDL操作管理表
- DML管理數(shù)據(jù)
- 其它數(shù)據(jù)庫對(duì)象
- PL/SQL編程
- 存儲(chǔ)過程與存儲(chǔ)函數(shù)
- 觸發(fā)器
- maven
- maven介紹
- maven安裝
- maven的入門程序
- maven倉庫
- 項(xiàng)目構(gòu)建
- 依賴管理
- maven綜合案例
- maven的私服
- mybatis框架
- mybatis框架原理
- mybatis入門案例
- mybatis開發(fā)DAO方式
- mybatis輸入輸出映射
- 動(dòng)態(tài)sql
- spring整合mybatis
- springmvc框架
- springmvc框架原理
- springmvc入門案例
- springmvc整合mybatis
- 參數(shù)綁定
- json數(shù)據(jù)交互
- 攔截器
- Lucene、solr框架
- 什么是全文檢索
- Lucene實(shí)現(xiàn)全文檢索
- Analyzer分析器
- 索引維護(hù)
- solr安裝配置
- solr索引、solr搜索、SolrJ
- Hibernate5
- 綜合項(xiàng)目技能
- 掌握Apache poi實(shí)現(xiàn)數(shù)據(jù)導(dǎo)入導(dǎo)出;
- 掌握?qǐng)D形報(bào)表的生成技術(shù),如JfreeChart、HighChart、AmChart
- 掌握Apache Shiro技術(shù)
- 掌握BRAC認(rèn)證模型,有效進(jìn)行用戶權(quán)限管理
- SSH框架整合
- 使用maven進(jìn)行項(xiàng)目的分模塊開發(fā)
- 頁面布局采用前端主流jQuery插件easyui
- 采用Redis實(shí)現(xiàn)緩存機(jī)制
- 采用Oracle數(shù)據(jù)庫
- 引入WebService的CXF開發(fā)方式,并與Spring結(jié)合
- 采用了BRAC認(rèn)證模型,有效進(jìn)行用戶權(quán)限管理,同時(shí)加入當(dāng)前流行的Shiro安全框架,從而高效快捷保證系統(tǒng)安全可靠
- 加入了Quartz與spring整合實(shí)現(xiàn)定時(shí)任務(wù)調(diào)度
- 引入JavaMail郵件機(jī)制,并實(shí)現(xiàn)Spring與JavaMail整合開發(fā)
- 使用PowerDesigner建立企業(yè)級(jí)PDM模型
- SSM框架整合
- jsp+easyui視圖層展現(xiàn)
- KindEditor富文本編輯器應(yīng)用
- Freemarker模板引擎實(shí)現(xiàn)頁面靜態(tài)化
- Dubbo分布式調(diào)用技術(shù)
- Nginx反向代理
- Redis緩存
- Lucene/Solr全文檢索解決方案
- FastDFS圖片服務(wù)器
- ActivieMQ消息隊(duì)列
- maven項(xiàng)目管理
- svn/git實(shí)現(xiàn)項(xiàng)目代碼和文檔管理
- zookeeper分布式協(xié)調(diào)服務(wù)
- mycat中間件
- 分布式事物
- 分布式查詢
- 微服務(wù)
- 高并發(fā)
- 容災(zāi)
- 容器化
- Java基礎(chǔ)
-
結(jié)尾
文章是本人日常使用筆記軟件總結(jié)下來的,可能不太方便觀看,知識(shí)點(diǎn)有很多,如果有什么知識(shí)點(diǎn)有漏掉還請(qǐng)?jiān)u論告訴我,我會(huì)補(bǔ)上~.
歡迎來我個(gè)人博客,我每天都會(huì)更新一些自己的筆記.