上班的第四百七十七天

由于今天没有任务缠身,所以可以开始研究服务器架构了,一边研究一边画UML图。比如我想画地图转化模块的UML图,看看涉及到哪些模块,那么我就会在最终调用的函数那里设个断点,接着利用VS2010的栈跟踪调试来看看都经过哪些类了。这一步还是没问题的,问题是,UML图怎么画呢?我脑海里只记得5个关系:关联、聚合、组合、依赖和继承,继承好说,剩下4个是怎么回事呢?

经过一番调查之后,终于理清了。

关联是包含了聚合、组合以及一般关联。

一般关联就是两个平行的类,互相调用其共有接口。UML中用实线箭头,A调用B的接口则是A指向B,双方都互相用到,则用双向箭头或者不加箭头,直接一条实线。

聚合是比一般关联的关系强些,含有“has-a”的意思。比如A聚合了B,那么A里面应该就有B的指针或者引用,B可以脱离A独立存在,A不管理B的生命周期,可以通过构造函数传参或者用setter函数把B的实例注入A中。UML中用空心菱形加实线箭头,A聚合B则是从A指向B。

组合比聚合的关系更强,也是含有“has-a”的意思。比如A组合了B,那么A里面的成员变量就有个B,如果是B的指针,那么也会在A的其他成员函数里面将B new出来,B的生命周期归A管理。UML中用实心菱形加实线箭头,A组合B则是从A指向B。

依赖含有“use-a”的意思。比如A依赖B,可以理解为A某个地方需要用到B。在程序里面可以这样表示:A调用的某个接口需要用到B作为形参传进去,A需要用到B的静态成员函数,A的某个成员函数将B作为局部变量出现。UML中用虚线+箭头,A依赖B则从A指向B。

以上就是一些小总结。

至于在mac上如何画UML图?这个就折腾了我半天了!最终我选择的是astah professional6.9这个软件,如何下载和破解参照这个网址:http://bbs.feng.com/forum.php?mod=viewthread&tid=8907096

上面那个破解方法中提到,要把破解补丁中的astah-pro.jar放在astah professional->astah professional->contents->java中,可是我怎么样都找不到astah professional中的astah professional文件夹,只有那个可执行文件!原来,那个可执行文件也可以打开的!没鼠标的情况下,按住control+轻碰触摸板(相当于右键)->显示包内容,里面就是了!我都醉了!被windows涂毒多年!

好吧,不管怎么样,明天开始好好画图,好好整理框架以及训练自己的文档能力!

时间: 2024-10-28 20:10:31

上班的第四百七十七天的相关文章

上班的第四百七十六天

放假比上班还累,本来还幻想着一副放假的时候能够拿一本<effective C++>在图书馆装逼的情景的,谁知道第一天就睡过去了.第二天和第三天帮我姐搬家,第四天各种饭局,屁都没多放一个,真心累. 昨天晚上,也就是放假的最后一天,我去找惜惜了,给她带点柠檬.看到她晒得黑黑的就知道她最近玩得挺开心的,她开心就好,我就怕她不开心.虽然我知道她还是喜欢我,我也是,但是我不敢再牵她手了,因为不想再次陷入纠结了,就这样好好生活下去也挺好的. 今天上班,继续解决那个"幸运值"的问题,我问

上班的第四百七十五天

今天有点偷懒,因为我纠结了,究竟是继续研究数据库呢,还是解那个无解的bug呢?最后两样都没有完成,搞得心慌慌的,果然一心真的不能二用. 还好,还是能够学到点东西的,就是服务器的第3个模块,子系统模块.加上之前弄清楚了资源管理器.通信模块,基本上服务器的逻辑框架我就掌握了.用了6天,理清了服务器框架,lua入门了,MySql也入门了,学会了使用VS2010开发软件以及用Sqlyog访问数据库,有基础学东西就是容易上手. 接下来要进一步规划学习内容了. 首先,我的任务肯定会多起来,而且肯定是逻辑业务

上班的第四百七十二天

今天开始感到疲惫了,才第三天,我隔壁那个可是连续上了14天了,要上到29号,也就是连续上17天班,真心觉得这不是人过的日子.昨天看了一篇文章,内容就是反对加班,里面有一句话我觉得是蛮有道理的:生活应该是8小时工作,8小时业余,8小时睡觉.我十分赞同的,虽然有点死板,但是这样的生活才是一种理想的状态. 所以我得要好好给自己做做思想工作,上班8小时,然后业余的8小时我是没什么事情做的,回家也是学习,所以留在公司边学习边实践效果更好,剩下8小时睡觉.这样想之后,生活似乎变得容易了. 今天看了<大型多人

上班的第四百九十七天

今天把跨服技术琢磨透了,其实真的挺简单的,就是原服务器发消息给客户端,让客户端断开连接.然后去连接公共服,这样就能够使各个服的玩家都登陆到同个服务器上.至于数据怎么存,这就要用到服务器ID了.服务器ID是唯一标示一个服务器的标志,根据每个玩家的角色ID,将对应的服务器ID找出来.接着通过公共服和各个服务器之间的连接,调用相应服务器,就能够直接进行数据操作了. 说到底,就是这样: 原本的数据流:客户端->网关服务器->逻辑服务器->数据库服务器 跨服后的数据流:客户端->跨服网关服务

上班的第四百七十八天

今天跟着数据流把小部分UML图画出来了,也趁这个机会,进一步熟悉服务器的框架.但是心里还是很多疑问,这些疑问大多是因为我看不懂那些实现代码,到处都是模板类,看得我直晕.这个时候,我就应该去看看设计模式的,就像看宇智波一族的地下室墙上的文字,写轮眼的瞳力达到某个境界才能看到更多的东西. 为何有这个感悟呢,就是今天看到一个类是这样的: class A { public:     A();     ~A(); protected:     bool init(void)     {         .

上班的第四百七十三天

今天有点累,可能是最近超负荷加班学习,也有可能是昨晚右手又调皮了,所以今天的效率有点低. 不过我搞清楚了服务器业务逻辑的三个大类中的两个,分别是资源管理器和通信模块. 通信模块在服务器启动的时候就初始化,并且将每个通信模块(NPC模块.消耗物品模块等等)对应于客户端的请求的消息处理方法注册到一个全局数组上去.那么以后客户端有消息过来的时候,就根据moduleID和funcID的乘积去调全局数组里面的处理方法.服务器主循环里面会在一定时间后去读消息队列,依次处理那些请求. 而资源管理器也是在服务器

上班的第四百七十四天——无解的bug

今天认真找了一天的bug,其实就是定位错误,然后仔细看那个地方的代码.我看了,仔细地,但是没有发现任何逻辑上的漏洞,但是考虑到服务器是有几条线程在跑,而且由于服务器的主业务逻辑是通过一条while循环实现的,就相当于单线程,那么所有逻辑代码基本上是没有加锁的.有可能是多线程引起的问题,但多线程的东西是很难跟踪的,外加这个只有1个玩家会出现,其他都没有出现.无法重现现象,如何解决bug? 就像<金田一杀人事件>那样,如果凶手不再杀多一个人,是很难找到凶手的,案件基本是无解了. 当然,还存在另外一

上班的第四百七十天——开始游戏生涯了

今天正式进军游戏行业了,感觉是很累,但是真心觉得有好多东西学,挺开心的,终于可以向中级程序员迈进了. 先按照昨天的计划,把VS2010常用的快捷键记录下来,然后能够较为轻松地浏览代码后,就叫锋哥--服务器主程,分配了一些简单的任务给我,让我由一个点发散开来熟悉代码. 锋哥给了我两个bug,一个是消耗物品后短时间内提升角色的各种属性值,其中有个属性值没有达到预期那样,我的任务就是将它改过来. 说实话,真心觉得这个任务简单得不能再简单了.贪心的我就直接在VS里面搜"苹果"(该消耗品叫&qu

上班的第四百六十七天

今天迈瑞没发offer过来,估计是没戏了,但我心里莫名地松了口气.因为这个offer就像根鸡肋,食之无味,弃之可惜,最怕就遇到这种情况了.现在没戏了,就可以全心全意地投入到ios开发中了. 今天也是我在邦健的最后一天,说实话,不到今天,我也不知道自己真的对公司产生感情了.那些人,那些事,已经在我心里留下羁绊. 昨天晚上和女神聊天,她说她在广西,九号才回公司,听了有点失望,毕竟我可是犹豫了半天才告诉她我要走的.当然,我也顺便告诉她,在两年前的夏天,当我看到穿着红饭短裙黑色内衣搭配白色丝绸衫的她,静