記軟體開發滿五年(二) 盤點這些年的改變

2021-09-29 15:39:28 字數 2364 閱讀 3117

人生從來就不是單一和乏味的,總是充滿著理性和感性。

作為乙個喜歡文科的人,我應該是比較感性的,但是作為乙個程式設計師,我似乎更多的是應該保持理性。

感性容易引起別人的共鳴,而理性更應該拿資料說話,也許顯得有些無趣,卻可能更有實用的價值。

五年來,我經歷了三家公司,也可以說是兩家。

前兩家都是外包給移動,後邊這一家是外包給聯通。乍一看,似乎我一直從事的都是電信行業,但實際上並不是,我只是一直都在電信行業的公司而已。

在第一家公司基本都是圍繞著電信主業務做的一些邊緣系統,第二家公司則應該算是電信增值業務:電信裡的支付。

到了現在,看起來也是電信公司,但實際上則主要是車聯網。

軟體開發,開發的就不是軟體本身,只是以軟體表達特定的業務而已。對於一直喜歡車的我,進入車聯網行業,無疑是非常幸運的。

進入這個公司後,我總是不由自主的去了解許多本身工作任務之外的業務,也總是情不自禁的為我們服務的車企主動打廣告,更總是時不時沒來由的感覺到一些說不清的自豪感。

這一切,都讓我想起網上一些文章說的那句話:「做自己喜歡的工作是一件多麼幸福的事」。

以前雖然一直也覺得這句話似乎有道理,實際卻並不能真的體會。

那時候總會想,做自己喜歡的工作是一件多麼困難的事,除非是想辦法喜歡上自己的工作。

雖然,想辦法喜歡上自己的工作,也算是一種辦法,但是回過頭來看,和做自己喜歡的工作,還是有很大的區別。

喜歡和想辦法喜歡,這本身就不是乙個概念。

有的人,充其一生也無法找到自己喜歡的工作,有的人,費盡心思還是對自己的工作不喜歡!

有人說,世上唯一不變的就是改變。

在軟體這個行業,真的是得到了非常好的詮釋,主流的技術和框架都總在飛快的變化著,稍有不慎,可能就已經跟不上主流的步伐。

很慶幸的是,五年來,我雖然經歷過大大小小十幾個專案,但從大的方向來說,專案中的技術始終都是前沿主流的技術。

在入行之初,分布式和非關聯式資料庫的概念及技術才剛剛興起的時候,我們就已經開始嘗鮮,就如下圖所示:

雖然說這裡邊的技術我有些並沒有實際用到,但是因為專案涉及了,所以我多少有些了解,最起碼在眼界上得到了足夠的開拓。

人和人之間差距的拉開,有時候可能就只是因為知道和不知道,因為知道的多一點,於是可能就多做了一點,然後知道了更多,進而再多做一點,慢慢的,可能差距就越來越明顯。

從技術棧上而言,這是第乙個正式的業務,所有的技術其實都是耳目一新。

世界的技術總是在飛快的改變,但是乙個公司的技術其實並不會也那麼快的改變,所以下乙個讓我覺得比較有代表性的整體技術替換時間,是在我入行大概兩年半的時候,也就是我換第二家公司的時候。

那個時候是微服務這個概念剛剛流行起來不到一年,新公司的新業務也剛好進行了追心,於是我幸運的又一次擠在了某些技術的前沿。

在這家公司,我覺得比較有代表性的技術架構大概是下邊這樣的,只是為了職業道德和商業秘密,肯定不能展示真實的架構,只能是根據自己的理解畫乙個大概:

細心之人可能會發現,這個圖和上邊那個有乙個共同點,那就是都用了storm和flume。

這也剛好證明了我說的我可以算是經歷了兩家公司,也可以算是經歷了三家。

第一家和第二家,都是給同乙個公司外包的,所以從大的架構而言,就自然具有了一定的共性。

從技術棧上而言,第二家公司給我最大的影響無疑就是微服務和springboot,除此之外,就是簽名加密了解,就像前邊說的一樣,讓我知道了這樣乙個東西,有了乙個安全的概念。

對於同一家公司來說,部分技術的更新和替換自然是沒有問題的,但是想要大刀闊斧的一次性整體改變,必然是充滿了風險,也不是很現實。

所以,讓我第三次覺得整個技術架構和技術棧天翻地覆的時間,也是我進入第三家公司的時候。

如果說在第一家公司我所做的都是邊緣的業務,那麼第二家公司應該能算是次邊緣的業務,而第三家公司就已經是非常核心的業務了。

因此第三家公司我所見到的、所理解的業務也是最最複雜的,單純的從技術棧上就能看出來:

在這裡,以微服務為基礎,同時了解和應用了容器技術以及現在比較火的雲產品。

不僅如此,在軟體安全方面,不論是ssl、單點登入還是認證授權,也都從以前僅僅是概念深入到了應用,從以前僅僅是知道,變成了現在一定的理解。

有人說之前的公司不好,學不到什麼東西;有人說外包不好,學不到什麼技術。

但是我覺得其實也都挺好的,什麼事都有例外。

人世總在變化,存在即是合理,想透才能淡然,看開但不消極!

軟體開發實操彙總(二)軟體開發基礎

有了上述經營戰略 內部資源配置及專案自身情況等內容的彙總及分析,針對不同情況,在開發前,應具體深入的進行專案的前期調研,梳理出專案的具體需求及各種問題,將需求和問題一一落實到文件編制。此過程是專案是否能夠順利實施並取得預期效果的關鍵,大體分為以下幾個步驟 1 需求和問題的歸納 2 編制需求文件 問題...

軟體開發的五個步驟

1 分析 軟體需求分析是回答做什麼的問題。它是乙個對使用者的需求進行去粗取精 去偽存真 正確理解,然後把它用軟體工程開發語言 形式功能規約,即需求規格說明書 表達出來的過程。本階段的基本任務是和使用者一起確定要解決的問題,建立軟體的邏輯模型,編寫需求規格說明書文件並最終得到使用者的認可。2 設計 軟...

軟體開發的五個階段

軟體開發一般分為五個階段 1.問題的定義及規劃 此階段是軟體開發與需求放共同討論,主要確定軟體的開發目標及其可行性。2.需求分析 在確定軟體開發可行性的情況下,對軟體需要實現的各個功能進行詳細需求分析。需求分析階段是乙個很重要的階段,這一階段做的好,將為整個軟體專案的開發打下良好的基礎。唯一不變的是...