查看: 764|回复: 0

高手进修课程,为什么要看游戏服务端源码,如何看源码呢

[复制链接]

4764

主题

5083

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
19151

最佳新人活跃会员热心会员推广达人宣传达人灌水之王突出贡献优秀版主荣誉管理论坛元老

发表于 2020-3-7 13:43:25 | 显示全部楼层 |阅读模式
高手进修课程,为什么要看游戏服务端源码,如何看源码呢 https://www.gmbbs.net/
由于项目的需求,我最近花了更多的时间来研究游戏服务端源码的代码。在本文中,我将简要总结一下我对为什么以及如何查看游戏服务端源码的想法。
为什么要看游戏服务端源码?如何看待游戏服务端源码?大师的进步是必须的。
看看游戏服务端源码的含义
查看游戏服务端源码只是一种方法,一种手段,而不是目的。我曾经给自己设定了“阅读xxx游戏服务端源码”的目标。现在它看起来很愚蠢,也不聪明(具体、可衡量、可实现、相关、有时限)。
只有阅读代码的目标明确,我们才能有明确的目标,抓住关键点,高效地完成任务。
游戏服务端源码的含义包括但不限于以下几点:
首先,解决问题(BUG)
只要是代码,就会有错误,只是说错误或多或少,或深或浅。现在每个人都喜欢发布和使用游戏服务端源码。不同的游戏服务端源码有不同的社区成熟度和代码质量。遇到臭虫并不奇怪。
当然,如果你遇到一个错误,你必须首先在互联网上搜索类似的问题。一般来说,你可以在谷歌搜索相应的关键词,堆栈溢出,以及项目的问题。如果你找不到,你只能看游戏服务端源码。
第二,知道为什么
我在[提到过如何学习新技术以及在选择团队技术时应该注意什么][链接1]如果我们需要在我们自己的项目中使用游戏服务端源码,我们必须了解这个项目的优点和缺点,熟悉这个原理,并对一些细节(尤其是项目的优点和特点)进行深入研究。
如果这是一个成熟的游戏服务端源码,谷歌也许能在出现问题时找到很多答案。然而,如果它是一个快速开发的游戏服务端源码,了解更多关于它的架构和核心原则也有助于快速定位问题。
此外,有些项目文档可能不那么丰富,但它们必须被使用,那么如何以正确的姿态使用它们呢?也参考游戏服务端源码
三.学问
查看游戏服务端源码也是一种很好的学习方式(尽管不一定是最好的方式),特别是对于相对好的游戏服务端源码,它可以是一个大开眼界的方式。
即使是为了学习,也有许多重点,如
学习语言:代码风格,规范,用法,高级语法。对于某种语言的初学者来说,找到一个熟悉该领域的游戏服务端源码来深入掌握该语言也是一个好主意。
学习设计:数据接口、框架、整体框架
学习理论:算法和协议。例如,我前面写的《[筏议定书》][筏]光是读这篇论文就很无聊,而且算法理论和工程实践之间还有一定的差距。此时,将游戏服务端源码结合起来通常会更有效([·蒙戈达[[])。
四.转换
一般来说,我们刚刚开始使用一个游戏服务端源码,但是随着使用的深入,我们会发现我们需要的一些功能没有得到很好的支持,并且向项目团队提出的问题可能得不到快速的响应,所以我们将不得不进行扩展、更改代码和添加功能。
当然,更好的做法是在原有项目的基础上增加新功能,并反馈游戏服务端源码,比如阿里的《[·布里克》][]
V.参考
其他山的石头可以用来攻击玉。如果有必要重新开始制造车轮,参考一些现有的和优秀的车轮肯定是有益的。
六.副产品
这一点不应该作为我们阅读游戏服务端源码的起点,但它实际上可以增加求职和面试的价值,这是一个副产品。
如何看待游戏服务端源码
查看游戏服务端源码的目的极大地影响了您查看游戏服务端源码的方式以及您需要阅读的代码范围。例如,如果要修复一个在线错误,阅读代码的范围就紧紧围绕着错误本身。然而,为了理解分布式算法,有必要根据可能在不同节点(进程)上运行的大量代码来理解其交互原理和工作流程。
这里有一些常用的方法。
先看文件,把握整体
一般来说,文档的编码非常简洁。一个高质量的开放源码通常包括诸如教程、规范、API参考等文档。通过对这些文件的选择性略读和精读,可以大致理解项目的总体框架和设计原则。
正确的途径是通过文档来理解项目。然而,它是通过阅读代码来验证文档并深入细节,而不是通过啃游戏服务端源码来直接理解项目,从而进行概括。
了解代码组织、文件名、类名
当你需要查看代码时,先不要找文件开始,先看看代码组织,粗略看一下文件名、类名,基本可以猜出每个部分。例如,redis的游戏服务端源码组织得很好,基本上看文件名就可以快速定位每个命令的实现位置。
关注一个问题,并从问题中跟踪代码。
查看游戏服务端源码的目标决定了此刻的焦点。无论是解决一个bug还是学习一个算法,让我们专注于一个特定的问题,从这个特定的问题跟踪代码,忽略目前不需要注意的细节,一步一步深入到目标。
当然,当解决一个问题时,它可能会导致新的问题,尤其是在学习的时候。此时,只需记录新的问题(将其放入收集篮中,不要立即传播),并在先前跟踪的问题解决后查看新发现的问题。
解决问题
如果你没有任何问题,那就帮助解决别人的问题。一般来说,游戏服务端源码有很多问题需要解决,所以选择其中一个。
排除故障
只要有可能,代码必须首先编译并运行,因此无论是添加日志、打印调用堆栈还是断点调试都要方便得多。特别是对于像python这样的动态类型的代码来说,很难确切地知道它在不运行的情况下在做什么。
添加笔记并做笔记
如果阅读游戏服务端源码不是一蹴而就的,将来可能会被重新阅读,那么你必须做代码注释和注释。注释主要是框架图、类图和流程图。目标是为将来的快速回忆建立索引。
注释是阅读代码时的细节。再次阅读时阅读注释(尤其是函数注释)可以节省大量时间。
欢迎在留言区留下您的观点,并一起讨论改进。如果今天的文章在提高学习能力方面给了你新的启发和新的理解,请转发分享给更多的人。
我猜你还是想看
阿里、腾讯、百度、华为和京东收集了最新的采访问题
Java中的尝试、捕捉和最终的细节已经过分析并达成一致!
IDEA热部署jrender安装和破解教程
终于明白为什么要添加最后一个关键词了!

【GM论坛[www.gmbbs.net]免责声明】
1、本站提供的所有资源仅供参考学习使用,版权归原著所有,禁止下载本站资源参与商业和非法行为,请在24小时之内自行删除!
2、本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。
3、若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。 我们不承担任何技术及版权问题,且不对任何资源负法律责任。
4、论坛的所有内容都不保证其准确性,完整性,有效性。阅读本站内容因误导等因素而造成的损失本站不承担连带责任。
5、用户使用本网站必须遵守适用的法律法规,对于用户违法使用本站非法运营而引起的一切责任,由用户自行承担
6、本站所有资源来自互联网转载,版权归原著所有,用户访问和使用本站的条件是必须接受本站“免责声明”,如果不遵守,请勿访问或使用本网站
7、本站使用者因为违反本声明的规定而触犯中华人民共和国法律的,一切后果自己负责,本站不承担任何责任。
8、凡以任何方式登陆本网站或直接、间接使用本网站资料者,视为自愿接受本网站声明的约束。
9、本站以《2013 中华人民共和国计算机软件保护条例》第二章 “软件著作权” 第十七条为原则:为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。若有学员需要商用本站资源,请务必联系版权方购买正版授权!
10、本网站如无意中侵犯了某个企业或个人的知识产权,请告之,本站将立即删除。
   提问发帖求助请点此发帖 https://www.gmbbs.net/
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表