[工作] 個人環境開發

公司因為沒有屬於個人的環境,多人使用同一台 FTP 且沒有 SSH 的權限,很容易碰到互相搶資源,蓋 code 的狀況,為了避免這樣,只好大家說好上下午或輪流開發。另外也會常發生不知為何頁面空白了的原因,原來是有人正在改程式,直接印出,造成後面的狀況就死了…

用 ftp 還會不好 trace 這到底是誰改到的壞的,於是乎為了讓大家開發 (包括我自己) 開發能夠順利,就一直想在自己的本機 (非 Server,只是個人電腦) 上建置可以改程式後才上到 ftp 上,至少不會被蓋來蓋去的。另因本部門有用 GIT 版本控制,但如果沒有一個直接改好 commit 的環境的話,頂多變成改完後,先上傳到 ftp 然後才會進到 git 的狀況,通常這種狀況很容易被遺失 commit 或者線上的程式與 git 版本中的程式不一致,良好的步驟應該是開發完進到 git commit 後,才能夠佈署到開發環境或正式環境才對。

為了解決這些問題,首先要能夠解決從內網機可以直接撰寫程式,讓內網機成為每個人的開發環境,但公司因為資安問題,許多連線資料庫及連線 API 都有種種的限制,好不容易突破後,總算可以從個人本機開發程式啦!另外再結合安裝 GIT 後,就可以開發完後,透過 commit 進 git 直接 deploy 到每個人的環境中,達到不用互相蓋 code,提升了總體的開發時間 ( 不用同一隻程式輪替寫 ) 也留下 commit log,不怕有人把程式改壞找不到兇手等等的好處。

一同完成的不止我一人,還有 Leo & Clay 的幫助,讓我對底層的設計更加了解,首先先看完底層的程式,了解路徑後,我們碰到以下幾個困難

1. Linux & Windwos 的開發路徑不一樣
Linux 認的路徑是 /var/www 這種的,但 windows 是認 c:/windows

2. 內網機透過 curl post 的時候,必須經過 proxy
因為連到內部機器都必須經過防火牆或 proxy,一般在用網頁時,都是由 browser 中設定去變更,而在 curl post 時,必須在 header 中帶入資訊

3. 遠端 mysql 連線會阻擋
既然有擋只好也是用個人電腦中的 mysql 來連線,必須將原本指到遠端 (dev) 的那台,改成指到 localhost

4. tns name 的識別
這問題還好,看來不管是 windows or linux 在連線 oracle 時,都是透過一個 tns name 去指名 host

5. Windows 的 ln 指令無權限
於是 leo 就寫了一個 sync 兩邊目錄的程式,就變成 cp 不是 ln… 不過有總比沒有好

解決了以上的問題後,總算有了一個可以開發的地方,儘情的將提示字印出來也不怕干擾別人。寫下這篇的最大一個原因是希望每個工程師,在碰到即使是公司內部的政策,讓你困頓不前,也要想方法去解決做事的想法,我不願讓他人這麼容易打擊我,也不想妥協無效率的做業方式,我選擇自己開拓,當然感謝許多人的支持及幫忙才能夠讓後來的個人環境更臻完美,而其中最大的成就感是,當我看到我的同事們,開發時不再像以前那樣互相站起來聞問是誰又蓋掉他的程式了,另外還有導入 GIT 讓許多年輕的工程師能夠學習接觸這個版本管理工具,更了解了軟體開發中的重要一環。從以前查線上的 Bug 必須花兩天,如今只需要切到 master 重新再 run 看看為何壞掉的 5分鐘,從此效率變得比較好。在協同工作上,也可以不一定要透過 dev 才能測試,直接在本機就能將他人的程式更新回來,馬上協同測試。這幾點讓我深深覺得對於這件事是之從進了公司後,做的最對的一件事。

當初想導入版本控制後,就知道沒有個人的開發環境,就算有版本控制,能夠發揮性也很低,因為我們還有另一個管道去佈置程式,人人都有懶隋之心,通常你懶一下,想說直接上 ftp 然後不測試,有可能就會讓程式壞掉。我最大的希望是能夠推行版本控制,但在這個環境中,沒有個人的測試環境,能成功的機率非常的低。

最後要感謝一同陪我粍時間的 Leo,做這件事沒有業積,沒有獎金,更沒有上面的認同,但我跟他都認為必須把這東西推行出來,確實這東西也成為了之後佈署的利器之一。也要感謝 Clay 在我對底層環境不熟之時的提點,及在某些地方給予幫助,還有接下來一起幫忙加上本機 redis 的 Willy, 增加本機與 dev 資料同步的杏宜、Victor 等人,再次感謝 Leo 還用了 MS-DOS 的指令,撰寫了相關安裝的懶人包,果然是工程師之魂啊。

寫下這篇記念一下我的好友兼同事 Leo 離職惹,而我也離開了原單位到另一個單位,有可能不再繼續維護它了,雖然我覺得這個東西是需要一個部門去維護它,甚至是多人維護它,以我個人力量很難再繼續維護它,希望後來接手的人,能夠好好的善待它

cloud

cloud

邁入攻城獅 N 年。愛好無厘頭的事物、旅遊、攝影、減肥、慢跑、占星、展覽、食記、偶爾在邏輯的世界亂轉
cloud

Published by

cloud

邁入攻城獅 N 年。愛好無厘頭的事物、旅遊、攝影、減肥、慢跑、占星、展覽、食記、偶爾在邏輯的世界亂轉

  • Wen-Bin Kuo

    真的,個人環境就好像是自己的孩子一樣,看著他沒人管突然覺得好傷心啊!

    不過還是要認真說一下,真得非常佩服妳一個把個人環境弄出來
    也的確是先有可以運作的個人環境之後,我才開始參與自動化安裝或是其他功能的修正
    雖然我也一直知道這個東西的必要性,但我真的沒那麼積極!
    (哈哈,有妳這樣的同事,工作超輕鬆的!同事強就是不一樣!)

    還有,雖然離職,該吃飯的時候我還是會出現的,哈哈!

    • 是說這週也吃滿多次了 哈
      感謝你出了安裝包也才會推行的比較順利啦啦^^