首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

应该什么拯救你,游戏?

过程中大家也积极讨论了一些防破解方法,在征得到大家同意后,将讨论方案整理了出来,希望对正在做小游戏开发者们有所帮助或启发,如果你有更好方案也欢迎留言讨论。...1 弱联网 将我们游戏关键数据保存到服务器上,比如关键配置、用户存档,或者是向服务请求加密验证,在游戏中使用自己平台 appid 作为密钥等手段。...通过弱联网,就算游戏客户端代码、资源被盗也无法正常游戏,也能起到保护作用,是一种比较实用方案。 2 资源校验 如果我们没有服务器怎么办呢?这里讨论一种方案供大家参考。...发布 Release 构建时,对生成关键图片资源、JS代码等生成 MD5 指纹,替换到构建资源。...游戏被盗,作为个人是很难与一些不良公司抗衡,更重要是它会极大地打击我们学习和创作动力。上面介绍了三种保护游戏方案,抛砖引玉,相信大家还有更多更好方法,欢迎大家留言讨论或公众号分享你经验。

1.1K20

机器人研究生困惑:应该做些什么

越来越怀疑,自己优势究竟在哪?怎样才算是做科研? 当然,知道,或许太浮躁了,应该踏踏实实地把理论知识学好,然后再做科研。...首先觉得题主应该有自信,因为这种背景好处是你已经接触到了机器人各个领域,虽然没有深入了解。可以试着画一个框图,整理一下做机器人需要哪些部分。...这也就是为什么题主会觉得研究生两年了什么都没学到了。因为在这两年过程相信题主还是挺快乐,因为一直在学“技术”,也就是锻炼工程能力,虽然很可惜,这本应该是本科干。...题主现在困扰主要是在得到了这些工程能力之后,意识到自己并没有学到什么东西,这里东西应该就是科研了。所以题主现在应该想清楚自己到底要做一个工程师还是做一个科学家。...举一个具体例子,如果是做研究的话,同样是写代码,可能不需要考虑自己代码有多么鲁棒,扩展性要多好,重点是能用,能展示你算法能力,展示你想法就可以了。

2.6K130
您找到你想要的搜索结果了吗?
是的
没有找到

架构分四代码应该放哪一

我们应用工程结构,常见大致分为四。分别是api、biz、domain和dao。 要想清楚我们代码应该放在那一,先让我们一起熟悉这四职责。...图自https://mp.weixin.qq.com/s/jJzzJIGozOpt7KaXwBS3Ww 一、api api,正如它名字一样,是提供api服务。...这种情况下也在这处理。 特点:要灵活、要薄,能够随着不同业务定义特性api。 二、biz biz,也叫业务服务。它主要负责编排。把一个业务场景下主流程逻辑处理完成。...三、domain domain,叫做领域服务。按照OO思想,领域编程思维,我们”厚对象“代码都在这。比如订单域、运费域等。...四、dao dao,也就是我们存储了,负责持久化。 特点:也要灵活,能够随着不同DB之间差异、以及性能要求,独立dao方法。 问题1:我们大量代码应该放在哪

30930

面试官:怎么去除 List 重复元素?一行代码搞定,赶紧拿去用!

问题 上次栈长给大家分享了《带了一个 3 年开发,不会循环删除 List 元素,简直崩溃!!》,上次也给大家留了个小话题: 怎么去除 List 重复元素呢?...复制一个 list2,再循环 List2,判断 list 元素首尾出现坐标位置是否一致,如果一致,则说明没有重复,否则重复,再删除重复位置元素。...distinct 方法去重,这个方法也十分简单,一行代码搞定!...Stream 基础就不介绍了,Stream 系列之前写过一个专题了,不懂关注公众号Java技术栈,然后在公众号 Java 教程菜单阅读。...所以说,你身边还有谁不会删除 List 元素?还有谁不会 List 去重?把这篇文章发给他吧,让大家少走弯路,少写垃圾代码,共同进步。

1K20

prompt设计原则最佳实践,附案例

可操作性:Prompt应该是可执行,即模型能够根据指示采取行动,准确说,就是你期望他给你什么结果,比如是一个表格,还是一段代码实现,还是一篇有结果性文章。...**省略部分**21.如果同意,请询问需要更改,参考您之前回复,进行请求调整并生成新提示。 重复步骤 15-20,直到我对提示感到满意。如果您完全理解您任务,请回复“今天能为您做些什么?...重复步骤15-20,直到我对项目规划感到满意。如果您完全理解您任务,请回复“今天能为您做些什么,CodeHelper?”...如果同意,您将提供所有建议学习资源和方法。4. 如果不同意,您会询问哪些资源或方法应该更改或删除,并根据我反馈进行调整,然后再继续。5....如果想要继续学习,我们将重复这个过程,探索新学习目标和计划。如果您完全理解您任务,请回复“今天能为您做些什么,LearnSmart?”

1.2K71

Linux 开发过程那么麻烦,是否值得?

如果别人之后需要查看这些代码,将无法理解为什么要按照当时方式完成这个变更。有些缺陷非常微妙,而且很容易重复出现。只看简短、非描述性提交消息,不一定有人能知道在什么条件下会出现错误。...而再看看这段信息,阅读它能知道为什么删除这些警告很安全(说明了当前情况很安全原因),以及如果在未来更改这段代码应该做些什么相信,很多组织也会有人这么做。...如果我们讨论是一个 bug,就会知道它出现在哪些系统,发生在什么条件下,为什么没有影响到其他系统,以及应该做些什么避免再次犯同样错误。...当人们进行代码审查时,就开始出现真正问题了。任何组织做代码审查都大同小异。大家阅读代码并提出修改建议 (或要求)。 假设,评审意见是在第一次变更添加方法应该有一个额外参数。...还发现有时大家会争论:“……但对于优秀程序员来说会没有问题”或者“但是它迫使你以这种或那种方式思考,优秀程序员应该这么思考”,这种观点脱离实际毫无用处:上帝,刚才已经承认了这个方法所有好处,

41640

当我们使用 MVVM 模式时,我们究竟在每一做些什么

当我们使用 MVVM 模式时,我们究竟在每一做些什么?...只是想说说我们究竟应该如何理解 M-V-VM,当我们真正开始写代码时,应该在里面的每一里写些什么。 ---- MVVM,当然三——M-V-VM。...其中 M 和 V 中文词语和英文单词是很好理解,但是 VM 就不是个日常用词;于是各种不知道应该放在哪里代码便一窝蜂全放进了 VM ,最终导致了 VM 无限膨胀,成百上千行也是司空见惯啊!...不知看到这里时你会不会喷一脸——“V”解决 UI 问题也就算了,“VM”和“M”算什么 UI! VM,视图模型。其本质是模型。什么模型?“视图”模型。这是为真实 UI 做抽象模型。...MVVM 模式按此理解后,我们将更能够将代码放到合适位置,避免 VM 代码膨胀: 公共控件或者辅助代码应该抽出来放到别处,比如形成公共组件 一些非 UI 业务功能单独做,独立于 MVVM 模式,

85510

组织微服务

从一万英尺高空看问题:十年前,我们不得不提出一种更好方法组织系统之间复杂连接,并停止在相同业务逻辑上重复工作。那时,面向服务体系结构(SOA)开始流行起来。...停止在系统集成代码执行复杂业务流程。 数据模型不应该在集成定义,它只会导致团队之间额外协商。 不应该将状态保留在集成,以实现最大可扩展性 在服务之间创建固定复杂契约。...这就是为什么想出了微服务分层架构。希望在现代集成/应用程序开发新集成架构实现主要目标是灵活性。不仅以可扩展方式,而且还允许开发人员轻松地进行任何架构更改。...首先,在新现代敏捷集成,集成代码本身应该被分类到不同小型服务,这些小型服务在商业世界是有意义,并且是分离,并且是独立部署服务单元。...3.4.png 为了给我服务带来一些逻辑意义,并避免重复在单个集成包承担过多错误,服务定义了四个,因此每个都有自己职责,从而更容易适应变化。

71220

.NETC# 建议异常处理原则

本文将以提升客户端 GUI 产品质量为目标,谈谈 .NET/C# 建议异常处理方式。(如果想了解更具体应该抛出什么异常,请前往另一篇文章 应该抛出什么异常?...接下来,我们将分别说明在每一应该做些什么,原则是什么。...需要说明是,这部分代码通常是一嵌一地调用,是每一都要注意以上原则。...顶级 UI/命令或 API 对异常处理本不应该区分具体业务实现还是顶级命令或 UI ,在试图推荐异常处理方式,它也应该遵循前面执行细节里三项处理原则。...框架 框架代码可能被业务代码调用,也可能调用业务代码。无论哪种,框架从来都不能相信业务代码按照要求和契约编程。

1.2K20

怎么做API设计

这让想到……有没有什么方法可以对一个Beautiful API进行分类或量化?如果说情人眼里出西施,那么谁才是API"情人"呢?...那么,API创建者可以做些什么让他们满意? 开发人员 如果你还记得Donald Knuth的话,他说过“编程是一种艺术,它告诉另一个人你想让电脑做什么。”...注意,这个契约可以在 Stoplight.io之类工具定义,甚至代码注释,但是API没有实现。 实现应该等到API被其使用者评审和批准之后。...•SSE(服务器端事件),如果您需要将数据从服务器推送到web应用程序。 •gRPC—当您api是组织内部而不是web上(即在微服务体系结构),以及当您控制消费者和提供者时。...需要注意是,SDK不应该只是围绕API定义薄薄外壳,而应该包含示例、用于创建应用程序构建工具等等。它应该具备所有帮助降低复杂性和增加开发人员体验功能。

1K40

Spring 注解与分层思想

类似的, @Service则用来表示服务相关类, @Controller则用来表示展示(presentation)类。 那Service是什么呢?...通常来说,DAO应尽力保持简单,其功能仅仅是提供了数据库连接,以及最简单增删改查(Crud),有时还需要做些抽象,以此连接使用不同技术数据库。...这两个类通常会放到同一个Domain(包),即便在简单应用,他们代码可能极其类似,但是仍应该分别对待。...并且,当业务逻辑比较复杂时候,比如有很多报告要出时候,Service就提供了一个很好空间实现这些代码。...service类中用到时,那么可能会存在大量重复代码,这种重复代码对于维护人员来说就是恶魔。

1.6K00

JAVAAction, Service ,modle 和 Dao功能区分

大家好,又见面了,是全栈君。 JAVAAction, Service ,modle 和 Dao功能区分 首先这是现在最基本分层方式,结合了SSH架构。...调用biz方法,转发到下一个action或者页面) 模型成(model)一般是实体对象(把现实事物变成java对象)作用是一暂时存储数据方便持久化(存入数据库或者写入文件)而是 作为一个包裹封装一些数据在不同以及各种...我们都知道,标准主流现在编程方式都是采用MVC综合设计模式,MVC本身不属于设计模式一种,它描述是一种结构,最终目的达到解耦,解耦说意思是你更改某一代码,不会影响其他代码,如果你会像spring...初期也许都是new对象去调用下一,比如你在业务new一个DAO类对象,调用DAO类方法访问数据库,这样写是不对,因为在业务是不应该含有具体对象,最多只能有引用,如果有具体对象存在,就耦合了。...Action像是服务员,顾客点什么菜,菜上给几号桌,都是ta职责;Service是厨师,action送来菜单上菜全是ta做;Dao是厨房小工,和原材料(通过hibernate操作数据库)打交道事情全是

86330

怎样编写好 API?

在 REST 规范,POST 是唯一一个非幂等方法,所以我们可以对相同资源多次调用 POST 方法,这样我们会得到重复资源。...我们重新看一下 Slack 样例,如果我们使用 HTTP 动作进行更多操作会是什么样子: 我们可以使用 POST 方法发送消息到通用通道,我们也可以使用 GET 方法从通用通道获取消息。...最好采取一种成长心态,接受变化是不可避免,尤其是如果你项目要持续发展的话更是如此。 要想让你 API 更具适应性,其中很关键一点就是保持尽可能薄 API ,真正复杂性应该往下层转移。...5 API 不应该限定实现 公开 API 发布之后,它就已经完成了,是不可改变,你就不能再去触碰它了。如果你已经有了一个设计古怪 API,除了接受现状之外,还能做些什么呢?...API 只是另外一抽象。它们不应该决定如何实现,为了避免这种问题,我们可以采用如下几种开发模式。 API 网关 这是一种类似于门面的开发模式。

59420

代码洁癖系列(二):命名艺术

那么什么命名才算是好命名呢。这就是我们今天要讨论。 名副其实 首先还是要强调这一点,读过糟糕代码有一个共同特点,那就是代码存在大量随意,无意义命名。...或者说看完有人明白这段代码要做什么吗? 先来说一下问题: getThem是get什么?...避免误导 命名过程要注意第二点就是要避免名称对别人产生误导,例如上面代码paidOrderIds这个变量,如果我们命名成paidOrderIdList呢,看起来似乎没什么问题,但是如果这个变量是Set...类名和方法名 类名和方法名也要遵循上面的规范,除此之外,它们还有各自规范:、 类名不应该是动词,避免使用Data、Info这样词汇 方法应该是动词,比如,saveXXX、deleteXXX...要专一 假如你在不同,分别定义了方法getXXX、fetchXXX和findXXX,要调用时候怎么知道某个类应该使用哪种方法

43920

证明你是坏程序员7个迹象

它不仅可以跟踪解决方案每个文件,存储整个历史,还可以区分不同版本到分支,知道什么时间是谁改变了什么(并且如果提交信息足够详细,还可以知道原因)。 ?...3)使用糟糕变量名 知道将variable1和variable2作为变量名有什么问题吗?变量应该根据它们做什么或者它们包含什么命名。...4)重复代码 非常推崇《Pragmatic Programmer》(《程序员修炼之道》)这本书,上面推荐第一个秘诀就是不要重复代码。上面要求无论如何都不得重复代码,在我看来过于极端了。...如果相同代码需要重复4次,那么可以为这段代码创建一个函数,这将极大地改善你代码。 5)你自己都很难理解自己代码 以前为什么要用这种方式?觉得总是想不起以前之所以用这种编码方式原因。...所以,除了不断学习,我们还应该做些事情帮助未来自己理解这段代码。 ? 6)自私,不愿意共享 不是那种自私的人,如果学到一些真正好东西,我会分享给大家。

51480

开发人员解决不了管理烂问题

经常看到一些文章指责开发人员,不理解他们为什么要做改变,不理解背后“为什么”就盲目地实现改变是错误。 “向上看,不要把太多精力放在写代码上!”在我看来,这些文章所面向的人群是错误。...在大多数公司,实际上应该由管理为故意把工程师隔离在发现客户需求之外行为负责。...之前方法是管理者通过抽象思考想出改进方法——通常是他们老板想法——然后把这些想法灌输给员工。 Deming 告诉福特,在研发更好汽车过程,85% 问题都是由管理行为造成!...统计混沌控制 技术实现 代表性负载 混沌检测开发人员会被引导至 Quality™筒仓,就好像不编写代码的人会做得更好一样!...04 开发人员没问题 管理需要做出改变 传统管理需要发展;他们应该 先听开发人员说说 管理应该什么: 明确目标、愿景和使命感 帮助我成长,提供晋升机会 允许自治,授予权限 他们还应该听听管理应该什么

34530

运维需不需要懂产品和运营呢?

大致列一下过程应该就比较清晰了: 1、业务分析过程,职责明确业务模块从整体拆分出来,比如用户、商品、交易、支付等等业务逻辑; 2、从服务角度拆分,这样一个大业务逻辑可以拆分出更细服务化模块...,因为故障没有办法100%避免(但是应该杜绝低级的人为失误和重复错误),我们要做是故障快速甚至是提前发现、业务快速恢复,以及故障后回溯和改进; 按照《聊聊架构》书中架构生命周期划分,上述过程...3、技术服务 觉得两含义,一个是一定要有服务心态;另一个,提供解决方案,还是举个栗子: 比如,我们在线上运维过程,发现有一块相对独立业务,体量越来越大,随着用户增多从一个非核心业务变成了一个核心业务...但是,这个业务是用C++,架构上是分层架构,每层都是通过配置IP方式进行接口调用,还有跨调用,调用逻辑很不清晰。...所以我们配合一定要有共赢心态,而不是你是你我是一定要分很清楚,当然这个过程建议运维应该向前多走几步。

43360

证明你是坏程序员7个迹象

它不仅可以跟踪解决方案每个文件,存储整个历史,还可以区分不同版本到分支,知道什么时间是谁改变了什么(并且如果提交信息足够详细,还可以知道原因)。 ?...3)使用糟糕变量名 知道将variable1和variable2作为变量名有什么问题吗?变量应该根据它们做什么或者它们包含什么命名。...4)重复代码 非常推崇《Pragmatic Programmer》(《程序员修炼之道》)这本书,上面推荐第一个秘诀就是不要重复代码。上面要求无论如何都不得重复代码,在我看来过于极端了。...如果相同代码需要重复4次,那么可以为这段代码创建一个函数,这将极大地改善你代码。 5)你自己都很难理解自己代码 以前为什么要用这种方式?觉得总是想不起以前之所以用这种编码方式原因。...所以,除了不断学习,我们还应该做些事情帮助未来自己理解这段代码。 ? 6)自私,不愿意共享 不是那种自私的人,如果学到一些真正好东西,我会分享给大家。

43060

Spring源码剖析1:Spring概述

所以开发一个应用除了要开发业务逻辑之外,最多是关注如何使这些对象协作完成所需功能,而且要低耦合、高内聚。 业务逻辑开发是不可避免,那如果有个框架出来帮我们创建对象及管理这些对象之间依赖关系。...让我们深入看一下Spring到底能帮我们做些什么?...二、当我们要进行一些日志记录、权限控制、性能统计等时,在传统应用程序当中我们可能在需要对象或方法中进行,而且比如权限控制、性能统计大部分是重复,这样代码中就存在大量重复代码,即使有人说把通用部分提取出来...,那必然存在调用还是存在重复,像性能统计我们可能只是在必要时才进行,在诊断完毕后要删除这些代码;还有日志记录,比如记录一些方法访问日志、数据访问日志等等,这些都会渗透到各个要访问方法; 还有权限控制,...如何学好Spring 要学好Spring,首先要明确Spring是个什么东西,能帮我们做些什么事情,知道了这些然后做个简单例子,这样就基本知道怎么使用Spring了。

51610

当程序猿写不出代码了,怎么办?

编程本质是棘手,即使是最优秀程序员也会遭遇无法解决软件工程问题。碰到这样问题,并不一定意味着你缺乏技能或知识。我们可以通过采取非正统方法保持你想要生产力水平,并确保提交高质量代码。...觉得自己应该换工作,去做做调酒师或其他,至少研究和测试在啤酒中加点什么不会耗去数个小时时间。 这些都是在不敲代码想法。开始怀疑生活,怀疑编码,怀疑人生。 有成效不?...好吧,从来没听任何专家说过“辞职和萎靡不振”可以造就伟大代码,所以可能并没有成效。 这就提出了一个问题:我们该如何避免这种没有成效状态?...)之前,你应该尝试使用你现有的知识和思维制定每一个可能解决方案。...此时,你潜意识则开始连接要点,朝着顿悟方向前行。 我们可以做些什么以便于帮助大脑在发散思维模式下工作呢?

63190
领券