国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

華為阿里工作4年,我總結(jié)出這4條寶貴經(jīng)驗(yàn)!

2021-06-28 23:08 作者:DevWeekly  | 我要投稿

當(dāng)時(shí)間緊張、需求急迫時(shí),如果沒有高效的方法,很容易會(huì)亂了陣腳,得到失敗的結(jié)果。

因此,對(duì)于不同領(lǐng)域,我總喜歡提起“方法論”這個(gè)詞匯。

掌握一定的方法,能夠條理清晰、腳踏實(shí)地的高效完成每一項(xiàng)工作。

對(duì)于編程開發(fā)也是這樣。

在開發(fā)過程中,經(jīng)常會(huì)接到各種各樣的需求,也會(huì)出于不同原因?qū)е赂鞣N各樣的問題。

當(dāng)系統(tǒng)出現(xiàn)一個(gè)問題之后,我們?cè)撊绾胃咝Ы鉀Q問題,雖然在面試過程中不會(huì)考核這些,但是卻和日常工作息息相關(guān)。

本文,就來介紹我通過總結(jié)得出的4步高效解決編碼問題的方法。

首先說明一下,本文介紹的方法并非是筆者首創(chuàng),而是從波利亞·哲爾吉的一本名為《How to Solve It》得到的靈感。

這本書最初于1945年問世,已售出超過100萬本。

這本書中提出的解決問題方法已經(jīng)被很多程序員和高校教授使用,通過這本書介紹的方法,可以通過四步來解決編碼過程中面臨的很多問題。

本文,將使用JavaScript作為實(shí)例語言進(jìn)行舉例,首先拋出問題:

創(chuàng)建一個(gè)將兩個(gè)數(shù)字相加并返回該值的函數(shù)

解決問題的方法分為4個(gè)步驟:

  • 了解問題

  • 制定計(jì)劃

  • 執(zhí)行計(jì)劃

  • 復(fù)盤回顧

下面逐步介紹一下。

步驟1:了解問題

在面對(duì)需求時(shí),很多同學(xué)首先想到的就是趕緊進(jìn)行編碼,避免項(xiàng)目延期。

這是在所難免的,但是,需要避免這種情況。

在開始解決問題之前,首先確保真正理解該問題。

如果對(duì)問題一知半解,不僅使得開發(fā)過程中模棱兩可浪費(fèi)時(shí)間,還會(huì)導(dǎo)致最終需求對(duì)接存在誤差倒是結(jié)果不盡人意,嚴(yán)重時(shí)甚至需要返工重新開發(fā)。

因此,需要認(rèn)真理解問題,弄清楚自己不理解的部分,達(dá)到對(duì)問題有清晰的認(rèn)識(shí)。

為了更好地理解問題,請(qǐng)問自己幾個(gè)問題:

輸入是什么?

問題的輸入是什么?在本文的示例中,輸入將會(huì)作為函數(shù)的參數(shù)。

通過對(duì)于前面提出的問題可以知道,我們的輸入將是數(shù)字。

但是,需要做更加全面的考慮,我們可以問:

輸入將始終只是兩個(gè)數(shù)字嗎?如果我們的函數(shù)收到三個(gè)數(shù)字作為輸入怎么辦?

以此,來達(dá)到對(duì)問題進(jìn)行更加深入和全面的認(rèn)識(shí)。

輸出是什么?

該函數(shù)將返回什么?在這種情況下,輸出將是一個(gè)數(shù)字,這是兩個(gè)數(shù)字輸入的結(jié)果。

確保你真正了解輸出結(jié)果。

一旦掌握了問題并知道了可能的輸入和輸出,就可以開始處理一些具體示例。

編寫用例

示例可以作為測(cè)試用例,用作穩(wěn)定性、健全性檢查。同時(shí),通過編寫用例,可以提升自己對(duì)代碼的理解。

從一個(gè)簡(jiǎn)單的示例或兩個(gè)可能的輸入和輸出開始。讓我們回到加法函數(shù)。

我們將函數(shù)稱為add。

什么是示例輸入?輸入示例可能是:

//add(2, 3)

它的輸出是什么?要編寫示例輸出,我們可以編寫:

// add(2, 3)---> 5

這表明我們的函數(shù)將輸入2和3并返回5作為其輸出。

也可以通過編寫更為復(fù)雜的用例,來尋找需要考慮的極端情況。如果我們的輸入是字符串而不是數(shù)字,該怎么辦?

2. 制定計(jì)劃

接下來,制定解決問題的計(jì)劃。

在設(shè)計(jì)計(jì)劃時(shí),可以用偽代碼將其寫出來。

偽代碼是算法步驟的簡(jiǎn)單語言描述。換句話說,偽代碼是解決問題的重要組成部分。

寫下解決問題所需采取的步驟。對(duì)于本文問題,你可以編寫:

// 創(chuàng)建一個(gè)sum變量。 使用加法運(yùn)算符將第一個(gè)輸入添加到第二個(gè)輸入。 // 將兩個(gè)輸入的值存儲(chǔ)到sum變量中。 // 返回總和變量作為輸出。

現(xiàn)在,你已經(jīng)有逐步解決此問題的計(jì)劃。

對(duì)于更復(fù)雜的問題,埃文斯教授指出:“系統(tǒng)地考慮人類如何解決問題?!?/p>

也就是說,暫時(shí)先不要考慮用代碼怎么解決問題,而是考慮如何以人工方式解決它, 這可以幫助你更清楚地看到這些步驟。

3. 執(zhí)行計(jì)劃

解決問題策略的下一步就是執(zhí)行計(jì)劃。

使用你的偽代碼作為指導(dǎo),寫出你的真實(shí)代碼。

埃文斯教授建議將重點(diǎn)放在簡(jiǎn)單的解決方案上。

你的解決方案越簡(jiǎn)單,就越可能正確編程。

拿我們的偽代碼,我們現(xiàn)在可以這樣寫:

function add(a, b) { const sum = a + b; return sum; }

切記不要過早優(yōu)化!

就是說,當(dāng)你在實(shí)現(xiàn)需求的過程中可能會(huì)這樣想:“等等,我這樣做,這將是效率低下的代碼,不如優(yōu)化一下吧!”

首先,只需獲得簡(jiǎn)單的解決方案即可。解決問題應(yīng)該通盤考慮,而不是在實(shí)現(xiàn)過程中過度追求其中一部分的優(yōu)化。

Colt Steele在這里提供了很好的建議:如果您無法解決部分問題,請(qǐng)忽略使您絆倒的那部分困難。

相反,請(qǐng)專注于可以開始編寫的其他所有內(nèi)容,暫時(shí)忽略你不太了解的問題中的困難部分。

完成這一部分后,請(qǐng)回到較難的部分。

4. 復(fù)盤回顧

解決方案開始運(yùn)行后,請(qǐng)花點(diǎn)時(shí)間思考一下并找出如何進(jìn)行改進(jìn)。

這是你將解決方案重構(gòu)為更有效的解決方案的時(shí)候了。

當(dāng)你查看工作時(shí),Colt Steele建議你提出一些問題,讓自己思考如何改善解決方案:

  • 還有哪些可行的其他方法?

  • 一眼就能理解嗎?是否有意義?

  • 可以將結(jié)果或方法用于其他問題嗎?

  • 可以提高解決方案的性能嗎?

  • 能想到其他重構(gòu)方法嗎?

  • 別人如何解決這個(gè)問題?

針對(duì)前面的代碼實(shí)現(xiàn),我們可以重構(gòu)問題以使代碼更簡(jiǎn)潔的一種方法:刪除變量并使用隱式返回:

function add(a, b) { return a + b; }

當(dāng)我自己編碼時(shí),總是會(huì)看到比我提出的解決方案更優(yōu)雅或更有效的解決方案。

因此,可以通過不斷的閱讀別人代碼,或者讓別人評(píng)審自己的代碼,這樣有助于提出更為有效的解決方案。

在本文中,我們討論了解決編碼問題的四步問題解決策略。

請(qǐng)記住,解決問題的技巧是使得任何人都可以隨著時(shí)間和實(shí)踐而變得更好的技能。

干貨推薦

為了方便大家,我花費(fèi)了半個(gè)月的時(shí)間把這幾年來收集的各種技術(shù)干貨整理到一起,其中內(nèi)容包括但不限于Python、機(jī)器學(xué)習(xí)、深度學(xué)習(xí)、計(jì)算機(jī)視覺、推薦系統(tǒng)、Linux、工程化、Java,內(nèi)容多達(dá)5T+,我把各個(gè)資源下載鏈接整理到一個(gè)文檔內(nèi),目錄如下:



所有干貨送給大家,希望能夠點(diǎn)贊支持一下!

https://http://pan.baidu.com/s/1eks7CUyjbWQ3A7O9cmYljA (提取碼:0000)


華為阿里工作4年,我總結(jié)出這4條寶貴經(jīng)驗(yàn)!的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
肇源县| 嘉祥县| 临泽县| 东至县| 安庆市| 通山县| 济阳县| 永济市| 平安县| 左权县| 景宁| 石渠县| 延津县| 磴口县| 定襄县| 新乐市| 屏山县| 肇州县| 鄱阳县| 沙湾县| 沁阳市| 双桥区| 天镇县| 南充市| 左云县| 肇东市| 罗江县| 衡水市| 垦利县| 沂南县| 合阳县| 襄汾县| 盐山县| 长丰县| 苍梧县| 元朗区| 庐江县| 桓台县| 汪清县| 湖州市| 郧西县|