<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>

          知乎上有個(gè)問(wèn)題:編程到底難在哪里?

          共 1161字,需瀏覽 3分鐘

           ·

          2020-09-09 20:35


          點(diǎn)擊藍(lán)色“編程幫”關(guān)注我喲

          加個(gè)“星標(biāo)”哦

          來(lái)源:http://t.cn/RxLwwov

          目錄:


          - 前言

          - 回答原文

          - 普通人

          - 程序員

          前言

          知乎上有個(gè)問(wèn)題:編程到底難在哪里?知乎網(wǎng)友 DJ Hitori 的回答獲贊無(wú)數(shù)。

          這篇回答并不是講述在生活中程序員如何買(mǎi)蘋(píng)果,而是以買(mǎi)蘋(píng)果為例說(shuō)明程序員如何解決問(wèn)題。程序員需要對(duì)問(wèn)題進(jìn)行透徹的分析,理清其涉及的所有細(xì)節(jié),預(yù)測(cè)可能發(fā)生的所有意外與非意外的情況,列出解決方案的所有步驟,以及對(duì)解決方案進(jìn)行盡量全面的測(cè)試。而這些正是編程難的地方。任何一點(diǎn)遺漏都會(huì)成為bug,輕則導(dǎo)致挨罵,重則導(dǎo)致經(jīng)濟(jì)損失甚至危害安全。

          回答原文

          普通人

          我今天要買(mǎi)一斤蘋(píng)果。

          程序員

          我今天要買(mǎi)一斤蘋(píng)果。

          因?yàn)槲抑幌矚g紅富士蘋(píng)果,所以我只買(mǎi)紅富士蘋(píng)果。

          我能接受的最高價(jià)格是 10 元 / 斤。

          正常情況下一斤蘋(píng)果用一個(gè)袋子能裝下,但是為防萬(wàn)一,我會(huì)帶兩個(gè)袋子。

          我知道附近的 3 家水果店,所以我會(huì)依次訪問(wèn)這 3 家水果店。

          根據(jù)上述條件,我設(shè)計(jì)出以下的買(mǎi)蘋(píng)果的流程:


          這個(gè)流程怎么樣?我來(lái)設(shè)計(jì)一些測(cè)試樣例,測(cè)試一下這個(gè)流程。

          測(cè)試發(fā)現(xiàn)一個(gè)問(wèn)題:如果水果店 0 和水果店 1 都有紅富士蘋(píng)果并且價(jià)格都低于 10 元 / 斤,而且水果店 1 的價(jià)格比水果店 0 更低,那么我希望買(mǎi)水果店 1 的蘋(píng)果,但我設(shè)計(jì)的流程會(huì)讓我買(mǎi)水果店 0 的蘋(píng)果。

          為了解決這個(gè)問(wèn)題,我應(yīng)該先詢問(wèn)所有水果店的價(jià)格,然后去價(jià)格最低的那一家買(mǎi)蘋(píng)果。

          經(jīng)過(guò)修改,我重新設(shè)計(jì)出以下的買(mǎi)蘋(píng)果的流程:


          現(xiàn)在這個(gè)流程是不是完美了呢?不是,我還能發(fā)現(xiàn)很多問(wèn)題。

          如果 3 家水果店都有紅富士蘋(píng)果但都不到一斤,但是三家店加起來(lái)能達(dá)到一斤,那么我不應(yīng)該結(jié)束流程回家,而是應(yīng)該把三家店的紅富士蘋(píng)果都買(mǎi)下來(lái)。

          如果我向水果店詢問(wèn)價(jià)格的時(shí)候這家店還有紅富士蘋(píng)果,但我詢問(wèn)完所有水果店的價(jià)格后這家店的紅富士蘋(píng)果賣(mài)完了,那么我的流程會(huì)讓我試圖處理不存在的紅富士蘋(píng)果。

          我走路的過(guò)程中可能會(huì)遇到突發(fā)事件,比如發(fā)現(xiàn)了新的水果店,比如袋子破掉了蘋(píng)果掉一地,對(duì)于這些情況我的流程都無(wú)法進(jìn)行處理。

          啊問(wèn)題太多了我懶得再改流程了。我還是去 X 寶買(mǎi)吧。那么接下來(lái)我要設(shè)計(jì)一個(gè)在 X 寶買(mǎi)紅富士蘋(píng)果的流程……

          推薦閱讀:《架構(gòu)師離職后,成為自由開(kāi)發(fā)者的第 100 天

          END



          若覺(jué)得文章對(duì)你有幫助,隨手轉(zhuǎn)發(fā)分享,也是我們繼續(xù)更新的動(dòng)力。


          長(zhǎng)按二維碼,掃掃關(guān)注哦

          ?「C語(yǔ)言中文網(wǎng)」官方公眾號(hào),關(guān)注手機(jī)閱讀教程??



          點(diǎn)擊“閱讀原文”,領(lǐng)取 2020 年最新免費(fèi)技術(shù)資料大全

          ↓↓↓?
          瀏覽 54
          點(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>
                  黄片免费在线播放 | 青娱乐无码在线 | 一级视频播放 | 2019天天干天天色 | 在线一区视频观看 |