程序员

偶然性不可重现BUG怎么处理?(转帖)

若如初见. 提交于 2020-02-20 23:08:47
一、一定要提交!! 1. 记得有这么个缺陷,以后再遇到的时候可能就会了解发生的原因。 2. 尽力去查找出错的原因,比如有什么特别的操作,或者一些操作环境等。 3. 程序员对程序比测试人员熟悉的多,也许你提交了,即使无法重新,程序员也会了解问题所在。 4. 无法重现的问题再次出现后,可以直接叫程序员来看看问题。 5. 对于测试人员来说,没有操作错误这条.既然遇到,就是问题。即使真的操作错了,也要推到程序员那里,既然测试人员犯错误,用户也可能会犯同样的错误。错误发生的时候,Tester最大。 二、程序不是测试人员写的,出问题也不是测试人员的原因。 至于无法重现,可能的原因很多,因为测试人员看到的只是程序的外部,无法深入程序内部,所以把责任推给测试人员是不对的。 测试人员的任务只是尽力重现问题,而不是必须重现!! 三、下次再遇到的时候,拉他们来看就可以了。 因为问题如果无论如何无法重现,程序员确实也没有什么好的解决方法。 而且此类问题即使程序员说修改了,测试员也没有好的方法去验证是不是。 : ) 四、你可以告诉程序员,测试过程是没有错误的。 测试人员只是检查程序中可能存在的问题,虽然测试人员使用一定的手段方法努力去覆盖所有的情况,但这些都是理论的推测。在实际中,可能因为人员、环境、配置等种种原因出现各种各样的问题,在测试人员这里发现问题是公司内部的事情,程序发到外面可就是公司的形象问题了

最受Linux程序员欢迎的7个代码编辑器的介绍及下载地址

泄露秘密 提交于 2020-02-20 19:25:11
Linux平台上的代码编辑器太少了,Linux程序员经常抱怨,自从他们使用了免费开源的系统平台后,作为一名程序员,却并没有在代码编辑器上得到足够的重视。下面我们分享了7个最受Linux程序员欢迎的代码编辑器,继续在编程的路上前行吧 Linux程序员经常抱怨,自从他们使用了免费开源的系统平台后,作为一名程序员,却并没有在代码编辑器上得到足够的重视。他们往往会认为Linux平台上的代码编辑器太少了,以至于影响他们的编程工作。但是事实并非如此,在Linux平台上有太多的代码编辑器供你使用了,下面我们分享了7个最受Linux程序员欢迎的代码编辑器,继续在编程的路上前行吧! 1、Eclipse Eclipse是一款很酷的开源代码编辑器,同时它也是最受程序员亲睐的代码编辑器之一,它拥有代码高亮和智能提示等强大的功能。在Eclipse中,你可以完全胜任以下编程语言的工作——Python, R, Ruby, JavaScript, Natural, Lasso, C, C++, COBOL, Scheme, Clojure, Groovy等等,它也是非常著名的Java集成开发环境,甚至提供了对Java 8的支持。在一些Web开发IDE特性的帮助下,你可以非常方便地对代码文件进行组织和访问。 下载网址: https://www.jb51.net/softs/143046.html 软件名称:

程序员,怎么就成了一碗青春饭?

不想你离开。 提交于 2020-02-19 10:55:40
青春饭,这个现象在许多行业都存在,但在程序员身上显得尤为突出,大龄程序员普遍会遭遇晋升天花板,薪酬待遇上涨乏力,在就业市场散失竞争力。在经济周期、贸易战等因素的影响下,经济增长放缓,行业泡沫破裂,资本寒冬降临,大龄程序员突然成了不受人待见的老菜帮子。 刚过去的 2019 年缩编裁员新闻不断,阵阵寒意袭人,同为程序老兵的我感受非常真切,身边不少朋友都经历了裁员风波,到底是什么原因让程序员变成了青春饭呢?探讨它不是为了贩卖焦虑,而是设法弄楚问题背后的原因,唯有这样才能消除焦虑、冷静应战,最终化解问题,否则就只能坐以待毙了。结合过往的真实经历,接下来老兵哥将跟大家来聊一聊青春饭背后的原因: 1. 行业就业人口净流入 1.1 入口流量大的原因 行业人才需求量大:相对于他行业,IT 属于朝阳产业,前后也就几十年发展史。从个人电脑的诞生开始,到互联网的普及,再到互联网+ 变革赋能各行各业,虽然中间发生过泡沫破裂,但行业基本上都处于上升期,发展需要大量的人才。尤其在云计算、大数据、区块链、人工智能和物联网等热点的推波助澜下,这些年诞生了一批巨无霸和独角兽,学校、培训机构往 IT 行业输送了大量人才,同时也催生了无数泡沫。 薪酬待遇相对较高:供不应求下 IT 行业的薪酬比其他行业高不少,水往低处流,人往高处走,高收入吸引着年轻人源源不断地加入。老兵哥当年跨专业考研加入码农大军,除了对 IT

如何写好代码

£可爱£侵袭症+ 提交于 2020-02-18 17:09:28
内容提纲: 树立正确的职业观 编码与设计 编程价值观 什么是好的代码 代码的坏味道 如何重构 一、树立正确的职业观 1)写代码这份工作,可以干多久? 问:是吃青春饭的玩意 答:我马上就不编码了,没意思! 甲:你工作多久了? 乙:六年吧! 甲:靠,六年了,你还在写代码啊? 乙:汗。。。。。。 2)写代码的,就是软件蓝领? 甲:最近,混得怎么样?听说,你还在写代码啊? 乙:滚,你才在写代码呢,你全家都在写代码! 3)写代码的,路在何方? 不要 被 成为项目经理,不要 被 成为架构师 其实,我们可以一直在编码! 二、编码与设计 1)设计高于代码? 甲(架构师):这个设计我已经全部完成了,你们编码吧!这个星期完成! 乙们:大哥,一个星期搞不定啊! 甲:为什么? 乙们:这个设计,有点好像问题啊??按照你的设计,有很多细节,没考虑到啊。 甲:细节?那是你们程序员的事情。我是做架构的! 乙们:无语了:cry::cry::cry:(再问就继续被鄙视了) 2)最好的设计经常是在编码阶段产生的 编程前做设计这种思路是没错的 , 然而设计后不应该就认为该模型就是任务的最好设计 . 你会发现最好的设计是你在编码阶段 , 一步一步逐渐形成的 。 3)真正的牛人是怎么说的: 设计看做软件开发的关键环节, 而把编程看做机械式的低级劳动 。设计就像画工程图纸而编码就像施工 。但是这是错误的 !!!!!

Think in SAS

孤人 提交于 2020-02-18 09:57:33
本文在Creative Commons许可证下发布 首先SAS 可以作为一门职业 从实际的角度来说,有一个工种就叫做SAS程序员(SAS Programer, 或叫做Statistical SAS Programmer、Statistical Analyst)。在全球最大的求职网站 www.monster.com ,分别以SAS等作为skill关键词,搜索结果如下(测试时间:2010-04-13,你现在看到的会有细微的差别): 1645 SAS jobs 577 Matlab jobs 329 SPSS jobs 87 Fortran jobs 59 STATA jobs 59 Maple jobs 24 Mathematica jobs 这是英语世界的大致情况。说说我们身边的机会。SAS使用者大多集中在医药、金融等行业。现在国际上的大药厂(辉瑞、拜耳、诺华,……)纷纷在中国开研发中心,对生物统计师(Biostatistician,包括统计师和程序员。程序员就是SAS程序员,而SAS编程也是统计师的基本要求之一)的需 求渐长。在金融领域,拿我稍熟悉的信用评分领域来讲,熟悉SAS和数据挖掘的人才也很短缺。另外,广泛的机会还能在国内如火如荼的互联网公司和通信行业找到。 其实,即使不把SAS作为一门职业,对一份分析类的工作,你简历中出现SAS也会比出现其他类似的东西(Excel、……

程序员成长工具包3

拈花ヽ惹草 提交于 2020-02-18 07:23:28
程序员成长工具包 第3期–思维导图与流程图工具 链接: 进入 程序员需要对产品规划有绝对清晰的思路,思维导图与流程图类的工具可以帮助程序员梳理思路,理清逻辑,从而辅助思考,让事情变得更简单。 思维导图 1、思维导图也叫心智图,是一项流行的全脑式学习方法,用来表示词,思路,任务或其他与围绕着一个中央关键词或想法项目的示意图。 2、XMind XMind可以快速理清思路,快速记录并结构化思维灵感,并且可以绘制鱼骨图、二维图、树形图、逻辑图和组织结构图等,还可以很方便的在这些展示形式之间进行转换。   软件截图 3、FreeMind FreeMind界面简单,涵盖基本创作思维导图功能,适合奉行极简主义用户进行简单的思维导图编辑与个人创作。 软件截图 4、MindManager 使用MindManager可以轻松得进行拖放操作添加图像、视频、超链接以及附件很简单,绘制软件框架也非常方便。能够将自己的思想、管理、文件整理全部可视化的展示出来。 软件截图 下面我们对三款工具做一个横向比较 总结 MindManager是Win平台最强大的,但笔者更青睐用XMind,并不是因为XMind免费,而是它方便的快捷键,能让自己的图跟上自己的思维节奏。另一点若是新手的话,XMind比较适合学习,而FreeMind则更适合团队使用。 流程图 1、流程图是一种很好用的工具,它可以给你一步一步的引导

编程真的能改变一个人的思维方式吗?

烈酒焚心 提交于 2020-02-18 00:01:32
一、正面回答 潜移默化中改变 二、日常成长 关心造轮子和用轮子,对于程序员而言,任何一件需要重复做两次的事情,就可以考虑通过写程序把它自动化处理,所以程序员们不太能够忍受重复性高的工作。以Java为例,先后有ssh、ssm、spring boot、spring cloud、dubbo等,相关的一些任务,程序员就会用现有的库,写个脚本来实现自己需要每天做的手动操作。 富有逻辑性,各种编程语言里都有的三种基本逻辑:条件(IF)、循环(For 或While)、函数 (Function),对于一些描述好像、也许、大概、很快这样的情形,包括我在内的身边程序员一般特别不能接受。包括对于研发需求、团队KPI的不确定性程序员们往往很难接受。- 擅长抽象思考,面向对象编程语言(如Java),允许程序员用更加抽象的方式来描述现实的业务逻辑,所以对于优秀的程序员而言,在日常工作中他们更关注抽象层度更高的事物本质与发展规律,不太愿意在看不到回报的事情上花时间。 必须思考异常处理,写代码就一定有bug,养成在自己的代码里面编写单元测试或者异常捕捉的习惯很有必要,良好的错误码和出错提示可以大量减少在运维环境中定位问题的时间成本。 持续优化,对于优秀的程序员而言,提高整体系统架构效率和稳定性的重要途径之一就是代码重构或者叫技术优化,编程技术和底层硬件本身在不断进化,3-5年前很复杂的技术问题,现在可能只需要1

Spring Boot已然成为Java程序员必备技能,掌握它增加面试成功率

我的梦境 提交于 2020-02-17 17:44:18
写在前面 Spring Boot作为Java编程语言的一个全新开发框架,在国外才刚刚兴起,还未得到普及使用。相比于以往的一些开发框架,Spring Boot不但使用更加简单,而且功能更加丰富,性能更加稳定而健壮。使用Spring Boot开发框架,不仅能提高开发速度,增强生产效率,从某种意义上,可以说是解放了程序员的劳动,而且一种新技术的使用,更能增强系统的稳定性和扩展系统的性能指标。 Spring Boot是在Spring框架基础上创建的一个全新框架,其设计目的是简化Spring应用的搭建和开发过程,它不但具有Spring的所有优秀特性,而且具有如下显著的特点: 为Spring开发提供更加简单的使用和快速开发的技巧。 具有开箱即用的默认配置功能,能根据项目的依赖自动配置。 具有功能更加强大的服务体系,包括嵌入式服务丶安全丶性能指标丶健康检查等。 绝对没有代码生成,可以不再需要XML配置,即可让应用更加轻巧和灵活。 Spring Boot对于一些第三方技术的使用,提供了非常完美的配合,使你在简单的使用中,不知不觉运用了非常高级和先进的技术。 虽然Spring Boot具有这么多优秀的特性,但它使用起来并不复杂,而且非常简单,所以不管Java程序开发初学者,还是经验丰富的开发人员,使用Spring Boot都是一个理想的选择。 【深入实践Spring Boot2.x】 点赞+关注

Java异常的深入研究与分析

自闭症网瘾萝莉.ら 提交于 2020-02-17 17:31:53
对于本文的内容,属于基础知识研究范畴,切勿以为读完此文就能将异常知识掌握到家。切记:操千曲而后晓声,观千剑而后识器,所以我觉得没有大量的源码阅读经验,你很难知道什么时候需要自定义异常,什么时候需要抛出异常。 异常机制概述 异常机制是指当程序出现错误后,程序如何处理。具体来说,异常机制提供了程序退出的安全通道。当出现错误后,程序执行的流程发生改变,程序的控制权转移到异常处理器。 异常处理的流程 当程序中抛出一个异常后,程序从程序中导致异常的代码处跳出,java虚拟机检测寻找和try关键字匹配的处理该异常的catch块,如果找到,将控制权交到catch块中的代码,然后继续往下执行程序,try块中发生异常的代码不会被重新执行。如果没有找到处理该异常的catch块,在所有的finally块代码被执行和当前线程的所属的ThreadGroup的uncaughtException方法被调用后,遇到异常的当前线程被中止。 异常的结构 异常的继承结构:Throwable为基类,Error和Exception继承Throwable,RuntimeException和IOException等继承Exception。Error和RuntimeException及其子类成为未检查异常(unchecked),其它异常成为已检查异常(checked)。 Error异常 Error表示程序在运行期间出现了十分严重

Java 中的异常和处理详解

孤街醉人 提交于 2020-02-17 07:55:49
简介 程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常。异常发生时,是任程序自生自灭,立刻退出终止,还是输出错误给用户?或者用C语言风格:用函数返回值作为执行状态?。 Java提供了更加优秀的解决办法:异常处理机制。 异常处理机制能让程序在异常发生时,按照代码的预先设定的异常处理逻辑,针对性地处理异常,让程序尽最大可能恢复正常并继续执行,且保持代码的清晰。 Java中的异常可以是函数中的语句执行时引发的,也可以是程序员通过throw 语句手动抛出的,只要在Java程序中产生了异常,就会用一个对应类型的异常对象来封装异常,JRE就会试图寻找异常处理程序来处理异常。 Throwable类是Java异常类型的顶层父类,一个对象只有是 Throwable 类的(直接或者间接)实例,他才是一个异常对象,才能被异常处理机制识别。JDK中内建了一些常用的异常类,我们也可以自定义异常。 Java异常的分类和类结构图 Java标准库内建了一些通用的异常,这些类以Throwable为顶层父类。 Throwable又派生出Error类和Exception类。 错误:Error类以及他的子类的实例,代表了JVM本身的错误。错误不能被程序员通过代码处理,Error很少出现。因此,程序员应该关注Exception为父类的分支下的各种异常类。 异常