爲了省錢,我用 1 天時間把 PHP 學完,裝進 DDD 領域驅動設計裏!

做者:小傅哥
博客:https://bugstack.cnphp

沉澱、分享、成長,讓本身和他人都能有所收穫!😄

1、前言

你在通往架構師的路上嗎?html

程序員這個行業就像是在不斷的打怪升級,突破每一階段的瓶頸期。前端

從畢業前想經過實習拿到offer、畢業後想經過試用期到轉正留下、轉正後程序員想作到高級開發、從高級該開發想作到架構師、從架構師想作到更高的總監或者CTO。日後的路愈來愈不容易,既須要須要我的不斷的沉澱學習,也須要必定的機遇機會。java

在這條路線上架構師是一個瓶頸期的重要轉折點,由於這個階段遠不止我的的技術棧學習,還有不少其餘能力,幾乎能夠包括的有以下幾點;mysql

  1. 有中大型項目開發落地經驗
  2. 有可靠的交付質量和統籌能力
  3. 能解決複雜項目的架構設計和推動執行
  4. 有必定的技術廣度和深度,改的了bug,處理的了事故
  5. 定得了規範、設計了架構
  6. 有必定的認知範圍,熟悉業務、產品和運營,瞭解運營規劃和業務發展
  7. 帶得了小組,推動項目落地和組內技術成長
  8. 有必定的專業影響力,能用技術創造價值
  9. 有緊急狀況的應對能力
  10. 流程規範制定、方法論、開源項目的相關經驗

一個技術架構師要求可能不僅這十點,還有不少軟實力。但這些很難經過培訓或者上課學來,由於這些能力都是實操經驗,須要長時間的磨練。laravel

其實即便沒有架構師也不會缺乏系統架構,這樣的小組並不須要養一個架構師,不少都是成套的快速搭建的技術,尤爲像 SpringBoot 一整套服務,很適合小型公司使用。程序員

但若是有很是複雜的系統架構和業務場景設計,包括幾十個系統的分組安排開發,提供支撐上百萬的QPS、秒殺的活動瞬時就有幾萬、以及須要隨着業務發展擴展到能夠支撐幾百萬DAU的後臺服務。就須要架構師來總體把控,由於他能夠從下單、到交易、到支付、到結算、到活動、到玩法,怎麼支撐、怎麼設計,提供出一整套的解決的方案,那麼這個體量複雜程度的系統,就不在是一個小做坊團隊能承擔下來的了。算法

2、技術棧閉環學習

你的技術能力足以支撐整個系統嗎?sql

小傅哥,技術閉環

其實不少程序員👨‍💻‍大部分都被侷限在產品的PRD裏,除此以外對整個全局並無太多的認知。並且只是在技術範疇內也一樣被限定在某個語言下,好比後端研發基本開發不出一個完整的前端頁面、前端同窗一樣也寫不出後端接口。thinkphp

固然在某個技術語言下深扎不必定是什麼壞事,甚至可能還有一番創造和成績。只不過缺乏了全局的認知和了解,在某些時候會被限定到一個瓶頸期裏,在想成長到下一個階段就很難了。

或者更簡單的說,你能用你所會的技能搭建出一個技術博客嗎,並運營起來。若是你沒作過這件事,那麼從你開始到完成你會發現。你須要的不僅是java,還有UI設計,還有前端頁面,還有服務器等等一套技術來支撐。同時,在某些時候你會爲選擇用 java 仍是其餘語言而糾結,由於我的博客的服務器也是要付費的,java 服務器的費用一般會貴一些。

因此,若是你的未來想本身作點什麼,就不要只被侷限在某個技術裏,也不要被侷限在某個領域中。瞭解瞭解業務熟悉熟悉運營也嘗試學學UI,這些知識的學習都遠比浪費可靠。

3、我那折騰的成長經驗

講道理,其實我是一個很愛折騰的程序員,固然別的事上我也愛折騰,尤爲發明創造類的。

小時候我會把不少東西拆嘍,拿裏面的電機等小東西,在作一些玩具。好比;能夠下水的電動小船、能夠滑冰的小冰車、還有一些懶人小工具等。

隨着這樣的性格到學編程也是這樣愛倒騰,從初學編程就想着要本身作網站。從只會個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與領域驅動設計

咳咳,這裏我沒有選擇使用php的一些框架,例如 thinkphp、laravel等。畢竟框架對我來講開發一個公衆號的後端服務,仍是稍顯笨重。按照個人想法邏輯,搭建一個DDD四層架構按照我實現Java的方式實現PHP代碼便可。實現方式也會很是快,最後只花了1天時間就把整個服務寫完並部署上。這包括;代碼開發、數據庫配置、服務上線、接口切換、SSL、跨域等。因此,我一直想說不要只作個工具人,要鋪設的全面一些!

例子,讓你看看如今的PHP與Java像不像;

  1. 定義方法名稱用function,public function entry()
  2. 構造函數public function __construct(),能夠初始化一些信息
  3. 字符串用點鏈接,$openId . "_" . $token
  4. 接口用interface定義,interface LogicFilter
  5. 類的引入包,require_once
  6. 方法調用用指針,$this->msgEngineHandle->process($behaviorMatter);
  7. 數據庫鏈接,new mysqli()
  8. 定義屬性,var $openId;
  9. 獲取入參,$_GET['token']
  10. 輸出結果反饋到接口,echo

... 等等,還有不少。你全部的邏輯實現只要在Java裏能夠的,PHP也都有相應的支持。這就是語言建設的規範,並在某些命名也是保持統一的。

4、總結

  1. 這呢就是我在10.1放假的最後一天,把Java語言開發的公衆號後臺,切換成PHP的經歷。但代碼結構沒變,依舊是我喜歡的DDD領域驅動設計。重要的是省錢了!,這裏還有一個Java版本的公衆號後臺開發。Java版DDD四層架構,開發公衆號服務端
  2. 若是你但願本身,不僅是編程這條路上的PRD工具人。那麼必定要大力的鋪設本身的技術棧和其餘不僅是研發的開發能力。當你真的去了解業務、運營、產品後,相信你能夠寫出更加符合市場的代碼。同時這些軟技能,能夠幫助你走向更高的階梯!
  3. 好車上道都不響、破車上路才嘰裏呱啦的!不管你在哪一行或者哪一方向努力,均可以默默的堅持着。能夠在一條路上走的好久,總比天天都想着換方向要重要的多。不要作一個簡單的男人,加油!
  4. 對了,在打個廣告😄🤣;

    • 15年,會Netty就能去大廠
    • 16年,懂分佈式開發就能去大廠
    • 17年,熟讀Dubbo源碼就能去大廠
    • 18年,會寫中間件就能去大廠
    • 19年,會算法就能去大廠
    • 20年,上 bugstack.cn 學習,就能去香河大廠

5、系列推薦

相關文章
相關標籤/搜索