各位大大好
小弟有個問題是這樣的
目前小弟的在撰寫程式的作法是
1.寫一點code(可能改一些字或加一個註解)
2.透過FTP丟上主機
3.在網頁上跑跑看有沒有問題
可是現在多人開發+搭配git(非bare)
就直接取代FTP
步驟就會變成
1.寫完一整個function或格式(不然怕commit太多)
2.透過git push到主機
3.在網頁上跑跑看有沒有問題
因為如果維持舊的方法 這樣會造成很多commit
會讓git看起來很雜亂
目前小弟想了兩個方法
1.使用branch
這同樣會產生branch commit很多的問題
不過在master是不會這麼多
但主要問題是 只要我想要在網頁上跑跑看有沒有問題
就必須在主機端下指令 切到branch上
確認沒問題後 再切回來
這樣會變得相當繁瑣
2.在本地端查看網頁是否有問題
這個感覺可行
但我不會實作 也不太知道怎麼找相關方法
首先要有跟主機端一樣的環境
而且還要設定好資料庫設定
感覺起來好像很費工
我不確定我的流程是不是有問題
我也很擔心我講的不清楚
還望各位大大多提攜指點
你的問題都在使用 git 後開始
我建議
不要用 git
用檔案總管+FTP即可
大大的意思就是回到原本的方式操作
但是這樣比較治標不治本QQ~
其實我主要的問題也是如何在local端開發測試再丟到server上
用檔案總管+FTP
請問這種方式是正常的流程嗎?
我目前的都是這樣操作(沒有用git的話) 但總覺得卡卡的
你在意的點跟我不太一樣
比起 git vs 檔案總管+FTP
我反而比較在意的是「正式環境」與「測試環境」的區別
而聽你的描述貴公司沒有在區分這兩種環境
就我個人的看法
已經不需要使用 git 來自找麻煩了
我反而比較在意的是「正式環境」與「測試環境」的區別
而聽你的描述貴公司沒有在區分這兩種環境
大大您說的對
我們公司確實是沒有區分這些
甚至連版控都沒有做
但這純粹是我個人想要在小專案學習
並分享給其他人了解
所以我並不只是單純想要把程式丟到Server上能跑就好
我想學習
我想參考 大多數的前輩在加入版本控管的狀況下
開發流程是如何?在localhost是如何開發的?
小弟願意聽各位前輩大大們的指教
版控的題目比較大
請別的高手回答
我只想建議你先從
「在本機建立與 server 相同的環境(註)」
以便能在本機開發並測試程式
開始
註:server 若安裝 Apache 你就裝 Apache
server 若安裝 MySql/PostgreSQL 你就照著裝
並將 server 上的資料「複製」一些到你的本機
在本機建立與 server 相同的環境(註)
感謝大大說明
這樣就等於是先在本機建立一樣的環境
再copy用的到的檔案下來
可是大大我有幾個問題想請教
1.
DB應該也是照這樣的方式操作對吧?
把用的到的資料庫 資料表copy下來到自己本機環境中的DB
2.
這樣的流程是較為「正式」的流程嗎?
3.
若是之後越來越多專案是在不同server上
環境也都不一樣
那這樣我就要裝很多個不同的DB或伺服器嗎?
你首先要學的,就是怎樣把設定參數化,讓程式在不同環境下運作只要改參數就好。
另外,你要區分所謂的「環境」的差異是什麼,真的會裝很多伺服器嗎?DB伺服器可以裝多個DB,http伺服器的差異,只要你做好參數化,不應該影響到你程式的開發。
其實只要覺得「哎呀,這樣搞好麻煩」,就是你可以切入去學習或改進的地方。你要隨時避免麻煩纏身XD
先感謝大大回覆
你要區分所謂的「環境」的差異是什麼,真的會裝很多伺服器嗎?
目前只有3個server是我常用的
他們的mysql版本 apache版本 php版本都是不一樣的
這會讓我在xampp中要塞很多的php版本
好像不能直接改參數去決定php版本
要調整蠻多東西的QQ
樓越來越歪了
他們的mysql版本 apache版本 php版本都是不一樣的
不管 server 有幾個版本
你現在的本機裡的 php 版本只有一個是吧
既然你可以用一個版本(php)上傳到多個版本的 server
表示你也可以只安裝一套 XAMPP 即可
調整?你確定這些差異會讓你程式用不一樣的方式開發?mysql版本、http伺服器版本差異不應該嚴重影響你程式邏輯跟運行,所以不會有針對客戶環境安裝不同版本來「開發」的這回事才對阿。
至於Production環境,或是需要建構環境來驗證Production的環境,這些本來就需要的,但是不要影響到你的開發環境,不然你就搞死你自己了XD
建議你研究一下fast cgi,這樣至少你只要安裝好不同版本的php後,調整一下設定就能跑,不用重新裝整套有的沒的。(IIS/Apache httpd/nginx都能通)而mysql,並沒需要安裝多個版本才對,除非你用到某個版本才有的特性。
有個火了一陣子的東西叫docker...(茶
感謝各位大大回覆
我已經大概了解我想知道的了
也就是"先建置跟server一樣的環境和檔案 接著在本地端開發"
@海綿寶寶大
既然你可以用一個版本(php)上傳到多個版本的 server
其實不行,要考慮每個server的php版本
版本可能從php5 - php7都有
寫法也要不一樣
所以要依據server環境去調整本地的php版本
@fillanofeng大
我會來研究fast cgi的
感謝
@force 大
docker我有碰過一點
但還不是很了解 所以我還會再去研究
畢竟我這發問重點主要是想了解大家本地端開發的做法
你如果有需要搭配各種php版本、apache、nginx的話,我只能跟你說學docker穩賺不虧。
版本可能從php5 - php7都有
那是我誤會了
如果你能在同一部機器上面任意開發多個版本的 php
就表示你能做到多版本環境的設定
那我就建議你
1.在同一部電腦裝多套 MySQL
2.在同一部電腦裝多套 Apache
然後隨時依據專案不同做切換
最後再補充前面沒講的其他做法
1.多部電腦
2.同一部電腦,多個 Virtual Machine
3.同一部電腦,用 docker
@froce大
感謝建議!
@海綿寶寶大
感謝大大這麼完整的回覆以及建議
我先來更了解docker的運用
我因為在公司需要維護一個老opensource專案(QuixExplorer)。
然後要搞個測試的php server。
在windows用docker只要一行指令就ok了...
你覺得該不該學?
個人重來不用本地端開發。
雖然是這樣說。
其實也是因為我有兩台主機的關係才能這樣說。
一台是工作機裝windows系統。
一台是linux系統,也就是開發機。用了一些的手法,將目錄掛載到工作機上作業。
其實第二台可以利用一下hv或是docker也能達到這樣的效果。
我只是剛好有二台機器(其實是三台),可以這樣幹。
先說說為何我不用本機作業。其實倒也不是不想本機作業。
而是不想在windows系統下作業。
因為在windows下作業,很常發生莫名的問題。
但工作機跟一些應用沒用windows系統又很難搞定。
以前有買了切換器工作,但一整個覺得麻煩。
之後就自行研究這樣的開發模式處理。
其實開發機我也區分了開發環境跟測試環境。
東西要上線前。也是會先用git推到測試環境。
平常開發一定不會在master。也不會對他做合併。
只在測試環境下才做合併。
而正式機也只會拿master。
其實不行,要考慮每個server的php版本
版本可能從php5 - php7都有
寫法也要不一樣
所以要依據server環境去調整本地的php版本
我功力差,所以都花錢消災,調整不同版本php很簡單。
php要幾個片本都行
結論,高手有高手的做法,像我這種低手,也有低手的門路,反正達得到目的就好。