若文章内的图片失效(无法正常加载),请留言反馈或直接联系我。...写在开头 在今年初,我就打算迁移我的博客了,主要原因是ueditor编辑器不支持go代码的高亮,所以打算换,但是由于本人比较懒,同时事情又多,就耽搁了下来 此次迁移,跨度半年,实际消耗了3,4天左右,使用到了.../ueditor2markdown/ 通过分析,找到了ueditor2markdown.js的相关代码: 修改包的document的,改为jsdom 库实现,该代码已经开源:https://github.com.../tioncico/ueditor2markdown 修改步骤为: 先通过go,将ueditor html代码写入到文件 func writeArticleFile() { path := "....= nil { log.Fatal(err) } } } 整理博客配置项,优化博客的路由兼容 这个比较简单,不做额外说明 引入highlight 高亮代码
过程中大家也积极讨论了一些防破解的方法,在征得到大家的同意后,我将讨论的方案整理了出来,希望对正在做小游戏的开发者们有所帮助或启发,如果你有更好的方案也欢迎留言讨论。...混淆代码,禁止调试 弱联网加密校验 增加彩蛋 1 混淆代码,禁止调试 对于 JavaScript 代码来说,最简单是对代码进行混淆加密。当有不法分子拿到代码后,使他不能直接阅读,进行二次开发。...browser-md5-file 它是一个 NPM 模块,使用很方便这里是 Github 地址: https://github.com/forsigner/browser-md5-file 不过这里有一个难点,如何通用...4 小结 随着微信小游戏日趋普及,开发商厂和个人开发者也大量涌入, 游戏同质化严重,不少小游戏厂商或个人将一套游戏代码经过简单换皮上线,更有投机者直接反编译别人的游戏变成自己的产品上架。...微信平台以及其它小游戏平台,为了打击这种现象,会对代码相似度进行审查,超过一定比例相似度的代码会被判定为“代码包侵权”,将不能通过审核。
我的代码日程 强烈推介IDEA2020.2破解激活,IntelliJ IDEA...打印100~200 之间的素数 2. 输出乘法口诀表 3....判断1000年---2000年之间的闰年 1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=9 。。。
1.由同事抛的一个问题开始 最近项目组的一个同事遇到了一个问题,问我的意见,一下子引起的我的兴趣,因为这个问题我也是第一次遇到。...平时自认为对spring循环依赖问题还是比较了解的,直到遇到这个和后面的几个问题后,重新刷新了我的认识。...下面用一张图告诉你,spring是如何解决循环依赖的: ? 图1 细心的朋友可能会发现在这种场景中第二级缓存作用不大。...我非常负责任的告诉你程序能够正常启动。...答案在AbstractBeanFactory类的doGetBean方法的这段代码中: ? 它会检查dependsOn的实例有没有循环依赖,如果有循环依赖则抛异常。 4.出现循环依赖如何解决?
代码逻辑应当直截了当,叫缺陷难以隐藏;尽量减少依赖关系,使之便于维护;依据某种分层战略完善错误处理代码;性能调至最优,省得引诱别人做没规矩的优化,搞出一堆混乱来。整洁的代码只做好一件事。...有足够特殊的理由才能用三个以上参数(多参数函数)——所以无论如何也不要这么做。 试想如果一个方法参数过长,也不利于其他开发者阅读,不利于测试编写测试用例。...行动起来 下面这段话摘至《Clean Code》作者: ❝我写函数时,一开始都冗长而复杂。有太多缩进和嵌套循环。有过长的参数列表。名称是随意取的,也会有重复的代码。...不过我会配上一套单元测试,覆盖每行丑陋的代码。 然后我打磨这些代码,分解函数、修改名称、消除重复。我缩短和重新安置方法有时我还拆散类。同时保持测试通过。...最后,遵循本章列出的规则,我组装好这些函数我并不从一开始就按照规则写函数。我想没人做得到 ❞ 就像写作文一样,好的代码也不是一次性写出来的,需要反复琢磨。
文中以python为例子,讲了不少大家其实在别人的代码里都见过、但自己很少用的语法。 这是一个挑战。我要你避免在任何情况下写for循环。...同样的,我也要你找到一种场景——除了用for循环以外,用其他方法写都太难。请分享你的发现,我非常想听到这些 距离我开始探索超棒的Python语言特性已经有一段时间了。...首先,让我们退一步看看在写一个for循环背后的直觉是什么: 遍历一个序列提取出一些信息 从当前的序列中生成另外的序列 写for循环已经是我的第二天性了,因为我是一个程序员 幸运的是,Python里面已经有很棒的工具帮你达到这些目标...不到处写for循环你将会获得什么 更少的代码行数 更好的代码阅读性 只将缩进用于管理代码文本 Let’s see the code skeleton below: 看看下面这段代码的构架: # 1 with...结论 大多数情况下是不需要写for循环的。 应该避免使用for循环,这样会使得代码有更好的阅读性。
背景 为了提高开发的软件产品安全性,大部分选择的方案防护方案是,通过用成熟的加固软件进行对自己研发的软件做防护,从而达到对软件搭建一个安全防护墙。...加固软件主要做的两件事,对软件中关键代码的保护以及提高对软件逆向反编译的门槛。 那么软件安全性防护墙的第一道门那就是反调试。反调试技术又细分为静态反调试和动态反调试。...对于X86系统,Vista以上版本的HeapFlags位于0x40偏移, 低于Vista版本的位于0x0C 对于X64系统,Vista以上版本的HeapFlags位于0x70偏移,低于Vista版本的位于...CloseHandle 检测 利用异常捕获机制,给CloseHandle函数一个无效的句柄作为输入参数,在程序在没有被调试时,将会返回一个错误代码;而程序被调试器调试时,将会触发一个EXCEPTION_INVALID_HANDLE...反调试和反反调试的方案都是相对的,并不是绝对的安全。反调试强度更高的方案在于驱动层去检测实现。
IT派 - {技术青年圈} 持续关注互联网、大数据、人工智能领域 砺石导言 2月4日,猎豹CEO傅盛在2018猎豹移动全球年会上发表演讲表示,困难就是最大的财富,如同尼采的一句话:凡杀不死我的,必使我更强大...2.凡杀不死我的,必使我更强大:困难就是最大的财富,如同尼采的一句话:凡杀不死我的,必使我更强大。猎豹所遭遇的所有的困难,都进化成了猎豹的基因。...现在结果如何呢?去年,也就是2017,猎豹整体收入近50亿规模,而瑞星前年只有几千万收入了。这就是一个时代的变化——大潮来临,唯有拥抱。...2凡杀不死我的,必使我更强大 当年,我第一次到珠海,每一刻都在想,怎么让在金山工作了十年的人,能跟我有一样互联网化的思维。 那个时候,夜不能寐,忧虑不堪。...也许,没有选择,就是最好的选择。困难,就是最大的财富。 如同尼采的一句话:凡杀不死我的,必使我更强大。 庆幸的是,猎豹今天已经不一样了——猎豹所遭遇的所有的困难,都进化成了猎豹的基因。
游戏设计师需要什么技能 我把全部知识作为我的领域。 ———弗朗西斯·培根 简单来说,一切技能。你擅长的任何事情,都可以成为游戏设计师的有用技能。...经济学 现代的许多游戏都是包含游戏资源的复杂经济体系。了解经济学的原理,会有意料之外的用处。 工程学 现代的电子游戏牵涉当今世界最复杂的工程,一些作品的代码量数以百万行计。技术创新让新的玩法成为可能。...最重要的技能 以上所有技能里面,还有一项最最重要的,大部分人听来会觉得太过奇特,于是我都没有把它列在其中。有些人会猜是“创意”,我认为这可算是第二重要的技能。...其原意是指思想的交换,但现在已经成为了“谈话”的同义词,例如“我有些事情要和你沟通一下”。谈话当然是重要的技能,但良好的沟通和优秀的游戏设计都发源于一件基础得多、重要得多的事情。...我碰到了很严重的问题,有点想和你谈一谈。但如果没得到你的保证,说明你真正关心我的麻烦,我又不会和你谈,毕竟这是有点私人的事情。不过要是你不愿意被扯进来,我就不会打搅你,只假装一切都好就是了。”
上篇文章介绍了我博客的一个架构,这里具体说下我是如何快速的通过git和fabric来持续部署我的博客的。...先来说一个场景,我前几天上线了一个 OSQA _ 系统,为了方便以后来的网友在博客留言里提问时看到我有这样的一个系统,所以我决定在留言框上方加一句话,也就是现在在留言上方看到的那个文案...简单的背后一定是有复杂的支撑,不过我这小小的博客不用很复杂。下面开始阐述下背后的原理 搭建git服务器 不要被题目吓到,只是一个简单的git仓库,基于本地协议(文件系统)。...到此你的git服务器就搭建好了,你本地可以直接push代码到服务器上。 用fabric快速部署 所谓部署,其实就是把你最新的代码放到运行的环境中去,然后重启服务。...上篇文章有提到,我用supervisor来管理我的Django进程,所以我需要做的就是在部署代码的地方pull一下最新的代码然后重启supervisor,不需要考虑virtuanlenv的事情。
大厂技术 高级前端 Node进阶 点击上方 程序员成长指北,关注公众号 回复1,加入高级Node交流群 1.通过条件判断给变量赋值布尔值的正确姿势 // bad if (a === 'a') {...b = true } else { b = false } // good b = a === 'a' 2.在if中判断数组长度不为零的正确姿势 // bad if (arr.length...== 0) { // todo } // good if (arr.length) { // todo } 3.同理,在if中判断数组长度为零的正确姿势 // bad if (arr.length...// todo } // good let arr = [1, 2, 3, 4] if (arr.includes(a)) { // todo } 巧用数组方法,尽量避免用for循环...(value in obj) { keys.push(value) } // good let keys = Object.keys(obj) // ['a', 'b'] 巧用解构简化代码
大家好,又见面了,我是你们的朋友全栈君。 我的世界游戏中,/tp 玩家id,开启了作弊模式与朋友联机时可以使用,作用是传送到该玩家身边。...在命令方块中输入: /tp @a 坐标 (将全部玩家传送到该坐标,@a表示全部玩家,@p表示最近的玩家,@r表示随机玩家) /tp @e[type=生物的ID,name=你给生物取的名字] 坐标 服务器的...id (需要有op权限) /tpa 玩家id (请求传送到该玩家身边,需要该玩家需要输入tpaccept回复) /res tpa 某领地 (传送到某领地,要有领地插件) /spwan (回到出生点) 我的世界...《我的世界》是一款3D的第一人称沙盘游戏,所呈现的世界并不是华丽的画面与特效,而是注重在游戏性上面。...玩家在游戏中做着「建设」与「破坏」两件事,但是透过像乐高一样的积木来组合与拼凑,轻而易举的就能制作出小木屋、城堡甚至城市,但是若再加上玩家的想像力,空中之城、地底都市都一样能够实现。
嗯,我的代码没有else系列,一个设计模式业务真实使用的golang系列。 ? 前言 本系列主要分享,如何在我们的真实业务场景中使用设计模式。...满足如下要求的所有场景: Get请求获取页面数据的所有接口 前端大行组件化的当今,我们在写后端接口代码的时候还是按照业务思路一头写到尾吗?我们是否可以思索,「后端接口业务代码如何可以简单快速组件化?」...关于怎么用,完全可以生搬硬套我总结的使用设计模式的四个步骤: 业务梳理 业务流程图 代码建模 代码demo 业务梳理 按照如上某东的订单结算页面的示例,我们得到了如下的订单结算页面模块组成图: ?...我的代码没有`else`,只是一个在代码合理设计的情况下自然而然无限接近或者达到的结果,并不是一个硬性的目标,务必较真。 2....---- 我的代码没有else系列 更多文章 代码模板 | 我的代码没有else 链式调用 | 我的代码没有else 点击https://github.com/TIGERB/easy-tips/tree
嗯,我的代码没有else系列,一个设计模式业务真实使用的golang系列。 ? 前言 本系列主要分享,如何在我们的真实业务场景中使用设计模式。...关于怎么用,完全可以生搬硬套我总结的使用设计模式的四个步骤: 业务梳理 业务流程图 代码建模 代码demo 业务梳理 我通过历史上接触过的各种抽奖场景(红包雨、糖果雨、打地鼠、大转盘(九宫格)、考眼力、...答题闯关、游戏闯关、支付刮刮乐、积分刮刮乐等等),按照真实业务需求梳理了以下抽奖业务抽奖接口的大致文本流程。...------------ //我的代码没有`else`系列 //模板模式 //@auhtor TIGERB //------------------...我的代码没有`else`,只是一个在代码合理设计的情况下自然而然无限接近或者达到的结果,并不是一个硬性的目标,务必较真。 2.
说到循环神经网络,其实我印象是比较深的,因为循环神经网络是我接触的第一个深度学习模型,大概在一年半前吧,那时候我还没有深度学习的概念,算是刚入门机器学习。...现在才发现,那时候RNN还是挺新的东西,知道的人比较少,大概过了半年左右,研究RNN的人感觉一下多了,但是我当时就做了半个多月,最后基本概念大概懂了,然后找到了一份Keras的代码,因为之前有位老师给了...份Keras做验证码识别的代码,稍微懂一点Keras,(PS:当初搭Keras的这个环境,把我坑惨了,身边也没人懂,也不知道问谁,虽然现在看起来是那么简单,当时也没人给我讲,第一次听说Keras,Theano...~,做研究有时间是寂寞的,如果你没有一个好的平台,希望你能守的住寂寞,坚持住自己的梦想)所以把RNN的这个代码最后也算是调通了,但是生成的效果我就不想说了,简直就是火星文,完全不通顺,当时也不懂怎么去改进...这就是所谓的循环,从哪里来然后回到那里去。
接下来,我将为各位列举9种我个人工作中高频遇到的不整洁代码行为,并提出针对性优化建议。...正确的方法是,我们应该遵循一定的代码规范和风格,使得代码清晰、易读。...02 注释 错误习惯 缺少注释:没有为代码编写注释,导致其他人难以理解代码的功能和逻辑。过时的注释:未及时更新注释,使注释与实际代码不一致。错误注释:注释上并不规范,常常使用一些不合理的注释。...06 测试和调试 错误的习惯 单元测试:不进行单元测试会导致无法及时发现和修复代码中的错误,增加代码的不稳定性和可维护性。边界测试:不进行边界测试可能导致代码在边界情况下出现错误或异常。...代码的可测试性:有些情况依赖于当前条件,使测试变得很难。
那么,这些低代码平台是如何降低软件开发的学习曲线呢?我个人的感受是以下几个方面。 可视化工具 首先,降低开发门槛的一大利器是提供动动手拖拖拽拽就可以完成主要 UI 界面的可视化工具。...我自身是 github copilot 的深度用户 —— 近半年来我个人项目中 70% 以上的单元测试代码都是 Copilot 帮我完成的, 它大大提高了我开发的效率,使得我在不必花费太多额外时间的前提下...我对低代码开发平台的浅见 出于职业习惯,我对不少低代码平台都做了一些肤浅的尝试。它们在各自的细分领域都有不俗的表现,但没有特别让我眼前一亮的通用开发平台。...此外,应用的测试,CI/CD 该如何处理,需要深入思考。毕竟,一款严肃的应用离不开这些基本的开发流程的支持。 应用要具备可观测性。...我自己做的简单的测算,同样功能的代码,同样的预算下,Rust 代码可以支撑 4-10 倍 nodejs 的请求量。
我还记得那天,我迫不及待地想要用编程解决一个简单的问题:判断一个给定的整数是否为素数。对于一个编程新手来说,这似乎是一个令人兴奋的挑战,但我的完美主义倾向却导致了我写下了一段极度繁复而愚蠢的代码。...我的代码开始于一个庞大的 if 语句,里面包含了各种条件,以确定一个数是否为素数。我试图在一个函数中完成这一任务,但不幸的是,我的代码很快就失控了。...这段代码,看上去似乎包含了无数的条件来检测素数,但实际上它只能正确判断 2 和 3 为素数,其他的数都会被错误地判定为非素数。当我运行这段代码时,得到的结果常常令我感到困惑。...这个代码的问题在于,我试图手动检查了所有可能的除数,但却忽略了素数的基本定义:只有两个正除数,1 和自身。我的愚蠢代码反映了我对问题的过度复杂化,以及对基础知识的不足。...这段修正后的代码更加简洁和高效,而且在正确性上也毫无问题。但是,我却花费了大量时间和精力在一个愚蠢而繁复的代码上。 这个故事告诉我们,编程不是追求繁复和复杂性的游戏,而是要注重简洁和正确性。
本文记录我写的代码逗比代码 C++ 篇 其实我发现使用 C++ 写逗比代码比 C# 更开森 #define !...std::cout << b; } 你猜猜输出是什么 本文所有代码放在 github 和 gitee 欢迎小伙伴访问
需要在修改函数中加入一个去除空字符串的函数. /** * 去除数组中的空字符串 */ function removeEmpty($arr) { $array = $arr; foreach
领取专属 10元无门槛券
手把手带您无忧上云