\# 亂七八糟的內容
修改文檔名為:
1.快照版(同布更新)
2.穩定版(只維護,不更新)
3.最終版(不更新、不維護)
\---
\## 詞墻
git svn maven java spring sringboot springcloud protobuf netty io多線程 docker jenkins apache tomcat
js vue vue-cli vuex vue-router react-native jquery webpack bash mybatis redis mysql nginx
firewalld centos SSH node npm koa UML 設計模式 md HTTP
\## 踩坑心得
其實每個功能說復雜也復雜,說不難也不難……
隨便拉出一個框架或者功能來說,無非就是以下幾種特點:
1.API有十多個。
2.基礎功能有十多個。
3.高級功能有十多個。
3.網上教程一大堆。亂七八糟,質量層次不齊。
4.官網文檔寫的要么是太晦澀、要么就是接口文檔、要么就是寫的介紹太簡單貼的全是代碼塊(過時代碼還各種問題)、要么就是根本找不到文檔在什么地方(開箱即用~)。
5.大部分功能用的并不多。可能跟我的認知有限有關……
6.對于大部分項目工程,很多高級功能都用不到。復雜的功能一般都是依托于項目的繁雜業務,大佬都能封裝原生API。簡單的稍微有些經驗的程序員找點demo也能寫得八九不離十,更多的使用情況是程序員感覺框架用起來開發更簡單,項目看起來更高大上,僅此而已。
7.很多功能都需要別的功能進行鋪墊,很多情況下一頭霧水并不是因為該功能的復雜,而是對相關聯的功能不熟悉。
8.功能的不熟悉主要原因是官網沒有給出該功能具體解決的實際痛點在什么地方。
羅列一下最近研究的東西哪些讓我很抓狂:
一、比如說vue的SSR框架,為什么要實現client端和server端?
必要的了解:
1\. 開發環境和生產環境。 開發環境就是寫代碼的地方。生產環境就是線上代碼部署的地方。
2\. 一個成熟的前端工程師不光要有解決開發環境問題的能力,還要有解決生成環境問題的能力。
3\. 開發環境的架構意味著項目的可讀性更高,后期的維護更容易、迭代成本越低等。
4\. (前端這塊兒不是很夸張)生產環境的架構很大程度上決定了系統的性能瓶頸、抗并發性、可移植性、數據備份,災難恢復等一切不可逆的情況發生所帶來的損失情況。
VUE主流解決SEO的兩種方式
1\. SSR框架渲染。 它主要的實現方式就是在開發環境配置好以后,再生成生產代碼的同時動態地把組件轉換成字符串。用戶獲取頁面時,獲取到的其實就是一個由服務器拼接好的一個html字符串頁面。(即一個new出來的vue對象轉成字符串)
其中用到的技術就是路由懶加載和server端和client端。一個負責new組件轉換成字符串,一個負責拼接。
2\. 服務端預渲染。根據路由規則,靜態路由+動態路由生成對應的路由表,同時生成靜態文件。
遇到的坑
1\. 我之前異常痛恨vue-cli1.0,甚至vue-cli2.0,因為各種繁雜的webpack配置,尤其是從3.6升級到4.0的過程。
2\. 但最近vue-cli3.0的出現意味著零配置。然后果斷上了3.0。結果發現沒法配置webpack……。
3\. 基于SSR的特殊性與vue-cli3.0的不熟悉,我一邊查找官方文檔的配置、一邊踩坑,最后還是棄用了cli,自定義配置webpack4+。
4\. 由于生產環境和開發環境的混淆(概念還不區分),所以導致了我很多情況下沒法理解server端和client端到底做了些什么。
5\. server和client基本上就是在生產環境中使用的,更多需要的node來支持。
二、JAVA的Netty到底做了些什么,為啥我的的項目+官方文檔的例子無法成功運行?
\## 為什么會有這個文檔
\* BOSS直聘上好多高級的開發崗位的技能要求都有詳細的羅列。想看看自己和別人的技能都有哪些區別。
\### 放幾個BOSS上程序員的崗位,技術職級沒有先后順序,只是為了多羅列不同的崗位需求。
\#### JAVA棧
\> JAVA經理(經驗:5-10年, 35K-70K, 全年16-24薪、期權激勵)
```utf-8
團隊特點:
支撐Boss直聘所有后端功能和流量,大數據、高并發的業務場景。
崗位職責:
1\. 帶領后端技術團隊,支撐某一方面業務系統的建設、迭代和優化工作
2\. 負責服務端系統技術方案評估、架構設計、業務邏輯抽象等工作
3\. 負責關鍵功能和模塊的實現,指導團隊成員,解決團隊成員開發過程中遇到的復雜問題
任職要求:
1\. 7年以上互聯網開發工作經驗,3年以上技術團隊管理經驗或架構設計經驗
2\. 具備優秀的編程能力和豐富的工程經驗,主導過中大型互聯網項目開發
3\. 精通JavaEE,熟悉主流的開源框架,了解它們的優缺點
4\. 仍然工作在一線,能夠親自動手編寫重要的功能,具備較強的問題分析和定位能力;能指導團隊成員,幫助團隊成員
5\. 具備優秀的跨團隊溝通協作能力,能夠主動跟進和推進項目,確保目標的達成
公司技術驅動,非常重視技術團隊,不斷有技術挑戰。
```
\> Java架構師 (經驗:5-10年, 35K-65K)
```utf-8
工作職責:
1\. 整體規劃Boss直聘系統技術架構,參與需求分析、架構設計、技術決策以及詳細設計;
2\. 優化現有系統的性能,解決系統中的關鍵問題和技術難題;
3\. 把握復雜系統的設計,確保系統的架構質量,核心部分代碼編寫、指導和培訓工程師、不斷進行系統優化;
任職要求:
1\. 全日制重點本科及以上學歷,計算機或相關專業,JAVA基礎扎實,熟悉io、多線程、集合等基礎框架,熟悉分布式、緩存、消息等機制;
2\. 5年以上使用JAVA進行web開發的經驗;精通AOP、MVC等框架。熟悉web開發的相關技術:html/javascript/ajax/xml等;
3\. 熟悉JAVA EE規范,熟悉常用的設計模式;精通Java及Web的開發和應用;熟悉大數據量、高并發、高性能的分布式系統的設計及應用、調優;
4\. 熟悉SQL,精通Mysql、Oracle等大型數據庫,熟悉常見的NO SQL解決方案;
5\. 具有良好OOP思想,熟練使用OO分析設計方法和設計模式,能夠熟練運用UML進行分析設計工作;
```
\> 高級Java研發工程師 (經驗:3-5年, 25K-40K)
```utf-8
崗位職責:
1\. 獨立完成產品功能模塊設計與實現
2\. 對現有產品功能進行重構優化
3\. 新產品架構設計
4\. 線上問題排查和解決
任職要求:
1\. 3年以上java開發工作經驗;
2\. 熟悉java編程語言,熟悉多線程、線程安全、異步處理等機制,熟悉jvm原理以及運行機制;
3\. 熟練使用Spring、SpringMVC、Spring Boot等開源框架
4\. 對redis\\kafka有實際的使用經驗;
5\. 掌握mysql等相關數據庫,并了解其基本原理;
6\. 熟悉linux環境,具備基本的shell腳本編寫能力;
7\. 具備良好的文檔編寫和編碼能力;
8\. 熟悉架構設計,保證系統穩定運行;
```
\> 高級JAVA工程師 (經驗:3-5年, 20K-40K)
```utf-8
職位描述
1\. 負責Boss直聘服務端后臺研發,能夠獨立負責具體的業務模塊
2\. 負責系統設計文檔設計和撰寫
3\. 保證系統的高可用性,持續優化和擴展服務
4\. 至少能夠精通一個Java框架的原理,熟悉一種數據庫的設計及調優
任職要求:
1\. 三年以上Java開發經驗,熟練掌握Java語言,理解面向對象和常用設計模式
2\. 熟悉主流Java Web框架及其設計原理,熟悉Nginx/Tomcat/Resin等服務器
3\. 熟悉Unix/Linux操作系統和開發環境,至少熟悉一門腳本語言
4\. 了解數據庫基本原理,具備系統數據庫設計和規劃能力,能編寫高性能的SQL
5\. 較強的學習和溝通能力,主動,有責任心
6\. 具備大型互聯網產品研發經驗優先。
```
\> Java開發工程師 (經驗:3-5年, 20K-40K)
```utf-8
1\. 負責Boss直聘服務端后臺研發
2\. 負責系統設計文檔設計和撰寫
3\. 保證系統的高可用性,持續優化和擴展服務
4\. 至少能夠精通一個Java框架的原理,熟悉一種數據庫的設計及調優
任職要求:
1\. 本科及以上學歷(985,211優先),3年以上Java開發經驗,理解面向對象和常用設計模式
2\. 熟悉主流Java Web/Spring框架及其設計原理,熟悉Nginx/Tomcat/Resin等服務器
3\. 熟悉Unix/Linux操作系統和開發環境,至少熟悉一門腳本語言,如shell
4\. 了解Mysql數據庫基本原理,具備系統數據庫設計和規劃能力,能編寫高性能的SQL
5\. 較強的學習和溝通能力,主動,有責任心
6\. 具備大型互聯網產品研發經驗優先
```
\#### 前端棧
\> 資深前端開發工程師 (經驗:5-10年, 25K-35K)
```utf-8
我們的工作內容:
boss直聘pc端以及直獵邦。
我們對你的期望:
1\. 計算機及相關專業本科以上學歷;
2\. 具備2年以上BAT、TMD等知名大型互聯網公司前端工作經驗優先;
2\. 深刻理解前端三大基礎技能(HTML、CSS、JS),熟悉主流框架類庫的設計實現、熟悉w3c標準、具備原生js或(Vue.js)經驗優先;
3\. 優秀的代碼組織、界面布局、編碼風格干凈、利落;
4\. 有良好的產品意識和團隊合作意識,能夠和產品、UI交互部門協作完成產品面向用戶端的呈現;
5\. 踏實穩定,不挑活,不排斥簡單重復的工作。
6\. 熟悉一門后端語言,php、jsp等其他后端語言優先。
```
\> 高級前端工程師 (經驗:3-5年, 20K-40K)
```utf-8
職位描述
1\. BOSS直聘移動客戶端內嵌H5hybrid頁面開發,包括牛人端求職平臺、Boss端工作平臺
2\. 負責zhipin.com移動端網站的相關內容開發
3\. BOSS直聘APP端和對外推廣各種H5功能模塊開發
我們對你的期望:
1\. 計算機及相關專業本科以上學歷;
2\. 具備3年以上BAT、TMD等知名大型互聯網公司前端工作經驗優先;
3\. 深刻理解前端三大基礎技能(HTML、CSS、JS),熟悉主流框架類庫的設計實現、熟悉w3c標準、具備原生js或reactjs、Vue.js經驗優先;
4\. 優秀的代碼組織、界面布局、編碼風格干凈、利落;
5\. JS是必須要求!如果js非常好,CSS要求可以放寬;
6\. 有良好的產品意識和團隊合作意識,能夠和產品、UI交互部門協作完成產品面向用戶端的呈現;
7\. 有技術理想,致力于用前端技術去推動和改善用戶體驗!
```
\> 高級前端開發工程師 (經驗:5-10年, 25K-35K)
```utf-8
我們的工作內容:
BOSS直聘客戶端內嵌H5日常維護及開發工作
我們對你的期望:
1\. 計算機及相關專業本科以上學歷;
2\. 具備2年以上BAT、TMD等知名大型互聯網公司前端工作經驗優先;
3\. 深刻理解前端三大基礎技能(HTML、CSS、JS),熟悉主流框架類庫的設計實現、熟悉w3c標準、具備原生js、Vue、React經驗優先;
4\. 優秀的代碼組織、界面布局、編碼風格干凈、利落;
5\. 有良好的產品意識和團隊合作意識,能夠和產品、UI交互部門協作完成產品面向用戶端的呈現;
6\. 踏實穩定,不挑活,不排斥簡單重復的工作。
7\. 熟悉一門后端語言,php、jsp等其他后端語言優先。
```
\* 基于以上職位的羅列,其實能看出很多崗位需要的技能并不是特別多。除了最開始的兩個……
\* 發現了自己的技能樹就和開了花一樣,多到不行行。
\* 感覺迫切需要一個文檔來好好整理一下這半年用過的蘿卜,拔過的坑。然后對蘿卜和坑進行一個系統的整理。
\* 整理出文檔后好讓自己預判接下來半年到一年的時間應該朝著哪些方向走。
\## 技術大觀園
帶我的小哥通信出生,曾經做過雷達對抗(我看他以前公司的用戶手冊里有雷達的拓撲圖,只是猜測)和電信通訊。所以對協議轉化加密傳輸有很多獨到的理解,看著他寫的協議文檔就像看RARP和RIP的協議一樣,首先通過UDP廣播發包,掃描開放的設備,然后與之建立TCP連接,最后通過自定義協議進行傳輸編解碼報文。那些曾經只存在于書本上的概念:數據校驗、封裝成幀、透明傳輸、路由轉發、IP尋址、TCP三次握手、劃分子網等內容一下子全成了代碼展現在我眼前……對于沒有文化的我來說,只剩下“臥槽,好牛逼”。
而我在他眼里就是半吊子的小菜鳥……嗚嗚嗚嗚~
自從開始瘋狂地補JAVA棧的知識,我才發現它比前端還要惡心人:
前端至少大部分項目配置文件都是json
JAVA配置文件光分后綴名就有:XML、properties、yml、config……
這半年擼了各種各樣的內容:
JAVA基礎,泛型,異常,集合框架等。
Tomcat部署配置,ssl證書,虛擬主機,負載等。
Nginx部署配置,ssl證書,虛擬主機,負載,反向代理等。
Maven包管理,項目用到了各種各樣的技術,需要按照不同打包方式部署項目。
Git和SVN(以前經常用客戶端)集成在代碼里,代碼上傳數據到服務器。
Netty多線程,
Spring技術棧,Spring\\Springboot\\SrpingCloud
Mysql主從配置、讀寫分離
jenkins和git持續集成和部署
docker和rancher持續集成和部署。由于我線上的服務器內存只有1G,所以rancher基本上屬于入門階段(會使用……)。
每天的工作基本上是這個樣子的:
除了完成日常的工作以外(工作內容是vue+java),還有下面的工作:
1.先慕課網找個基礎視頻看一遍(x2倍速)。
2.基礎視頻再看一遍(x2倍速),順便照著視頻敲一遍。
3.看官方文檔,照著文檔中的例子再敲一遍。
4.把視頻敲下的代碼和文檔里敲下的代碼嘗試著糅合在一起,踩坑。
5.把糅合在一起的代碼拆分成模塊,分散在不同的項目工程目錄里。
6.然后再寫個心得:干了點兒啥,實現了啥,解決了啥,之后還可不可以再優化,可不可自己原生封裝一個,它沒出來前人們是怎么解決這個問題的,有木有類似的框架,相比于其他框架它有什么優缺點。
7.上網開始查找各種各樣的技術貼,分析貼,性能測試貼。進行對比。
8.構思接下來的項目朝向是怎么走,該如何選型,要做多久,做多大。
9.然后進而選擇合適的框架。
10.重復1~9的流程…………………………
到目前為止,除了國慶出浪了八天。基本上每天都處在至少11個小時的強度……
看視頻的學習時間大概占到只有7分之一到8分之一的時間。
我慕課網的學習時長是930小時。
從我接觸慕課網開始算起,只有看過視頻的編碼階段大概花在編程的時間在7000小時左右。
包括我寫這個文檔的時間,六個小時。
人生
第一個目標:讀萬卷書,行萬里路。已經達成
第二個目標:編碼工作完成一萬小時。已經達成
- 2023-4-8__成長之路
- 技術雜談
- 程序員境界
- 走進猿類
- 做一個程序員
- 什么是猿類
- 愛亂吹的猿
- 業余生活
- 我的書架
- 高效程序員的45個習慣
- 敏捷—高效軟件開發之道
- 態度決定一切
- 學無止盡
- 交付用戶想要的軟件
- 敏捷反饋
- 敏捷編碼
- 敏捷調試
- 藝術人生
- 摘自藝術的境界
- 如何欣賞畫
- 《的》
- 我的文檔
- 小白學習前那些說不完的事
- 計算機語言都一樣
- 嘗試理解他人代碼
- 做為旁觀者的思考
- 怎樣才算懂計算機
- 工欲善其事,必先利其器
- 教案日志
- 十天學電腦
- 一,認識計算機
- 二、認識編程語言
- 三、認識程序內涵
- 四,認識數據結構
- 五、認識電腦系統
- 六、認識通信原理
- 七、郵箱管理
- 八、重新審視電腦
- 九、理解終生學習
- 十、感悟三千世界
- c語言
- C語言——我覺得好簡單
- c學好不怕沒飯碗—2014.7.21
- C語言——我想的有點兒簡單
- 或多或少的c語言知識
- c語言初探篇
- 初探c語言底層
- 初探整型和浮點型
- 初探二進制數---原反補移
- 初探有無符號
- 初探c是如何跑起來的
- 初探指針
- 初探數組
- 初探順序表
- 初探棧,隊列
- 初探c語言編程
- c語言進階篇
- c語言自身的那些事
- 結構詳解
- c語言大成篇
- 人類思維——模式匹配
- 論c語言面試
- 數據結構
- 核心概念,沒有之一順序表
- 線性表代碼實現
- Sq_list
- 不存在的鏈表
- 只是一種思想——棧
- 只是一種思想——隊列
- 不存在的樹
- 只是一種思想——二分法
- 不存在的圖
- 算法原理
- 傅里葉變換
- 算法導論
- 算法導論——c語言實現
- 算法導論——java實現
- 組成原理
- 操作系統
- 初探操作系統
- 深究操作系統
- 操作系統如何跑起來
- 進程就像細胞
- 系統就像生命
- 進程樹pstree
- 進程
- 進程何時更名為生命
- 初探進程映像
- 程序如何成為進程映像
- PCB
- PCB解讀之——信號量(p_sig)
- 進程同步
- 進程通信
- 進程調度
- 用戶
- PPDA
- 存儲系統
- I/O系統
- 網絡原理
- 通信簡史
- 通信是網絡基礎
- 趣談網絡
- 自我介紹
- 快遞公司
- 小D的自述
- 網絡架構
- OSI/RM
- 應用層
- 表示層
- 會話層
- 傳輸層
- 網絡層
- 數據鏈路層
- 物理層
- TCP/IP四層模型
- 五層模型
- 網絡劃分
- IP史
- 信息安全
- 社會工程學
- 信息收集
- 誘導
- 偽裝
- 如何成為任何人
- 社會心理學
- 思維模式
- 說服的力量
- 代碼審計
- 災難恢復
- 安全注入
- 網絡工程
- 802.11
- CCNA
- CWNA
- 社會工程
- 社會心理
- 信息誘導
- 身份偽裝
- 系統框架
- web前端框架
- smarty框架
- bootstrap框架
- thinkphp框架
- zend框架
- yii框架
- ci框架
- 網站開發
- 五大難題
- 網站工作原理
- 數據庫原理
- 服務器原理
- 前端開發
- 前端技能基礎
- html
- css
- javascript
- 瀏覽器兼容
- 前端總結
- 后臺開發
- 或多或少的JS
- js初探篇
- 理解Javascript
- JS繼承
- 數組
- 操作方法
- DOM事件
- 數據傳輸
- JS面試題
- 數據對象
- 學生管理系統
- 學生管理首頁
- 粗略學了一遍后的總結
- 零碎知識
- js初探篇第二版
- javascript構成
- 基本類型
- 基本語句與判斷類型
- 基本對象與操作函數
- 基本判斷與甄別數據
- 內置對象與操作函數
- 對象認識與深淺復制
- DOM級別與BOM
- 嚴格模式與混雜模式
- ES5和ES6
- js進階篇
- 上傳圖片
- js實戰篇
- 或多或少的PHP
- 詳解url結構
- html基礎
- html初識
- html-組成頁面的基礎標簽
- ie兼容
- 教學方法
- 論php——編程思想
- 論php——底層實現
- 中華國學
- 易經
- 黃帝內經
- 山海經
- 道德經
- 騙經
- 中華哲學
- 一花一世界
- 道可道非常道
- 一瞬
- 宇宙
- 心得體會
- 電腦叫智能生命體更準確
- 計算機不是漢語模式
- 瑣事日記
- 成長與人性
- 祝單身狗快樂
- 人其實過的很單薄
- 都怪自己不夠優秀
- 那是幾個人的世界
- 認清世界,認清自己
- 陪伴繁華逝去的平凡
- 俯拾仰取
- 技術手冊
- 網站開發
- 準備工作
- firewalld
- mysql
- redis
- 開發流程
- 整體配置
- 環境配置
- tomcat配置
- 數字證書配置
- 項目配置
- 數據設計
- 用戶管理
- 整站設計
- user
- user_group
- user_role
- 服務端
- 了解學習
- quartz
- HelloWorld
- HelloJob
- HelloQuartz
- HelloScheduler
- Job
- JobDataMap
- Trigger
- Scheduler
- properties
- spring
- AOP
- 使用
- svnkit
- svn init
- FSFS
- server
- Java
- 測試
- 任務調度
- 網站架構
- 網站前端
- pc端
- 移動端
- native
- ios
- android
- ipad
- hybrid
- 技術日志
- 2018-9-26
- 2018-11-26
- 資源收集
- UED資源
- 技術架構
- 云平臺
- 工作方面
- 實習工作經驗
- 草稿1
- 草稿2
- 草稿3
- 草稿4
- 草稿5
- 草稿6
- 草稿7
- 大學總結
- 面經
- 一、職能定位
- 細節
- 前端
- 工作總結
- 簡歷
- 職業規劃
- 一年規劃
- 整理歸檔
- 2015/11/10以前
- 2015/11/10
- 2015/11/11
- 2015/11/12
- 2015/11/13
- 2015/11/14
- 2015/11/15與16
- 2015/11/17
- 2015/11/18
- 2015/11/19與20
- 2015/11/21
- 2015/11/22
- 2015/11/23
- 2015/11/24
- 2015/11/25
- 2015/11/26
- 2015/11/27
- 2015/11/28
- 2015/11/29
- 2015/11/30-12/6
- 2015/12/7-2016/4/18
- 2016/4/19
- 2016/4/20~2017/6/27
- 2017/6/28-2017/7/4
- 2017/7/5-2018/1/11
- 2018/1/12
- 2018/1/13-2018/4/19
- 2018/4/20
- 2018/4/21-2018/5/10
- 2018/5/11
- 2018/5/12-2018/5/16
- 2018/5/17-2018/5/30
- 2018/5/30-2018/10/15
- 2018/10/15-2018/10/18
- 2018/10/19-2018/11/17
- 2018/11/17-2018/12/31
- 結束----------------開始
- 2019/2/18
- 2020/7/30
- 2020/9/5
- 2021/5/6
- 回收站
- 以前文件
- 2015-10-17__成長之路
- 2018-10-15__成長之路
- 2020-3-29__成長之路
- 畢業三年總結
- 浙大之旅
- 2020
- 英語
- 基礎3000單詞
- 第一周
- 百詞斬__126
- 百詞斬__126翻譯
- 百詞斬__252
- 百詞斬_252翻譯
- 百詞斬__392
- 百詞斬__532
- 百詞斬__672
- 第二周
- 百詞斬__812
- 聽力
- 新東方演講稿
- 庫克杜克大學演講全文版
- 庫克杜克大學演講演講英文對照版