日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

如何进行良好的程序设计(1)

發布時間:2024/4/18 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何进行良好的程序设计(1) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?關于程序設計,掐指算來也寫了快有十年的程序了,之前很長的一段時間都是以算法類的競賽為主,對于程序結構的設計,總是胡亂寫寫,能跑通就算ok了。來公司后, 接觸了一些大一點的項目的設計,設計的重要性就凸現出來了。

??? 為了更好的設計(不能說到完美,但是至少不要把自己和用戶弄暈),我寫點自己的一些感悟(有自己思考的,也有和公司的前輩討論得到的),不能說本系列是一篇指導性的文章,權當是拋磚引玉,希望能夠大家不吝賜教,多多討論。

????對于程序設計,常常是有下面的一個過程:

??? 1)給出了需求,對需求進行思考,考慮用某種結構去實現

??? 2)對于結構的思考覺得可以滿足了需求,開始程序設計

??? 3)設計的過程中發現某些地方有效率問題、可行性問題、或者某些不能滿足需求的問題 -?在當前的基礎上進行修修補補

??? 4)設計的過程中用戶提出了一些新的需求 -?在當前的基礎上進行修修補補

??? 5)為了調試、測試的方便,在程序中的一些臨時代碼也忘了清除,使得程序看起來亂七八糟

??? 6)重復2)3)4)的過程,直到看起來滿目蒼夷的程序完成需求,交付項目

??? 7)過了半年一年,用戶有了一些新的需求,或者發現了一些bug,當重拾代碼時,發現代碼已經不忍卒讀了

??? 每次經歷這樣的一次情況,內心中都有一種煎熬的感覺,覺得程序越寫越背離了當初設計的初衷,代碼連自己都不想去看,哪里能算優秀的程序呢。有時候覺得很懶,喜歡給自己找一些借口,比如項目做完了的時間可以學習一下其他的東西,看看論文什么的,或者說省一點時間去陪陪家人。其實設計和算法一樣,都是非常有價值的東西,就像IPad和筆記本的比較一樣,IPad就因為設計的新穎,和各處的精益求精,讓全世界的人為之瘋狂。

????最近和同事進行討論,自己也想了想,可以從下面的一些方面來學會如何進行良好的設計:

??? 想要設計應該先去多看看別人優秀的代碼,從代碼中體會大師的設計。設計模式只是設計的一小方面,我覺得更重要的是類、函數的功能設計,讓這些函數不管從接口上還是從內部的實現上,都是去做一些比較干凈的功能。這樣不管自己去寫,別人去讀,或者加入新的函數和類等,都更加方便。

??? 對于一些書(比如Effective C++等)中間講的知識不一定要生搬硬套的去使用,而可以從別人的代碼中看看大師們是怎樣用這些技巧的,比如imp指針這種技巧,我覺得就不適合在普通的接口中使用,這種技巧不同于人的直接思維,在原本簡潔的借口后面包裝了一個不太漂亮的“影子”。也不利于編碼和理解、調試。

??? 對設計,應該是跨越語言的范圍的,對于不同的語言,也同樣可以看到很多美好的設計,比如Java中非常多的開源項目就可以有很多可以去參考學習。比如我們目前正在做的分布式機器學習庫就可以去參考一下Apache的Mahout,里面對問題的處理方式應該是一致的。對于同一種語言開發出來的程序,可以去看看語言的技巧如何正確的使用。

??? 對測試,我個人習慣不太好,總喜歡在測試的時候加入一些cerr等代碼,有時又會忘記了刪除,讓代碼看起來會不太好看,對于單元測試,也不太清楚怎樣去寫良好的單元測試,這也是后面得去慢慢學習的內容。

??? 對設計,應該是一個精心去雕琢的過程,盡量能夠保持在自己能力內的完美,然后這也是日積月累的工作,沒有捷徑可走,只有多看多學才行。

總結

以上是生活随笔為你收集整理的如何进行良好的程序设计(1)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。