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

用一简单代码讲述一个程序员悲伤故事?要讲十个!

程序悲伤故事难道不应该是: 别人老板晚上带他出去耍,你老板半夜催你改代码; 别的程序员工资高、待遇好,而你只是血压高、心态好…… ?...1、刚开始学编程时候,课堂上老师说的话必须尊为圣旨,老师说“写好注释是一个工作习惯”,所以就有了下面的代码,请注意看那一组组工工整整、清清楚楚123456……花去了比程序本身还要多时间。...1、刚开始学编程时候,课堂上老师说的话必须尊为圣旨,老师说“写好注释是一个工作习惯”,所以就有了下面的代码,请注意看那一组组工工整整、清清楚楚123456……花去了比程序本身还要多时间。...后来秉持着此种良好注释习惯,工作了不到一个月,就被老板约谈了,约谈理由竟然是工作效率低?!找谁说理去?...6、学生时代犯个拼写错误,也许老师会帮你指出纠正,但是工作后就没那么幸运了,所以一个带拼写检查编辑器还是很有必要,否则没有仔细检查拼写就将代码交上去,可能很快就可以卷铺盖回家了。 ?

45320

Try-Catch包裹代码异常后,竟然导致了线事务回滚!

导读:一被try-catch包裹后代码线稳定运行了200天后忽然发生了异常,而这个异常竟然导致了线事务回滚。这期间究竟发生了什么?日常在项目过程中该如何避免事务异常?...而造成事务回滚,竟然是一被try-cath包裹后代码,一已经在线稳定运行了200天代码,稳定到我们已经把它遗忘了。...为了能够开始今天文章,就这么瞎编吧,总比以“一个没有头发程序员”开头好)。当他告诉try-catch代码造成线事务回滚后,温柔、耐心地对他说:“滚一边去,没看我正忙着吗?”...,然后他给我甩出了一代码,用猥琐又真诚眼睛告诉,他说是真的。...看来程序生涯,又可以持续一时间了!

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

VS 调试技巧

1.编译型错误 2.链接型错误 3.运行时错误 前言 在我们日常使用中VS,我们经常会遇到很多错误,这些错误让我们很头疼,我们把这些错误叫做bug,但是你知道为什么把这些错误叫做bug呢,还有当我们遇到这些...调试⼀个程序,⾸先是承认出现了问题,然后通过各种⼿去定位问题位置,可能是逐过程调试,也可能是隔离和屏蔽代码⽅式,找到问题所位置,然后确定错误原因,再修复代码,重新测试。...Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序程序员在写代码时候,需要经常性调试代码,就将这⾥设置为 debug ,这样编译是debug 版本可执⾏程序...当程序员写完代码测试再对程序进⾏测试,直到程序质量符合交付给⽤⼾ 使⽤标准,这个时候就会设置为 release ,编译就是 release 版本可执⾏程序,这个 版本是⽤⼾使⽤,⽆需包含调试信息等...断点就是让程序停下来点 F10 逐过程,通常处理一个过程,一次过程可以是一个函数调用或者一条语句(函数是个过程) F11 逐语句,就是每次都执行一条语句,但这个快捷键可以帮助我们进入函数

300

使用bash编写Linux shell脚本--调试和版本控制

一个程序报告没有错误,当我运行它时,黑白色桌面上出现了竖条, 软盘被退出来了,计算机然后从新启动。...不幸外壳脚本和 C 程序一样难于调试,如同 C 一样,外壳命令也是假设你已经知晓了你正在做什么,只有在实际运行中有错误,它才会抛出一个错误提示。...,术语 token 表示一个关键字或另一文本在错误代码附近。...在最简单脚本中有了这个选项,就不用使用错误处理了。例如一个错误发生在子外壳中,他不会中断脚本。 如果一个变量没有定义,选项“ -o nounset ”会中止脚本并报告一个错误。...虽 然外壳脚本程序也许不会象作业那样使你屏幕布满竖线并退出你软盘,但是它们会很难调试。了解一些调试中用到命令,会使你调试更加容易并能更快 找到和修复你脚本程序

2.9K111

勒索预警 | 放假之前,EvaRichter勒索病毒来袭

等于0.1521163 X 8405.59 = 1278美元(七天之内解密价格) 此勒索病毒同样采用了高强度代码混淆技术,简单反调试技术,核心勒索病毒代码被多层封装起来了,通过动态调试,解密出外壳封装代码...继续跟踪调试,最后解密出核心勒索病毒代码,如下所示: ? 解密出完整勒索病毒核心是一个PE文件,采用Delphi语言进行编写,如下所示: ? 查看入口代码,如下所示: ?...从勒索病毒核心代码发现这款勒索病毒与之前分析过一款新型勒索病毒GermanWiper创建互斥变量一模一样,都是HSDFSD-HFSD-3241-91E7-ASDGSDGHH,GermanWiper...勒索病毒核心代码同样是使用Delphi语言编写,于是将两款勒索病毒核心Payload代码进行对比,如下所示: ?...GermanWiper勒索病毒上个月流行过一时间,这款勒索病毒后面会不会大面积传播,需要持续关注与跟踪,以前做黑都喜欢在放假时候搞点事情,因为对于做黑是没有休息日,而且越是放假,越容易搞一些活动

70320

张三、如花、王婆带你了解Shell命令以及运行原理

而是通过kernel外壳程序,也就是所谓shell,来与kernel沟通。如何理解?为什么不能直接使用kernel?...不懂 张三、王婆、如花故事 张三是一个某985双一流大学研究生毕业码农,人高马大,目前已经就业于某知名公司,还是有所成就。虽然张三在学业和事业上有所成就,但是不善于和异性聊天。...张三爹来问王婆的话,王婆也就可以把责任推给实习生了。 于是,这件事久久不能摆平… 故事结尾留给读者自己想象吧,欢迎各位读者评论区发挥想象,帮小编完成后续。...外壳程序是介于用户和操作系统间软件,是命令行解释器:将使用者命令翻译给核心(kernel)处理。同时,将核心处理结果翻译给使用者。 为什么要有外壳程序?...常用bash就是这个操作,bash也就相当于王婆。 什么是Shell程序? Shell程序外壳程序统称,相当于媒婆,bash是其中一个,相当于其中一个媒婆,即王婆。

9210

一个问题引发对文件描述符研究

故事起因 一次一个同事给我发了一简单代码,问我这段代码有什么问题?...又仔细看了下代码,发现err处理代码块后使用了f.Name(),这个是存在问题,因为当open发生错误时,返回文件句柄则为nil,下文直接使用f.Name()。...可以同样程序一个循环数设置3000,一个设置2000,如果结论成立的话,那么后运行一个一定会出错。...遗留问题 [ddddd.png] 在看进程关联文件时,发现有多出以上四个,这些有什么?...这个问题作为一个遗留问题抛在这里,等待有心去探索 总结 通过以上试验和验证,在程序打开文件后,记得close 完善后最终处理代码 package main import ( "fmt" "os

42910

深入理解编译、链接和运行(obj文件组成格式分析,可执行文件组成格式分析)

那么我们用高级语言编写程序最终是怎么成为计算机可以识别的机器语言。在linux系统上,当我们输入./a.out并进行回车时发生了什么。作为一名程序员,这是我们需要知道。...128MB保留区,所以会出现错误。...测试环境:ubuntu18.04 + gcc 测试工具:逆向和反汇编工具 objdump和readelf 测试代码: int gdata1 = 10; //.data int...下面分析.obj文件组成格式 3.objdump -s main.o 4.readelf -S main.o看当前二进制可重定位文件中所有的。...(2.2)分析测试代码,得出由六个变量位于.bss,但实际上在.bss中大小只有20个字节即只记录了5个变量,那么还有一个变量为什么不记录,它在哪里? 答:这里涉及到强弱符号,我会单独写出来。

1.5K30

理解Linux用户态和内核态

这些系统调用组成了用户态跟内核态交互基本接口,例如:用户态想要申请一块20K大小动态内存,就需要brk系统调用,将数据指针向下偏移,如果用户态多处申请20K动态内存,同时又释放呢?...库函数根据不同标准也有不同版本,例如:glibc库,posix库等。 Shell Shell顾名思义,就是外壳意思。就好像把内核包裹起来外壳。它是一种特殊应用程序,俗称命令行。...用户运行一个程序,该程序所创建进程开始是运 行在用户态,如果要执行文件操作,网络数据发送等操作,必须通过write,send等系统调用,这些系统调用会调用内核中代码来完成操作,这时,必 须切换到Ring0...异常: 当CPU在执行运行在用户态下程序时,发生了某些事先不可知异常,这时会触发由当前运行进程切换到处理此异常内核相关程序中,也就转到了内核态,比如缺页异常。...外设中断: 当外围设备完成用户请求操作后,会向CPU发出相应中断信号,这时CPU会暂停执行下一条即将要执行指令转而去执行与中断信号对应处理程序,如果先前执行指令是用户态下程序,那么这个转换过程自然也就发生了由用户态到内核态切换

2.9K20

i++和++i并没有区别,字节码告诉你 | Java Debug 笔记

我们也肯定在程序中因为两者使用不当导致我们程序计算错误问题描述====问题是这样!本着先加后加原则就开始盲目的背诵记忆了。一直认为i++ 和++i他们执行就是不同。...我们就是要抛开外壳看本质东西这段代码应该很简单明了了。我们通过编译查看下他字节码吧。编译字节码方式很多你可以直接通过javac 。 这里通过idea插件来生成了。...因为本地变量表第一个默认是args 。就是主程序当我看了++i字节码后发现跟i++执行一模一样 。 最终在本地变量表中i都是2 。...我们得和赋值结合起来看才能看出中间端倪上面是两代码和两代码对应字节码。内部却别就是与i++是先ILOAD再IINC .++i是先IINC在ILOAD。...最终导致本地变量表i在两程序中结果不一样总结==有时候从别人那学到总结经验仅仅是经验,并不一定能够说明内部深层次东西。i++先赋值后加1 。

14710

PHPCLI命令行运行模式浅析

CLI 输出没有任何头信息 CLI 在运行时,不会把工作目录改为脚本的当前目录 CLI 出错时输出纯文本错误信息(非 HTML 格式) 强制覆盖了 php.ini 中某些设置,因为这些设置在外壳环境下是没有意义...// php -r "echo 121;" // 121 也就是简单加个 -r 参数,后面跟上一代码,这段代码必须用引号括起来。而且这个引号更推荐使用单引号,后面的例子会展示为什么用单引号更好。...其实很好理解,双引号里面的$会让系统 sh/bash 以为这是个变量从而进行变量参数替换。所以更推荐使用单引号进行日常简单测试。 第二代码能够正常打印传递进来参数内容。...第三行代码则是需要传递带 - 符号内容时,需要先给一个 -- 参数列表分隔符。...这是因为 -xxx 内容会让 php 命令认为这是一个命令选项而不是参数,所以我们添加一个分隔符就可以让分隔符之后参数内容原样传递进代码中。

1.7K21

App 可能是山寨

一定程度上,App 市场繁荣催生了山寨App。在应用商店中,随手一搜 12306 / 火车票 这些词,出来结果让人眼花缭乱,而且不止一个软件。...即便被举报,下架App也不会花力气整改或申诉,而是采取“改头换面”迂回方式,通过换图标、换文案、换应用截图、换开发者账号等重新提交上架。其次是技术门槛低,进一步催生了黑灰。...App 加固与行业合规双管齐下毋庸置疑,山寨App 治理是一个复杂过程,需要应用商店、App 自身以及使用者共同努力。就应用商店而言,需加大审核力度,力求不放过每一个App 安全审查。...对 App 进行完整性保护,防止应用程序代码及资源文件被恶意篡改。...App不被注入攻击,抵御恶意侵入,并对App应用中代码进行完整性校验,发现代码被篡改,App应用进行自动退出运行,防止App应用中代码逻辑被篡改,以此进行动态保护App代码安全性。

46020

在软件工程师生涯中犯下七个错误

几个月后,那个应用程序业务需求发生了一些变化,这导致表模式也发生了变化,于是不得不去修改 ORM。修改过程非常痛苦,以至于我将它全部扔掉了,换成了一个强类型数据集适配器。...但是随着代码增长,那些自制列表本身就变成了一个个怪物。因为可以很容易地修改代码,所以我会经常介入并改变一个方法行为以适应需求,这又导致了后来诸多混乱和错误。...通过这种方式,你可以只关注那些产生错误输出输入,并从那里开始对其进行测试。 7没有单元测试 曾认为应用程序是如此稀松平常,以至于通过手工测试就能轻松覆盖。...以为单元测试是为了一些大而复杂事情准备,而不是那种小型应用程序。这样做结果是应用程序变成了一个怪物(没有关注点分离、难以重构和完全无法维护代码库)。...曾经有一时间,害怕对代码进行哪怕是最轻微修改,因为任何更改都可能会,也可能不会导致破坏性更改。有几次,一个神秘问题突然冒出来,追究其根本原因却发现是几个月前引入一个重大更改。

56310

单核QPS提升10倍,亿级日调用!QQ频道前端网关升级之路

在排除了运营活动和压力测试可能性后,我们通过分析流量特征(如 IP、UA 等信息)迅速识别出了黑攻击存在。随即,安全团队介入处理,成功保障了业务服务稳定运行。...背景 作为 QQ 频道核心入口,发现页小程序对性能要求极为苛刻,绝不能容忍任何形式超时现象。 然而,超时还是发生了! 问题分析 哪个节点出了问题?为什么没有触发告警?...教训 基于指标的告警固然重要,基于日志告警也不能少(敏感度更高); 正是由于这个问题,,催生了 STGW 后建设业务网关想法; 至此,监控能力基本补齐: 3.3 可用性:发布自检 测试环境不稳定影响开发...以发布为例,分享下 人也是可以作为程序执行器 。 把一次发布作为考察对象,按照一套固定思考/行动步骤,来最大程度降低发布问题。...为了更快解决问题,决定立即寻求相关开发团队帮助: 可能并不是应用代码存在问题,也稍微放心了点。 但是,运行一时间后,重建pod 再次出现了上面的报错。

33711

代码测试意味着完全消灭了Bug?

代码将所有内容抽象到开发者难以想象发生了什么程度,只是为了向原本非常简单函数中添加“单元测试”。DHH 称这种为测试引起设计损坏。 测试只是确保用户程序正常运行工具之一。...在此,推荐开发者可以查阅一本使用广泛测试书籍,Robert C.Martin 编写《Clean Code》,其中部分内容是为了响应更复杂代码而写,在这些程序中,你阅读了 1000 行代码,但仍然不知道发生了什么...请注意,代码并非完全没有经过测试,因为我们确实进行了集成测试。 重构版本要复杂得多。除了花了两周时间将一工作代码重构成另一工作代码(另一篇文章主题)之外,并不相信它实际上要好得多。...观点是,单元测试和 TDD 不是最后一个问题解决方案,他们不应该不加区别的使用。这就是为什么频繁使用诸如“some”和“often”之类单词。 测试框架 这让想到了测试框架主题。...代码越复杂,调试起来就越困难。 程序员应该期望所有代码(包括测试代码)都要经历几个调试周期。请注意,对于调试周期,并不是说“你需要修复代码中存在错误”,而是“需要查看此代码来修复错误”。

45710

代码和坏代码

这里举一个极端例子:对于C语言来说,“;”可作为语句分割符,而“缩进”和“换行”对于编译器来说是无用,所以完全可以把一C语言程序都“压缩”在一行内。...在很多年前,所读软件工程方面的教科书就告诉,编码时间一般只占一个项目所花时间 10%。...曾说过一句比较有趣的话: “如果一个从业者告诉你,他大部分时间都在写代码,那么他大概率不是一个高级软件工程师。” 那么,软件工程师时间都花到哪里去了呢?软件工程师时间应该花在哪里呢?...研发前期多投入,收益更大 关于软件研发,首先我们需要建立一个非常重要观念。 在研发前期(需求分析和系统设计)多投入资源,相对于把资源都投入在研发后期(编码、测试等),其收益更大。 这是为什么呢?...而如果在代码中做修改,不仅会涉及这些主要逻辑,而且会涉及那些在文档中不会出现细小逻辑。对于一程序来说,任何一个逻辑出现问题,程序都是无法正常运行。 4.

79920

代码和坏代码

这里举一个极端例子:对于C语言来说,“;”可作为语句分割符,而“缩进”和“换行”对于编译器来说是无用,所以完全可以把一C语言程序都“压缩”在一行内。...在很多年前,所读软件工程方面的教科书就告诉,编码时间一般只占一个项目所花时间 10%。...曾说过一句比较有趣的话: “如果一个从业者告诉你,他大部分时间都在写代码,那么他大概率不是一个高级软件工程师。” 那么,软件工程师时间都花到哪里去了呢?软件工程师时间应该花在哪里呢?...研发前期多投入,收益更大 关于软件研发,首先我们需要建立一个非常重要观念。 在研发前期(需求分析和系统设计)多投入资源,相对于把资源都投入在研发后期(编码、测试等),其收益更大。 这是为什么呢?...而如果在代码中做修改,不仅会涉及这些主要逻辑,而且会涉及那些在文档中不会出现细小逻辑。对于一程序来说,任何一个逻辑出现问题,程序都是无法正常运行。 4.

88710

代码要想写得好,品位必须提一提!

这里举一个极端例子:对于C语言来说,“;”可作为语句分割符,而“缩进”和“换行”对于编译器来说是无用,所以完全可以把一C语言程序都“压缩”在一行内。...在很多年前,所读软件工程方面的教科书就告诉,编码时间一般只占一个项目所花时间 10%。...曾说过一句比较有趣的话: “如果一个从业者告诉你,他大部分时间都在写代码,那么他大概率不是一个高级软件工程师。” 那么,软件工程师时间都花到哪里去了呢?软件工程师时间应该花在哪里呢?...研发前期多投入,收益更大 关于软件研发,首先我们需要建立一个非常重要观念。 在研发前期(需求分析和系统设计)多投入资源,相对于把资源都投入在研发后期(编码、测试等),其收益更大。 这是为什么呢?...而如果在代码中做修改,不仅会涉及这些主要逻辑,而且会涉及那些在文档中不会出现细小逻辑。对于一程序来说,任何一个逻辑出现问题,程序都是无法正常运行。 4.

30630

Vbs 禁用启用网卡

Vbs 禁用启用网卡 在实际工作中,经常碰到需要通过脚本启用禁用网卡情况,在网上找了一个脚本,实际是通过模拟键盘操作来启用禁用,但对于多种系统和比较复杂情况操作性不好。...还有一种思路,就是利用netsh命令实现,但是netsh命令必须得到网卡名字,不同服务器,网卡名字并不一样。 于是产生了一个思路,利用vbs得到网卡名字,然后调用netsh命令启用禁用网卡。...,但是貌似禁用网卡不能得到,需要进一步测试    Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapter...;这等效于调用 Cmd.exe(它当然会打开一个命令窗口)。...那为什么不直接调用 Cmd.exe?是这样,假设您计算机运行 Windows 98。在这些计算机上,通过运行 Command.com 来调用命令外壳,因为没有 Cmd.exe。

1.9K20

阿里架构师谈谈架构和如何成为一个Java架构师

要知道最时尚并不一定是最好 为什么M1A2和Apache直升机中A8处理器或最新奔腾处理器没有? 实用,测试是最好! 成功软件又是怎么样呢 我们谈论软件架构。 该架构最终体现是一款软件。...B时哪个数据发生了变化。...仍然发现很多问题。这在中国是一个普遍问题:我们程序员经常不做程序,但更多时候他们在做业务逻辑并成为某个领域商人。 当然,我们程序员在他们职业生涯头三年和四年都会为某个领域编写代码。...找到一名程序员来开发和招聘一名建筑师并不困难。这很难......呃,认为我们需要考虑一下,如果采用技术路线,缺少什么,如何补充它,还有什么应该注意? 科学技术是第一生力。...所谓六西格玛管理方法论是六西格玛一个。 “技术人才是当前企业第一生力。”让我们看看哪些公司可以发财。

88290
领券