佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 940|回复: 7

programming 開發心得討論 (27/11 更新)

[复制链接]
发表于 25-11-2005 01:07 PM | 显示全部楼层 |阅读模式
最近常常在寫 program , 不管是自己寫爽的,還是幫別人寫的...
寫著寫著,發現有些東西其實遵守了是有助於開發進度的...
不知道大家有沒有類似的準則或小技巧 ?
純粹想整理收集一下,想辦法提升自己.....


先貼上來,有時間才整理
List
  • 先把所有待解決的問題紀錄下來,儘量分成小塊,並保持更新.
  • 習慣畫圖幫助思考,不要懶惰,畫圖能夠幫住你思考,隨時準備紙筆在旁邊,圖隨便畫就好,只是幫助思考的工具.
  • 小心過度設計的陷阱,不要先設計,先實做出來,之後才設計....  <<== 針對功能實作,非針對專案
  • 完成一個功能後,視需要快速的用 UML 記錄下來.
  • 修改程式儘量備份,或者多用 註解符號
  • 每一個小的功能完整之後必須先測試.
  • 常常整理程式碼,不只是程式碼本身,還有專案架構,保持在自己容易看得懂的狀態
  • 當遇到問題錯綜複雜時,回到起點開始思考,確定問題數量和問題所在所在.
  • 學會熟悉 IDE 工具,並且調整 IDE 到適合自己的習慣.
  • 只打開自己需要修改到的幾個相關檔案,其他的關掉.減少混亂
  • 保持清醒狀態.
  • 聽歌可以,但是不要聽節奏強烈,歌詞清晰,影響思考的,音量要小,當然儘量不要聽歌


分類 & 詳述
開發進度管理

方法 :
先把所有待解決的問題紀錄下來,儘量分成小塊,並保持更新

原因 :
一個 program 通常由很多小功能組成,每當我們專心的完成一個複雜的功能之後,通常會陷入放鬆狀態,並且忘記之前所想到的一些功能,當想要寫下一個功能的時候,又要重新思考要寫那一個功能,常常就會說,先休息一下,想想要寫什麼,之後時間就不知不覺的浪費掉了.

案例 :
之前我每次寫完一個複雜的功能,都會很高興,然後起來跑跑,想說,"阿~~終於完成了,接下來要做什麼呢 ? 還有多少要做呢..." ,然後就會失去動力,有種前途茫茫的感覺.... , 之後嘗試寫下來,發現到,"阿~~終於完成了,接下來要做這個功能,原來還剩下4個要做,加油 ~~ " , 這樣子也會比較有成就感吧......而且能夠掌握進度....重點是不會想說"阿...先休息一下想一想....."


--------------------------------------------------------------------------------


方法 :
習慣畫圖幫助思考,不要懶惰,畫圖能夠幫住你思考,隨時準備紙筆在旁邊,圖隨便畫就好,只是幫助思考的工具.

原因 :
如果我們在進行一個比較複雜的程式,在不斷思考當中常常會冒出許多想法,畫圖有助於讓思考模式變得有條理,而且能夠紀錄突然跳出來的想法,但是,很多UML的初學者可能常受到書籍或其他方面的影響,一直想要畫出正確的,並且用電腦的 UML 工具畫圖,我之前也這樣,但是後來發現,這樣是不實際的,因為工具速度慢,而當你有強調 UML 要正確的時候,往往 idea 已經不知道消失到那裡去了,所以記得,UML是讓你與其他人溝通用的,只是一種工具,沒有必要太堅持正規性,除非你是要做最後的說明文件.

案例 :
之前剛學 UML 的時候,常常想說要怎樣正確的使用,並且常常以為要把所有的東西都用 UML 正確的紀錄在電腦裡,想要嘗試無紙張化的概念,但是真的浪費很多時間,而且花了一些不重要的,後來就從來沒有看過....只是為了畫而畫.......


--------------------------------------------------------------------------------


方法 :
小心過度設計的陷阱,不要先設計,先實做出來,之後才設計....  <<== 針對功能實作,非針對專案

原因 :
當寫程式到了物件導向的階段,如果再看了一點 design pattern 的書,就會開始想要設計一個高靈活性的程式,用一些非常漂亮的 pattern , 但是事實是,這樣是沒有必要的,因為你無法預測你的程式會出現什麼意外狀況,先用最快的速度把功能寫出來,之後才開始在不影響功能的前提下 refactoring 程式.

案例 :
之前做過一個遊戲的案子, 在開始設計的時候想要用這個pattern,想要那個pattern , 結果時間過了非常久,後來跟朋友談到,他說:"妳知道為什麼你會覺得開發這個簡單的東西會變成這樣難嗎 ? 因為你想開發的不只是遊戲,而是遊戲的 framework ...",真是一言驚醒夢中人,我到底真的需要做這麼完美的事情嗎 ? 後來改了一下,因為我是跟 customer 在一起開發的,開發的時候他就坐在我旁邊,他說要什麼功能,我就不管三七二十一的先給他寫出來,其實功能真得很簡單,如果你不要考慮這個考慮那個的話,連變數名也亂下就好了,記得,現在這個程式只是先把功能需求找出來,之後還要 refactoring 的.

--------------------------------------------------------------------------------


方法 :
完成一個功能後,視需要快速的用 UML 記錄下來.

原因 :
當你開發的程式夠大的時候,常常會忘記你之前寫的某些部份,還有他的設計理念,但是如果又回頭去看程式碼,是非常浪費時間的.如果你完成了之後,趁還沒有忘記,馬上把他記錄下來,並且管理好,那麼以後返查就節省很多時間,而且不用看程式碼.但是要注意,不是說全部的東西都要化成 UML , 只要畫重點的概念就好了,大概花個5分鐘左右吧...如果你全部都給他畫上去,那麼可以保證,妳以後是不會想要去翻動它的...請記得一個概念,UML是幫你抓出重點,如果你真的要詳細,請看最詳細的程式碼,不要把 UML 當成程式碼用...

案例 : 無


--------------------------------------------------------------------------------


方法 :
修改程式儘量備份,或者多用 註解符號


原因 :
當我們修改程式的時候,常常因為懶惰,所以就直接 delete 掉,然後重寫,但是那個功能有沒有 Bug 我們卻不是那麼肯定,當我們寫不出來或者發現有bug的時候,通常都是用undo 或者 ctrl + z ,但是,很多IDE的 undo 都是有限的,那個時候就真的開心囉.... 另外一種情況就是整理的時候不小心delete掉,那個更開心...簡單的可以花時間重寫,複雜的...哀悼吧... 搞不好1個禮拜就浪費掉了.用注解的方式是不錯,但是記得,ok了之後請把他砍掉,不然等整個 project 完成之後你才來砍,那麼也是很累人的ㄧ件事.



案例 :
我上次寫了一個排課的程式,用 struts 來寫,核心是純 JAVA 物件,因為只是用來學習 struts 的題目吧了,所以就直接把 struts 部分的程式碼寫在 apache 的 floder 裡面....突然我看到 apache 的 admin 的reload旁邊有个delete,我就很好奇的按下去,結果我就馬上學到兩個道理......1.)程式是要備份的  2.)小孩子不要手多多  Orz



  


--------------------------------------------------------------------------------


Debug & Refactoring



方法 :
每一個小的功能完整之後必須先測試.


原因 :
一般的時候,我們很喜歡幾個功能一起寫,或者是先隨便寫,等到有 bug 的時候才來找bug,但是有時候,有些bug是很難抓的,因為你不只ㄧ個功能出錯,那個時候你就會覺得怎麼怎樣改都不對,非常麻煩,XP開發法有提到,先寫測試程式,之後才開始寫程式.聽起來很不可思議,但是仔細想想,把測試程式寫出來,代表我們真的很明確知道自己要的是什麼,ㄧ邊寫一邊想也許比較方便,但是,我們往往喜歡加這個就加這個,加那個就加那個,真正的需求,我們反而不是很在意,如果我們先把需求的測試碼寫出來,不只可以確定 method(function) 名字,也可以從需求看出哪些功能是我一定要提供的,那些是我自己想要增加的.


案例 :
這個我正在研究中,因為要在設計之前就明確的知道自己的需求坦白說還蠻難的,因為你不知道你寫出來的東西是不是真的能做出來.


以下建構中.....

[ 本帖最后由 莫名奇妙 于 27-11-2005 11:46 AM 编辑 ]
回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 25-11-2005 01:13 PM | 显示全部楼层
大家有什麼心得也貼上來吧,分享一下
回复

使用道具 举报

发表于 25-11-2005 06:49 PM | 显示全部楼层
楼主的做法很好,我每次都是遇到问题后就上网找。
硬硬地把结合起来,到最后才重新整合。

这样真的好浪费时间。
回复

使用道具 举报

发表于 25-11-2005 10:45 PM | 显示全部楼层
我在死命的读着design pattern希望可以多多的加pattern进我的code里面。
回复

使用道具 举报

 楼主| 发表于 26-11-2005 02:00 AM | 显示全部楼层
原帖由 ww2020 于 25-11-2005 06:49 PM 发表
楼主的做法很好,我每次都是遇到问题后就上网找。
硬硬地把结合起来,到最后才重新整合。

这样真的好浪费时间。


我的做法是碰到會做的才能夠阿,如果不會做的,也要上網找資料的,

當然會做也會碰上會做的問題,例如邏輯上得問題等等,

我的這套方法只是解決了一些大意,粗心還有心理上的毛病吧了....
回复

使用道具 举报

 楼主| 发表于 26-11-2005 02:05 AM | 显示全部楼层
原帖由 MiloKid 于 25-11-2005 10:45 PM 发表
我在死命的读着design pattern希望可以多多的加pattern进我的code里面。


我也開始在看 Design pattern , 一開始看真的會忍不住想要用看看,

但是很多人都勸我說要小心,因為真正開發一個專案,不是只有 Coding 要完美就好的,還有時間上的衡量,

如果 Coding 再美,花十年做出來,就沒有意義了....


p/s 看 Design Pattern 真的很爽,有一種天外有天,人外有人的感覺,尤其當你煩惱之後,看到這個解決的方法竟然這麼神奇的被做出來,真的有一種頓悟的快感,我看書從來沒有這麼爽過.....
回复

使用道具 举报

Follow Us
 楼主| 发表于 26-11-2005 02:06 AM | 显示全部楼层
今晚要趕作業,明天要出去玩,晚上才繼續更新.....
回复

使用道具 举报

 楼主| 发表于 27-11-2005 11:47 AM | 显示全部楼层
寫到後面,中文輸入系統掛掉了,就先放這些吧.....

大家有什麼心得也放上來吧,
回复

使用道具 举报


ADVERTISEMENT

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 21-9-2024 04:32 PM , Processed in 0.146933 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表