在公司作的項目和本身在學校作的有什麼區別?

前言

只有光頭才能變強。html

文本已收錄至個人GitHub倉庫,歡迎Star:https://github.com/ZhongFuCheng3y/3yjava

不知道你們仍是學生的時候有沒有這個問題:公司作的項目和本身在學校練手的項目有多大的區別。我之前在學校跟着視頻作一些項目練手,總感受公司作的東西會要難不少,不知道跟公司的真實項目區別在哪。git

總的來講,我實習的總時間也快半年了,談談我以爲公司項目和本身練手的項目有啥區別,歡迎補充。github

1、區別

在視頻練的項目大多數都是由講師在本地編碼來說解整一個項目的開發過程,而咱們去到公司作的第一件事是啥?把項目clone(checkout)到本地來看。數據庫

這就有兩個區別:vim

  • 去到公司每每不是從零開發一個項目,項目的框架和代碼都已經寫好了。咱們更多要作的就是迭代這個項目(或者說修復這個項目本來就有的Bug)
  • 一個項目每每都會有幾我的進行開發,這就確定要用到版本管理工具(SVN/Git)。因此,去公司作項目以前最好是提早去學學Git/SVN這些工具的使用

好比說,咱們使用Git的時候,要修改代碼的時候會新建一個分支,改完了再合併到master分支上。框架

好了,如今項目已經在本地上了,那咱們要將項目在本地上啓動起來嗎?這得問同事。在公司作項目,通常都分了好幾個環境ssh

  • 線上(如今正在給用戶用的)
  • 測試(寫完功能,先看一下在測試環境下有沒有問題,沒問題才發佈到線上環境)
  • ...等等(可能名字叫起來不同,但不可能在本地上寫完的代碼直接就放到線上去跑了)

有的時候,可能環境過於複雜(各類系統相互依賴),clone(checkout)下來的項目就很難在本地上啓動起來,或者說在本地上的數據跟線上的數據差距太大了(比較難看出效果)。因此,有的時候可能就不用在本地將項目啓動起來。工具

那問題來了,我寫完的代碼怎麼調試啊?咱們能夠這樣乾的:將本地寫好的代碼push到測試環境,而後本地遠程鏈接測試環境,對其進行調試。測試

遠程Debug

還有,咱們本身作項目的時候,try-catch完了以後,習慣可能就e.printStackTrace();

萬能的e.printxxxx

但公司的項目不會有e.printStackTrace();這種代碼的存在。由於這打印出來的錯誤信息沒有日期、等級等等,分析起來不方便。

分析起來不方便

在公司通常將錯誤的信息(或者有用的信息)寫到log(日誌)中。

  • 好比說:LOG.error("send java3y article failed, {}", e);

因而,通常出現了問題,咱們先去登上機器,查一下日誌的信息是怎麼樣的。而登上線上的機器上,也不是直連的,會通過一層堡壘機。堡壘機是作啥的?

來源:https://www.zhihu.com/question/21036511

每次登陸線上的機器都要ssh xxxxip 到堡壘機上,而後再到堡壘機上輸入線上機器IP鏈接,着實麻煩。因而大佬們就會寫自動登陸堡壘機,直接輸入IP到線上的腳本

因而乎,咱們就登陸到堡壘機上,而後再連上線上機器就去查看日誌了。查看日誌怎麼看?

還有一點就是,在公司開發都要申請權限才能對數據庫/機器/各類資源進行操做。而不像咱們我的開發各類root權限,數據庫各類DDL/DML隨便玩。

DML/DDL數據庫操做都要申請權限,發佈代碼到線上也要申請權限,想要去線上的機器上查看日誌也要權限.....

最後

總結:

  1. 版本控制工具
  2. 遠程鏈接Debug調試
  3. 再也不使用e.printStackTrace();,而是log.error()來替代
  4. 各類權限都須要申請和審批

樂於輸出乾貨的Java技術公衆號:Java3y。公衆號內有200多篇原創技術文章、海量視頻資源、精美腦圖,關注便可獲取!

轉發到朋友圈是對我最大的支持!

相關文章
相關標籤/搜索