性欧美精品高清_欧美尤物美女在线_国产精品久久久久无码av_日韩在线视频中文字幕

首頁 常見問題 正文
聚名企服

在編程時應該注意哪些問題?有什么誤區?

轉載 2021-11-29 11:50:43 7005
在編程時應該注意哪些問題?我們很少看到有人公開談論自己的錯誤。人非圣賢,孰能無過?雖然難言出口,但反思過去所犯的錯誤可以讓人不會在未來——至少是短期的未來,犯同樣的錯誤。下面我們就來看看編程的常見問題。

在編程時應該注意哪些問題?我們很少看到有人公開談論自己的錯誤。人非圣賢,孰能無過?雖然難言出口,但反思過去所犯的錯誤可以讓人不會在未來——至少是短期的未來,犯同樣的錯誤。下面我們就來看看編程的常見問題。

在編程時應該注意哪些問題?有什么誤區?

在編程時應該注意哪些誤區?

1、沒有使用合適的ORM

數據訪問層代碼總是混亂、乏味和無聊的。不幸的是,往往這點到最后才能發現。

Mohamed和ORM有著一段孽緣。ORM,即Object Relational Mapping,它是對象關系模型的簡稱。它的作用是在關系型數據庫和對象之間作一個映射,使程序能夠通過操縱描述對象方式來操縱數據庫。

當Mohamed第一次做一個簡單的內部會計應用程序時,他發現只是為了完成基本的程序,就不得不編寫大量的代碼。于是他開始埋頭于ADO.NET,并手動編寫了一個自制的、具有非常特殊的、自定義的表模式的ORM,來滿足目的。

在一段時間里,這個ORM工作的相當不錯,直到幾個月后,公司的業務需求發生了一些變化,這導致了整個表格模式的變化,然后,就是對ORM的反復修改。這個流程的痛苦之極,讓Mohamed最終選擇了強類型數據集適配器。

雖然這件事因此解決,但如果能找到一個更合適的ORM(比如NHibernate)來完成工作,Mohamed仍會義不容辭,至少當他的用戶數量增加時,不必擔心更改數據庫的供應商。

2、沒有學會使用泛型

Mohamed Barouma的職業程序員生涯始于Net 1.1。而在當時,Net 1.1的主要問題在于它沒有泛型支持,這代表它不能有一個強類型列表,只能滿足于乏味的ArrayList。但是使用Arraylist在Java代碼中進行類型轉換和裝箱,會導致讀寫起來十分痛苦。

因此,Net 1.1的程序員們使用CodeSmith生成一個強類型集合列表。

但隨著代碼庫的增長,那些定制生成的列表本身就變成了一個無法收拾的怪物。只要經常為了創建對象或調用方法去達到目的,隨后就會因為修改代碼導致混亂和錯誤。

如果切換到Net 2.0,并在它可用時立即開始使用泛型,而不是創建越來越多的難以維護的自定義集合列表,那么一切問題都將迎刃而解。

3、沒有放棄“造輪子”

這是個老生常談的話題,“反復造輪子”(Reinvent The Wheel)。新程序員總是喜歡反復“造輪子”,自認為當前的實現不夠好,所以不得不從頭重寫整個東西。

為什么叫“造輪子”?就像真正的的輪子早在幾千年前就被確定是圓形的一樣,很多數據庫也早就已經成熟易用了,但還是有數不勝數的程序員們鍥而不舍的去“造輪子”,有的人飛蛾撲火、蚍蜉撼樹,有的人別具一格、推陳出新,這就是“造輪子”魔法一般的吸引力。

這其中也不乏Mohamed,他想重新編寫自己的UI控件,因為Windows Forms UI控件實在是太簡單了。最后,他造的GUI工具被商業化成體系的.Net UI控件輕松打敗,又一輛新生程序員造的“輪子”被擊沉到了代碼海洋里。

4、沒有精簡過多的文檔

很多剛入行的程序員,會在一開始覺得代碼文檔很好,因為它用簡單的英語注釋了代碼在做什么。但事實上這些文檔通常在修改了幾次代碼之后變成了一攤廢紙,變得陳舊、過時亦或是完全錯誤。

常常有人花了很多時間編寫代碼文檔——比如XML文檔,結果發現在更改代碼時需要更新文檔。因為它的功能可能都已經改變了。更新代碼是必須的,但更新XML文檔不是必須的:這是一種負擔,它消耗時間,而且毫無用處。

最終,反復地更改XML文檔使人逐漸失去耐心,轉而做其他事情。

5、沒有使用自動化構建

應用程序的部署和打包比編程相對容易,所以它往往被放在了非常低的優先級上。但很快,粗制濫造的構建就會因為無法工作,受到各式各樣的投訴:

“先決條件缺失,該如何修復?”

“dll沒有更新,你能給我一個補丁嗎?”

“我的圖標怎么不見了?”

緊接著,電話像雪崩一樣源源不斷地打到桌旁。這是Mohamed的真實經歷,并讓他那天精疲力盡——不是因為編程,而是因為令人麻木的重新部署和重新包裝過程。

而這一切,本可以通過編寫自動化腳本節省一些時間,否則在事后debug浪費的時間絕對比可以節省的時間多上數倍。應該讓軟件可以一鍵構建,否則再多都是一種浪費。

6、沒有停止對視覺檢測和debug的依賴

Visual Studio讓人們可以很容易地調試代碼并進行動態檢查,這也使得創建一個表單并顯示輸出非常簡單。但如果太沉迷于調試器,這項好處就要變成壞處了。

為什么呢?想象一下,如果一個方法只在應用程序啟動并運行45分鐘后才被調用,那難道要打算等45分鐘再開始調試嗎?

所以,動動手將應用程序分解為可以獨立調用的子模塊,這樣就可以準備產生錯誤輸出的輸入值,并從那里開始測試它。

7、沒有做單元測試

不少程序員可能這么想過:“我的這個應用程序微不足道,它可以很容易地被手工測試覆蓋;單元測試是針對大型和復雜的東西,而不是針對我的程序。”

可想而知,這會直接親手創造一個沒有關注點分離,難以重構,完全不可維護的代碼庫。

“躡手躡腳”幾乎是許多小白程序員的通病,害怕對代碼進行哪怕是最輕微的修改,因為任何更改都可能導致或不會導致破壞性的更改。結果到最后一發不可收拾,出現的問題無法解決。使用這種遺留代碼不僅僅是無聊和緊張,而且精神上也有壓力。

但是使用單元測試,能讓代碼的壽命大大提高。Mohamed希望自己能學會單元測試的“藝術”,從入學第一天開始練習單元測試,可惜學校并不教這個。

世界上,無數令人為之一振的創新發明都源自無數次的試錯,但即便如此,避免基礎性的錯誤依舊是很有必要的。在你的程序人生中,還遇到過哪些令人啼笑皆非的“常見誤區”?亦或者是創造了一些百思不得其解的“致命誤區”?歡迎下方留言,分享你學習編程時的心得體驗。

聲明:本文轉載于:互聯網,如有侵犯,請聯系service@Juming.com刪除
相關標簽: 編程

編輯推薦

  • 域名注冊專題合集 域名注冊專題合集

  • 域名搶注專題合集 域名搶注專題合集

  • 企業建站專題合集 企業建站專題合集

性欧美精品高清_欧美尤物美女在线_国产精品久久久久无码av_日韩在线视频中文字幕
成人v精品蜜桃久久一区| 日韩精品高清不卡| 亚洲一区欧美一区| 一本久久精品一区二区| 亚洲激情在线激情| 日韩免费看网站| 国产在线看一区| 国产精品情趣视频| 欧美性xxxxx极品少妇| 日本不卡视频在线| 国产精品久久久久三级| 欧美日韩一级片在线观看| 久久99精品国产| 亚洲六月丁香色婷婷综合久久| 7777精品伊人久久久大香线蕉完整版 | 午夜不卡在线视频| 欧美丝袜自拍制服另类| 麻豆免费精品视频| 亚洲精品五月天| 精品伦理精品一区| 欧美天堂一区二区三区| 国产在线一区二区综合免费视频| 中文字幕日韩欧美一区二区三区| 欧美va日韩va| 成人三级在线视频| 精品一区二区三区久久| 国产精品白丝在线| 91精品国产综合久久精品app | 日韩—二三区免费观看av| 91精品国产综合久久香蕉的特点 | 蜜桃视频第一区免费观看| 久久久久国产精品麻豆ai换脸 | 国产精品丝袜黑色高跟| 欧美性感一类影片在线播放| 九九视频精品免费| 午夜国产不卡在线观看视频| 亚洲精品国产精品乱码不99| 精品国产亚洲一区二区三区在线观看| 91国产福利在线| 国产精品美女久久久久久久久久久 | 国产精品麻豆欧美日韩ww| 日韩视频免费观看高清完整版 | 中文字幕欧美国产| 亚洲成人三级小说| 亚洲黄色小说网站| 亚洲另类春色国产| 一区二区三区四区在线播放| 亚洲女人的天堂| 亚洲乱码中文字幕| 一区二区不卡在线播放 | 国产欧美一区在线| 久久一区二区视频| 欧美大片在线观看一区| 日韩欧美国产综合一区| 欧美另类高清zo欧美| 91麻豆精品91久久久久久清纯| 91.麻豆视频| 91精品国产入口在线| 欧美精品一区二| 国产欧美日韩精品一区| 欧美国产激情一区二区三区蜜月| 中文一区在线播放 | 日本一区二区三级电影在线观看| 精品成人一区二区三区| 久久久三级国产网站| 国产精品久久久久久福利一牛影视| 亚洲欧美另类久久久精品2019| 一区二区国产盗摄色噜噜| 日产欧产美韩系列久久99| 国内精品伊人久久久久av影院| 国产mv日韩mv欧美| 欧美亚洲免费在线一区| 日韩欧美久久久| 一区二区中文字幕在线| 亚洲123区在线观看| 精一区二区三区| 99精品视频在线播放观看| 欧美日韩午夜影院| 久久九九国产精品| 亚洲国产cao| 国产精品亚洲а∨天堂免在线| 成人av第一页| 欧美一区二区精品久久911| 欧美国产激情二区三区| 日韩精品亚洲一区| 99久久99久久精品国产片果冻| 欧美美女bb生活片| 国产精品免费视频一区| 美女在线一区二区| 91国偷自产一区二区三区观看| 精品国产成人在线影院| 亚洲免费在线视频| 丝袜诱惑制服诱惑色一区在线观看| 国产成人精品亚洲午夜麻豆| 欧美日韩亚洲综合在线| 中文字幕欧美激情| 国内久久精品视频| 欧美一区二区视频免费观看| 亚洲免费观看视频| 成人app在线观看| 久久人人爽爽爽人久久久| 一区二区三区在线视频观看| 国产精品18久久久久久久久久久久| 欧美日韩国产另类一区| 亚洲视频一区二区免费在线观看| 精品一区二区精品| 日韩精品专区在线影院重磅| 亚洲免费观看高清在线观看| 国产一区二区三区香蕉| 欧美亚洲国产一区二区三区va| 中文字幕一区二区三区四区| 国产河南妇女毛片精品久久久| 日韩免费成人网| 亚洲精品免费在线| 91天堂素人约啪| 国产精品妹子av| 久久99热狠狠色一区二区| 在线不卡免费av| 偷拍亚洲欧洲综合| 欧美喷水一区二区| 午夜精品福利一区二区三区av| 欧美在线观看视频在线| 一区二区三区中文字幕| 在线观看三级视频欧美| 一级日本不卡的影视| 欧美主播一区二区三区| 亚洲大片在线观看| 欧美久久婷婷综合色| 日韩电影在线观看电影| 欧美mv和日韩mv国产网站| 黄页网站大全一区二区| 久久久国产一区二区三区四区小说 | 欧美精品自拍偷拍| 视频一区欧美日韩| 91精品国产色综合久久ai换脸| 日韩成人精品在线| 精品日本一线二线三线不卡| 国内精品久久久久影院一蜜桃| 69久久夜色精品国产69蝌蚪网| 免费观看在线综合| 精品国产区一区| 国产成都精品91一区二区三| 中文字幕日本不卡| 69av一区二区三区| 国产一区二区导航在线播放| 国产精品久久二区二区| 欧美性猛交xxxx黑人交| 久久国产视频网| 国产精品国产精品国产专区不片| 91香蕉视频黄| 中文字幕在线观看不卡| 欧美精品1区2区| 成人午夜av影视| 亚洲第一搞黄网站| 久久蜜桃一区二区| 99久久99久久免费精品蜜臀| 综合色中文字幕| 日韩一区二区三| 成人高清视频在线观看| 天天色综合天天| 国产精品美女久久久久久| 成人黄色小视频| 日韩电影在线一区二区三区| 中文字幕成人av| 欧美一区二区在线视频| 99久久精品久久久久久清纯| 亚洲欧美日韩国产另类专区| 日韩午夜av一区| 在线观看亚洲a| 国产69精品久久777的优势| 亚洲超丰满肉感bbw| 中文字幕免费不卡| 欧美一级片免费看| 欧美吻胸吃奶大尺度电影 | 欧美中文字幕一二三区视频| 国产真实乱偷精品视频免| 亚洲电影一级片| 中文字幕一区在线观看| 日韩精品中午字幕| 欧美三级电影在线看| 99久久伊人久久99| 国产麻豆精品视频| 免费一级片91| 亚洲成人av中文| 亚洲欧美视频在线观看视频| 国产欧美日韩视频在线观看| 日韩精品最新网址| 日韩欧美一区二区三区在线| 欧美揉bbbbb揉bbbbb| 色欲综合视频天天天| heyzo一本久久综合| 福利电影一区二区| 国产一区二区三区在线观看免费 | 亚洲午夜一区二区| 亚洲美女视频在线观看| 亚洲视频在线一区观看| 自拍偷拍亚洲欧美日韩| 日韩美女久久久| 国产亚洲综合性久久久影院| 欧美一区二区三区播放老司机|