程序員是如何思考的-筆記

如何思考git

 

 

以始爲終點程序員

踐行「以終爲始」就是在作事以前,先考慮結果,根據結果來肯定要作的事情。算法

可以爲別人帶來價值,本身的價值才能體現出來編程

 

亞馬遜如何開發一項產品的:網絡

  1. 寫新聞稿;
  2. 寫FAQ(常見問題解答);
  3. 寫用戶文檔;
  4. 寫代碼。

 

DoD 是一個的思惟模式,是一種儘量消除不肯定性,達成共識的方式。架構

 

user story:框架

As a (Role), I want to (Activity), so that (Business Value)運維

 

持續集成編程語言

git flow工具

 

多問幾個爲何,交流一下是否是能夠換個作法,許多困惑可能就煙消雲散了。而能想到問這樣的問題,前提就是要跳出程序員角色思惟,擴大本身工做的上下文。

 

當擴大了本身工做的上下文時,咱們的目標就再也不侷限於一個單點,而是會站在更高的維度去思考,解決問題還有沒有更簡單的方案。許多在低一級難以解決的問題,放到更大的上下文裏,根本就不是問題。

 

「最後一千米」,這個說法指的是完成一件事,在最後也是最關鍵的步驟。

負責人就是站在「最後一千米」的角度來看要發生的事情。

 

實際上,早就有人在熟練運用這種思想了。在軍事上,人們將其稱爲沙盤推演,或沙盤模擬。軍隊經過沙盤模擬軍事雙方的對戰過程,發現戰略戰術上存在的問題。這一思想也被商界借鑑過來,用來培訓各級管理者。

 

今天談到人工智能,人們主要會談三件事:算法、算力和數據。算法幾乎是行業共有的,而算力在雲計算普及的今天也再也不是稀缺資源,因此,數據幾乎成了兵家必爭之「物」。

 

迭代0

 

有一個關於程序員的經典段子:這個工做已經作完了80%,剩下的20%還要用和前面的同樣時間。

 

怎麼衡量測試是否作好了呢?有一個標準:A-TRIP,這是五個單詞的縮寫,分別是Automatic(自動化)、Thorough(全面)、Repeatable(可重複的)、Independent(獨立的)和 Professional(專業的)。

 

想要管理好需求,先把需求拆小。

 

一個有效的時間管理策略是艾森豪威爾矩陣

 

當時間有限時,咱們須要學會找到一條可行的路徑,在完整用戶體驗和完整系統之間,找到一個平衡。

Minimum Viable Product,MVP

 

經過溝通反饋,不斷升級本身的編解碼能力。

 

 

任何人都能寫出計算機可以理解的代碼,只有好程序員才能寫出人可以理解的代碼。
—— Martin Fowler

晨會:

因此,在總長固定的狀況下,每一個人發言的時間必定是有限的。在有限的時間內,你能說什麼呢?我建議你只說三件事:

  • 我昨天作了什麼?
  • 我今天打算作什麼?
  • 我在過程當中遇到了什麼問題,須要請求幫助。

 

技術雷達

https://www.thoughtworks.com/radar

 

技術雷達用來追蹤技術,在雷達圖的術語裏,每一項技術表示爲一個 blip,也就是雷達上的一個光點。

而後用兩個分類元素組織這些 blip:象限(quadrant)和圓環(ring),其中,象限表示一個 blip 的種類,目前有四個種類:技術、平臺、工具,還有語言與框架。

圓環表示技術一個 blip 在技術採納生命週期中所處的階段,目前這個生命週期包含四個階段:採用(Adopt)、試驗(Trial)、評估(Assess)和暫緩(Hold)。

 

 

 看板

 

這種把過程還原,進行研討與分析的方式,就是覆盤。

 

Eat your own dog food

和產品經理沒有「共同語言」

由於他們說的一般是業務語言,而咱們的口中基本上是計算機語言。這是兩個領域的東西,很難互通。前面在討論代碼的時候,我提到要用業務的語言寫代碼,實際上,這種作法就是領域驅動設計中的通用語言(Ubiquitous Language)。

 

遇到問題,最好的解決方案是儘早把問題暴露出來。

 

Perl 語言的發明人 Larry Wall 曾經說過,優秀程序員應該有三大美德:懶惰、急躁和傲慢(Laziness, Impatience and hubris)。想要成爲一個優秀的程序員,就要讓機器爲本身很好地工做,而這須要對自動化有着很好地理解。

 

追變的東西,永遠追不完,追不變的東西,就那麼點東西。

 

DevOps技術棧

https://chaifeng.com/devops-tech-stack/

 

運維:

https://www.infoq.cn/article/detail-analysis-of-devops

 

 Martin 提出的面向對象設計原則:SOLID

  • 單一職責原則(Single responsibility principle,SRP)
  • 開放封閉原則(Open–closed principle,OCP)
  • Liskov 替換原則(Liskov substitution principle,LSP)
  • 接口隔離原則(Interface segregation principle,ISP)
  • 依賴倒置原則(Dependency inversion principle,DIP)

 

 六邊形架構

 

分層,更關鍵的是,提供抽象。這種分層抽象在計算機領域無處不在,不管是編程語言,仍是網絡協議,都體現着分層抽象的價值。有了分層抽象,人們才能更好地在抽象的基礎上構建更復雜的東西。

 

你的領域層只依賴於你的領域對象,第三方發過來的內容先作一次轉換,轉換成你的領域對象。這種作法稱爲防腐層。

 

《卓有成效的管理者》

相關文章
相關標籤/搜索