作者:小傅哥
部落格:https://bugstack.cn
沉澱、分享、成長,讓自己和他人都能有所收穫!?
一、前言
你在通往架構師的路上嗎?
程式設計師這個行業就像是在不斷的打怪升級,突破每一階段的瓶頸期。
從畢業前想通過實習拿到offer、畢業後想通過試用期到轉正留下、轉正後程式設計師想做到高階開發、從高階該開發想做到架構師、從架構師想做到更高的總監或者CTO。往後的路越來越不容易,既需要需要個人不斷的沉澱學習,也需要一定的機遇機會。
在這條路線上架構師是一個瓶頸期的重要轉折點,因為這個階段遠不止個人的技術棧學習,還有很多其他能力,幾乎可以包括的有如下幾點;
- 有中大型專案開發落地經驗
- 有可靠的交付質量和統籌能力
- 能解決複雜專案的架構設計和推進執行
- 有一定的技術廣度和深度,改的了bug,處理的了事故
- 定得了規範、設計了架構
- 有一定的認知範圍,熟悉業務、產品和運營,瞭解運營規劃和業務發展
- 帶得了小組,推進專案落地和組內技術成長
- 有一定的專業影響力,能用技術創造價值
- 有緊急情況的應對能力
- 流程規範制定、方法論、開源專案的相關經驗
一個技術架構師要求可能不只這十點,還有很多軟實力。但這些很難通過培訓或者上課學來,因為這些能力都是實操經驗,需要長時間的磨練。
其實即使沒有架構師也不會缺少系統架構,這樣的小組並不需要養一個架構師,很多都是成套的快速搭建的技術,尤其像 SpringBoot
一整套服務,很適合小型公司使用。
但如果有非常複雜的系統架構和業務場景設計,包括幾十個系統的分組安排開發,提供支撐上百萬的QPS、秒殺的活動瞬時就有幾萬、以及需要隨著業務發展擴充套件到可以支撐幾百萬DAU的後臺服務。就需要架構師來整體把控,因為他可以從下單、到交易、到支付、到結算、到活動、到玩法,怎麼支撐、怎麼設計,提供出一整套的解決的方案,那麼這個體量複雜程度的系統,就不在是一個小作坊團隊能承擔下來的了。
二、技術棧閉環學習
你的技術能力足以支撐整個系統嗎?
其實很多程式設計師??大部分都被侷限在產品的PRD裡,除此之外對整個全域性並沒有太多的認知。而且只是在技術範疇內也同樣被限定在某個語言下,比如後端研發基本開發不出一個完整的前端頁面、前端同學同樣也寫不出後端介面。
當然在某個技術語言下深扎不一定是什麼壞事,甚至可能還有一番創造和成績。只不過缺少了全域性的認知和了解,在某些時候會被限定到一個瓶頸期裡,在想成長到下一個階段就很難了。
或者更簡單的說,你能用你所會的技能搭建出一個技術部落格嗎,並運營起來。如果你沒做過這件事,那麼從你開始到完成你會發現。你需要的不只是java,還有UI設計,還有前端頁面,還有伺服器等等一套技術來支撐。同時,在某些時候你會為選擇用 java
還是其他語言而糾結,因為個人部落格的伺服器也是要付費的,java
伺服器的費用通常會貴一些。
所以,如果你的將來想自己做點什麼,就不要只被侷限在某個技術裡,也不要被侷限在某個領域中。瞭解瞭解業務
、熟悉熟悉運營
,也嘗試學學UI
,這些知識的學習都遠比浪費可靠。
三、我那折騰的成長經驗
講道理,其實我是一個很愛折騰的程式設計師,當然別的事上我也愛折騰,尤其發明創造類的。
小時候我會把很多東西拆嘍,拿裡面的電機等小東西,在做一些玩具。比如;可以下水的電動小船、可以滑冰的小冰車、還有一些懶人小工具等。
隨著這樣的性格到學程式設計也是這樣愛倒騰,從初學程式設計就想著要自己做網站。從只會個html就開始買域名、備案、上線網站、裝b分享,這一套組合拳就開始折騰到現在。直到有了目前這個穩定的技術部落格網站 bugstack.cn 。這些讓我學到了很多額外的知識,也擴充了很多的黑技能。
1. 我有一個部落格引流
假如你有一個流量還可以的技術部落格
,又新申請了一個公眾號,想把公眾號做起來。那你會怎麼做?
是不會想到在技術部落格找塊顯眼的區域,放置一張公眾號二維碼?但這樣的方式其實並不會有太多人關注,從現在比較流行話的來說,關注不關注並不會影響到使用者的利益。
所以,我們更希望的是在保證使用者體驗的情況下,儘可能的引導使用者主動關注。那麼最好的方式就是使用者閱讀文章時提醒關注,如果沒有關注只能閱讀文章的30%內容,關注即可閱讀全文。就像下面這樣的效果,如下;
這個效果最終的結果就是使用者在閱讀文章時,可以引導使用者關注公眾號傳送指定的編碼進行解鎖,解鎖後允許使用者閱讀,流程如下;
2. 為了引流要付出多少成本?
這是使用Java語言,開發一個把部落格使用者引流到公眾號服務,一年大概的成本。當然不同的雲服務廠商的價格以及活動時略有不同,但按照每年的平均價格計算,大概會在1800.00元左右。
這個錢?也不是太貴,但放在整個成本核算的服務裡,這樣的投入就是蠻高的了。除非你的公眾號收入可以抵消這部分投入,並且還有一些收益那麼是可以的。另外這裡我們還沒有計算人工投入,對號主
就是那個多種角色的人工:產品
+ 研發
+ 視覺
+ 業務
+ 運營
= 號主!
可能你不知道,Java服務是貴一些,但還有php的伺服器便宜呀,價格差多少呢?以php的虛擬機器為例,一年的價格是198元。而且這個php虛擬機器還包括了1G的資料庫資源,與java伺服器相比確實很省錢。
所以,選擇php開發這套公眾號與部落格打通的後端服務,就顯得非常適合。
3. 使用PHP搭建DDD四層架構
好多年前我也自學過PHP,得益於那句:”php是全世界最好的語言!“。
因為在這條學習的道路上愛折騰,所以C++、C#、PHP、PLC、中繼器等也都開發過。但太久不用所以也忘的7788了,可為了能省錢我用一天時間把PHP又學會了!
其實有了一定的程式設計經驗,語言之間是有一定的相似度的。你只要按照你的想法實現即可,任何一個語言都會提供給你相應的實現方式,不知道?
搜就可以!就像下面這個PHP的領域驅動設計四層架構,與Java很是相似。如下;
咳咳,這裡我沒有選擇使用php的一些框架,例如 thinkphp、laravel等。畢竟框架對我來說開發一個公眾號的後端服務,還是稍顯笨重。按照我的想法邏輯,搭建一個DDD四層架構按照我實現Java的方式實現PHP程式碼即可。實現方式也會非常快,最後只花了1天時間就把整個服務寫完並部署上。這包括;程式碼開發、資料庫配置、服務上線、介面切換、SSL、跨域等。所以,我一直想說不要只做個工具人,要鋪設的全面一些!
例子,讓你看看現在的PHP與Java像不像;
- 定義方法名稱用function,
public function entry()
- 建構函式
public function __construct()
,可以初始化一些資訊 - 字串用點連線,
$openId . "_" . $token
- 介面用interface定義,
interface LogicFilter
- 類的引入包,
require_once
- 方法呼叫用指標,
$this->msgEngineHandle->process($behaviorMatter);
- 資料庫連線,
new mysqli()
- 定義屬性,
var $openId;
- 獲取入參,
$_GET['token']
- 輸出結果反饋到介面,
echo
... 等等,還有很多。你所有的邏輯實現只要在Java裡可以的,PHP也都有相應的支援。這就是語言建設的規範,並在某些命名也是保持統一的。
四、總結
- 這呢就是我在10.1放假的最後一天,把Java語言開發的公眾號後臺,切換成PHP的經歷。但程式碼結構沒變,依舊是我喜歡的DDD領域驅動設計。重要的是省錢了!,這裡還有一個Java版本的公眾號後臺開發。Java版DDD四層架構,開發公眾號服務端
- 如果你希望自己,不只是程式設計這條路上的PRD工具人。那麼一定要大力的鋪設自己的技術棧和其他不只是研發的開發能力。當你真的去了解業務、運營、產品後,相信你可以寫出更加符合市場的程式碼。同時這些軟技能,可以幫助你走向更高的階梯!
好車上道都不響、破車上路才嘰裡呱啦的
!無論你在哪一行或者哪一方向努力,都可以默默的堅持著。可以在一條路上走的很久,總比每天都想著換方向要重要的多。不要做一個簡單的男人,加油!- 對了,在打個廣告??;
- 15年,會Netty就能去大廠
- 16年,懂分散式開發就能去大廠
- 17年,熟讀Dubbo原始碼就能去大廠
- 18年,會寫中介軟體就能去大廠
- 19年,會演算法就能去大廠
- 20年,上 bugstack.cn 學習,就能去香河大廠