一位資深Python程式設計師心得,程式設計師受益一生,我視它爲生存指南!

  • 使用自動樣式檢查。每種語言都有很多樣式檢查器;
  • 使用質量檢查。有些工具在你的代碼庫上運行一些複雜的啟發式算法來檢測不同的問題,比如這個代碼行內有太多的邏輯,這個類是不需要的,這個函數太複雜了;
  • 審查你的代碼。在合併為master之前對其進行審查。以及合併後的某個時間也是如此;
  • 付錢讓其他人來審核你的代碼。此手段可以產生巨大的積極影響!因為如果是陌生的開發人員來查看你的代碼,他們更容易發現不一致和糟糕的設計決策。
  • 不僅適用於我

    一位資深Python程序員心得,程序員受益一生,我視它為生存指南!

    大約十年前,在我的團隊開發出我們的第一個大型軟件項目時,我們將其作為java源文件發佈。然而,它無法在目標服務器上編譯。這距離需要提交給客戶只有若干小時了。這是一個巨大的失敗!最後我們用盡辦法終於能夠啟動並運行了,但不可否認這真的是一次刻骨銘心的體驗。

    發生這種情況是因為構建管道中存在眾多配置和複雜性。而我們無法妥善管理這個系統的複雜性。所以,從那一天起,為了減少這種複雜性,我嘗試在隔離的環境中打包我的程序。並且在實際部署發生之前在這個環境中測試它們。

    在docker(通常還有容器)崛起的近幾年,事情變得簡單起來。docker允許你在相同的隔離環境中運行開發、測試和生產。所以,你永遠不會錯過任何重要的事情。

    那麼你會怎麼做?說說我自己,我在創建服務器、初始配置或連接的時候總是會忘記一些事情。因為有這麼多需要記住的事情!幸運的是,這些我們都可以自動化。有很多不同的工具可以自動化部署過程,這些工具厲害極了,如:terraform,ansible和packer。閱讀工具信息,找出實際需要哪一個用於任務。

    我也嘗試儘快建立CI / CD。這樣,如果我的構建在測試或部署中失敗,那麼就會有報告發我。

    生存指南:

    • 自動化用於部署的任何內容;
    • 使用docker進行應用程序開發、測試和部署;
    • 使用部署工具。

    應用程序部署後,我仍然不自信

    終於,我的應用程序已經進入了產品階段。它可以工作了。我可以休息休息,應該不會出什麼問題了。等等,不!一切都崩潰了。是的,我沒有說錯:一切。

    實際上,有一些工具可以使得查找和解決現有問題更加容易。

    • Sentry。當你的任何用戶發生錯誤時——你將收到通知。幾乎綁定了所有編程語言;
    • 使用不同的服務和工具將多個進程和服務器的日誌收集到一個地方;
    • 服務器監控。這是你可以為CPU,磁盤,網絡和內存配置顯示器的地方。你甚至可以在用戶實際破壞你的服務之前發現需要增加的時間

    簡而言之,我們需要監控生產中的應用。我們有時使用所有這些工具,有時只使用最需要的部分。

    學無止境

    需要學習的東西是無窮的。如果我們想編寫出好的軟件,那麼我們需要不斷地學習怎麼做。沒有捷徑也沒有魔法。每天進步一點點,就會越來越好。

    總之,我們需要理解兩件基本的事情:

    • 每個人都會遇到問題。關鍵是我們得對這些問題做好準備;
    • 我們可以將問題的源頭控制到一些可接受的水平。

    這些與你的心智能力或心態無關。


    分享到:


    相關文章: