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

如何使用一门新的语言

我从这几个方面考量: 代码有完整的 linting / testing 项目和现有的 CI pipeline 集成 有清晰的版本管理方案 可以和现有的系统无缝对接 有完善的部署脚本 和现有的日志系统以及错误报告系统集成...,loop,变量,行数等一个综合的考量) 代码的公开接口有合适的文档 对于 elixir 下的 credo,缺省的配置就已经很好了。...我的做法是在项目的根目录下放一个 version 文件,然后各种地方都从这个文件中读取 version 信息。在代码中读取很简单,自不必说: File.cwd!...在这样的方案下,新的项目和现有的日志系统集成并不太困难,只要为 Logger 选择一个合适的 file backend 即可。...返回的结果 grep 后再通过 sed 获取里面的数字,即为端口号。 这里存在着一些安全隐患。

96860

The Missing Semester of Your CS Education

命令通常使用 STDOUT来返回输出值,使用STDERR 来返回错误及错误码,便于脚本以更加友好的方式报告错误。返回值0表示正常执行,其他所有非0的返回值都表示有错误发生。...,就是操作符 + 操作对象 操作对象也可以单独使用,比如w就是从光标移动到下一个单词初始 终于做完了,后面感觉不太用得上就先没看,我在linux下编辑代码也比较习惯能用鼠标的vscode这些,所以说大括号如何匹配啊这种写代码的操作就没怎么尝试了...首先左边有个帮忙统计行数的插件,然后有代码高亮,禁止使用了四个方向键并且有对应错误提示 ,也没怎么仔细看,大概这样,英文注释有点看不进去。 安装和配置一个插件: ctrlp.vim....ctrl + \发送sigquit信号,然后我又去git bash里面试了试,发现也停不下来,难道是我键盘有问题么 而且我可以正常的打出^\ 搞不懂问题出在哪,应该也不是操作系统的差异导致的,因为...静态分析 有些问题是您不需要执行代码就能发现的。例如,仔细观察一段代码,您就能发现某个循环变量覆盖了某个已经存在的变量或函数名;或是有个变量在被读取之前并没有被定义。

2K21
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    10 | 信息泄露:为什么黑客会知道你的代码逻辑?

    接下来,我们就一起看一下这个过程。 为什么错误信息会泄露代码逻辑? 当黑客在登录某个页面时,在用户名位置输入一个单引号,在密码位置输入一个“g”之后,就会出现如下的错误信息。...比如,在错误信息泄露的场景中,“黑盒”检测可以向应用发起一些必然会导致错误的请求(比如上述例子中的单引号),然后观察应用是返回完整的错误日志,还是返回某些经过处理的页面。...你可以回忆一下,在前面讲SSRF攻击的时候,我们模拟过这样一个场景:服务端在请求一个图片地址的时候,会根据地址的“存活”情况和返回数据的类型,分别返回三种结果:“图片不存在”“格式错误”以及图片正常显示...而黑客正是通过服务端返回信息的逻辑,利用一个请求图片的 SSRF,摸清整个后端服务的“存活情况”。 类似的多种返回状态的场景还有很多,你可以想想自己平时工作中有没有遇到过。这里我再说一个常见的。...实际上,返回信息过于明确不算是代码层面的漏洞,更多的是产品层面的漏洞。因此,理论上没有任何技术手段能够对这种漏洞进行检测,只能依靠人为的分析审计来避免。

    58720

    dotnet 已知问题 警惕 StreamReader 的 EndOfStream 卡住线程

    在 dotnet 里面的 StreamReader 类里面的 EndOfStream 存在一个设计上的问题。...访问 EndOfStream 会导致 StreamReader 执行一次同步读取 Stream 的过程 假定 Stream 是一个读取非常慢的对象,如卡顿的网络下的响应内容。...通过读 dotnet 的实现源代码可以看到 EndOfStream 属性是通过读取一下,看看是不是读取完了,如果读取完就返回 true 的值,否则就继续返回 false 的值 由于 C# 的属性从语法上就不支持异步方法...Stream 是缓慢的,将会导致 EndOfStream 属性返回缓慢 接下来我将编写一个简单的测试代码用于告诉大家使用 EndOfStream 属性在进行异步读取时的缺点 如下面代码,编写了一个 FooStream...我整个代码仓库比较庞大,使用以下命令行可以进行部分拉取,拉取速度比较快 先创建一个空文件夹,接着使用命令行 cd 命令进入此空文件夹,在命令行里面输入以下代码,即可获取到本文的代码 git init git

    7210

    Node+GitLab实现小程序CI系统

    /project git branch 拿到本地分支信息 切换分支时通过接收的分支名称比对本地是否存在分支,如分支已存在就删除再切换,不存在就直接切换 通过log4js输出日志,为了页面展示用 代码实现...; 前端实现 前端页面我就不提供示例代码了,ui框架和开发框架根据大家的喜好决定,因为有了上面这些接口我们就已经可以愉快的对前端页面进行你需要的一些定制了,这个时候需要我们考虑的就是一些前端的交互逻辑了...前面的流程图已经大致画出了我的思路,下面我将我的前端实现思路详细描述一下,供大家参考: 实现一个启动页面,页面可以输入git地址和本地的端口路径,点击开始按钮调用/clone接口将代码拉取到项目中,同时将端口号路径储存起来后面用...去微信公众平台设置体验版 完成 END 到这里一个简单的小程序发布系统就完成了,本文只是记录了我的一个开发思路希望能对大家有所启发,有很多地方考虑的还是不够完善但基本能用了,大家可以发散思维实现一个自己的发布系统...,也欢迎交流想法和指正我的错误,同时欢迎大家关注公众号前端小苑,我会定期在这里发表原创文章。

    1.6K00

    Node+GitLab实现小程序CI系统

    第二步(如何拿到开发者工具端口号) 在确保你的开发者工具服务端口开启的情况下,我们可以尝试通过node的fs模块去读取储存的文件信息读取端口号,端口号文件是开发者工具自动生成的,所以它的位置是固定的,...; 前端实现 前端页面我就不提供示例代码了,ui框架和开发框架根据大家的喜好决定,因为有了上面这些接口我们就已经可以愉快的对前端页面进行你需要的一些定制了,这个时候需要我们考虑的就是一些前端的交互逻辑了...前面的流程图已经大致画出了我的思路,下面我将我的前端实现思路详细描述一下,供大家参考: 实现一个启动页面,页面可以输入git地址和本地的端口路径,点击开始按钮调用/clone接口将代码拉取到项目中,同时将端口号路径储存起来后面用...去微信公众平台设置体验版 完成 END 到这里一个简单的小程序发布系统就完成了,本文只是记录了我的一个开发思路希望能对大家有所启发,有很多地方考虑的还是不够完善但基本能用了,大家可以发散思维实现一个自己的发布系统...,也欢迎交流想法和指正我的错误,同时欢迎大家关注公众号前端小苑,我会定期在这里发表原创文章。

    1.5K10

    shell学习笔记

    sh上传脚本 首先直接简单介绍一下这个脚本的功能。...读取一个文件并插入到另外一个文件 有时候,我们想在一个文件中插入的内容,已经在另外一个文件中事先写好了。这个时候,可以先读取事先写好的文明。...sh cat hello.txt >> world.txt Recall: >帮你把某个命令的返回值写入一个文件 >>帮你把某个命令的返回值插入到某个文件的末尾 我们可以先读取一个文件,然后用>或者>>...read 命令的用法为: read [-options] [variables] options表示选项,如下表所示;variables表示用来存储数据的变量,可以有一个,也可以有多个。...如果用户没有在指定时间内输入完成,那么 read 将会返回一个非 0 的退出状态,表示读取失败。 -u fd 使用文件描述符 fd 作为输入源,而不是标准输入,类似于重定向。

    24410

    一文详解Nginx安全加固

    假设你有一个基于Git版本控制的Web项目部署在你的服务器上,并且你不希望任何访问者能够看到.git目录下的内容,因为这可能包含敏感信息如提交历史、开发者邮箱等。...下面,我将通过具体的代码示例和实际案例来详细说明这个过程。 获取并安装SSL证书 首先,你需要从一个可信的证书颁发机构(CA)获取SSL证书。...示例代码 假设你有一个简单的博客网站,并且希望确保所有的资源都来自相同的源(即self),除了图片可以从任何地方加载外,其他资源都不允许内联或使用eval()函数。...,返回403 Forbidden } 假设你有一个网站托管在Nginx上,并且你希望保护你的服务器不受目录遍历攻击的影响。...日志安全 在Nginx中,通过配置访问日志和错误日志,可以有效地记录用户行为和系统状态,这对于安全分析至关重要。下面我将提供具体的代码示例来说明如何配置这些日志。

    30521

    gRPC: 快速配置通用 API 获取进程元信息

    README.md 文件,会展示 CA 证书 列出 TLS/SSL 证书信息 依赖 列出 go.mod 信息 LICENSE 如果本地有 LICENSE 文件,会展示 Git 信息 如果是 Git 工程...v1/req 如果开启了 Prometheus 中间件,返回请求的监控信息 rk.api.v1.RkCommonService.Logs GET /rk/v1/logs 返回进程日志元信息,包括日志路径等等...GET /rk/v1/readme 返回 README.md 文件信息 rk.api.v1.RkCommonService.Git GET /rk/v1/git 如果使用 rk 命令行进行编译,则会返回当前工程的...这种情况,建议用户自己根据需要实现一个【健康检查】的 API。...如何在代码里读取 Config, 可参考 gRPC: 基于云原生环境,区分配置文件 还是使用上面的工程,我们做一个改动。

    59540

    捕获了一只发生概率小于万分之一的Bug

    多年的经验告诉我,这其中一定有什么不对的地方,加上好奇心的驱使,终于揭开了一个隐藏非常深的Bug。 有时候找到Bug,解决Bug很容易,难的是如何发现Bug,并推理出哪里出问题解决。...奇怪的日志输出 一个调用外部接口的基础类,打印出类似如下的日志: abcdabcdabcdabcdabcdabcdabcd 其中前面的abcd...那么,这个基础工具类有多基础?多处使用该方法,每天大约被调用几十万次吧,而上面的情况一天只会出现几次。就是那么巧,恰好被看到了。...而日志中看到的异常内容,便是打印String时出现的。前面我们已经推断,出现的可能性是字节数组有一部分为空导致或数据错误导致的。 上述代码有一个明显的错误,你是否能够看出来?...以整数形式返回实际读取的字节数。 分析一下上面的三个方法。 其中第一个方法,本质上来说后两个方法都是调用第一个方法来实现的,但第一个方法直接使用缺点很明显,就是处理效率低下,一个字节一个字节的读。

    18420

    2020年企业运维经典面试题汇总

    接下来咱们就开始聊技术吧,我把面试题发出来,大家参考一下: 1、git和svn 的区别 Git是分布式的,而Svn不是分布的 Git把内容按元数据方式存储,而SVN是按文件 Git没有一个全局版本号,...而SVN有:目前为止这是跟SVN相比Git缺少的最大的一个特征 Git的内容的完整性要优于SVN: GIT的内容存储使用的是SHA-1哈希算法。...这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏 Git下载下来后,在OffLine状态下可以看到所有的Log,SVN不可以 SVN必须先Update才能Commit,忘记了合并时就会出现一些错误...而Git只是获取文件的每个版本的 元素,然后只载入主要的分支(master)在我的经验,克隆一个拥有将近一万个提交(commit),五个分支,每个分支有大约1500个文件的 SVN,耗了将近一个小时!...20、说一下你们公司怎么发版的(代码怎么发布的)? jenkins配置好代码路径(SVN或GIT),然后拉代码,打tag。

    1.2K00

    用 git bisect 快速定位你想找的 commit

    当项目报错,你想定位是哪个 commit 引入的错误的时候,会怎么做呢? 有的同学说可以看文件的历史呀,看文件是在哪个 commit 改的。 但这种方式前提是你确定是哪行代码引起的错误。...没错,我们确实可以通过二分的方式来查找,先确定查找的 commit 范围,试下中间的 commit 有没有问题,然后缩小范围,再试下中间的,逐步缩小范围直到只有一个 commit。...最新的 commit 是有问题的,所以是 bad: 指定 bad 之后,会告诉你已经知道了,还缺一个 good 的。...我们可以执行 git bisect log 回顾下整个查找过程: 通过一步步的二分查找,最终定位到了第一个出错的 commit。...然后我们开始一个新的 bisect 过程: 这里我加了两个参数,就是指定了 bad、good 的 commit 的意思,这样就可以直接开始二分了。

    27220

    Git 中文参考(八)

    默认情况下,显示标签,磁头和远程参考。 –exclude-existing 表单是一个反向的过滤器。它从 stdin 读取 refs,每行一个 ref,并显示本地存储库中不存在的那些。...除了返回错误代码 1 之外,如果未指定--quiet,它还将打印错误消息。 --abbrev[=] 缩写对象名称。...如果没有匹配, git show-ref 将返回错误代码 1,并且在验证的情况下,它将显示错误消息。...在 2.17 之前,未跟踪的缓存有一个错误,将带有符号链接的目录替换到另一个目录可能会导致错误地将 git 跟踪的文件显示为未跟踪。...引用包含空格的字段,就好像它们是 C 源代码中的字符串一样;即,被双引号包围并带有反斜杠逃逸。使用 40“0”字符或空字符串指定零值。要指定缺失值,请完全省略该值及其前面的 SP。

    16410

    Java扩展Nginx之五:五大handler(系列最核心)

    nginx-clojure-tutorials/files/nginx.conf maven工程 新建名为handler-demo的maven工程,今天实战的代码都在这里面 我这里为了统一管理代码和依赖库...对功能和职责的划分,官方建议将鉴权的工作都交给access handler来做: 正常情况下,一次请求被前面几种handler执行的顺序如下: 写一个access handler的配置和代码验证试试...,再发一次请求,蓝框中显示返回码正常,并且返回内容也是重定向后的location生成的: 然后故意用错误的密码试试,如下图,鉴权未通过,并且返回body准确描述了具体的错误信息: Nginx Log...有专用的配置属性log_handler_property invoke方法的返回值无意义,会被nginx-clojure忽略 接下来通过实例学习log handler,找到前面的content handler...,有下面几处地方要注意: 以上代码来自官方demo,我这里做了点小的改动(主要是文件路径改为外部参数传入) 整体功能是取出请求和响应的一些参数,打印在日志文件中 logUserAgent参数控制了user

    39350

    Rust 开发命令行工具(上)

    这是一个快速退出的快捷函数,当值(在这种情况下是输入文件)无法读取时,它会立即使程序退出。具体的使用情况,参看Rust错误处理。...上面的代码,虽然能满足我们的业务需求,但是还不够完美。有一个弊端:它会将整个文件读入内存 - 无论文件有多大。如果我们想在一个「庞然大物」中搜索我们需要的内容,那就有点不爽了。...相反,它返回一个Result,其中包含一个String或某种类型的错误(在这种情况下是std::io::Error)。...("文件内容:{}", content); Ok(()) } 我们来简单解释一下上面的代码 #[derive(Debug)] struct CustomError(String);: 这个代码定义了一个自定义的错误类型...与之前的代码不同,它返回一个 Result,其中成功值是 (),表示成功执行而没有返回值,错误值是自定义错误类型 CustomError。

    82140

    高频使用的 Git 命令

    前言 汇总下我在项目中高频使用的git命令及姿势。 不是入门文档,官方文档肯定比我全面,这里是结合实际业务场景输出。...t templateFile # 提交信息从文件读取,可以结合上面的一起用 git commit -F 复制代码 git reset 不得不说,代码回滚中这个命令也是用的很多,而且是 --hard #...# --no-ff,保留合并分支的提交记录,一般主干用的比较多. # --ff-only 除非当前HEAD节点为最新节点或者能够用ff模式进行合并,否则拒绝合并并返回一个失败状态。...pick,不输出错误 复制代码 git rm 这个命令在旧的版本用的比较最多的姿势是为了重新索引.gitignore 的范围 # 删除某个文件的索引 # --cache 不会删除硬盘中的文件,只是 git...其他情况下我更倾向于用 GUI 工具来看,因为比对更加直观。 总结 git 的常用命令其实很好掌握,很多命令都有 Linux 的影子。

    68330

    nodejs koa框架的入门

    1.3 HTTP Response 的类型 Koa 默认的返回类型是text/plain,如果想返回其他类型的内容,可以先用ctx.request.accepts判断一下,客户端希望接受什么数据(根据...我们可以让 Koa 先读取模板文件,然后将这个模板返回给用户。请看下面的例子(完整代码看这里)。...三、中间件 3.1 Logger 功能 Koa 的最大特色,也是最重要的一个设计,就是中间件(middleware)。为了理解中间件,我们先看一下 Logger (打印日志)功能的实现。...四、错误处理 4.1 500 错误 如果代码运行过程中发生错误,我们需要把错误信息返回给用户。HTTP 协定约定这时要返回500状态码。...4.2 404错误 如果将ctx.response.status设置成404,就相当于ctx.throw(404),返回404错误。请看下面的例子(完整代码看这里)。

    1K30

    Koa 框架教程

    1.3 HTTP Response 的类型 Koa 默认的返回类型是text/plain,如果想返回其他类型的内容,可以先用ctx.request.accepts判断一下,客户端希望接受什么数据(根据...我们可以让 Koa 先读取模板文件,然后将这个模板返回给用户。请看下面的例子(完整代码看这里)。...三、中间件 3.1 Logger 功能 Koa 的最大特色,也是最重要的一个设计,就是中间件(middleware)。为了理解中间件,我们先看一下 Logger (打印日志)功能的实现。...四、错误处理 4.1 500 错误 如果代码运行过程中发生错误,我们需要把错误信息返回给用户。HTTP 协定约定这时要返回500状态码。...4.2 404错误 如果将ctx.response.status设置成404,就相当于ctx.throw(404),返回404错误。请看下面的例子(完整代码看这里)。

    1.5K50

    你可能不知道的20个Git命令,但真的很实用

    接下来详细聊聊这些命令1、网页版运行git instaweb以立即浏览 gitweb中的工作存储库Git 有一个内置的基于 Web 的可视化工具,用于浏览本地存储库,它允许您通过浏览器中的 GUI 查看和管理您的存储库...还有一个git range-diff命令,它提供了一个用于比较提交范围的简单界面。git diff 工具还有更多功能(以及使用您自己的差异检查器的选项),因此我建议您查看 文档。...11、Git 责备用于git blame显示特定修订和行的作者信息一个经典的,快速找出谁写了特定代码行(也就是你的哪个同事应该为这个错误负责!)。...Reflog 允许您返回提交,即使它们没有被任何分支或标记引用。默认情况下 reflog 使用HEAD(您当前的分支),但您可以在任何 ref 上运行 reflog。...您还经常需要能够根据各种参数过滤日志,其中最有用的是:git log --search=""- 搜索特定代码更改的日志git log --author=""- 仅显示特定作者的日志

    85900

    第四十五章:基于SpringBoot 设计业务逻辑异常统一处理

    在我们平时的项目研发过程中,异常一般都是程序员最为头疼的问题,异常的抛出、捕获、处理等既涉及事务回滚,还会涉及返回前端消息提醒信息。那么我们怎么设计可以解决上面的两个的痛点呢?...,当然这跟请求接口正确返回的格式是一样的,只不过字段内容有差异。...@ResponseStatus配置了返回的状态值,因为我们遇到业务逻辑异常前端肯定需要的不是500错误,而是一个200状态的JSON业务异常描述。...测试 异常相关的编码完成,下面我们来创建一个测试的控制器模拟业务逻辑发生时,系统是怎么做出的返回?...", "data": null } 而在控制台由于我们编写了日志信息,也同样有对应的输出,如下所示: Hibernate: select exceptioni0_.ei_id

    1.8K40
    领券