日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

為什么你覺(jué)得舊代碼異?;靵y?因?yàn)樽x代碼更難

機(jī)器學(xué)習(xí)算法與人工智能 ? 來(lái)源:未知 ? 作者:李倩 ? 2018-05-23 11:07 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

想要推倒舊代碼,

重寫(xiě)代碼的程序員們,

請(qǐng)注意:

保持冷靜,繼續(xù)前行!

程序員都有一顆工程師的心,所以當(dāng)他們到一片新的場(chǎng)地想做的第一件事就是,將舊的一切推倒重來(lái)。是的,他們決不會(huì)滿足于簡(jiǎn)單的增量勞動(dòng)。

或許這種微妙的心理定位可以解釋:為什么程序員進(jìn)入新項(xiàng)目組后寧愿丟掉舊代碼重新寫(xiě),也不愿意修修補(bǔ)補(bǔ)。他們認(rèn)為舊代碼簡(jiǎn)直一團(tuán)糟。

但是,事實(shí)上真是這樣嗎?你之所以認(rèn)為舊代碼一團(tuán)糟,其實(shí)是由編程的一個(gè)基本定律決定的,那就是:寫(xiě)代碼容易,讀代碼難。

為什么你覺(jué)得舊代碼異?;靵y?因?yàn)樽x代碼更難。

這大概就是代碼Reuse難以實(shí)現(xiàn)的原因。 這就是你組里的每個(gè)人都喜歡用不同的功能將分割的字符串轉(zhuǎn)換成一個(gè)數(shù)組。比起猜測(cè)舊的功能是怎樣實(shí)現(xiàn)的,重新寫(xiě)一個(gè)自己的功能要簡(jiǎn)單和有趣多了。

作為這個(gè)公理的推論,你可以問(wèn)問(wèn)身邊的程序員他們正在奮戰(zhàn)的代碼怎么樣?「簡(jiǎn)直是一塌糊涂!」他們肯定會(huì)這樣說(shuō)?!肝液?jiǎn)直想推倒重來(lái)!」

為什么認(rèn)為代碼這么糟糕呢?「額,看看這個(gè)功能,竟然有兩頁(yè)長(zhǎng)!完全不知道這些東西為什么在這里!完全不知道這些API是干什么的?!顾麄儠?huì)這樣回答你。

曾經(jīng),Borland的創(chuàng)始人 Philippe Kahn當(dāng)初就是向記者們吹噓:Quattro Pro會(huì)比Microsoft Excel要好用得多,因?yàn)樗菑念^開(kāi)始編寫(xiě)的,全部都是新的源代碼!

但是,認(rèn)為新代碼比舊代碼好簡(jiǎn)直就是荒謬。舊代碼是已經(jīng)運(yùn)行過(guò)的,測(cè)試過(guò)的。無(wú)數(shù)的bug在被發(fā)現(xiàn)前都上線運(yùn)行過(guò),發(fā)現(xiàn)之后程序員們可能在花了好些日子才修復(fù)了這些bug。這種修復(fù)可能是一行代碼,也可能是幾個(gè)字符,無(wú)數(shù)的時(shí)間和精力都花在了這些bug修復(fù)上。

當(dāng)你決定拋棄這些舊代碼從零開(kāi)始的時(shí)候,你也丟掉全部前任努力的結(jié)果。

新代碼一定比舊代碼的好嗎?NO,NO,NO重寫(xiě)可能會(huì)帶來(lái)更大的風(fēng)險(xiǎn)。

對(duì)技術(shù)領(lǐng)導(dǎo)者來(lái)說(shuō),重寫(xiě)項(xiàng)目的代碼也是一個(gè)異常艱難的決定。因?yàn)閺墓緦用嬲f(shuō),重現(xiàn)代碼甚至?xí){產(chǎn)品的市場(chǎng)競(jìng)爭(zhēng)力。一旦決定重寫(xiě)代碼,那么與競(jìng)品相比,你可能落后了2~3年——在軟件行業(yè),這時(shí)間可夠長(zhǎng)的。

你理想中的新代碼會(huì)帶來(lái)產(chǎn)品功能的提升

但事實(shí)上,即便重寫(xiě)的新代碼可以實(shí)現(xiàn)舊代碼的所有功能和需求,但是為產(chǎn)品帶來(lái)的市場(chǎng)競(jìng)爭(zhēng)力只有邊際提升。因?yàn)橹貙?xiě)用的新技術(shù)、新語(yǔ)言、新框架并沒(méi)有給產(chǎn)品帶來(lái)質(zhì)的飛躍。

更不用說(shuō)在重寫(xiě)的漫長(zhǎng)過(guò)程中可能會(huì)遇到一些意外情況,比如:

缺錢:資金鏈的斷裂

缺人:核心程序員離職

最終導(dǎo)致效果不佳:達(dá)不到原產(chǎn)品應(yīng)有的所有功能和需求,白白浪費(fèi)了時(shí)間和金錢,也丟掉了市場(chǎng)競(jìng)爭(zhēng)力。

所以重寫(xiě)代碼意味著,你在把自己置身于非常危險(xiǎn)的境地,可能幾年后你也寫(xiě)不出比以前更好的代碼。你只是花了一大筆錢把已經(jīng)存在的代碼又寫(xiě)了一遍。

當(dāng)你覺(jué)得眼前的舊代碼很爛時(shí),該怎么辦?

你覺(jué)得舊代碼寫(xiě)的很爛,那又怎樣呢?它們已經(jīng)上線,已經(jīng)在實(shí)際運(yùn)行中經(jīng)受住了考驗(yàn)。所以當(dāng)你發(fā)現(xiàn)前任留下的代碼亂七八糟的時(shí)候,不妨冷靜下來(lái),從以下三個(gè)方面入手理解代碼、改善代碼:

1代碼的機(jī)構(gòu)有問(wèn)題

如果一段網(wǎng)絡(luò)代碼突然彈出了自己的對(duì)話框,應(yīng)該是UI代碼需要被處理。這些問(wèn)題可以被解決掉,你要一次次小心地移動(dòng)代碼,重構(gòu),改變接口。還需要一位細(xì)心的工程師立馬仔細(xì)地檢查這些改變是否有問(wèn)題,從而不打擾到其他人。事實(shí)上,甚至比較大的結(jié)構(gòu)變化也可以不扔掉代碼來(lái)完成。

大牛程序員回憶說(shuō),曾經(jīng)在某個(gè)項(xiàng)目中,他和他的團(tuán)隊(duì)花了好幾個(gè)月重新架構(gòu)在一點(diǎn)上:把代碼動(dòng)來(lái)動(dòng)去、清理、創(chuàng)建有意義的基類,并創(chuàng)建了模塊之間的完美接口。但是他們始終非常小心翼翼,并沒(méi)有產(chǎn)生新的bug、也沒(méi)有丟掉任何舊代碼。

2代碼的效率不高

曾經(jīng),Netscape的渲染代碼被傳非常緩慢。但事實(shí)上,這只會(huì)影響該項(xiàng)目的一小部分,這部分是你可以優(yōu)化甚至重寫(xiě)的。你完全不必重寫(xiě)全部代碼。優(yōu)化速度的1%工作量,會(huì)讓你獲得99%的爆炸性提高。

3代碼寫(xiě)得很丑

有些代碼真的寫(xiě)的很丑,比如Joel曾參與一個(gè)項(xiàng)目,開(kāi)始用下劃線做開(kāi)始的成員變量約定,但后來(lái)改用更標(biāo)準(zhǔn)的「M_」。所以一半的功能用「_」開(kāi)始,一半用「M」開(kāi)始,這看起來(lái)真的很丑陋。但這個(gè)問(wèn)題5分鐘就能解決,而不用從頭開(kāi)始寫(xiě)全部的代碼。

最后,你要記住,從頭開(kāi)始再寫(xiě)一遍并不意味著你會(huì)寫(xiě)出比以前更好的代碼。因?yàn)槟銢](méi)有參與到上一個(gè)版本的創(chuàng)建,所以你其實(shí)根本就不算有經(jīng)驗(yàn)。一旦你準(zhǔn)備推倒重寫(xiě),你可能會(huì)再犯一遍版本一犯過(guò)的錯(cuò),甚至?xí)a(chǎn)生更多的新問(wèn)題。

面對(duì)糟糕的舊代碼,Keep Calm & Carry On !

在大型商業(yè)項(xiàng)目中,推倒重來(lái)是非常危險(xiǎn)的行為。當(dāng)然,如果你是在做實(shí)驗(yàn),想到新算法可以隨時(shí)重寫(xiě)。

如果你跳槽、或剛接手一個(gè)新項(xiàng)目,面對(duì)看上去異?;靵y的舊代碼,請(qǐng)冷靜下來(lái),忍住推倒重寫(xiě)的沖動(dòng),想想上面這些經(jīng)驗(yàn)之談。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4977

    瀏覽量

    74417
  • 程序員
    +關(guān)注

    關(guān)注

    4

    文章

    956

    瀏覽量

    31016

原文標(biāo)題:為什么程序員千萬(wàn)不要重寫(xiě)代碼?

文章出處:【微信號(hào):machinelearningai,微信公眾號(hào):機(jī)器學(xué)習(xí)算法與人工智能】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    安川伺服驅(qū)動(dòng)器警報(bào)代碼說(shuō)明

    的警報(bào)代碼按故障類型整理如下: 安川伺服驅(qū)動(dòng)器常見(jiàn)警報(bào)代碼速查表 電源、參數(shù)與硬件類 警報(bào)代碼 警報(bào)名稱 簡(jiǎn)要含義/原因 A.02 參數(shù)和數(shù)檢查異常 伺服單元內(nèi)部參數(shù)數(shù)據(jù)
    的頭像 發(fā)表于 03-13 07:35 ?1949次閱讀
    安川伺服驅(qū)動(dòng)器警報(bào)<b class='flag-5'>代碼</b>說(shuō)明

    SonarQube代碼質(zhì)量管理平臺(tái)詳解

    代碼質(zhì)量問(wèn)題是技術(shù)債務(wù)的主要來(lái)源。一個(gè)未被發(fā)現(xiàn)的空指針異常可能在生產(chǎn)環(huán)境導(dǎo)致服務(wù)崩潰,一段存在SQL注入漏洞的代碼可能讓整個(gè)數(shù)據(jù)庫(kù)暴露在攻擊者面前。傳統(tǒng)的Code Review依賴人工審查,效率低下且容易遺漏。
    的頭像 發(fā)表于 03-11 09:40 ?435次閱讀

    CS32A010官方的燒寫(xiě)工具都不支持代碼字節(jié)更改,如何設(shè)置保護(hù)?

    CS32A010官方的燒寫(xiě)工具都不支持代碼字節(jié)更改,如何設(shè)置保護(hù)?
    發(fā)表于 02-25 10:07

    分析嵌入式軟件代碼的漏洞-代碼注入

    ,實(shí)現(xiàn)自己的目標(biāo)。當(dāng)函數(shù)返回時(shí),攻擊者還可以將指令要被送達(dá)的地址覆蓋重寫(xiě)。 2、避免代碼注入 避免代碼注入的最佳方法是通過(guò)設(shè)計(jì)。 如果可以使用一種***不會(huì)出現(xiàn)漏洞的語(yǔ)言,那么這是最好的因?yàn)?/b>
    發(fā)表于 12-22 12:53

    電力調(diào)整器常見(jiàn)故障代碼

    電力調(diào)整器(又稱晶閘管調(diào)功器)的故障代碼因品牌和型號(hào)而異,沒(méi)有一個(gè)完全統(tǒng)一的標(biāo)準(zhǔn),但核心的保護(hù)功能是相似的。下表為整理了合泉TM三相系列不同編碼系統(tǒng)中常見(jiàn)的故障代碼及其含義。
    的頭像 發(fā)表于 12-16 09:41 ?722次閱讀
    電力調(diào)整器常見(jiàn)故障<b class='flag-5'>代碼</b>

    HarmonyOS應(yīng)用代碼混淆技術(shù)方案

    代碼混淆技術(shù)可以增加代碼的復(fù)雜性和模糊性,從而提高攻擊者分析代碼的難度。
    的頭像 發(fā)表于 11-21 16:17 ?5749次閱讀
    HarmonyOS應(yīng)用<b class='flag-5'>代碼</b>混淆技術(shù)方案

    覺(jué)得哪個(gè)軟件寫(xiě)verilog體驗(yàn)最好?有什么優(yōu)勢(shì)?

    覺(jué)得哪個(gè)軟件寫(xiě)verilog體驗(yàn)最好?有什么優(yōu)勢(shì)?請(qǐng)?jiān)谠u(píng)論區(qū)留言跟大家分享一下吧。
    發(fā)表于 11-10 07:47

    代碼開(kāi)發(fā)平臺(tái)推薦:2025國(guó)內(nèi)低代碼開(kāi)發(fā)平臺(tái)排名TOP10

    代碼開(kāi)發(fā)平臺(tái)排行榜 在企業(yè)數(shù)字化轉(zhuǎn)型的浪潮中,低代碼開(kāi)發(fā)平臺(tái)正逐漸成為企業(yè)實(shí)現(xiàn)高效開(kāi)發(fā)和快速迭代的重要工具。隨著技術(shù)的不斷進(jìn)步和市場(chǎng)需求的持續(xù)增長(zhǎng),低代碼開(kāi)發(fā)平臺(tái)的市場(chǎng)競(jìng)爭(zhēng)也日益激烈。以下
    的頭像 發(fā)表于 10-28 10:22 ?988次閱讀

    2025主流低代碼平臺(tái)有哪些:低代碼開(kāi)發(fā)平臺(tái)選型指南指南

    在企業(yè)數(shù)字化轉(zhuǎn)型進(jìn)入深水區(qū)的當(dāng)下,低代碼開(kāi)發(fā)平臺(tái)已從早期的“效率工具”升級(jí)為“核心基建”。其工程化能力、流程適配深度、技術(shù)延展性與行業(yè)積淀,直接決定了企業(yè)轉(zhuǎn)型的成效。據(jù)Gartner預(yù)測(cè),到2026
    的頭像 發(fā)表于 10-22 11:49 ?549次閱讀

    代碼格式化工具Clang-Format提升的CW32工程質(zhì)量

    它能自動(dòng)統(tǒng)一團(tuán)隊(duì)代碼風(fēng)格,讓不同開(kāi)發(fā)者寫(xiě)出的代碼如出一轍。就像 CW32 官方庫(kù)函數(shù)遵循統(tǒng)一規(guī)范一樣,Clang-Format 能讓團(tuán)隊(duì)所有成員的代碼瞬間保持一致,徹底消除 "tabs vs spaces" 的爭(zhēng)論。
    的頭像 發(fā)表于 10-09 17:43 ?1320次閱讀
    <b class='flag-5'>代碼</b>格式化工具Clang-Format提升<b class='flag-5'>你</b>的CW32工程質(zhì)量

    Ansible代碼上線項(xiàng)目實(shí)戰(zhàn)案例

    在DevOps浪潮中,自動(dòng)化部署已經(jīng)成為每個(gè)運(yùn)維工程師的必備技能。今天我將分享一個(gè)完整的Ansible代碼上線項(xiàng)目實(shí)戰(zhàn)案例,讓的部署效率提升10倍!
    的頭像 發(fā)表于 07-24 14:03 ?779次閱讀

    單模光纜型號(hào)字母代碼及其含義

    單模光纜的型號(hào)字母代碼主要用于標(biāo)識(shí)光纜的分類、結(jié)構(gòu)、護(hù)層及光纖類型等關(guān)鍵信息,以下是一些常見(jiàn)的單模光纜型號(hào)字母代碼及其含義: 一、光纜分類代碼 GY:通信用室外光纜,這是最常見(jiàn)的室外光纜分類
    的頭像 發(fā)表于 07-17 10:27 ?3690次閱讀

    聚徽——設(shè)備報(bào)警別亂陣腳!工控一體機(jī)異常代碼速查手冊(cè)

    在工業(yè)自動(dòng)化場(chǎng)景中,工控一體機(jī)作為核心控制設(shè)備,其穩(wěn)定運(yùn)行直接關(guān)系到生產(chǎn)效率與質(zhì)量。然而,設(shè)備報(bào)警代碼的出現(xiàn)往往讓維護(hù)人員措手不及。本文結(jié)合實(shí)際案例與權(quán)威技術(shù)資料,整理出一套工控一體機(jī)異常代碼速查
    的頭像 發(fā)表于 06-12 14:11 ?4125次閱讀

    【經(jīng)驗(yàn)分享】玩轉(zhuǎn)FPGA串口通信:從“幻覺(jué)調(diào)試”到代碼解析

    FPGA開(kāi)發(fā),思路先行!玩FPGA板子,代碼是基本功!尤其對(duì)從C語(yǔ)言轉(zhuǎn)戰(zhàn)FPGA的“寶貝們”來(lái)說(shuō),適應(yīng)流水線(pipeline)編程可能需要點(diǎn)時(shí)間。上篇點(diǎn)燈代碼解讀了基礎(chǔ),而如果能親手寫(xiě)出串口通訊
    的頭像 發(fā)表于 06-05 08:05 ?1256次閱讀
    【經(jīng)驗(yàn)分享】玩轉(zhuǎn)FPGA串口通信:從“幻覺(jué)調(diào)試”到<b class='flag-5'>代碼</b>解析

    從初學(xué)到進(jìn)階:樹(shù)莓派上最適合代碼編輯器推薦!

    之前,需要安裝一些必備工具,代碼編輯器便是其中之一。樹(shù)莓派系統(tǒng)自帶了一些代碼編輯器,它們功能良好,足以滿足基本需求。不過(guò),如果需要更高級(jí)的功能,就必須探索其他
    的頭像 發(fā)表于 05-15 16:20 ?1424次閱讀
    從初學(xué)到進(jìn)階:樹(shù)莓派上最適合<b class='flag-5'>你</b>的<b class='flag-5'>代碼</b>編輯器推薦!
    阿瓦提县| 威宁| 应用必备| 红河县| 明星| 开封市| 桐乡市| 武夷山市| 来宾市| 中牟县| 林州市| 鄂尔多斯市| 桐柏县| 石渠县| 年辖:市辖区| 旌德县| 凤山市| 五寨县| 涿州市| 博爱县| 弋阳县| 三穗县| 河北省| 洛川县| 安泽县| 阳曲县| 延川县| 博罗县| 平远县| 深泽县| 牡丹江市| 萍乡市| 齐河县| 庐江县| 习水县| 平邑县| 微博| 荆门市| 东乌珠穆沁旗| 滦南县| 繁昌县|