顯示廣告
隱藏 ✕
※ 本文為 terievv 轉寄自 ptt.cc 更新時間: 2018-03-04 20:12:27
看板 Soft_Job
作者 a88241050 (再回頭已是百殘身)
標題 [請益] 請問要怎麼改老舊的程式碼?
時間 Sat Mar  3 16:00:38 2018


最近在做一個銀行的專案

要把上百個10幾年前的C++程式改用java寫

但看了很久還是不知道該怎麼下手

程式碼上百行甚至上千行都有

而且裡面會用到很多struct或class變數

某些struct又包含了10幾個struct

而這些變數都是定義在其他的標頭檔裡

然後每個標頭檔除了struct和class之外

還包含一堆#ifdef,#else,#endif

簡直看得眼花撩亂

真的不知道為什麼可以寫得那麼複雜...

因為我對C++不是很熟

所以不知道裡面的很多寫法改成java應該怎麼做

有人能建議我應該怎麼下手嗎?

3Q

https://i.imgur.com/3gwV0fm.jpg
[圖]
 
https://i.imgur.com/Q5QxcBE.jpg
[圖]
 
https://i.imgur.com/TRGPuf3.jpg
[圖]
 


--
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.224.185.165
※ 文章代碼(AID): #1QcbOfg4 (Soft_Job)
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1520064041.A.A84.html
diabloevagto: 寫測試1F 03/03 16:02
remmurds: 如果原始需求是啥都沒人知道是要怎麼寫測試2F 03/03 16:14
dreamnook: 資料流 邏輯流 或是純粹找前輩問商業邏輯整個重構3F 03/03 16:18
s89162504: 八掛是真的有人在用dev c++4F 03/03 16:19
我只是為了看code而已,用dev-c++就夠用啦
dreamnook: 大概是學生(大誤5F 03/03 16:20
sojoasd: 如果知道100%原來邏輯,再從這些邏輯先寫單元測試,再依6F 03/03 16:36
sojoasd: 照頁面上的操作取得需要的函式組成Controller........如
sojoasd: 果原來邏輯不清楚,需要用原程式去猜測的話,你還是塊陶
sojoasd: 吧
abccbaandy: 能知道原始邏輯原PO大概也不會上來問吧XD10F 03/03 17:10
erspicu: 不用重寫了拉...看功能用途整個重新設計比較快....11F 03/03 17:13
erspicu: 風格差異太大 語法改寫很僵硬 乾卻重新規畫好
testPtt: 要用IDE看阿 macro沒作用的比較好辨識13F 03/03 17:19
blueminor: 之前我們公司做過類似的,但是是把VB換java。工程非常14F 03/03 17:20
blueminor: 浩大
ab18282099: 乾脆重頭開發16F 03/03 17:30
pttworld: 先想辦法生個source insight,目前這樣太痛苦17F 03/03 17:35
noenemy: 先問主管有多少時間,如果只有一個月,只能重新設計18F 03/03 18:16
ChungLi5566: 通常都談提升案重寫吧 舊程式一堆bug修修補補19F 03/03 19:18
ChungLi5566: 看不懂正常的
kckckckc: 跟業主說我看這個架構根本太糟了 我幫你新寫一個 不多收21F 03/03 22:06
MBRSL: Working Effectively with Legacy Code22F 03/04 00:11
alog: 做這個僅能重新設計,但是最慘的是分析規則、流程你大概會23F 03/04 04:50
alog: 瘋掉而且公司可以給你做前置作業的時間應該不會太長,更可
alog: 怕的是裡面應該會是那種將錯就錯結果卻對了,以及新系統上線
alog: 舊系統的資料轉移處理跟測試
alog: 時間可能比預期的久或是有客戶的客戶反應有資料錯,用戶多這
alog: 個部分的處理成本就會相當可怕
alog: 看到這個,僅能祝你跟公司好運 (笑
MNPGG: 推用source insight30F 03/04 07:18
oneheat: 學android 外面包一層jni 就不會改到原本的了31F 03/04 09:58
becca945: 10年後沒什麼人用的dev c++   ˊ_ˋ32F 03/04 11:15
vi000246: 外面再包一層把醜程式碼藏起來 至於重構嘛....33F 03/04 11:44
vi000246: 只好交給下一位同事了
※ 編輯: a88241050 (36.224.168.181), 03/04/2018 12:41:04
alex0914: 雖然看起來只有引入部分,但公布程式碼不太好吧35F 03/04 17:22
cobrasgo: 你有問過要改成java的原因嗎?說不定根本不用動原本的c36F 03/04 19:36
cobrasgo: ode,用java寫個wrapper呼叫就可以了

--
※ 看板: terievv 文章推薦值: 0 目前人氣: 0 累積人氣: 574 
分享網址: 複製 已複製
r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇