只有光頭才能變強。html
文本已收錄至個人GitHub倉庫,歡迎Star:https://github.com/ZhongFuCheng3y/3yjava
不知道你們仍是學生的時候有沒有這個問題:公司作的項目和本身在學校練手的項目有多大的區別。我之前在學校跟着視頻作一些項目練手,總感受公司作的東西會要難不少,不知道跟公司的真實項目區別在哪。git
總的來講,我實習的總時間也快半年了,談談我以爲公司項目和本身練手的項目有啥區別,歡迎補充。github
在視頻練的項目大多數都是由講師在本地編碼來說解整一個項目的開發過程,而咱們去到公司作的第一件事是啥?把項目clone(checkout)到本地來看。數據庫
這就有兩個區別:vim
好比說,咱們使用Git的時候,要修改代碼的時候會新建一個分支,改完了再合併到master分支上。框架
好了,如今項目已經在本地上了,那咱們要將項目在本地上啓動起來嗎?這得問同事。在公司作項目,通常都分了好幾個環境ssh
有的時候,可能環境過於複雜(各類系統相互依賴),clone(checkout)下來的項目就很難在本地上啓動起來,或者說在本地上的數據跟線上的數據差距太大了(比較難看出效果)。因此,有的時候可能就不用在本地將項目啓動起來。工具
那問題來了,我寫完的代碼怎麼調試啊?咱們能夠這樣乾的:將本地寫好的代碼push到測試環境,而後本地遠程鏈接測試環境,對其進行調試。測試
還有,咱們本身作項目的時候,try-catch
完了以後,習慣可能就e.printStackTrace();
但公司的項目不會有e.printStackTrace();
這種代碼的存在。由於這打印出來的錯誤信息沒有日期、等級等等,分析起來不方便。
在公司通常將錯誤的信息(或者有用的信息)寫到log(日誌)中。
LOG.error("send java3y article failed, {}", e);
因而,通常出現了問題,咱們先去登上機器,查一下日誌的信息是怎麼樣的。而登上線上的機器上,也不是直連的,會通過一層堡壘機。堡壘機是作啥的?
每次登陸線上的機器都要ssh xxxxip 到堡壘機上,而後再到堡壘機上輸入線上機器IP鏈接,着實麻煩。因而大佬們就會寫自動登陸堡壘機,直接輸入IP到線上的腳本
因而乎,咱們就登陸到堡壘機上,而後再連上線上機器就去查看日誌了。查看日誌怎麼看?
cat console.log
嗎,那得找到何時啊?vim console.log
嗎,我想根據某個關鍵字來查怎麼在vim上操做啊?若是log
文件太大了,vim打開太卡了怎麼搞啊...還有一點就是,在公司開發都要申請權限才能對數據庫/機器/各類資源進行操做。而不像咱們我的開發各類root權限,數據庫各類DDL/DML隨便玩。
DML/DDL數據庫操做都要申請權限,發佈代碼到線上也要申請權限,想要去線上的機器上查看日誌也要權限.....
總結:
e.printStackTrace();
,而是log.error()
來替代樂於輸出乾貨的Java技術公衆號:Java3y。公衆號內有200多篇原創技術文章、海量視頻資源、精美腦圖,關注便可獲取!