iT邦幫忙

1

[ASP] 系統架構是否建議修改?

各位前輩好,IT邦真的是幫了我許多忙,由衷感謝各位前輩的教學。由於小弟真的很弱,所以只好一直麻煩各位前輩,真是抱歉!

我們公司內部系統有許多不同模組(以下只取其2),模組內各有func及include資料夾,如下:

報價系統

func\func.asp  <!-- #include file="..\include\connSql05.asp" -->
include\connSql05.asp
include\connExcel.asp
left.asp 左邊功能選單,<!-- #include file="..\func\func.asp" -->
p1.asp  <!-- #include file="left.asp" -->

獎金計算

func\func.asp <!-- #include file="..\include\connSql05.asp" -->
include\connSql05.asp
include\connExcel.asp
left.asp 左邊功能選單,<!-- #include file="..\func\func.asp" -->
s1.asp  <!-- #include file="left.asp" -->

由此可以看出有相同的connSql05.asp會存放在不同資料夾,因此若是更改資料庫密碼,或者更改資料庫ip位址,我要修改的數目其實也不少。再來func.asp及也是散佈在不同模組內,雖然不同模組會有不同function,但是重複性的function也蠻多的。

因此,是否建議我修改系統架構呢?將不同模組的網頁程式,設定讀取同樣路徑的func.asp及connSql05.asp,然後比較有獨特性的function在看看要不要放在自己的模組內?

請各位前輩給予建議,感激不盡!

後續:

斟酌各位前輩的意見後,我決定採用「逐步」修改的方式進行,
因近期也有小系統需要開發,將使用新的系統架構進行。

然而,有其他前輩建議用ASP.NET開發新架構,由於我傳統ASP還算有個底子,.NET則是完全不會
為了能夠如期達成系統開發需求,將來有時間再來研究如何轉換成.NET吧!

哈~ 感謝各位前輩的建議!!
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
2
glj8989332
iT邦研究生 4 級 ‧ 2020-07-28 14:53:06
最佳解答

假設你被允許做這件事情的話, 建議是可以改善現有的程式碼.

遵從DRY原則,重複的程式碼可以抽成同一支程式一起共用,比如你各模組的func.asp有大多數重複的功能, 就把這裡面的函數都放在共通的common_func.asp, 剩下的func.asp是各模組特定的功能.

但早期asp這種程式碼, 幾乎不會有測試專案...所以如果要改, 建議要想好如何測試, 否則[動一髮而牽全身]的連鎖效應是很恐怖~

另外原PO也能遵從SOLID原則, 未來依著這原則寫程式碼, 會有很大的改善, 包含維護、可讀等~

看更多先前的回應...收起先前的回應...
b7307024 iT邦新手 3 級 ‧ 2020-07-28 15:29:53 檢舉

話說我還沒有報告上級主管這件事,但上級主管對程式也不懂,哈! 會有修改系統架構的念頭,主要是因為有新的小系統(問卷調查之類的)需要開發,在設計系統架構時就想到這個問題。

common_func.asp及func.asp感覺是個好建議,這樣我就比較有個明確的方向可以進行了。

測試專案?? 不是很懂你的意思! 由於各模組的func.asp及connSql05.asp都是分開的,所以One by One去修改,依我目前改了一個模組來說,還算順利。

舊版ASP也可以做到SOLID原則嗎? 可以請您教學嗎?

感謝glj8989332大的回覆!!

glj8989332 iT邦研究生 4 級 ‧ 2020-07-28 16:06:01 檢舉

主管不懂程式有好有壞XD....如果他放心讓你改程式就好.

測試專案是指單元測試、整合測試, 針對功能/流程的測試, 但這一項也要花不少工夫.

只要是有物件導向的程式語言, 都能應用SOLID原則. IT邦很多前人有作相關的文章, 可以多看看~ ((我的BLOG也有寫, 歡迎參觀, 我的簡介有BLOG連結))

前面浩瀚大大也提出最快的建議: 重新開專案 XD, 但有新技術的學習曲線, ASP.NET MVC 或 .NET Core觀念跟以前ASP差很多. 二來要把所有舊系統的流程都搞懂, 否則新系統東漏西漏功能~

b7307024 iT邦新手 3 級 ‧ 2020-07-28 19:57:44 檢舉

話說普遍的前輩們都建議不要修改系統架構耶~ 我該如何是好呢!
/images/emoticon/emoticon02.gif

如我在1樓的回覆,我們內部系統規模不大,但實際算下來也約有35~40個不同的小系統組合而成,目前的想法是新開發的小系統可在不影響其他模組運作的情況下,套用新系統架構,這樣不知道是否可行?

glj8989332 iT邦研究生 4 級 ‧ 2020-07-28 22:17:57 檢舉

想讓公司看見你的付出, 可以先在閒餘時間用新技術做新系統, 舊的功能如前面講的, 可以慢慢優化.
等到公司有想轉變, 可以把新系統的架構DEMO給他們看, 說明好處跟舊的差異在哪, 能賞識你的主管就會懂得這價值~

有顆熱忱的心但這間公司的文化無法採納, 那只好山不轉路轉, 再找一間有相同理想的公司吧~

2

這已經非常老舊的應用寫法了。
基本上來說。我已經不建議你再直接更改它了。

可以的話,重新創立一個新專案還會比較好。

重點在於,你們修改它的目的。
一般太過老舊的架構。大多數來說已經沒有什麼變動空間了。
硬要改也很多地方要打掉重建。
倒不如直接重建一個新的架構還比較快。

免得改完還得要測bug。

看更多先前的回應...收起先前的回應...
b7307024 iT邦新手 3 級 ‧ 2020-07-28 15:07:54 檢舉

浩瀚星空大,感謝您的快速回覆,感激不盡!

前同事是有建議我用ASP.NET + C#來改寫,只是除了語法我不熟以外,要改的幅度就不是只有動func.asp及connSql05.asp這兩隻程式了,連模組本身的數支程式也需要一併改寫,這個工程對目前只有我一個人寫程式來說,有點浩大!

所以一般想要改舊專案,如果是小修改還無所謂。
但如果要變動架構就真的不太建議。
有時候除錯的時間會比你開發的時間還要長。且也不一定可以達到目的。

當然,如果你的能力有限。就更不要說想要去改變架構。
你會改到不要不要的。

總之,一般企業的東西,其目的一定是希望依改變效能為主。
如果沒辦法照你的前同事說改用c#來寫的話。
我會建議你不要動。最多小修正就好。

WQ iT邦新手 2 級 ‧ 2020-07-28 15:55:22 檢舉

ASP已過於老舊,當然不知道您提的系統規模有多大,這些都是風險評估的重點。
建議可以設定短中長期目標,短期就先以維護為主,中長期還是建議您寫一套新的,順便學習練功,且增加您的必要性。

b7307024 iT邦新手 3 級 ‧ 2020-07-28 19:55:23 檢舉

我們內部系統規模感覺不大,但實際算下來也約有35~40個不同的小系統組合而成,目前的想法是新開發的小系統可在不影響其他模組運作的情況下,套用新系統架構,這樣不知道是否可行?

其實我們只是建議。要怎麼做還是你自已決定。
我們沒辦法跟你說是否可行。

1
dscwferp
iT邦高手 1 級 ‧ 2020-07-28 23:41:57
  1. 不同模組,模組內各有func及include資料夾,重複性的function也蠻多的<-是為了讓模組好搬移!
  2. 更改資料庫ip位址 <- 現在 "搜索/拷貝/貼上" 的TOOLS 很多, 更改很簡單

如果您有時間有毅力
建議您除了架構更改外 還要改成asp.net 來寫
這樣既改善架構 也讓自己也改善(升級為asp.net)
如果沒有時間沒有毅力
那就不要改

我要發表回答

立即登入回答