【CSS練習】IT修真院–練習2-開發工具

Nodreame發表於2018-06-01

任務二. 認識開發工具

今天完成的事情

  • IDE & 編輯器對比
  • 版本管理工具學習
  • Git基本操作
  • 程式碼託管平臺對比
  • 伺服器使用學習

明天計劃的事情

分析任務三, 完成規劃及部分開發

遇到的問題

暫無

收穫

  1. IDE & 編輯器對比 參考:Atom、Sublime Text、VSCode 三者比較,各有哪些優勢和弱勢?

    • Webstorm: 一款成熟的IDE,對網站開發者友好,外掛齊全功能強大,對於前端開發幫助極大;
    • VisualCode:

      • 微軟開原始碼編輯器,可通過安裝外掛來應用在各種開發場景;
      • Windows & Linux & Mac都有, 介面優雅效能穩定,簡單強大的外掛系統, Windows上最適用程式碼編輯器;
      • Terminal 內建!
    • Sublime: 老牌非開原始碼編輯器. 功能強大啟動速度快,各平臺表現都很好, 但是裝了外掛之後markdown支援也不好(嫌棄臉
    • Atom:開源老牌編輯器,有活躍的開源社群支援,夠hack,對電腦頂配的前端開發者友好… 穩定性差,Windows上表現不好
  2. 版本管理工具學習

    • 程式碼版本控制對比 參考:Git優勢 & 發展

      • 本地式(第一代):

        • 特點: 實現了基礎的程式碼管理功能, 但是無法協作;
        • 代表: SCCS(1972)、 PVCS(1985)
      • 客戶端-伺服器式(第二代):

        • 特點:

          • 優點: 實現了中心伺服器端的程式碼版本管理, 允許多人對同一個程式碼庫進行同步&修改
          • 缺點:

            1. 斷網受限: 斷網時無法檢視日誌, 也無法提交和比較版本;
            2. 分支管理困難: 不支援本地分支, 且建立的分支難以修改;
            3. 中心化: 中心化意味著需要時刻做好災備, 備份頻率需求與較高的備份成本相互掣肘;
            4. 慢: 程式碼備份&查詢&對比都需要與伺服器通訊, 伺服器負載大, 表現出來的結果就是慢;
        • 代表:CVS(1986)、 ClearCase(1992)、Visual SourceSafe(1994)、Perforce(1995)、Subversion(2000,即SVN)
      • 分散式(第三代):

        • 特點:

          • 優點: 結合前兩代優點,並且解決了前兩代的弊端

            1. 分散式: 斷網時可查本地庫中的日誌, 亦可提交程式碼、建立分支, 分塊管理;
            2. 快:負載分流管理,使用體驗為快速;
            3. 社群: Github社群的火爆推動Git的流行;
          • 缺點: 有一定學習曲線, 不過基礎使用入門不難;
        • 代表: Git(2005)、Mercurial(2005)
  3. Git基本操作 參考: Git教程-廖雪峰的官方網站

    • 提交操作

      1. 初始化: git init
      2. 全部加入快取區: git add .
      3. 提交快取區檔案: git commit -m "本次提交描述"
      4. 新增遠端庫連結: git remote add origin <遠端庫連結>
      5. 初次推送到新增的遠端庫: git push -u origin master
      6. 再次推送到新增的遠側庫: git push origin master
    • 分支操作

      • 本地:

        1. 檢視分支: git branch
        2. 建立分支: git branch 新分支名
        3. 切換分支: git checkout 已有分支名
        4. 刪除分支: git branch -d 已有分支名
      • 遠端:

        1. 檢視分支(帶*號為本地分支): git branch -a
        2. 刪除遠端分支:
          git branch -r -d 遠端分支名
          git push origin :遠端分支名
  4. 程式碼託管平臺對比

    • Github: 世界最大同性交友社群(霧

      • 優點: 開源專案豐富品種齊全, 適合自己做練手和公開專案用, 支援CI;
      • 缺點: 國內有點慢, 私有倉庫要收費, 不支援演示;
    • 碼雲: 本土化開源社群 參考: 碼雲評價 & 官方對比

      • 優點: 適合中國國情, 速度快, 有免費私有庫用, 支援一鍵部署到演示平臺(有空試試), 支援專案點評, 支援程式碼質量分析;
      • 缺點: 據說CI支援不夠完善, 待驗證
    • Coding

      • 特點: 整合專案管理、整合WebIDE線上開發環境、標準化擴充介面
    • Gitlab: 公司內部程式碼管理

  5. 伺服器使用學習

    • 購買雲伺服器: 阿里雲、騰訊雲
    • 購買之後:

      • 遠端登入, 搭建Apache或者Nginx, 然後放置網站在指定路徑, 完成外網訪問支援;
      • 買域名, 稽核後繫結伺服器, 完成域名訪問支援;
    • Apache & Nginx 對比 參考:Nginx和Apache各有什麼優缺點

      • Apache:

        • 適合處理動態請求
        • 模組支援好
        • bug少,穩定
        • rewrite功能強大
      • Nginx:

        • 輕量級, 配置簡潔, 優勢在於處理靜態請求
        • 併發支援好,資源使用少
        • 高度模組化設計
        • 社群活躍
      • 結合: 前端用Nginx作為反向代理抗壓, apache作為後端處理動態請求
    • Nginx環境搭建(Centos): 參考How to install and configure NGINX on CentOS7

      • 下載安裝: @官網照寫

        • 編輯nginx.repo
        • yum install epel-release
        • yum install nginx
      • 狀態操作

        • 啟動: systemctl start nginx.service
        • 查詢: systemctl status nginx.service
        • 停止: systemctl stop nginx.service
      • 開機啟動設定: systemctl enable nginx.service
      • 目錄

        • 網站檔案預設存放目錄:/usr/share/nginx/html
        • 網站預設站點配置:/etc/nginx/conf.d/default.conf
        • 自定義Nginx站點配置檔案目錄:/etc/nginx/conf.d
        • Nginx全域性設定:/etc/nginx/nginx.conf
        • Nginx啟動:nginx -c nginx.conf

效果

六. 系列文章