代码分析总结

2021SC@SDUSC
本次项目的代码分析基本结束,在这次项目代码的分析中,我确确实实的学到了很多知识:

个人学习总结

一、优秀的编程思想

我再前面的有关分析中也说到过,实践出真知,在课本中学的再好,也中就遇不到那些经典的问题,有些东西课本上不会去、也没有办法去教给我们,只有在实践中才能感觉到实际的做法,这些是讲授大的思想的时候贯彻不到的地方。

二、框架与模型思维

在这个项目中,这个项目本身就是一个巨大的模型化,框架化的东西,我再分析的过程中也是一点一点的咀嚼出了它的巨大味道,面向对象的很多思想,比如接口、封装、继承、还有很多编程原则比如单一职责原则、重用原则、接口隔离原则、里式替换法则、迪米特法则等都在项目里面得到了深刻的体现,我们在学习这些原则的时候感觉是很容易,可是在实际的开发中用这些原则去处理问题的能力却大大的缺失,这也许也是我们开设实践课的原因,分析整个项目,仔细回味,其实这就是无形中的开发经验,这是单靠理论学习难以创造的,我们必须去上手实际的操作,熟能生巧,在实际的开发或者分析中掌握这种思维。

三、团队的交流学习过程

在刚开始分析的时候,我觉得一个人进行自己的分析就行,不用去管组员的分析,也不要去向他们求助,可是后来我就改变了,在这种实际项目的分析中与组员进行交流是获取正确的知识,增加理解的最快方法,在小组的分析中,每个人都有各自的分工,可这个项目是一个整体,其中的部分功能怎么也不可能完全去耦合,这在面向对象中是不可能做到的,所以这就难免要去分析上下文,去进行组员功能间的相互验证,如果我们一个人去进行,那么就难免既费力又不省心,所以这时候与组员进行交流才是王道,而且在相互交流的过程中也可以帮助加深我们对项目的理解,更重要的是起到了佐证的作用,相互印证,才学的更快。


然后就是整个项目的总结:

围绕项目的总体实现,也就是流程:

一、已经过json校验和传输校验

{
    "[]": {//返回一个array
        "page": 1,//array条件,页码
        "count": 5,//array条件,返回数量,用pageSize必须和pageNum一起用,这个就不需要。
        "sortDirection": "increase",
        "sortOrder": "/user/id",
        "user": {//返回一个object
            "range": 1,//object条件
            "sex": 0
        },
        "work": {
            "userId": “/user/id”//缺省路径,自动补全,只在同级可用。    // "user.id"
        },
        "comment[]": {/返回一个array,名为comment。[comment]??
            "page": 0,
            "count": 3,
            "comment": {//Map<[]/comment[]/comment/workId, []/work/id>
                 "workId":[]/work/id”//全路径           //“work.id”
             }
        },
    }
}



解析:
1.每解析一个object前赋值path = parentPath + objectName;
2.判断是否含转义路径:如果没有就直接获取,放到一个resultObject内并移除requestObject内对应key-value;如果有就添加到一个Map<key, path> relationMap
3.最后把resultObject的内容根据relationMap用key对应的值 替换requestObject里的
path。
4.根据requestObject再获取一次。


返回数据:

 {
    "[]":[
        {
            "comment[]":[//改为这种?{"array":[], "page": 1, "hasMore": true,//服务器还有更多数据(1)}
                {
                    "comment":{
                        "content":"This is a Content...-68",
                        "id":68,
                        "parentId":448,
                        "targetUserId":959,
                        "targetUserName":"targetUserName-959",
                        "userId":2314,
                        "userName":"userName-92565",
                        "workId":371
                    }
                },
                {
                    "comment":{
                        "content":"This is a Content...-13",
                        "id":13,
                        "parentId":790,
                        "targetUserId":7162,
                        "targetUserName":"targetUserName-7162",
                        "userId":34,
                        "userName":"userName-5526",
                        "workId":371
                    }
                },
                {
                    "comment":{
                        "content":"This is a Content...-3",
                        "id":3,
                        "parentId":725,
                        "targetUserId":59960,
                        "targetUserName":"targetUserName-59960",
                        "userId":82002,
                        "userName":"userName-85560",
                        "workId":371
                    }
                },
                null//最后一个为null表示没有更多了,否则就是服务器还有更多数据(2)
            ],
            "user":{
                "head":"http://www.tooopen.com/view/82002.html",
                "id":82002,
                "name":"Name-82002",
                "phone":"1300082002"
            },
            "work":{
                "content":"This is a Content...-371",
                "id":371,
                "picture":"http://www.tooopen.com/view/371.html",
                "title":"Title-371",
                "userId":82002
            }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值