文章出處

因為我是看到 tinyfool《那些年我趕過的時髦技術趨勢》,在贊嘆的時候,也讓我對我有好些回憶,所以想寫一篇回憶貼,本來覺得回憶是件挺讓人沮喪的事,因為是老了的表現,但我寫著寫著,就歪樓了,看來,我還不老,還在拼博。下面是很多我的嘮叨,你喜歡就讀讀,不喜歡就 TLDR – Too Long, Don’t Read!

自從 98 年畢業,到今天,參加工作有 18 個年頭了,加上在大三的時候就為兩個在外面接活的老師程序,到今天,寫的程序被用到生產線也有 18 個年頭了。

背景經歷

要說明我技術上的“性取向”,還得我說說的我的一些背景和經歷。

我這 18 年,大約分三個階段:

1996 年-2000 年入門亂來期,大三大四加在銀行工作的兩年。

用 Powerbuilder/Delphi 在 WindowsNT/SQL Server 上做了好多個 MIS 管理軟件,有酒店的,有送水的,有 OA 的。 用 Java 的 Applet 做了一個 Web 的教學課件,用于在 Win95/IE3.0 中演示操作系統中的各種調度和算法的動畫,得了個全國大學生挑戰者杯的鼓勵獎。 給一些公司用 Delphi 的 ISAPI 技術以及 PHP/ASP 給一些公司和大學做過幾個網站。

2000 年-2010 年技術學習期,這個時間段,我主要的編程語言是C/C++。

前兩年在銀行用C語言在 Unix(AIX/Solaris/Sco Unix/HP-UX..)寫各種銀行業務(用C語言寫),用C寫操作 SQL,操作界面,寫業務交易邏輯,一切都用C……,這是一個C語言的年代,當時,全國的銀行都在做大集中,銀行當時行業里最大的軟件系統了,所以,我確定了C/C++/Unix 的技術方向,我當時的網上簽名是,C/C++/Unix 才是大規模殺傷性武器。 然后,2002 年在 Platform 做一個全平臺的(包括 Unix/Linux/Windows)高性能計算的軟件產品,很像今天的 Hadoop,當時叫 Grid Computing,從 06 年以后,發現很多用戶開始從 Unix 遷移到 Linux,于是開始更為關注 Linux 的 Kernel 知識。Platform 有一套很嚴謹的軟件工程體系,我對嚴謹的軟件工程以及很多的基礎的技術的認識在這里形成。 2007 年在路透做路透全球金融數據 Real-Time 網絡的高性能調優(我在《性能測試應該怎么做?》一文中透露過這個公司的性能要求,是一個實時的數據網絡,對于 99.9% 的網絡傳輸在 100Ktps 的要低于 1ms,技術挑戰是很大的),在路透,我只干一個事,就是性能優化,我把我負責的幾個系統的性能都提升了 7 倍到 15 倍的樣子,09 年年底的時候,我已把未來 3 年的優化的活都干完了。所以,這個時期,我也開始了我的經理生涯。我對性能調優,系統架構,管理是在這里形成的

2010 年到今天技術沉淀期,這個時間段,主要的編程語言是 Java。

這段時間,我加入了 Amazon 和 Alibaba,也就是所謂的互聯網公司。這段時間,對我影響比較大的是 Amazon,技術不再是我的瓶頸,大規模的系統,對我也不是問題,而讓我收獲最大的是,世界前沿的軟件設計架構和解決方案,以及做技術的態度和工程的方法,我的眼界、腦洞和視野都巨大的打開,并且在技術管理、工程管理、產品管理、人員管理、公司管理等等管理方面的思維有了質的提升。這段時間,才是我真正技術沉淀的時期。

我的這個背景本來可以更好一些,只可惜運氣不太好,本來可以走的更快的,無奈在最關鍵的時候遇到了兩次金融危機,本來可以去硅谷更牛更好的公司見世面,無奈父母身體欠安,只能放棄。

經歷決定思維方式

通過我的背景經歷,大家不難看到,我基本上都是做一些規模比較大的系統和軟件,而且,主要用C/C++/Unix/Linux 這樣比較晦澀的語言和操作系統。我們知道用C和 C++ 開發,基本上要處理的錯誤,都是和系統底層相當的東西,而上規模的系統和軟件,又總是會遇到很多“稀奇古怪”的問題,這些問題,都會逼著我要去了解很多的操作系統、計算機系統、網絡、數據庫、中間件等等的各種基礎或底層技術。

而且我經歷的基本上都是非常嚴謹的軟件工程,不能馬虎,我有幾次馬虎的經歷,給我造成了非常大的心理影響,比如,曾經被定性為不適合寫代碼,因為代碼太爛,或是出了嚴重的故障,幾乎要跑路去了。所以,我的整個經歷,讓我養成了,在軟件開發上必需也不得不嚴謹的習慣和價值觀體系。

大家想想,用C/C++開發一個幾乎不能出故障的軟件系統,你需要多仔細和多嚴謹的態度才能達到要求?因此,我的經歷讓我不能馬虎,也不能應付工作,更不能對標準上有所妥協,所以,時間一長,我必然,會有如下的習慣:

要做到——知其然,知其所以然。所以,只能不斷的學習基礎知識以及和這個技術關聯的知識,就像 wikipeida 一樣,當你進入一個詞條的時候,就會伴隨時一堆新詞條,于是,當多年后,我看到 “知識廣度是深度的副產品”這句話時,簡直就是說到我的心里去了。 要做到工業級的軟件。從 Platform 到 Amazon,軟件開發上都會有 SLA 的要求。我認為,一個軟件是工業級還是民用級的,除了功能正確之外,最重要的一個指標之一就是在性能和穩定性上有沒有 SLA。絕大多數的互聯網公司和開源軟件都沒有 SLA。所以,達不到工業級的標準。要達到工業級的標準,就需要花費時間和財力進行非常繁瑣的測試評估。 工業級的軟件來自工業級專業人員和專業軟件工程。 專業的人員。為什么絕大多數的外國公司需要的是 CS(Computer Science)背景畢業的工程師?因為他們要做的是工業級的軟件,這是一門科學,即然是科學,就需要受過良好的科學教育的 CS 專業的人。 專業的工程。工業級的軟件需要有工業級的軟件工程,比如,嚴謹的 Design/Code Review,嚴格的測試,以及線上運維。 專業的工具。這個時候,你就會發現,要做到高級別的 SLA,比如包括 5 個 9 以上的 SLA,人肉干活的能力已經跟不上了,你需要大量的專業的與之配套工具。這也是工業級的另一個標準——你有多少現代化的支撐工具?

在之前的《開發團隊的效率》一文中,我說過——你總需要在一個環節上認真,這個環節越往前就越有效率,越往后你就越沒效率。要么你設計和編碼認真點,不然,你就得在測試上認真點。要是你設計、編碼、測試都不認真,那你就得在運維上認真,就得在處理故障上認真。你總需要在一個地方認真。

認真是痛苦和需要艱難的,也是對自己的一種挑戰。老實說,我與很多人對“認真”的標準不一樣,所以,產生了很多分歧,很多人說我太理想了。其實,我能理解他們,一方面是因為我的標準備比較高了,另一方面是他們只做過民用級的軟件。

別外,在一開始,做慣了工業級軟件的我極度地不適應于那些糙快猛的開發方式。不過,我也在調整自己,畢竟,世界不只一種價值觀,有的是工業級的軟件,有的則是民用級的,還有的只是個玩具,而 Java 這門語言非常有效地屏蔽了很多底層和基礎知識,所以,也不可一概而論,我也在適應一些民用級的軟件開發的方式。

后記

從去年我從阿里離開到現在 14 個月了,這段時間內,我給大約 40 多家公司做過相應的技術咨詢和解決過很多技術問題,絕大多數公司都是因為性能和穩定性的問題來找我的,我給這些公司解決問題的時候,基本都是這樣的 Pattern:

一開始,發現都是一些技術知識點的問題, 然后,馬上進入到系統架構方面方面的問題, 當我再往下解決架構問題的時候,我發現,已經是軟件工程的問題, 而軟件工程問題的后面,是公司管理上的問題 而公司管理的問題,結果又到了人的問題上 人的問題,又到了公司文化的問題

你看,很多問題,一環扣一環,最終都不是一個簡單的技術問題。我倒不是說,我在抱怨這些問題,我更不是在說能解決這些問題,因為,無論你給什么樣的解決方案都會有問題,沒有問題才是不正常的。我能做的是,觀察這個公司的業務形態、和相關的思維方式,以及現有的資源和相應的技術實力,幫助他們從技術到管理上緩解現有的問題。

所以,我基本上來說,這近 20 年來,我只在專研一個事——如何做出一個性能高穩定性好的大規模的系統。在這個方向中,除了很多的基礎和底層技術我需要吃透,我還需要在軟件的開發工藝,軟件工具,以及軟件的線上運維,以及相關的管理,因為,只有技術、工具、工程、運維、人員這幾個方面搞好了,才可能出現一個性能高且穩定性好的系統。

之前對于我來說,我一直在鼓吹先進的管理和軟件工程以及技術和工具。今天,對我來說,遇到最大的問題就是,在沒有這些所謂的先進的東西的時候,除了我自己上手外,我是否還有解決相應的問題?因為我已經完全 Scale 不了。

有問題就有挑戰,我每天都在思考,如何在不完美甚至殘缺的環境下,解決這些公司的技術問題。每個人都要給自己一個目標,目前,我給自己的目標是——在殘缺的環境下,能讓用戶不改一行代碼,不動任何的架構,不改變用戶很糟糕的軟件開發的習慣,也不讓用戶作任何管理上的調整,能提升用戶的軟件系統的性能和穩定性。

因為我相信技術,我相信有更好的技術,可以為用戶完全透明的提升性能和穩定性,我大致找到了相應的解,現在,我正在實踐的路上,這也許是筆大買賣,所以我不知天高地厚地注冊了自己的公司……

就愛閱讀www.92to.com網友整理上傳,為您提供最全的知識大全,期待您的分享,轉載請注明出處。
歡迎轉載:http://www.kanwencang.com/xinwen/20161027/147757874513419.html

文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()