,我是鱼皮,最近金三银四求职季到了,我发现有一些小伙伴开始焦虑了,比如我 星球 里的一位朋友,问了我这样一个问题: 我猜想这位小伙伴的问题是指阅读一些知名框架 / 项目的源码,而不是读老师作业题中的代码...无论我们处于什么学习阶段,入门也好、精通也罢,都应该多去看别人的源码来学习,也应该多去写代码来实践。...如果你还不会使用某个技术、没有用它做过项目,那么很多这个技术的概念你可能都是不了解的,看源码的时候也绝对是一脸懵。...但是当我写程序的过程中遇到问题时,我会本能地追踪进源代码去分析。即 带着目的去读源码 。...所以,不要看别人去读源码,你也跟着去读,更不用因此感到焦虑。 幸存者偏差,无论是校园学生还是职场员工,真正敢说自己读过牛逼源码的同学还是少数。
,再也不想看自己写的代码了。...业务是跑起来了,后来的人可就惨了,我记得当时看一个类的方法,差不多有上千行,我看逻辑已经快懵了。然后小心翼翼的在里面添加一堆逻辑,为了不和其他人的逻辑干扰,我自己抽取了一个段代码。...当时找公司同事来提交补丁改已经来不及了,我现场打开电脑,查看代码,硬生生的调了一版,想起来除了无助就是无奈。 慢慢的,也确实有了一些经验,所以会时不时的看看别人写的代码,我觉得基本有两种状态。...,只考虑正常的逻辑,不正常的逻辑说明逻辑不正常,不需要考虑,当然我写的很多代码也确实是这样,从小步快走,快速迭代的方式来说,这种方法是对的,代码代码不够充实和健壮,能够一气呵成是意料之外的。...对我来说,代码的意义本身就是服务于业务,作为一个服务的载体,代码问题肯定无处不在,一味的追求代码的完美在工程实践中还是很可能会做妥协,而不管不顾方法论,只是堆砌代码也是万万不可的,从某种程度上来说,代码的逻辑清晰和设计上好的风格可以保证程序的健壮性
定义一个div 太阳轨道sunline,边框显示出来,定义position为relative
kill 有什么区别 -9 是强制性的意思 为什么 kill 可能会出现杀不掉的情况,kill -9 和 kill 的区别在于发的信号不一样 我想查看日志的后十行 le 我想看日志的实时刷新的怎么看...tail,加参数吗 查看处于 time_wait 、established 的 tcp 数量怎么看,netstat -t 这个 -t 就是 tcp 问的问题,哪个部门的主要业务是什么的 主要技术栈,
「我」:我看demo里面的代码有些地方,当返回错误信息的时候抛出了异常。但是实际情况是不能抛出异常,我就给他改写了。 「领导」:在使用的时候try catch住处理一下不就好了。...「领导」:在我看来,你的改代码的理由,在我看来都不是理由。 「我」:为啥? 「领导」:在我看来你因为看那些写法不爽就把它给改了,可以这样理解吧。 「我」:占一部分原因吧。...当你在看代码的时候,觉得别人的代码写的可能不够规范,或者说不符合你的规范。因为你觉得不符合规范,这个只是你的主观判定,而不是一个客观的事实。在你看来不符合规范的代码,可能就是别人的规范。...最好不要因为这个原因去更改别人的的代码。 「我」:好的 总结 不要去改变别的代码边界。当你更改了别人的代码,就意味着破坏了别人的代码边界。一旦边界被破坏,那就可能出现无法预估的风险。...结尾 说的通俗一点就是,不要瞎鸡儿改别人的代码。不管别人写的好不好,只要没bug就行,如果有bug也是别人改。有这个时间早点下班不好吗。
前言 大家好,我们是红日安全-代码审计小组。最近我们小组正在做一个PHP代码审计的项目,供大家学习交流,我们给这个项目起了一个名字叫 PHP-Audit-Labs 。...攻击者可以通过该漏洞,调用PHP代码库的任意构造函数。...这里我们关注 第6行 代码,这里创建了一个反射类,而类的名称就是从 $sort 变量来的,可被用户控制利用。继续往下看,在代码第28行处用 $newParams 作为参数,创建一个新的实例对象。...修复建议 关于PHP中XXE漏洞的修复,我们可以过滤关键词,如: ENTITY 、 SYSTEM 等,另外,我们还可以通过禁止加载XML实体对象的方式,来防止XXE漏洞(如下图第2行代码),具体代码如下...相关文章 Shopware 5.3.3: PHP Object Instantiation to Blind XXE PHP代码审计Day2 - filter_var函数缺陷 PHP代码审计Day1
写让别人能读懂的代码 随着软件行业的不断发展,历史遗留的程序越来越多,代码的维护成本越来越大,甚至大于开发成本。而新功能的开发又常常依赖于旧代码,阅读旧代码所花费的时间几乎要大于写新功能的代码。...我们所写的代码除了让机器执行外,还需要别人来阅读。...所以我们要: 写让别人能读懂的代码 写可扩展的代码 写可测试的代码(代码应该具备可测试性,对没有可测试性的代码写测试,是浪费生命的表现) 其中2,3点更多强调的是面向对象的设计原则。...,如果你正在试图写一段注释,从某种角度来看,你正在试图写一段别人无法理解的代码。...,声明性代码更加具有表达力,也更简洁。
而新功能的开发又常常依赖于旧代码,阅读旧代码所花费的时间几乎要大于写新功能的代码。...我们所写的代码除了让机器执行外,还需要别人来阅读。...所以我们要: 写让别人能读懂的代码 写可扩展的代码 写可测试的代码(代码应该具备可测试性,对没有可测试性的代码写测试,是浪费生命的表现) 其中2,3点更多强调的是面向对象的设计原则。...,如果你正在试图写一段注释,从某种角度来看,你正在试图写一段别人无法理解的代码。...当然高质量的代码还需要良好的设计和遵循面向对象编程的原则。 如果想了解更多相关内容,请阅读《代码大全》,《代码整洁之道》,《重构 改善既有代码的设计》,《敏捷软件开发 原则、模式与实践》。
不管你怎么做,“重用”就是抓取别人的代码,通过它的接口来使用,而不去关心它的内部结构。这段代码还可能会“偷渡”到一群横向的依赖关系中去,这会给你带来麻烦。最少的努力,带来的是最少的控制。...复制:从 Github repo、代码片段集或者其他地方,选择你所需要的代码。然后把它直接粘贴到你的项目中。这段代码已经存在于你的代码库中,而不再是一个依赖关系。...重写代码片段 如果是 200 行以内的代码片段,或者是复制的代码,我一定会逐行重写代码,这样可以了解到这些代码是如何工作的,并且做一些改动,使之更适合我的项目。...所以,这种浅重写是一种很好的方式,可以把别人的代码导入到你的项目中。有些问题是可以避免的。你可以根据你的用例和其他需求对代码进行调整。另外,你还可以在学习新的算法和实践中,成长为一名工程师。...你可以“捕捉”到别人来之不易的知识。 因此,对我来说,这是一个明显的案例,重写,而非重用,可以节约我的时间,并且让我得到更好的结果。
数据分析师要有数据分析师的亚子,今天我就教大家用Python零基础来爬一爬这个小破站的弹幕,快速学习一些流行用语(完整python教程+代码会在文末放出)。 1.弹幕哪里找?...实际上在网页中,弹幕是被隐藏在源代码中,以XML的数据格式进行加载的: XML和JSON、YAML一样是一种通用的标记信息表达方式,可以简单的理解为一种记录数据的格式。...右键网页,打开网页源代码,搜索cid”就能找到: cid在网页源码中是一个很常见的词组,而我们要寻找的正确的cid都会写成"cid":xxxxxxxx的形式。...requests用于向网站url发起请求,以获取网页代码;BeautifulSoup用于将HTML/XML内容解析,并提取里面的重要信息。...只要我们熟练掌握def定义函数功能,就可以把上述的爬虫功能写成一个爬取函数: 一键爬取一时爽,一直一键一直爽,完整代码就在文末,大家自己爽吧。 4.弹幕可以做什么分析?
由于前端页面会调用很多接口,有些接口会被别人爬虫分析,破解后获取数据为了 杜绝 这种情况,最简单的方法就是禁止人家调试自己的前端代码图片 无限 debugger前端页面防止调试的方法主要是通过不断 debugger...来疯狂输出断点,因为 debugger 在控制台被打开的时候就会执行由于程序被 debugger 阻止,所以无法进行断点调试,所以网页的请求也是看不到的基础代码如下:/*** 基础禁止调试代码*/((...(() => { debugger; }, 50); } try { ban(); } catch (err) { }})();图片 忽略执行的代码通过添加 add script ignore...list 需要忽略执行代码行或文件也可以达到禁止无限 debugger图片 忽略执行代码的对策那如何针对上面操作的恶意用户呢可以通过将 debugger改写成 Function("debugger")...);',9,9,"block function setInterval Function debugger 50 try catch err".split(" "),0,{}));图片 终极增强防调试代码为了让自己写出来的代码更加的晦涩难懂
看过本站那些混乱代码的文章,你都会知道宏定义和预编译对于写出不可读的代码的重大意义。...你几乎都不用理解别人的代码,你就可以高效地编程了。(译者注:Copy + Paste出来的代码bug多得不能再多) 巨大的listener。...这样,你以后就很难限制其被人使用,而且这样可以和别的代码造成更多的耦合度,可以让你的代码存活得更久。 排列和阻碍。...05 混乱你的代码 使用XML。XML的强大是无人能及的。使用XML你可以把本来只要10行的代码变成100行。而且,还要逼着别人也有XML。(参看,信XML得永生,信XML得自信) 混乱C代码。...一行的代码越长越好。这样别人阅读时就需要来来回回的 不要较早的return。不要使用goto,不要使用break,这样,你就需要至少5层以上的if-else来处理错误。 不要使用{}。
本文记录一个非常实用的工具,有了它,我们可以在几秒之内用 VS Code 打开 GitHub 上的任意一个 Repo,无需 Clone,速度飞快,在线VS code 看代码神器。...github 在 github 仓库看代码总是不很方便 此处打开 mmocr 仓库: https://github.com/open-mmlab/mmocr 看代码神器 在 github 仓库地址上稍加修改
** php代码执行函数解析 ** 一、代码执行漏洞原理: 用户输入的数据被当做后端代码进行执行 //其实一句话木马的本质就是一个代码执行漏洞。用户输入的数据被当做代码进行执行。 这里提一下RCE(remote command/code execute)远程命令或者代码执行。...现在只要渗透的最终情况可以实现执行命令或者是代码都属于RCE,例如代码执行、文件包含、反序列化、命令执行,甚至是写文件Getshell都可以属于RCE 在PHP存在诸多函数可以做到代码执行。...为了方便把要执行的代码写为$a 1.eval($a); //eval是代码执行用的最多的,他可以多行执行 eval(\$_REQUEST['a']); 2.assert(a); //只能单行执行 assert...6.特殊组合(双引号二次解析) PHP版本5.5及其以上版本可以使用 “{phpinfo()}”; => 代码执行phpinfo() php的字符串是可以使用复杂的表达式。
项目背景 我记得是刚毕业出来的时候,接触到好几个项目,发现每次开发后台管理模块的时候,发现都是做的事情都是一样的,做的逻辑都是一样的,只是业务不一样而已,并且在创建文件很浪费的时间,所以决定自己写一个模板代码生成器...,方便项目开发,节省更多的时间写逻辑,减少bug的发生和规范的代码编写及结构。...共6个文件,并且封装好了分页接口,新增,删除,编辑,查看,批量新增,批量删除,批量编辑等接口,根据自定义的模板,可以灵活配置使用代码生成器,因为管理后台的增删改查的逻辑都是一样的,所以经常使用的分页,增删改查都是已经封装好了...项目动力 为什么我会一直更新我的项目,和编写不同的模板适配不同的项目框架,因为我觉得写一套属于项目框架的代码生成器,对于公司来说,是一种无私的奉献,为了项目的同事不做重复相同的工作,只关注业务逻辑,这才是程序员要做的工作
自己最近在思考一个问题,如何让自己的代码质量逐渐提高,于是想到整理这个系列,通过阅读别人的代码,从别人的代码中学习,来逐渐提高自己的代码质量。...第一个自己学习的源码是:https://github.com/LyricTian/gin-admin 自己整理的代码地址:https://github.com/peanut-pg/gin_admin 这篇文章整理的时候只是为了跑起来整体的代码...,对作者的代码进行精简。...不要把很多的代码放到这个目录下面,这里面的代码尽可能简单。 /internal 应用程序的封装的代码。我们的应用程序代码应该放在 /internal/app 目录中。...而这些应用程序共享的代码可以放在 /internal/pkg目录中 /pkg 一些通用的可以被其他项目所使用的代码,放到这个目录下面。
如果你最近在阅读人工智能(artificial intelligence,简称AI)、深度学习(deep learning)和神经网络(neural netwo...
这样的解释可能还是不好理解,所以我们通过一个简单的代码来理解应该就清楚很多。...wire依赖注入例子 栗子1 安装: go get github.com/google/wire/cmd/wire 上面的代码,我们用wire的方式实现,代码如下: package main import...代码中我们用了wire.Bind方法,为什么这么用呢?...如果我们wire.Build的那段代码写成如下: wire.Build(provideMyFooer, provideBar),再次用wire生成代码则会提示如下错误: ➜ useWireBaseExample5...先直接看使用的例子: package main import ( "fmt" "github.com/google/wire" ) type Foo int type Bar int
Python基础 – 使用别人代码的模块机制 前言 模块 导入模块 代码总结 代码总结 小练习 导入模块 代码总结 第三方模块 安装模块 Windows macOS 示例 小练习 前言 Python的模块为日常编程中许多问题提供了标准的解决方案...,同时也能让我们更加简洁优雅地管理代码。...导入模块 import random randomNum = random.random() print(randomNum) 代码的作用 这三行代码输出了一个随机数。...比如,想生成一个在1到7之间的随机整数,可以使用random模块里的randint()函数,代码为:random.randint(1,7)。...图片 第二行代码: 使用from...import...,从pyecharts模块中,导入子模块options,并将其简写为了opts。
当然这篇博客并不会对casbin的使用做非常详细的说明,感兴趣的可以去官网看具体的使用文档。 关于casbin 常见访问控制模型 ABAC: 基于属性的访问控制。...casbin的使用,因为之前看了casbin在其他几个项目中的使用,感觉都是有点乱,在在gin-admin这个项目的时候一开始也是感觉有点懵 ,没有理解怎么用,不过当把代码梳理清楚之后,感觉gin-admin...初始化 权限的初始化是通过下面代码: func InitCasbin(adapter persist.Adapter) (*casbin.SyncedEnforcer, func(), error) {...总结 关于这个项目整理了三篇文章,也学习到了很多东西,其实到这篇文章,作者整体代码自己已经树立清楚了,很多人会觉得作者的项目目录过于复杂,还有一些重复代码,在你刚开始梳理代码逻辑的时候还会感到一脸懵,但是当你耐心梳理完之后...作者剩余的代码就是关于web接口中的逻辑了,就不在做整理。 后面的计划是通过这次对这次代码的学习,写一个blog的web项目。同时也会找下一个开源项目代码进行学习
领取专属 10元无门槛券
手把手带您无忧上云