<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          理解編程原理,看這篇文章就夠了~

          共 3516字,需瀏覽 8分鐘

           ·

          2023-08-03 22:38

          之前有小伙伴問,如何更簡(jiǎn)單的理解編程呢?我珍藏了一篇幫助你理解編程原理的文章。分享出來:

          編程,沒有你想象的這么復(fù)雜。
          什么是編程?——就是通過算法邏輯串聯(lián)數(shù)據(jù)結(jié)構(gòu)來解決具體問題并實(shí)現(xiàn)業(yè)務(wù)訴求的過程。
          也就是:編程 = 算法邏輯 + 數(shù)據(jù)結(jié)構(gòu)

          算法邏輯是一步步解決問題的過程;
          數(shù)據(jù)結(jié)構(gòu)就是數(shù)據(jù)的呈現(xiàn)/存儲(chǔ)方式。比如書放到書架,書架就是一個(gè)數(shù)據(jù)結(jié)構(gòu),把書放到箱子里,箱子就是一種數(shù)據(jù)結(jié)構(gòu),那書架和箱子都是數(shù)據(jù)的不同存儲(chǔ)方式。

          舉個(gè)例子:
          你18:30下班到家,怎么讓家人在20:00之前吃上飯?你有兩種算法,可以先煮飯然后去買菜,也可以先買菜再煮飯,哪種方式更好呢?咱來分析下:
          目標(biāo):18:30到家,讓家人在20:00之前吃上飯算法a:先煮飯然后去買菜算法b:先買菜回來再煮飯

          這里做飯是一個(gè)程序?qū)嶓w(程序?qū)嶓w:程序中所包含的各種元素,如變量、函數(shù)、數(shù)據(jù)結(jié)構(gòu)、類等),這里包含煮飯、買菜、切菜、做菜,那表達(dá)方式是:
          做飯 = {  煮飯() {},  買菜() {},  切菜() {},  做菜() {},}

          中文翻譯成英文不就行了么?不復(fù)雜吧~
          接著咱繼續(xù)看,在做飯的過程中,會(huì)有很多異常情況,以下是新手的編程處理:
          做飯 = {  開始() {    煮飯(); 買菜(); 切菜(); 做菜();  },  煮飯() {},  買菜() {},  切菜() {},  做菜() {    if (家里沒有油了) {     買油(); 炒菜();     }     else { 炒菜(); }  }}
          做飯->開始();

          咱解讀下:
          程序?qū)嶓w是做飯,包含四個(gè)步驟:開始→煮飯→買菜→切菜→做菜,對(duì)吧。
          做飯,可以稱之為對(duì)象,這五個(gè)步驟稱之為方法,然后一個(gè)個(gè)地去調(diào)用它。
          首先調(diào)用【開始】方法,在【開始】方法里,又依次調(diào)用【煮飯】、【買菜】、【切菜】和【做菜】。
          然后在【做菜】方法里,有一個(gè)判斷:“如果家里沒有油了”,新手處理方式是:先去買油,然后炒菜(這就需要再出門一趟,又浪費(fèi)了時(shí)間)。如果在做菜的過程中沒有調(diào)料呢?卒……

          高手處理方式就不一樣了。他的編程處理是這樣的:
          做飯 = {  開始() {    煮飯();     檢查結(jié)果 = 檢查();    買菜(檢查結(jié)果); 切菜(); 做菜();  },  檢查() {    if (家里沒有油了) { 買菜的時(shí)候要買油 }     if (家里沒有辣椒了) { 買菜的時(shí)候要買辣椒 }   },  煮飯() {},  買菜() {},  切菜() {},  做菜() {},}
          做飯->開始();

          你針對(duì)性的比較下,高手步驟中多了一個(gè)方法叫【檢查】,也就是在買菜之前先檢查下我要做菜缺少啥東西并記錄,在買菜的時(shí)候一并買上。
          你看,這就是把問題想清楚,不留任何細(xì)節(jié)。解決如何消耗最小的資源解決最大的問題。這也就是技術(shù)為什么要深入的了解業(yè)務(wù),是為了更便捷的做技術(shù)策略。
          簡(jiǎn)單吧~《編程從入門到放棄》,理解上面的,就表示你入門了。接下來就是放棄時(shí)刻了~

          如果要做小炒肉、魚香肉絲、剁椒魚頭等等好幾個(gè)菜,咋辦?
          如果是新手,常用的處理方式:
          做飯 = {  煮飯() {},  買菜() {},  洗菜() {},  切菜() {},  做菜() {},}
          做飯->煮飯();做飯->買菜();
          做飯->洗菜(小炒肉);做飯->切菜(小炒肉);做飯->炒菜(小炒肉);
          做飯->洗菜(魚香肉絲);做飯->切菜(魚香肉絲);做飯->炒菜(魚香肉絲);
          做飯->洗菜(剁椒魚頭);做飯->切菜(剁椒魚頭);做飯->炒菜(剁椒魚頭);

          程序本身沒有問題,但是如果做要做10個(gè)菜,那程序就十分冗長(zhǎng),這對(duì)后續(xù)性能會(huì)有大影響。而高手會(huì)用“抽象思維”來解決問題。(把相似的步驟抽象成相同的行為,然后重復(fù)就好
          他是這么處理的:
          做飯 = {  開始(菜單) {    煮飯();    買菜(菜單);    菜單->逐一(做菜);  },  買菜() {},  煮飯() {},  做菜(菜品) {     洗菜(菜品);     切菜(菜品);     炒菜(菜品);   }}
          菜單 = 小炒肉、魚香肉絲、剁椒魚頭;做飯->開始(菜單);

          你看,會(huì)把做飯分為三個(gè)步驟:煮飯、買菜和做菜,首先想好了一個(gè)菜單,然后抽象一個(gè)做菜的方法,這個(gè)方法里面包括洗菜、切菜和炒菜三個(gè)步驟,每一道菜都執(zhí)行相同的步驟即可。
          如果有10道菜,直接擴(kuò)展菜單就行了,因?yàn)樵诔绦蛑性O(shè)置了“逐一”的邏輯。

          以上是前端的業(yè)務(wù)邏輯,可以通過業(yè)務(wù)流程+業(yè)務(wù)邏輯梳理出來,和后端的存儲(chǔ)呢?
          后端可以通過一張數(shù)據(jù)表梳理:
          1.整理“角色→場(chǎng)景(必做事項(xiàng))→業(yè)務(wù)流程(輸入-操作行動(dòng)-輸出)”來出發(fā),用Excel完整的整理出來; 
          2.接下來再往下拆一層:
          • 輸入的數(shù)據(jù)包含哪些?  
          • 具體操作哪些內(nèi)容(過程中是否有數(shù)據(jù)流向)?
          • 輸出的結(jié)果包含哪些? 
          3.再去梳理角色的功能權(quán)限和數(shù)據(jù)權(quán)限。

          前端產(chǎn)生的業(yè)務(wù)數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(kù),后端調(diào)用通過主鍵逐一關(guān)聯(lián)數(shù)據(jù),形成有效的數(shù)據(jù)表。至此,操作層和數(shù)據(jù)層才形成有效閉環(huán)。
          而其中,業(yè)務(wù)理解是非常非常核心的。所以技術(shù)大大其實(shí)比你還想知道業(yè)務(wù)。因?yàn)榕履愀鞣N改業(yè)務(wù)需求,你一調(diào)整,他就白做了。
          就好比一桌飯菜做好了,卻發(fā)現(xiàn)家人已經(jīng)在外面吃了……咋辦?

          看完清晰了,還是迷糊了?

          希望能帶給正在做產(chǎn)品的你一些思考。覺得還不錯(cuò),幫忙在看分享吧。感謝。

          這兩個(gè)專輯幫助很多人提升了自己:

          產(chǎn)品經(jīng)理工作流(點(diǎn)擊可以訪問)

          產(chǎn)品方法論和思考(點(diǎn)擊可以訪問)

          瀏覽 1151
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  特一级黄A片 | 久热这里只有精品89 | 俺也来俺也去俺也射 | 五月婷婷AV手机免费观看 | 一本不卡免费特黄视频在线观看 |