求教:设计一款游戏系统架构设计文档

Pages: 1/2
主题 : 求教,如何搭建一个好的项目架构?
级别: 侠客
可可豆: 203 CB
威望: 203 点
在线时间: 979(时)
发自: Web Page
来源于&&分类
求教,如何搭建一个好的项目架构?&&&
各位大神好,最近主管给小弟一个大任务:把公司在iphone上app重写一遍应用到ipad上面去,现在在做准备工作,请教一下大家搭建架构的时候有哪些问题是应该注意的或者考虑到的?小弟不胜感激。1.背景:公司的项目已经写了5年多了,代码比较老旧,里面用到的第三方框架都在用12年之前的,不敢更新,留下了很多技术债务。直接推倒重写时间人力成本比较大,整个项目文件夹大小2GB多一点,里面东西特别多。现在写代码的时候,我都要先把之前写的代码看一遍,避免增加新功能的时候破坏了原来的功能,也挺尴尬的。主管这次叫我写的ipad版本,不要求实现原有app的全部功能,并且之前有一个ipad版本,只是很久没更新了,让我按照那个,重新搭建架构,自由发挥,所以来这请教大家,希望能获得一点宝贵的意见,搭建一个好的架构,为以后提供更大的方便。2.自己的一些想法:(1)采用MVVM模式来写这个项目。(2)封装各种东西。例如,封装网络请求,方便以后进行网络请求;新建基类,防止重写很多代码,而且公司app需要统一UI风格;定义各种需要用到的宏,比如颜色分类,导航栏标题颜色,导航栏左右边按钮的颜色,把以后可能会重用的颜色定义一下;建立工具类,方便处理各种小问题。3.问题:除了这些比较基本的问题,各位大神能教我其他应该考虑到的问题吗?小弟在此先感谢每一位提供帮助的大神,希望大家工作顺利,身体健康!
级别: 侠客
UID: 426400
可可豆: 980 CB
威望: 781 点
在线时间: 643(时)
发自: Web Page
级别: 新手上路
可可豆: 24 CB
威望: 24 点
在线时间: 356(时)
发自: Web Page
路过,坐等大神
级别: 侠客
可可豆: 203 CB
威望: 203 点
在线时间: 979(时)
发自: Web Page
回 1楼() 的帖子
谢谢,等待大神出现给我一点宝贵的意见。
级别: 侠客
可可豆: 203 CB
威望: 203 点
在线时间: 979(时)
发自: Web Page
回 2楼(jiemuyu) 的帖子
觉得前期架构比较重要,所以想向大家请教一下。
级别: 侠客
可可豆: 229 CB
威望: 161 点
在线时间: 143(时)
发自: Web Page
话说5年前的代码都不更新?都说要你自由发挥了,个人建议推到重做,只要老板给的时间足够多毕竟有现成的业务逻辑可以照抄(参考之前的版本或者iPhone版本,把感觉麻烦的东西砍掉,反正不要求完整的功能),做起来还是快的。另外这个app也不是做一次就完事的吧?估计要你一直维护代码,更新版本,自己重做的话,以后更新时的障碍就会少很多。
级别: 侠客
可可豆: 203 CB
威望: 203 点
在线时间: 979(时)
发自: Web Page
回 5楼(kantice) 的帖子
谢谢回答。不更新的原因是,怕更新了接口更改了其他用到的地方也需要动,而且有些第三方内部是做过修改满足自己的需求的。我现在就是要推到重做,所以问问大神们搭架构的时候应该注意哪些问题,时间1个半月吧。业务逻辑是可以照抄的,但是UI部分也挺麻烦的,因为界面比较多,以前是用xib和代码混编的,这次我自己做打算用纯代码。另外很多东西我以前都没接触过,我们是做直播软件的,xmpp,webSocket,rtmp什么的我都得先看一看怎么用的,另外在写的时候还要注意代码的复用性,考虑的东西也不少,所以感觉还是比较耗时间的,而且我只是刚毕业的菜鸟,不是那种经验比较丰富的开发者,做起来会吃力一点。肯定不是一次就完事的,所以想前期搭建一个扩展性比较好的架构,为后期打好基础,另外个人猜测,只要这个做的好,很有可能是会移植到iphone版本上去,取代之前的老代码,不过这个是以后的事,毕竟老代码已经5年了。
级别: 骑士
UID: 491724
可可豆: 1030 CB
威望: 722 点
在线时间: 938(时)
发自: Web Page
&&&&这博客谈到有点构架,你可以看看,虽然我也似懂非懂...
级别: 圣骑士
可可豆: 3229 CB
威望: 3289 点
在线时间: 1142(时)
发自: Web Page
我想木有大神回答你是因为架构这个坑太大了吧。。。而且在很大程度上,是个仁者见仁 智者见智的东西。 尤其是如果第一次进坑,会发现越挖越深,不能自拔。。。我来抛砖引玉吧楼主提到的很多东西,其实应该算是代码风格,初期关注更多的,比如程序的可扩展性,如果划分模块,业务,模块和业务之间的衔接模式,这听起来好像是远远的看不清楚,不着边际,确实是这样,这些东西都是因项目类型,团队大小和能力,维护周期和成本而异的。现在大家都很关注代码的低耦合,可维护性,可重用性,我想这也是和楼主选择MVVM的原因,我只是想说,MVVM很好,MVC也不一定很差,不要过于看重那些概念,如果楼主是比较有经验的,做过相关的工作(创建过新的项目,和做程序架构,其实还不是一回事),那其实不要考虑太多,上手干吧。。。没有完美的架构,尽力就好。如果楼主刚入坑,并且团队不止一个人,那最好还是大家坐下来商量下,找一个适合所有人的模式。说了这么多,好像都是在纸上谈兵。。。说点具体的,架构,代码风格,库,之类的:1. 没看到楼主提到是用objc还是swift,这又是个万年坑,一笔带过,我是站在objc这边的,两个我都在用,还是喜欢objc,没有为什么,如果还拿不定主意,可以去问zenny君,让他喷一下,你就不迷茫了2. 既然已经选定了MVVM,可以考虑用些扩展库,像ReactiveCocoa,RxSwift之类的,如果从来没接触过,要慎重,看团队的倾向。不用库也是可以MVVM的。3. 低耦合不是没耦合,模块之间要沟通,这里不合,那里肯定也要合。。。有些时候,需要牺牲耦合度,提高模块之间的可控性。 4. 提到代码风格,如果楼主可以做主,建议在项目初期建立自己的代码风格文档,现在有很多现成的成熟文档可以参考,加上自己的经验,这样的项目,即使团队成员有改动,也很便于新成员快速的融入。5. 现在做什么都可以从github上找到现成的库,方便,效率,但是不一定什么都要用别人的。。。建立一个公司自己的库。6. 不用xib不是个很好的选择,我从入行到工作后两三年之内一直坚持纯代码,一个xib都没有,后来还是开始混合用了,这个早起也是个大坑,很多人争论,发展到现在,storyboard很成熟了,我相信没有太多人选择纯代码实现界面了,无论从效率,还是其它方面考虑。7. 其实现在比较规范的项目,前期要考虑到自动测试,这个有很多选择,要看测试人员的偏好。8. 文档很重要,但是独立的项目文档其实用处不大,我个人喜好把所有的用例,解释,直接写在注视里,如果楼主用过appledoc,可以考虑在项目初期建立appledoc的机制。
GIT: https://github.com/Doraemomo/
级别: 侠客
可可豆: 229 CB
威望: 161 点
在线时间: 143(时)
发自: Web Page
回 6楼(study_iOS_YT) 的帖子
既然说到架构问题,我可以稍微给你点建议。。。我先说下我的经历和对App开发架构的认识吧:我很多年前是做J2ME手机应用的(早期的功能机应用平台,黑莓的系统也基于此),后来转战Android,又入了iOS的坑,偶尔也写写后台什么的。我开发过公司和个人的类库,也做了一些开发框架(也称不上是什么架构),不过我对什么MVVM之类的东西可能并不感冒,也很少去关注一些开发模式(可能实际上用到过,但没去想着如何定义它)。为什么要做架构,说穿了就是搭个架子,方便去填空。致于类库呢,也就是方便重复使用。以我个人的经验来说,app开发和后台开发有着很大的不同,因为不会有太多的人同时参与一个app的开发,至少我是没有经历过几十个人一起协作开发一个app,但后台不同,参与的人可能会很多,所以架构的重要性就体现出来了,我感觉主要是为了分工明确,协调工作,还有就是后期维护及扩展性之类的。App开发谈什么架构,我觉得没多大的必要性。。。与其说是架构,我觉得代码的规范化更为重要:比如说然后去命名,如何分模块等等,养成一种编码习惯,就很容易看懂自己以前写的代码。我到目前为止做iOS开发也都是纯代码(OC和C语言,C语言主要用到一些需要考虑性能的类库),也从来不考虑ARC,不是因为Xib或者ARC不好,而是已经养成习惯了,懒得去改了。。。我觉得一个开发者能够轻易地修改自己两年前写的代码,那说明编码风格已经很成熟了。对于你的情况,我有以下建议:1.刚工作的人,最好从一开始就养成良好的编码习惯,比如命名规范、注释等;(有些时候,命名得好,甚至都不需要注释,写注释是为了找起来方便)2.以你现在的状态可能写不出成熟的代码库,更不用考虑架构问题了,个人觉得现在还是以实实在在地实现功能为主,等经验漫漫积累了,以后你能想到的架构和现在能想到的肯定截然不同;3.开发的时候多思考,看看有什么可以复用的模块,可以把它抽象出来,漫漫积累自己的库,但这个事情最好是项目忙完有空的时候去做,因为在急着赶项目的时候去考虑复用模块的通用性会比较仓促,很难考虑全面;4.等积累到一定程度的时候,有空可以重构以下之前写的代码;5.我不认为一种开发模式或者架构能适用所有的项目,重要的是看具体项目和环境了,等你考虑这个问题的时候,最好把公司的业务层面也考虑进去,脱离实际使用环境,而盲目追求通用性的东西,一般也没多大的生命力;总结一下:刚工作没必要花太多精力去考虑发开模式架构之类的东西,这些东西只有在技术面和知识面积累到一定程度的时候才有必要去思考,先想着如何高效地把任务完成吧。。。
Pages: 1/2
关注本帖(如果有新回复会站内信通知您)
发帖、回帖都会得到可观的积分奖励。
按"Ctrl+Enter"直接提交
关注CocoaChina
关注微信 每日推荐
扫一扫 关注CVP公众号
扫一扫 浏览移动版2017下半年系统架构设计师考试要求及目标
2017下半年系统架构设计师考试要求及目标
&&&考试要求
(1)掌握计算机硬软件与网络的基础知识;
(2)熟悉信息系统开发过程;
(3)理解信息系统开发标准、常用信息技术标准;
(4)熟悉主流的中间件和应用服务器平台;
(5)掌握软件系统建模、系统架构设计基本技术;
(6)熟练掌握信息安全技术、安全策略、安全管理知识;
(7)了解信息化、信息技术有关法律、法规的基础知识;
(8)了解用户的行业特点,并根据行业特点架构合适的系统设计;
(9)掌握应用的数学基础知识
(10)熟练阅读和正确理解相关领域的英文文献;
& &&考试目标
考试合格人员应能够根据系统需求规格说明书,结合应用领域和技术发展的实际情况,考虑有关约束条件,设计正确、合理的软件架构,确保系统架构具有良好的特性;能够对项目睥系统架构进行描述、分析、设计与评估;能够按照相关标准编写相应的设计文档;能够与系统分析师、项目管理师相互协作、配合工作;具有高级工程师的实际工作能力和业务水平。
更多软考资讯可添加:
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。4被浏览286分享邀请回答0添加评论分享收藏感谢收起智能教学系统:需求分析、功能设计与技术架构_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
智能教学系统:需求分析、功能设计与技术架构
龙源创新数字传媒(北京)股份有限公司|
总评分0.0|
试读已结束,如果需要继续阅读或下载,敬请购买
定制HR最喜欢的简历
你可能喜欢

我要回帖

更多关于 系统架构设计师 教材 的文章

 

随机推荐