m*****r 发帖数: 298 | 1 非常老而庞大的一个系统,超过10年,数百万行代码。个人认为有点滥。
目前完全不懂这个系统的数据、控制流。因为本人菜鸟,也不知道怎么下手吃透。
现在首先想知道页面上的东西是怎么存到数据库里面的。
最初是C/S,C是delphi写的。大概2,3年前改成了B/S。
每个页面由近10个文件组成,如图A,dc0007是页面id。
page definition java又含有若干datastore,也是java class。如图b。
每个datastore控制各个element,如宽度,次序,类型等等。大部分东西我都没搞懂。
如图c。
js控制页面的一些action,比如动了某个值,itemChanged就会被调用,调用这个函数
由框架来完成,不是页面。如图d
BO是java,也能控制不少东西,有些跟js是重叠的,比如控制required,往后台传的参
数等,BO和js都能控制。 如图e
service definition定义request和reply参数,结构很简单,reply的参数列表跟
datastore里面的ReplyCols对应。如图f
jsp也是很古老的代码,改成B/S的时候好像不是全新代码。如图g
xml配置各个页面有固定格式。如图h
webcontent下面乱七八糟的东西,如图i
页面跟数据库还有关联,比如图j,k,RT_CARD_STS是表,card_sts_cd,APS_SW等等都
是列名,'Y'是值。
用了tuxedo,debug经常需要看log。 |
t*****n 发帖数: 4908 | 2 小case。等你读过1M fortran的时候,你会乞求上天给你一次重生的机会。
【在 m*****r 的大作中提到】 : 非常老而庞大的一个系统,超过10年,数百万行代码。个人认为有点滥。 : 目前完全不懂这个系统的数据、控制流。因为本人菜鸟,也不知道怎么下手吃透。 : 现在首先想知道页面上的东西是怎么存到数据库里面的。 : 最初是C/S,C是delphi写的。大概2,3年前改成了B/S。 : 每个页面由近10个文件组成,如图A,dc0007是页面id。 : page definition java又含有若干datastore,也是java class。如图b。 : 每个datastore控制各个element,如宽度,次序,类型等等。大部分东西我都没搞懂。 : 如图c。 : js控制页面的一些action,比如动了某个值,itemChanged就会被调用,调用这个函数 : 由框架来完成,不是页面。如图d
|
m*****r 发帖数: 298 | 3
【在 m*****r 的大作中提到】 : 非常老而庞大的一个系统,超过10年,数百万行代码。个人认为有点滥。 : 目前完全不懂这个系统的数据、控制流。因为本人菜鸟,也不知道怎么下手吃透。 : 现在首先想知道页面上的东西是怎么存到数据库里面的。 : 最初是C/S,C是delphi写的。大概2,3年前改成了B/S。 : 每个页面由近10个文件组成,如图A,dc0007是页面id。 : page definition java又含有若干datastore,也是java class。如图b。 : 每个datastore控制各个element,如宽度,次序,类型等等。大部分东西我都没搞懂。 : 如图c。 : js控制页面的一些action,比如动了某个值,itemChanged就会被调用,调用这个函数 : 由框架来完成,不是页面。如图d
|
k**********g 发帖数: 989 | 4 If the IDatastore contain that many methods ( setId__ setSharedDwname__
setColsByColID__ setColValidationTag__ ... ) You can try search for the
class that implements that many methods.
You may need to search for how many such IDatastore implementations exist in
the whole system.
You may also need to find out if these methods are actual method that exist
on the interface, or else they are some kind of dynamic methods.
It seems that someone made a very bloated class, by adding one or more
methods for each piece of that needs to be stored.
See Jeff Atwood on this issue. http://www.codinghorror.com/blog/2009/02/the-ferengi-programmer.html
Also, a number of IDatastore methods seem to be related to columns - a fixed
number of them. I can say this because I notice most of the string splits
have exactly seven separators. This may mean 6, 7 or 8 columns, depending on
how string.split is defined in your programming language.
You can mentally group these column-related variables as if they are Arrays
of Structures (AoS) by converting it from the existing Structures of Array (
SoA). This is a technique for helping one understand how the code is
structured.
Make a list of these column-related variables. |
g*****g 发帖数: 34805 | 5 web应用其实相对容易debug,一个request从前到后通常不会跨过5个类,耦合度低。
【在 m*****r 的大作中提到】 : 非常老而庞大的一个系统,超过10年,数百万行代码。个人认为有点滥。 : 目前完全不懂这个系统的数据、控制流。因为本人菜鸟,也不知道怎么下手吃透。 : 现在首先想知道页面上的东西是怎么存到数据库里面的。 : 最初是C/S,C是delphi写的。大概2,3年前改成了B/S。 : 每个页面由近10个文件组成,如图A,dc0007是页面id。 : page definition java又含有若干datastore,也是java class。如图b。 : 每个datastore控制各个element,如宽度,次序,类型等等。大部分东西我都没搞懂。 : 如图c。 : js控制页面的一些action,比如动了某个值,itemChanged就会被调用,调用这个函数 : 由框架来完成,不是页面。如图d
|
C**********r 发帖数: 8189 | 6
曾经有个需要把fortran转成C++的工作把我给拒了。感谢上天。
【在 t*****n 的大作中提到】 : 小case。等你读过1M fortran的时候,你会乞求上天给你一次重生的机会。
|
c******n 发帖数: 16666 | 7 我正在做这个。。痛不欲生
【在 C**********r 的大作中提到】 : : 曾经有个需要把fortran转成C++的工作把我给拒了。感谢上天。
|
l******t 发帖数: 55733 | 8
不属实。你这应用太简单了。
【在 g*****g 的大作中提到】 : web应用其实相对容易debug,一个request从前到后通常不会跨过5个类,耦合度低。
|
m*******l 发帖数: 12782 | 9 fortran比较简单吧?特别是77, 90,95 以后的比较麻烦
当然77前的F也比较麻烦
话说F有很多前瞻性的特性, 例如语句函数,entry啥的就是现在的函数式语言的什么
lambda, closure之类的前身啊
【在 c******n 的大作中提到】 : 我正在做这个。。痛不欲生
|
m*******l 发帖数: 12782 | 10 当然好虫说你这个是系统没有设计好...
【在 l******t 的大作中提到】 : : 不属实。你这应用太简单了。
|
|
|
y****i 发帖数: 12114 | |
t*****n 发帖数: 4908 | 12 你需要读懂legacy code,同时还要具备OO架构分析能力和C++编程能力,并具备专业知
识,才能把这件事情做好。100K的工资都算少的。
【在 C**********r 的大作中提到】 : : 曾经有个需要把fortran转成C++的工作把我给拒了。感谢上天。
|
t*****n 发帖数: 4908 | 13 未来的大牛,涅磐重生。
【在 c******n 的大作中提到】 : 我正在做这个。。痛不欲生
|
k**********g 发帖数: 989 | 14
悄问∶LZ好像没說過C++哦?
C/S probably means client-server architecture? not C++?
【在 t*****n 的大作中提到】 : 你需要读懂legacy code,同时还要具备OO架构分析能力和C++编程能力,并具备专业知 : 识,才能把这件事情做好。100K的工资都算少的。
|
t*****n 发帖数: 4908 | 15 看6楼
【在 k**********g 的大作中提到】 : : 悄问∶LZ好像没說過C++哦? : C/S probably means client-server architecture? not C++?
|
c*******n 发帖数: 442 | 16 Delphi…… 好怀念啊……
Borland的商业策略太失败,硬是把Pascal搞死了……
不过话说Basic和Pascal两大金字招牌派生出的VB和Delphi好像都混的不咋地……
【在 m*****r 的大作中提到】 : 非常老而庞大的一个系统,超过10年,数百万行代码。个人认为有点滥。 : 目前完全不懂这个系统的数据、控制流。因为本人菜鸟,也不知道怎么下手吃透。 : 现在首先想知道页面上的东西是怎么存到数据库里面的。 : 最初是C/S,C是delphi写的。大概2,3年前改成了B/S。 : 每个页面由近10个文件组成,如图A,dc0007是页面id。 : page definition java又含有若干datastore,也是java class。如图b。 : 每个datastore控制各个element,如宽度,次序,类型等等。大部分东西我都没搞懂。 : 如图c。 : js控制页面的一些action,比如动了某个值,itemChanged就会被调用,调用这个函数 : 由框架来完成,不是页面。如图d
|
t**********s 发帖数: 2832 | 17
哈哈。
【在 t*****n 的大作中提到】 : 小case。等你读过1M fortran的时候,你会乞求上天给你一次重生的机会。
|
t**********s 发帖数: 2832 | 18
delphi,曾经的最爱呀。。。
【在 m*****r 的大作中提到】 : 非常老而庞大的一个系统,超过10年,数百万行代码。个人认为有点滥。 : 目前完全不懂这个系统的数据、控制流。因为本人菜鸟,也不知道怎么下手吃透。 : 现在首先想知道页面上的东西是怎么存到数据库里面的。 : 最初是C/S,C是delphi写的。大概2,3年前改成了B/S。 : 每个页面由近10个文件组成,如图A,dc0007是页面id。 : page definition java又含有若干datastore,也是java class。如图b。 : 每个datastore控制各个element,如宽度,次序,类型等等。大部分东西我都没搞懂。 : 如图c。 : js控制页面的一些action,比如动了某个值,itemChanged就会被调用,调用这个函数 : 由框架来完成,不是页面。如图d
|
b**********n 发帖数: 27 | 19 提醒楼主一点:公司的东西不要随便往网上放,很危险,截屏也不行。
也许现在没人管,但是一旦有人要整你,这是现成的铁证据。
从道理上讲可以争辩这不构成泄密,但是职场根本不讲道理,只讲章程。 |
j********p 发帖数: 9680 | 20 这个系统是够乱的.
不过正是因为乱,大家都有事情做了.
所以杂乱无章并不一定是坏事. |
|
|
j********p 发帖数: 9680 | 21 楼上提醒的对,公司的文档,代码不要随便往网上放.
要是碰见你们公司跟你不对付的,
那你就危险了.
好在都是国人,不太在乎这个. |
m*****r 发帖数: 298 | 22 IDatastore 里面那一堆set管的是页面form,比如setColsCount(8)就是有8个
element,其中第一个叫individual name,宽度是10,数据长度是50,非required。
这些东西都是控制页面的,并非数据本身。只有setFetchService, setUpdateService
跟数据读写有关。
你提到的其它东西我觉得太高级了,我看不太懂,也不觉得这个系统会用上。
多谢你的指点了。
我最想知道的就是我页面上的文字,菜单选项是怎么存到数据库里面的。
in
exist
【在 k**********g 的大作中提到】 : If the IDatastore contain that many methods ( setId__ setSharedDwname__ : setColsByColID__ setColValidationTag__ ... ) You can try search for the : class that implements that many methods. : You may need to search for how many such IDatastore implementations exist in : the whole system. : You may also need to find out if these methods are actual method that exist : on the interface, or else they are some kind of dynamic methods. : It seems that someone made a very bloated class, by adding one or more : methods for each piece of that needs to be stored. : See Jeff Atwood on this issue. http://www.codinghorror.com/blog/2009/02/the-ferengi-programmer.html
|
m*****r 发帖数: 298 | 23 谢谢你善意的提醒了,我现在马上就走人了,但东西没有搞懂有一点点不甘心。
稍微冒点风险寻求一下帮助吧,自己实在玩不转。
所以请大家多多帮忙啊。
【在 b**********n 的大作中提到】 : 提醒楼主一点:公司的东西不要随便往网上放,很危险,截屏也不行。 : 也许现在没人管,但是一旦有人要整你,这是现成的铁证据。 : 从道理上讲可以争辩这不构成泄密,但是职场根本不讲道理,只讲章程。
|
m*****r 发帖数: 298 | 24 确实够乱,表名列名都能出现在js,java中。
也因此提供了更多职位。。。。但是学不到什么东西。
【在 j********p 的大作中提到】 : 这个系统是够乱的. : 不过正是因为乱,大家都有事情做了. : 所以杂乱无章并不一定是坏事.
|
g******n 发帖数: 253 | 25 +1
【在 y****i 的大作中提到】 : 难道一点文档都没有?
|
m*****r 发帖数: 298 | 26 有文档是面向用户或者ba,qa的,程序员看的没有。
早期的代码还稍微规矩点,有日期开发者姓名模块功能啥的,大概都是10年前的。。。。
现在完全不要求注释,把测试代码过时代码注释掉能运行即可。
有些文件里面注释掉的旧代码比非注释还多。
【在 g******n 的大作中提到】 : +1
|
m*****r 发帖数: 298 | |