iOS 架構師的情懷

最近想喝雞湯。(復制可搜索到原文,搜索不到的就是我寫的)


寫三次代碼

好的程序員目標是寫出可以運行的軟件就可以了。偉大的程序員寫出來的軟件目標是運行得非常好。通過一次編寫這種情況幾乎不可能發生。最好的軟件通常被寫三次:

  1. 首先,編寫軟件以向你自己(或客戶)證明解決方案是可行的。其他人可能沒有意識到這只是一個概念驗證,但你確實這么做了。
  2. 第二次可以讓它正常地運行。
  3. 第三次你能夠讓它平穩的運行。

拋棄之前的代碼并開始編寫另一個版本是一種強大的方式,可以將“更好地”融入到您的個人工作流程中。
如果沒有其他情況,通過“寫三次代碼”可以告訴你解決問題的方法有多少種。而且它可以防止你陷入停滯不前的狀態。

不要試圖證明自己是正確的

真正優秀的程序員會積極地尋找他們的錯誤在哪里,因為他們知道最終用戶會發現這些遺漏的bug。

10年編程

思考性的實踐是關鍵:不要只是一遍又一遍地做,而是要用超出你現有能力的任務挑戰自己,嘗試它,在你做的時候和做完之后分析自己的表現,并糾正錯誤。

編程成功

編程。最好的學習方式是邊做邊學。用更技術化的說法就是,“對于個人,在給定領域中最高層次的表現,不會因為經驗的增加而自動獲得,但是性能水平可以由于經驗豐富的個人改善有意識的努力而增加。(p366)” 還有,“最有效的學習需要明確的任務,針對特定個體的適當難度水平,信息反饋,以及重復和改正錯誤的機會。” (p20-21)。對于這個觀點,可以參考《Cognition in Practice: Mind, Mathematics, and Culture in Everyday Life》這本書。

與其他程序員交談;閱讀其他程序。這比任何書本和訓練課程都更重要。

在其他程序員之后接手項目。理解別人寫的程序。知道如何理解和修復程序,當初始程序員不在身邊的時候。思考如何設計你的程序使其更容易在你之后被人維護。

有良好的意識能夠盡可能快的脫離語言標準化工作。

尋找優秀的軟件設計師

系統化地盡早識別頂級的設計師。
分配職業導師負責未來的成長,并認真保存其職業文檔。
為設計師的互動和相互促進成長提供機會。

無畏

正如Auguste Gusteau(《Ratatouille》電影中的虛構廚師)所說的那樣,“任何人都可以做飯,但只有無畏者才能成就偉大。”我覺得這里的無畏更像是愿意奉獻自己生活中很大的一部分時間到思考實踐中的意思。可能無畏是對此的總結。

開發業余項目

關于業余項目的開發我必須強調下,這是每個程序員應該要有的東西。至少每年都有有一個,如果沒完成的話不算數。你可以在自己的項目中展現所有從閱讀,社區,導師反饋中學習到的各種知識。你不可能將前東家工作項目中的代碼放到 Github 上開源,所以你需要提取業務中的一些庫和方法并發布開源項目讓大家了解你做了什么。

接手新項目

  1. 遇事追蹤溯源,不要怕改已有的代碼
  2. 編碼在保證正確的前提下,要足夠快
  3. 主動承接團隊里他人不愿意做或者沒做的事

加入新團隊、新項目組

  1. 做事要知其然并知其所以然
  2. 努力建立起嚴謹高效的形象
  3. 成為讓團隊變的更好的人

開發團隊

成為一個好的開發者和團隊成員比學習編程需要了解更多。你的技術水平會隨著工作經驗的增加而提高,然而如果你不注意投入時間提高你的軟技能,最后就會成為你職業生涯里的瓶頸,你甚至都沒有意識到這點。

拒絕不健康的團隊文化

這點我怎么強調也不過分,我看過很多人吐槽他們團隊文化好幾年,我的問題總是“那你做了些什么?”。

對于不健康的團隊文化你應該勇敢的抗爭,如果你看到某人的行為不對不要害怕提出來。提出建議就像平常的交流和代碼的管理一樣。

我對這件事的觀點很簡單:
如果我看見某些我不喜歡的事,我會在團隊里提出來。否則團隊會變得越來越糟,如果這樣我就走人
既然你反正最后都會走,那為什么害怕提出來并且抗爭?
很多人會害怕講出來,尤其是少數派(黑人?)或者內向型的人。通常這樣的人連謝謝都是私下過來對你說。

場景應該是這樣的:
每個人都是平等的,確保每個人都可以自由表達他的觀點,即使這些人很害羞
當一個人被意外打斷的時候,保證他的觀點可以繼續說完,比如“老王,你接著剛才的話繼續說”

因為我們的目標是改變世界

好的代碼并不是我們工作的真正目標。老板雇傭我們是為了他們業務解決遇到的特定問題,也許是一個 APP 或者其他什么軟件,不是為了讓你寫出優美的代碼。交付好的產品才是最重要的。
你需要投入時間去理解業務需求,只有了解了需求后才能做出適合的選擇,聚焦在真正重要的部分。

技術團隊

花時間學習如何融入一個團隊,這會讓你的職業生涯產生巨大的飛躍。
以身作則,如果你:

  1. 空閑時主動去解決遺留問題
  2. 總是嘗試改善架構和工具鏈
  3. 指導他人,自愿去做結對編程或者幫助他人解決問題
  4. 給出空間讓每個人表達他們的觀點并且進行討論
  5. 公平對待每個參與者
    你的同事就會越來越尊敬你,同時你也會對團隊文化產生影響。

成為其他開發者的導師,指導其他開發者是非常有益的一件事,同時也可以培養正確的團隊文化。
我希望團隊里所有成員都可以對我放心的提問。也許是某個工作應該怎么做或者質疑我的決定。
應當鼓勵成員遇到困難尋求幫助或者遇到困難時尋求建議。

擁抱變化

應該要擁抱變化,強迫自己挑戰原有的假設,這樣會讓你少忽視其他的技術流派。總是有其他可能存在。
我會經常做業余項目,并且我有一條規則:每半年都要嘗試不同的方式實現。
需要注意的是改變是有難度的也需要時間。嘗試一段時間后堅持下去不要放棄。

健身的開發者

能夠堅持健身的人一定是一個自律的人,自然也會是對自己有一定要求的人,至少從身型來看是如此。

自律的開發者

自律其實也體現在穿衣打扮上。邋里邋遢的人不可能是一個自律的人。每天精心穿衣打扮也是耗時耗力的事情。

長期的開發者

用時間投資到理財、閱讀、寫作、健身。

不同的開發者

當我看到了不同的生命狀態,看到她們熱情洋溢的生活,我意識到,我也可以有這樣的生活。

著名的開發者

其實,能力越大,責任越大。越有錢,越有能力的人,反而會有更多的約束。當然,他們所擁有的自由,跟普通人的自由也是不同的。他們有能力去世界各地,約見最優秀的人。這是我最羨慕的。

極致的開發者

事事做得認真極致。

有趣的開發者

她認識很有優秀的人。與她聊天,一點都不會覺得無聊,因為她遇見過各種有趣的事情,有趣的人。

有錢的開發者

當真正與有錢人相處之后,才發現他們吃得很健康,幾乎不吃垃圾食品。每一次,她都只點了沙拉。她還是只點了一份沙拉。她還是點了沙拉。

優秀的開發者

成甲在《好好學習》的書中有講到自己的經歷,一開始他遇到比自己優秀的人會刻意躲避,后來他想明白,優秀的人應該比普通人更加謙遜,更容易接近。

iOS 維護項目

程序視界 foruok

你可能很善于做技術探索,很善于架構設計,精于某類算法……我們得客觀評價自己,知道自己的長處在哪里,努力把自己放到能發揮自己長處的項目中去。


iOS 技術理想

《一個老碼農的技術理想》徐飛

  • 工程師:用技術手段改進世界。

  • 要想很好地應對需求變更,很重要的一點就是不要有這個軟件一定不會改的想法,然后,從架構上做拆分,隔離,組件化等等,力爭做到即使要改,也只改某一塊的內部,不影響別的地方。
    很多軟件公司,一方面不注重架構的設計與宣貫,導致變更的時候問題多多,程序員也不能很好領會架構意圖,一方面忽視整個過程中對架構的管控,認為架構只是最初那張靜態圖。
    任何一種架構方案,都需要一個良好的管控機制。沒有哪個蓋大樓的只認真管設計圖紙,不控制施工過程。架構其實是跟施工過程嚴格相關的,架構并不是一張扁平的圖,而是一個立體的東西,作為整個系統工程的骨架。如果能在開發的時候看到這個骨架逐漸建立,血肉充盈的過程,對整個系統的成功把握一定會大得多,這也就是開發過程中架構管控的理念,具體實現要依賴于不同場景。所以,將來的軟件開發方案,一定是會朝著幾個方向發展:

    • 高生產力,單位時間生產效率更高,普通人員也可以參與
    • 高可控性,整個生產過程更加完備可靠
  • 有時候看現在的小孩子,會覺得他們很幸福,因為等他們這代長大,就不需要像我們現在這樣編寫程序了,那時候,編程已經成了一種令人習以為常的通用技能,就像現在的人用Office軟件一樣,所謂的編程,很可能已經不需要敲代碼了,而是圖形化,設置幾個參數就完事了。


iOS 架構師

《一位五年工作經驗架構師的感悟》技術之家

每個架構師都是獨立無二的,每個架構師都應該有自己的情懷,這些情懷是你的世界觀。

平臺能力這些體系思路。一致性hash。

我肯定也知道沒過,然后我就請教面試官,需要提升的地方,學哪方面的內容。
于是我去學...,一個月過去了。

但是面試官,拿著面試題就和我聊了,然后講到一個數據庫方面的知識時(內連接,外連接),我說不知道。面試官說:這么基礎的問題你都不會,這是不能容忍的,其實當時很傷心。

光頭看了下面試題,然后就問了一個技術問題:"什么是架構",雖然當時聽過架構,但是按照我當時的理解,說不清這個概念,我現在也不一定說清這個概念。第二個問題就是:你愿意做外包么?我回答不愿意。

最后女HR和光頭說,你等一等,我們合計合計。合計的結果就是,我進來了,進來的不容易。可能還多虧當年擴招。現在我們面試的時候,我們也經常說:要是按照現在的面試要求,那么我肯定進不來。
現在是什么要求呢?

腳踏實地,如饑似渴,積少成多。
于是進入了支付寶,支付寶好復雜。有很多東西給我學。

光頭老大給有次問我:你的學...計劃是什么呢?
我說:我要把支付寶的所有框架,業務都學...一遍(真不知天高地厚)
老大說:你學的完嗎?
我說:我看了下確實很多,有100多個系統,很多業務概念。
老大說:不要好高騖遠,我建議你結合當前的工作,一步步學...,以點帶面。

剛進公司的時候,我不是很有自信,因為知道自己技術可能比很多大牛差距很大。同時,自己也是一個不太會表達的人(原來的老大也說過,我的軟能力不行),整體上在初期感覺相對較悶。

日常工作就會把自己占得很滿,怎么去學...?我的技術不行,就想去學代碼,框架,支付寶的代碼全部是開源的,所以我可以很簡單通過eclipse直接查看框架的源碼,漸漸的,比很多人都了解框架,了解技術。我還會去逛公司的論壇、公司的doc,這上面有框架設計相關的內容。所以,很多時候機會是很多的,關鍵是你想不想去去。

所以,不要好高騖遠,腳踏實地,時刻保持饑餓感,積少成多。
開放心態,視野決定格局。

12年妻子懷孕,于是轉崗回了成都,成都是個遠離核心的待發展的技術部,當時人就20,30號人吧。

回去后,由于原來是在杭州負責核心A1系統,大家都還挺羨慕,都還挺給面子的。所以,變得越來越自信。

當你自信后,同樣你會越來越勇敢,越來越開放。當時,也看了些敏捷的書,雖然從來沒有完整的看完一本敏捷的書,現在我對敏捷也是半懂不懂,依然很討厭職業的咨詢師,喊喊口號,比如TDD,說實話,我就很難看到TDD的模式,在如此復雜的業務系統成功過。

當時對于敏捷最深刻的一點就是:反饋環。怎么去利用反饋壞不斷是提升自己,自己縮短反饋壞,讓自己成長的更快。

回成都后,我變得更為開放,這種開放,讓我收獲更多,在交流,不斷的學……中,成長更快。從一個基本是完成任務型的技術人員,漸漸去思考更全局,更開放性的內容。

成都遠離核心,生存不易,這些經歷同樣豐富了我,內心也變得越來越強大。這些年影響我最大的一些思想有:

  1. 不要給自己設限:不在把自己禁錮在舒適區,不要怕前面有擋著你的人
  2. 縮小自己的反饋環:
  3. 不斷以小的正能量,不斷積累成就感。
  4. 不要怕做決定:錯誤的決定,比沒有決定好。

漸漸地,我從不說的人,變成了比較能說的人,能說可能還不是會說。會說更考驗技巧,情商。

漸漸地,周圍的人又說我是段子手。
漸漸地,變成了一個經常黑人的人。哈哈。

不斷去思考,總結,提煉做事模式,思考方式,這些方式可以指導你持續成功。
視野,越大,收獲越多,站在全局去看問題,這也是一個架構師需要的。
所以,保持開放心態,視野決定格局,格局改變命運。

架構無處不在,你怎么架構自己的未來。

感謝這些年幫助我的人。
感謝我的家人,對我的容忍。其實說:五年了,媳婦都熬成老婆婆了。但是我想說:五年了,你還是你,我還是我,你還是我老婆,我還是你老公,這些沒有變。


iOS 打造一支不依靠測試團隊的團隊

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容