Re: [閒聊] 環境令人無力orz

看板Soft_Job (軟體人)作者 (沉默是金。)時間16年前 (2010/03/29 13:55), 編輯推噓2(2016)
留言18則, 3人參與, 最新討論串11/18 (看更多)
※ 引述《superpai (超級白)》之銘言: : → atst2:個人很有興趣想聽聽對"工程"不同的想法,Tony兄願意分享一下 03/29 13:04 : → atst2:嗎? 想法不同是一定會的...也請讓在下參酌看能否有所助益? 03/29 13:04 整理一下也好,其實很多想法都是自己從過去經驗得來的, 所以本來就是應該拿出來一起討論甚至是來讓人指責的, 推文這樣講其實我也覺得蠻混亂而且有一些矛盾, 有些條件假設跟環境假想沒辦法說得很清楚。 當然討論這個話題前,我非常同意原PO根本就找錯戰場做錯事; 這點是毋庸置疑的。 但是我這篇要說的是,因為現在已經有一連串的既有結構, 所以「就工程的觀點」,新的結構必須捨棄而配合舊有的結構; 這點我是不認同的。 我認同的是「就成本控制的考量下」, 只解決最低程度的問題(能解決使用者碰的到的問題),這是我認同的。 換做是我在趕deadline一樣是要求到哪裡就做哪裡, 所以我才說原PO找錯戰場做錯事。 ------------------------------------------------------------- 所謂的(軟體)工程是指從事前的問題定義到進一步的問題規劃, 再到找解決問題的團隊(人)、到解決問題, (依照不同工作模式可以有不同的作法) 到軟體完成後,後續的需求維護的處理等。 其中在實作問題的部份應該盡量地將問題拆解出結構、介面分明的子問題, 以個別擊破的方式來進行系統的設計, 並且再試著實際演變的需要來調整、重新設計系統。 ------------------------------------------------------------- 所以「以工程觀點」來看原本的兩個問題: 1.就既有的模組已經很多,所以新的模組都需要遵循舊的模組而言 這一塊最大的問題應該是「你新的模組會不會破壞掉舊的模組」。 首先良好工程的定義,應該是要遵循最大可能性內, 以定義出合作的介面來實做,以達到最大的相容性。 以這個例子而言,table design 跟css design 其實要拿來相比的前提下, 幾乎都是版面最外層的 layout , 不太會有 table 跟 css layout 混用的情形, 就算有混用的情形,其實css box 跟table box 也不會有打架的情形, 所以要說舊的模組因為新的模組而不能用,我覺得可以打個問號。 (當然不排除是小弟才疏學淺沒考慮到所有的情形) 但是也不應修改舊的模組來適應新的模組, 理想的作法應該讓兩者並存,才磨的出彈性。 通常是在於因為環境的改變跟知識的獲得,舊的模組不堪使用, 且舊的模組可以用更有效率的方式組織,這種時候我們才會去重構, 而重構本身是一種加速作業處理的方式。 如果真的要採用工程的狀況, 才更該因為加入了新的元素而把介面定義的更加清楚, 讓這個工程結構更形穩定,css也行、table也行,取得更大的彈性。 至於人員維護,現在學 css的人只會更多不會更少, table 現在僅剩的舞台的只是「區塊式」的編排, 現在舉凡各類樣式設定,只要有搭配到js做互動的應用, 幾乎都是以 css 的應用為主,再者 margin,padding, border,background-position等屬性,css spirit 等設計方法; 還有一些常見如hover等狀態,另外就是position定義位置的彈性, 在在都是需要 css 的大力配合。 (這邊是從目前實務上的需求面來看,不是說原po的公司。) 2.再來需要討論的是 table design / css design的效率跟必要性。 如果今天這個介面完全不需要修改的前提下,table 約等於 css , 只要一有介面修改得情形,css 絕對樂勝 table design。 (先假設以原po的條件已經能夠掌握 css , 不會有o版友碰到的那個狀況。XD) 再來是技術因素, dom 物件量的數量(影響到頁面執行時間)、 程式碼的乾淨程度跟資料量(影響到載入速度跟review的速度), 因為以上的影響,所以連 js 的效果都變得好寫不少。:3 (寫js一直在爬好幾層的td是很可怕的事情。) 這一塊是只要是有在這一個小圈子打滾的人,都會認同的壓倒性勝利, 不過很可惜不在這個圈子的人就完全感受不到。 ------------------------------------------------------------- 我是認為就工程的觀點而言,納舊入新才是更能穩固地基的作法, 難道哪天招不到用 table 設計的人公司就要倒了嗎? XD 這樣就是所謂「工程」的精神嗎?:) ------------------------------------------------------------- 我再次強調,這整篇文章都只是在陳述「(軟體)工程」之於專案, 應該是一種開放改革的態度,而不是封閉守舊的藉口。 原po 的問題不應該以工程角色來扣帽子。 --  ▄▅▆▇███▇▆▅▄▃        ╰┼╯─╮ ╮         ◥███████████◣       ╰┼╯=│=│         ◥██████───────    *. ╯  ╯ ╯ の 物 語 .*  ◥███████──────◣ ~ ◢◣             ◢◣  ◥██████───────◤   ◥◤  空白的世界.翼 ◥◤  ◥██▁▂▃▄▅▆▇███▆▅▄▃▂▂telnet://tony1223.twbbs.org -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.136.233.146 ※ 編輯: TonyQ 來自: 114.136.233.146 (03/29 13:59)

03/29 15:59, , 1F
感謝分享^^
03/29 15:59, 1F

03/29 16:01, , 2F
另外,補充一下,個人並不認為"新的結構必須捨棄而配合舊有的
03/29 16:01, 2F

03/29 16:01, , 3F
結構", 我的態度應是您所述"在成本考量下"應採取不同的作法.
03/29 16:01, 3F

03/29 16:02, , 4F
只是在連續的推文下,以及原來的資訊中,表達的不好, 還請見諒
03/29 16:02, 4F

03/29 20:15, , 5F
這裡有一點想問一下, 為什麼有getElementsByName()和
03/29 20:15, 5F

03/29 20:16, , 6F
getElementById()的情況下還會需要超過需要的多層loop?
03/29 20:16, 6F

03/29 20:18, , 7F
會出現這情況的話完全是因為建構不夠嚴謹, 和是不是用
03/29 20:18, 7F

03/29 20:19, , 8F
CSS排版無關吧...
03/29 20:19, 8F

03/29 20:21, , 9F
話說我現在的公司還在用NT4的domain, table排版這玩意
03/29 20:21, 9F

03/29 20:22, , 10F
在可見的20年內應該還會有人用吧...
03/29 20:22, 10F

03/29 20:22, , 11F
說到table排版, 有一點是CSS完全沒法做到的. 就是在
03/29 20:22, 11F

03/29 20:23, , 12F
text mode browser內有條理地顯示. 因此一些像web admin
03/29 20:23, 12F

03/29 20:24, , 13F
類的網頁我完全不建議用CSS排版的...
03/29 20:24, 13F

03/29 20:25, , 14F
因為開機速度的關係, 我的Linux伺服器是一向都不裝X的.
03/29 20:25, 14F

03/29 21:41, , 15F
就算是這樣,有多層table造成dom過多讓js有關內容操作起來
03/29 21:41, 15F

03/29 21:51, , 16F
很肥很難操作是不爭的事實。(特別是dnd類的操作特別明顯
03/29 21:51, 16F

03/29 21:52, , 17F
另外就是在動態增刪資料時,需要去塞一些dirty code是很繁瑣
03/29 21:52, 17F

03/29 21:53, , 18F
的。至於text mode browser......@_@ 這不是我所瞭解的 XD
03/29 21:53, 18F
文章代碼(AID): #1Bi42-_U (Soft_Job)
討論串 (同標題文章)
文章代碼(AID): #1Bi42-_U (Soft_Job)