一、抽象一下程序的生產過程,打個比方
1.程序的作用主要是為他人提供服務的過程,提供服務的方式分為兩種(前端,后端)
2.用開餐廳打個比方:
我是一家餐廳的老板,我想要創業,給客人提供美味的食物來獲取利潤,但是我一個人肯定忙不過來,所以我必須請人幫忙,請的這些人分別是誰呢?
首先是前台的服務人員(vue,html,css,js等),接着就是后廚人員(java,mysql,redis,mq,es等),而作為老板的我,需要做的就是如何讓這些人合理的搭配在一起干活!
3.那我們為什么要學這些技術呢?
作為老板,我肯定必須知道整個餐廳應該怎么去工作,怎么去運營(也就是整體架構得清楚),所以我就得知道哪些人可以做什么事,而這些人就是我們程序中所用的技術,這是開餐廳的第一個成本!
而第二個開餐廳的成本就是招人,招的這些人就是所謂的技術棧!這也是需要成本的(比如:購買雲服務器ECS,雲數據庫RDS(mysql),雲數據庫Redis,MQ等等),
二、我請的這些人分別有什么特長(主要講解后端)
1.如何將這些技術棧比喻成現實生活中我們要請的這些人
雲服務器ECS:也就是租一個店鋪,有專門的人看守
雲數據庫RDS(mysql):倉庫,存貨物的地方,也有專門的人看守
雲數據庫Redis:也是倉庫,也有專門的人看守
MQ消息中間件:接單,派單的人
2.這些人都能干嘛
其實這些人生下來,只會做一件事,就是自己的本職工作(很單純的一群人),你只要說清楚讓他們去做的事情,只要他們聽懂了,就會照着你說的去做,很聽話!
然而這些人並不知道怎么和別人去搭配干活,所以作為老板的我,就得給他們分配好工作,給他們安排的明明白白的(這也是最關鍵的一步),事情做的漂不漂亮,還得看老板!(當老板最焦慮的地方)
三、如何將這些人搭配起來干活
1.通過開餐廳來舉例(這是我目前的理解,不知道大家能不能明白,還望多多指教)
客人來店里點餐(用戶)===》服務員記錄客人點的菜品(前端)===》將菜單交給接單派單人員(mq消息中間件)===》把單子給廚師去做菜(Java業務邏輯)===》廚師去倉庫拿菜(數據庫)
倉庫找到菜交給廚師===》廚師開始炒菜,做好的菜交給接單派單人員===》通知服務員上菜給客人
2.開餐廳本生也存在一些問題,比如
廚師被油燙傷(拋出異常)
沒有這個菜了(庫存不夠)
人員爆滿(服務器崩了)
倉庫人員進菜取菜忙不過來(數據庫服務器崩了)
......還有很多現實生活中的例子
3.除了這些餐廳本生可能存在的問題以外,還會出現更多意料之外的事情
有人來店里打劫,有人來前台亂點菜,點完就走,有人去后廚搗亂(黑客攻擊)
4.怎么解決這些問題呢,老板就該考慮了
多請幾個人,擴張店鋪,多買一些菜等等
每個客人進來都要掃描一下,跟過安檢一樣,給工作人員穿上更加安全的裝備,如果遇到有人來打劫,馬上打電話告訴老板,或者買一套智能防護的系統等
四、我們學習編程的目的是為了解決問題,解放雙手,讓程序幫我們干活
1.把編程當成是自己創業一樣來思考,創業就是解決社會中的需求,編程亦是如此
2.這些僅限於本人對編程的一些感悟,不足的地方還需要和大家多多學習,歡迎討論