Fw: [討論] 軟體工程

看板Soft_Job作者 (J)時間12年前 (2013/07/23 01:35), 編輯推噓2(2012)
留言14則, 4人參與, 最新討論串1/4 (看更多)
※ [本文轉錄自 Tech_Job 看板 #1HxMoN9q ] 作者: jackylu63 (J) 看板: Tech_Job 標題: [討論] 軟體工程 時間: Tue Jul 23 01:32:05 2013 第一次PO自己的心得, 煩請不吝指教 兩年多前,小弟開始接觸《人月神話》、《PeopleWare》之類的書後,才知道有《軟 體工程》這個名詞。後來我就對這個題目感到興趣,並且開始閱讀一些相關的資料。 對於《軟體工程》我自己有些心得 (獻醜了...) 我認為《架構》與《重構》是軟體工程裏最重要的部份 《架構才是王道》 「架構的存在目的是為了簡化管理,因為架構的本質就是在建立《分工》及《合作》 的 模式。」 架構將一個軟體系統拆開數個模組,模組與模組之間的交結處稱之為介面。 架構及介面的設計如果越能簡單明瞭,開發人員也就越容易明白自己及別人在做些什麼事 情。溝通的開發大型軟體最重要的一件事情,簡化溝通也就能簡化開發。所以軟體架構是 軟體工程最重要的一件事情,先談《架構》再來談《工程》這件事情。 《抽象是必備的技能》 抽象是以人類的思考方式來描述軟體行為。好的介面的設計必須要有好的抽象性,這樣才 能讓人快速的了解模組使用方式。老闆及員工都要有軟體抽象概念,這樣子溝通上才不會 有障礙。 《重構是必然的事》 軟體開發的首要之務在於了解《到底軟體要解決什麼問題》,接著才是《要如何解決》。 然而,軟體開發有個很有趣的現象: 「針對一個已經開發好的軟體,不會需要開發第二次,因為只要copy就會第二個產品出來 」 即使經驗再多的老鳥,對於一個新成立的軟體專案一定會有一些問題是自己事先沒有想到 的。而且這些先前沒遇過的問題,一定都是發生在專案開發開到一半時才發現。所以重構 是必然的事,說白話一點就是要改code。 一個好的架構在重構時所付出的心血相對會比較少。因為架構明瞭,所以對於架構設計的 不足之處也會很明確,這對重構會有很大幫助。 《品質第一,schedule放一邊》 即然要改code是必然的,我們來想想一個情形: 「不管三七二十一,改就對了,破壞架構也沒關係」 許多老闆的立場都是以產品是否能如期產出為主,他們會對程式員施加壓力,當程式員有 這樣子的時程壓力後,就會出現上面這樣子的反應。程式員為了交差,會想辦法在架構裏 挖洞,以達到目的。而且通常不會跟老闆說自己挖了什麼洞,因為這樣子會自找麻煩。 破壞架構就等於破壞模組間的分工合作模式,這樣子會造成潛在性的問題。像這樣子的潛 在性問題爆發的時間點越晚(專案後期),則後果就會越嚴重。因為專案的後期的程式碼 已經大到不可想像了,光是要找出問題點就會花許多時間,而為了要修正問題所更動的程 式碼就越多,動用的人力越多,時程也就越會拖越久。 在軟體開發的過程中,軟體品質一個不可妥協的原則。測試及CodeReview都是確保品質的 方法,但是更重要是老闆對品質的堅持。 《在架構之前》 不是說架構就能架構的,台灣學術界與產業界脫節嚴重,幾乎沒有人學校一畢業就能懂架 構。通常還是要在產業界實作經驗之後才會有能力。所以各個公司行號只好自己培養自己 的架構人才。 《物件導向程式設計》是架構人才最重要的一個訓練題材。不過,物件導向程式並不是C++ C#, JAVA …,用C也是可以寫出OO的程式。OO是觀念,不是程式語言。 《IC設計產業現況》 我與一些朋友討論這個議題時,最後發現在科技業裏《時程》才是最重要的事情,會這樣子 主要與《競爭型的市場》有關,如果沒辦法在有限時間內交出產品,案子很可能就不見了。 +----------------------------------------------------------+ | | | 而且越賺錢的公司就越注重schedule,接著軟體品質就不保了… | | | +----------------------------------------------------------+ 因此, 所以我上面所說的《架構》《重構》《抽象》《品質》《人才培養》 都是屁話 唉~~ 應該都不適用於IC設計產業 我自己曾經有過幾次在好的架構下開發程式的經驗,個人的經驗覺得,好的架構真的能對 整個案子開發有很大的幫助。能在一個好的架構下寫code是一件很幸福的事情。但是我與 我朋友討論這個問題時,大部份的人都認為《時程第一》。 因為《時程第一》,以致於老闆不會認為花時間訓練架構人才是重要的事情,工程師也沒 有時間好好想架構。 IC設計產業現行的做法與我的理想差異很大,對此我反而開始懷疑自己的觀念是否有錯? 請教各位大大, 您的想法為何? B.R. J -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 1.169.129.50 ※ 發信站: 批踢踢實業坊(ptt.cc) ※ 轉錄者: jackylu63 (1.169.129.50), 時間: 07/23/2013 01:35:53 ※ 編輯: jackylu63 來自: 1.169.129.50 (07/23 01:48)

07/23 08:33, , 1F
推架構先決~
07/23 08:33, 1F

07/23 08:56, , 2F
所以你看完自己心得是什麼....
07/23 08:56, 2F

07/23 08:57, , 3F
你沒有自己的感想人家是要跟你討論什麼
07/23 08:57, 3F

07/23 08:57, , 4F
這種文久久就會出現一次自己爬文比較快
07/23 08:57, 4F

07/23 08:58, , 5F
你再這裡的心得不是都是書上的東西在講一次而已
07/23 08:58, 5F

07/23 09:00, , 6F
誰不知道架構很重要重構很重要........
07/23 09:00, 6F

07/23 09:01, , 7F
倒數第二行不就是答案了嗎
07/23 09:01, 7F

07/23 11:08, , 8F
只想問,你的實作能力跟上了理想了沒 :)
07/23 11:08, 8F

07/23 11:49, , 9F
實作能力決定在架構上的控制能力, 重構很好啊
07/23 11:49, 9F

07/23 11:49, , 10F
越改 bug越多, 多到處理不完, 最後還是退回原版本
07/23 11:49, 10F

07/23 11:53, , 11F
理想很重要, 排程也很重要
07/23 11:53, 11F

07/23 11:53, , 12F
不能開天窗, 所以重構的工作落在既定的行程之外
07/23 11:53, 12F

07/23 11:53, , 13F
也就是你把應要做的的工作做完要靠你的熱情改的更好
07/23 11:53, 13F

07/23 11:54, , 14F
改的不好會被狗幹, 改的好沒人看的到, 真的要靠熱情
07/23 11:54, 14F
文章代碼(AID): #1HxMrwaC (Soft_Job)
文章代碼(AID): #1HxMrwaC (Soft_Job)