[請益] 請問要怎麼改老舊的程式碼?

作者: a88241050 (再回頭已是百殘身)   2018-03-03 16:00:38
最近在做一個銀行的專案
要把上百個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
作者: diabloevagto (wi)   2018-03-03 16:02:00
寫測試
作者: remmurds (Stronghold)   2018-03-03 16:14:00
如果原始需求是啥都沒人知道是要怎麼寫測試
作者: dreamnook (亞龍)   2018-03-03 16:18:00
資料流 邏輯流 或是純粹找前輩問商業邏輯整個重構
作者: s89162504 (阿本)   2018-03-03 16:19:00
八掛是真的有人在用dev c++
作者: dreamnook (亞龍)   2018-03-03 16:20:00
大概是學生(大誤
作者: sojoasd (sojo)   2018-03-03 16:36:00
如果知道100%原來邏輯,再從這些邏輯先寫單元測試,再依照頁面上的操作取得需要的函式組成Controller........如果原來邏輯不清楚,需要用原程式去猜測的話,你還是塊陶吧
作者: abccbaandy (敏)   2018-03-03 17:10:00
能知道原始邏輯原PO大概也不會上來問吧XD
作者: erspicu (.)   2018-03-03 17:13:00
不用重寫了拉...看功能用途整個重新設計比較快....風格差異太大 語法改寫很僵硬 乾卻重新規畫好
作者: testPtt (測試)   2018-03-03 17:19:00
要用IDE看阿 macro沒作用的比較好辨識
作者: blueminor (QQ)   2018-03-03 17:20:00
之前我們公司做過類似的,但是是把VB換java。工程非常浩大
作者: ab18282099 (poppopjack)   2018-03-03 17:30:00
乾脆重頭開發
作者: pttworld (批踢踢世界)   2018-03-03 17:35:00
先想辦法生個source insight,目前這樣太痛苦
作者: noenemy (要寫程式找我^^)   2018-03-03 18:16:00
先問主管有多少時間,如果只有一個月,只能重新設計
作者: ChungLi5566 (中壢56哥)   2018-03-03 19:18:00
通常都談提升案重寫吧 舊程式一堆bug修修補補看不懂正常的
作者: kckckckc (KC)   2018-03-03 22:06:00
跟業主說我看這個架構根本太糟了 我幫你新寫一個 不多收
作者: MBRSL (MBRSL)   2018-03-04 00:11:00
Working Effectively with Legacy Code
作者: alog (A肉哥)   2018-03-04 04:50:00
做這個僅能重新設計,但是最慘的是分析規則、流程你大概會瘋掉而且公司可以給你做前置作業的時間應該不會太長,更可怕的是裡面應該會是那種將錯就錯結果卻對了,以及新系統上線舊系統的資料轉移處理跟測試時間可能比預期的久或是有客戶的客戶反應有資料錯,用戶多這個部分的處理成本就會相當可怕看到這個,僅能祝你跟公司好運 (笑
作者: MNPGG (SMI)   2018-03-04 07:18:00
推用source insight
作者: oneheat (等待)   2018-03-04 09:58:00
學android 外面包一層jni 就不會改到原本的了
作者: becca945 (頻果芽子)   2018-03-04 11:15:00
10年後沒什麼人用的dev c++ ˊ_ˋ
作者: vi000246 (Vi)   2018-03-04 11:44:00
外面再包一層把醜程式碼藏起來 至於重構嘛....只好交給下一位同事了
作者: alex0914 (Life is short)   2018-03-04 17:22:00
雖然看起來只有引入部分,但公布程式碼不太好吧
作者: cobrasgo (人魚線變成鮪魚線,超帥)   2018-03-04 19:36:00
你有問過要改成java的原因嗎?說不定根本不用動原本的code,用java寫個wrapper呼叫就可以了
作者: newversion (海納百川)   2018-03-07 18:10:00
砍掉重練
作者: wesley234 (掃地)   2018-03-09 20:09:00
先C++ 後 JAVA, 人間慘劇

Links booklink

Contact Us: admin [ a t ] ucptt.com