程序员所说的「轮子」是什么东西?
生活随笔
收集整理的這篇文章主要介紹了
程序员所说的「轮子」是什么东西?
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
顯然,車輪子是圓形的,這是大家公認(rèn)的,最合適的形狀。
而你非要發(fā)明另一種形狀的輪子,這種行為就叫「重復(fù)發(fā)明輪子(Reinventing the wheel)」,即「造輪子」—— 明知道你做的不可能比前輩做得更好,卻仍然堅(jiān)持要做。
放到編程中,就是說(shuō)業(yè)界已經(jīng)有公認(rèn)的軟件或者庫(kù)了,你明知道自己不可能比它做得更好,卻還堅(jiān)持要做。作為練習(xí),造輪子可以增加自己的經(jīng)驗(yàn),很多事情看起來(lái)簡(jiǎn)單,但只有自己動(dòng)手,才會(huì)發(fā)現(xiàn)其中的難點(diǎn)。當(dāng)然實(shí)際開(kāi)發(fā)中也有很多情況不得不造輪子,比如希望做到自主知識(shí)產(chǎn)權(quán)、刷 KPI 之類的;或者造輪子的人真的覺(jué)得自己開(kāi)發(fā)的版本有更強(qiáng)的功能、更好的性能也說(shuō)不定呢。
此一詞語(yǔ)的由來(lái)是因?yàn)檩喿佑扇祟愃l(fā)明,且在各方面都帶來(lái)許多便利。有人認(rèn)為,既然輪子已被發(fā)明,而且在使用上沒(méi)有什么缺陷,重新再發(fā)明一次輪子是沒(méi)有意義的,只是浪費(fèi)時(shí)間,分散研究者的資源,使其無(wú)法投入更有意義及價(jià)值的目標(biāo)。
不過(guò)在教導(dǎo)復(fù)雜概念時(shí),“重造輪子”倒是個(gè)重要的方式。這種方式不是提供學(xué)生許多已知的事實(shí)及技術(shù),然后就期待學(xué)生完美及快速的應(yīng)用這些事實(shí)及技術(shù)。重造輪子的教學(xué)方式是提供新的材料,讓學(xué)生自行完成其中重要的步驟,同時(shí)也理解此領(lǐng)域的相關(guān)事實(shí)及技術(shù)。
有時(shí)一些工程設(shè)計(jì)看似只是像“重造輪子”一様,但其中確實(shí)有其價(jià)值,例如用來(lái)回避軟件許可的不相容,或是回避一些第三方提供模組或是零件的技術(shù)限制。例如要在網(wǎng)頁(yè)中嵌入一個(gè)用Javascript寫成的快速排序法。快速排序的算法廣為人知,而在且在C++或Java的通用函式庫(kù)中已有此模組,但有些Javascript的實(shí)現(xiàn)不一定包括此算法。因此若一程式設(shè)計(jì)者希望可靠的在網(wǎng)頁(yè)中應(yīng)用快速排序,他必須“重造輪子”,也就是重新實(shí)現(xiàn)一次快速排序法。程式設(shè)計(jì)者也可以直接從其他網(wǎng)頁(yè)上復(fù)制,但這就會(huì)帶來(lái)版權(quán)及軟件授權(quán)的問(wèn)題,在此例中重造輪子可以提供了欠缺的機(jī)能,但又不會(huì)有版權(quán)問(wèn)題。
而你非要發(fā)明另一種形狀的輪子,這種行為就叫「重復(fù)發(fā)明輪子(Reinventing the wheel)」,即「造輪子」—— 明知道你做的不可能比前輩做得更好,卻仍然堅(jiān)持要做。
放到編程中,就是說(shuō)業(yè)界已經(jīng)有公認(rèn)的軟件或者庫(kù)了,你明知道自己不可能比它做得更好,卻還堅(jiān)持要做。作為練習(xí),造輪子可以增加自己的經(jīng)驗(yàn),很多事情看起來(lái)簡(jiǎn)單,但只有自己動(dòng)手,才會(huì)發(fā)現(xiàn)其中的難點(diǎn)。當(dāng)然實(shí)際開(kāi)發(fā)中也有很多情況不得不造輪子,比如希望做到自主知識(shí)產(chǎn)權(quán)、刷 KPI 之類的;或者造輪子的人真的覺(jué)得自己開(kāi)發(fā)的版本有更強(qiáng)的功能、更好的性能也說(shuō)不定呢。
此一詞語(yǔ)的由來(lái)是因?yàn)檩喿佑扇祟愃l(fā)明,且在各方面都帶來(lái)許多便利。有人認(rèn)為,既然輪子已被發(fā)明,而且在使用上沒(méi)有什么缺陷,重新再發(fā)明一次輪子是沒(méi)有意義的,只是浪費(fèi)時(shí)間,分散研究者的資源,使其無(wú)法投入更有意義及價(jià)值的目標(biāo)。
不過(guò)在教導(dǎo)復(fù)雜概念時(shí),“重造輪子”倒是個(gè)重要的方式。這種方式不是提供學(xué)生許多已知的事實(shí)及技術(shù),然后就期待學(xué)生完美及快速的應(yīng)用這些事實(shí)及技術(shù)。重造輪子的教學(xué)方式是提供新的材料,讓學(xué)生自行完成其中重要的步驟,同時(shí)也理解此領(lǐng)域的相關(guān)事實(shí)及技術(shù)。
有時(shí)一些工程設(shè)計(jì)看似只是像“重造輪子”一様,但其中確實(shí)有其價(jià)值,例如用來(lái)回避軟件許可的不相容,或是回避一些第三方提供模組或是零件的技術(shù)限制。例如要在網(wǎng)頁(yè)中嵌入一個(gè)用Javascript寫成的快速排序法。快速排序的算法廣為人知,而在且在C++或Java的通用函式庫(kù)中已有此模組,但有些Javascript的實(shí)現(xiàn)不一定包括此算法。因此若一程式設(shè)計(jì)者希望可靠的在網(wǎng)頁(yè)中應(yīng)用快速排序,他必須“重造輪子”,也就是重新實(shí)現(xiàn)一次快速排序法。程式設(shè)計(jì)者也可以直接從其他網(wǎng)頁(yè)上復(fù)制,但這就會(huì)帶來(lái)版權(quán)及軟件授權(quán)的問(wèn)題,在此例中重造輪子可以提供了欠缺的機(jī)能,但又不會(huì)有版權(quán)問(wèn)題。
總結(jié)
以上是生活随笔為你收集整理的程序员所说的「轮子」是什么东西?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 拆解选股6牛招
- 下一篇: 做一个即时利润表仪表板(不用等账都做完核