盛大創新院程式設計師 霍炬
早年我也喜歡過uml
,覺得是對複雜工程的解決之道。後來碰上越來越多的實際問題,發現
uml並不能很好地解決。一方面,要能精確地用
uml定義問題,需要長時間的訓練。就好像用一門不熟練的語言說話,時常會導致誤解,
uml也一樣。多年前我曾經在團隊裡推行過
uml,結果發現有大量問題表述不清,最後還是要靠面對面地重新描述問題和討論解決思路,溝通效率很低。在這方面,
uml並沒有能成為一種統一語言,甚至比自然語言更難以取得統一。另一方面,當年很多人和公司都迷信用
uml直接生成**來提高生產力。這似乎不是我乙個人的誤解,
rational
曾經出過不少軟體,不光建模,還要做**轉換,生成**框架。這部分實際使用效果不夠好,生成的**機械、複雜,經常難以理解,並且因為是自動生成的,閱讀修改都很困難。
最近這些年,我慢慢理解了軟體開發模式的變化——
從軟體模式到網際網路模式。這裡有如下幾層意思。
在這種快速迭代下,可以把任務拆分成小塊,乙個個快速進行。沒有巨大的工程也就不需要uml
那麼複雜的東西了,在這種小塊任務驅動的專案中,
uml很可能比語言本身還複雜得多。
規模巨大的開源專案,也很少見到基於uml
的成功經驗,基本上用文件++
**描述,就可以讓思路很清晰。我個人更推崇這種方式。我始終把外包專案單獨分出來研究,因為外包專案是高度重複、高度定製的勞動,開發周期長,修改成本極高,這種專案應該是適合
uml的。
比起漫無目的的猜想和不規範的文件圖表,uml
確實更加工程化,但它不過是一種體系和一種思想,僅靠它來形成工程師思維還不夠。我們從小的教育就沒有特別培養過這一素質,靠成年進入職場後形成,就顯得特別難。看看周圍有多少人,碰上問題是喊出來,而不是去讀文件?這種思維需要慢慢培養。網際網路帶來的開放交流環境,使大家對問題進行討論交流的頻率大大增加,帶來的思維衝擊遠比從前更多和更密集,而且對乙個問題形成基本共識有著
10年前不可想象的速度。
90後的年輕人,他們的學習和研究能力比
10年前的我們已經有很大提高,相信他們會比當年的我們更容易具備工程師的思維。
金山軟體劉鑫:有限使用uml
umlchina潘加宇:競爭優勢和建模
由霍炬等翻譯的《cocoa程式開發者手冊》即將在博文視點出版
UML 學習筆記 建模是一種藝術
模型是什麼?模型是某個事物的抽象,其目的是在構建這個事物之前先來理解它。因為模型忽略了那些非本質的細節,這樣就比操作原始實體要來得容易。抽象是人類的一項基本技能,我們可以借助它來處理複雜性。古往今來,工程師,藝術家一直在建立模型,以圖在執行設計之前先試驗出好的設計來,軟硬體系統的開發也不列外。要建立...
認識你是一種收穫 UML初次邂逅(一)
前言uml全稱是unified modeling language,翻譯過來是統一建模語言,而且是一種物件導向的視覺化的建模語言,而不是程式語言。不過需要注意的一點是,uml建模語言一種物件導向的視覺化的建模語言,那麼需要我們具有的就是乙個抽象的能力。說起來很簡單,但是必須注意培養這個能力。1.1類...
UVa 12563(一種錯誤做法和一種正確做法)
題意 求在給定時間內,最多能唱多少歌曲,在最多歌曲的情況下,使唱的時間最長。該題類似於01揹包問題,可用01揹包問題的解題思路來求,每個歌曲相當於物品,歌曲的長度相等於物品重量,每個歌曲的 價值 為1。由於金歌勁曲時間最長,所以最後要留至少1秒時間開始唱金歌勁曲,所以計算t 1時間內最多唱的歌曲和時...