程序员

说说怎么写clean code

时光怂恿深爱的人放手 提交于 2020-02-22 21:04:36
  前两天参加了公司组织的一个培训,主题是“如何写出好的代码” ,刚看到这个主题,第一反应是又不知道是哪个培训机构来忽悠钱的!老大安排了,就去听听呗。   说实在的,课程内容没有什么新鲜的东西,就是讲讲如何发现代码的坏味道,如何重构函数,如何修改遗留系统的代码。这些东西从本科到研究生到实习到正式工作,也不知道看过多少听过多少了,话说本科的课程设计也和代码重构相关,私底下重构和设计模式方面的书也没少看,感觉应该没啥好培训的,不过两天的课程听完,打心眼里觉得来对了,意犹未尽!   课程结束了,感觉需要把这两天课程的内容回顾总结一下,加深一下印象。   关于代码质量。这是一个永远萦绕在程序员心头的问题,特别是在敏捷团队,code quality更是一个时常听到的词语,静态扫描,单元测试,持续集成平台上永远少不了这些东西,感觉有了这些工具,能看到一些报告,就对代码质量有交代了。其实呢,发现实际根本不是那么回事,规则流程有了,工具平台有了,代码质量并没有提高,反而,因为维护UT占了大量的时间,代码写的更随意,更不规范了。培训老师说了一句话挺对的“代码重构是个良心活”,一段代码很烂,不重构能work,重构好了,没人知道,重构出了问题,反而会引来各种抱怨,谁去干这吃力不讨好的事儿,系统中没用的老代码都不想删,何况去动正在运行着的代码呢。所以说,要想提搞代码质量,靠程序员的良心是不太行得通的

好程序员Web前端教程入门之MySQL命名规范及使用技巧

假如想象 提交于 2020-02-22 19:47:49
  好程序员Web前端教程入门之MySQL命名规范及使用技巧,不懂MySQL的前端不是一个好前端,作为Web应用方面最好的关系数据库管理系统应用软件之一,MySQL体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。接下来的好程序员Web前端课程就给大家简单分享MySQL命名规范及使用技巧。   命名规范 1、库名、表名、字段名必须使用小写字母,并采用下划线分割。 a)MySQL有配置参数lower_case_table_names,不可动态更改,Linux系统默认为0,即库表名以实际情况存储,大小写敏感。如果是1,以小写存储,大小写不敏感。如果是2,以实际情况存储,但以小写比较。 b)如果大小写混合使用,可能存在abc、Abc、ABC等多个表共存,容易导致混乱。 c)字段名显示区分大小写,但实际使⽤用不区分,即不可以建立两个名字一样但大小写不一样的字段。 d)为了统一规范, 库名、表名、字段名使用小写字母。 2、库名、表名、字段名禁止超过32个字符。   库名、表名、字段名支持最多64个字符,但为了统一规范、易于辨识以及减少传输量,禁止超过32个字符。 3、库名、表名、字段名禁止使用MySQL保留字。   当库名、表名、字段名等属性含有保留字时,SQL语句必须用反引号引用属性名称,这将使得SQL语句书写

程序员的出路之一

浪尽此生 提交于 2020-02-22 12:54:47
就现在经济大环境而言,很不乐观,程序员的日子也很不好过,无论是还在找工作的、还是已经入职多年、哪怕做到项目经理技术经理的,压力都异常巨大,似乎处处充满危机。但是,仔细分析一下,出路还是有的,甚至解决温饱、过上有房有车没贷款的生活也是很可能的。首先,在如今这个浮躁的社会,大多数人的心态也是浮躁的,只要你能潜下心来,深入研究某个技术,有了一技之长,温饱问题肯定就可以先解决了。 1.一技之长 新技术层出不穷,而内核的精髓的东西却变化不大,就像.NET,从VS2003到VS2012,已经有10个年头,VS的版本不断更新,而.NET内核的最新版本也才4.0,所以,作为程序员,我们要多掌握内核的东西,精髓的东西。 我们的学习积累毛病在于:贪多、贪全、而不够深入。对于很多技术,我们都很有兴趣,对于刚兴起的技术,也紧紧跟随。但是,几乎都是蜻蜓点水、一知半解。回头想想,我们似乎什么都会一点,什么类型的项目都可以做,B/S的、C/S的、数据库的、分布式的,等等,但是,却不敢说,在某某方面,我的水平已经超越了圈中同类型的80%的人。只是我能做的,大家都会做,而且,我也没有把握比别人做得更好。 必须要让自己有价值,而 自己的价值在于不可替代性或是难以替代性 。如果,随便找个程序员就能把你replace掉,你的价值就很低廉了。如果在你负责的某个方面,只有20%的人超越你,那你的价值、你的重要性就凸显出来了

程序员的出路之一

人盡茶涼 提交于 2020-02-22 12:54:13
转自: http://blog.csdn.net/zhuweisky/article/details/8862188 就现在经济大环境而言,很不乐观,程序员的日子也很不好过,无论是还在找工作的、还是已经入职多年、哪怕做到项目经理技术经理的,压力都异常巨大,似乎处处充满危机。但是,仔细分析一下,出路还是有的,甚至解决温饱、过上有房有车没贷款的生活也是很可能的。首先,在如今这个浮躁的社会,大多数人的心态也是浮躁的,只要你能潜下心来,深入研究某个技术,有了一技之长,温饱问题肯定就可以先解决了。 1.一技之长 新技术层出不穷,而内核的精髓的东西却变化不大,就像.NET,从VS2003到VS2012,已经有10个年头,VS的版本不断更新,而.NET内核的最新版本也才4.0,所以,作为程序员,我们要多掌握内核的东西,精髓的东西。 我们的学习积累毛病在于:贪多、贪全、而不够深入。对于很多技术,我们都很有兴趣,对于刚兴起的技术,也紧紧跟随。但是,几乎都是蜻蜓点水、一知半解。回头想想,我们似乎什么都会一点,什么类型的项目都可以做,B/S的、C/S的、数据库的、分布式的,等等,但是,却不敢说,在某某方面,我的水平已经超越了圈中同类型的80%的人。只是我能做的,大家都会做,而且,我也没有把握比别人做得更好。 必须要让自己有价值,而 自己的价值在于不可替代性或是难以替代性 。如果

程序员和青蛙公主

早过忘川 提交于 2020-02-22 12:46:22
一个人走在森林中,突然在一个树桩后面传来支吾的哭救声。 他靠过去,看见一个青蛙坐在泥里。 青蛙抬头看着他说,“我实际上是一个美丽的公主,如果你亲我一下,我就能变回我的真身,而且永远成为你的人。” 没有交谈,这个人把青蛙拿起来,继续走路。 几分钟后,青蛙开始喊叫,“嗨,兄弟,也许你没听见我说的——我是说,如果你亲我一下,我就能变成公主。这不是你梦寐以求的吗?” 被弄烦了,这个人把青蛙塞进了衣服口袋。 震惊,青蛙在这个人的口袋里哭喊,“怎么回事?我是个公主!你只需要亲我一下!” 口袋被打开,这个人往里面瞧,说,“听着——我是个程序员。我没有时间交女朋友。但一个会说话的青蛙却是个很酷的东西。” 笑话二 一个由10个程序员组成的小组被派去学习项目管理课程。老师进教室后提了一个问题: “你在一个开发航空控制系统的软件公司工作。一天,你出差。当登机后,你看到一个铭牌上说这个飞机使用的飞行控制软件的是由你的团队开发的一个Beta版的。这个时候,你们谁想下飞机?” 9个程序员都举起了手。老师看着第十个程序员,问,“为什么你还愿意呆在机上?” 这第十个程序员说,“如果这个软件是我们团队开发的,飞机根本就飞不起来,更不会坠毁了。” 来源: https://www.cnblogs.com/dxh2016/p/5765124.html

IT从业者的职业道路(从程序员到部门经理) - 项目管理系列文章

对着背影说爱祢 提交于 2020-02-22 09:58:09
十年前,笔者还是一个刚毕业的大学生,对IT业只是停留在学校的编程知识领域。刚出社会,有很多需要学习的地方。在这十年间,笔者经历了程序员,技术经理,项目经理,部门经理等职位。本文就是要说说如何从程序员到部门经理的经验。 对于程序员,按笔者在《 软件项目角色指南 》一文中的称呼,应该称为软件工程师。大家可以去看看该系列中对软件工程师的职责等内容,希望大家能对该角色有一定的理解。软件工程师要做的事情还是比较多的,因为在项目中可能要涉及到很多方面的内容,所以,软件工程师往往身兼多职。软件工程师在项目中的作用也是很大的,因为项目最基本的编码工作就是由他进行处理,所以项目的基础就是要靠软件工程师的工作来进行。软件工程师要做很多事情,一方面是编码,另一方面也要积极的学习该领域的其它知识,以补充自身的相关的知识内容。对于工作,软件工程师要兢兢业业,努力把该做的事情做好。那么,软件工程师对于知识方面该积极的进行学习,笔者就是在工作之余,努力的去看一些相关的知识,比如.NET Framework的相关的类库内容,以及一些关于C#的一些知识内容等等。对于业务,软件工程师也要从需求中去学习该领域的内容,争取对该领域做到至少是理解的程度。总之,软件工程师就是要努力学习,争取做领域方面的专家,争取向上做软件设计师、架构师等职位。 对于技术经理,笔者也做了一些总结。技术经理要积极的对领域内的技术有一定的理解

程序员一个充满可能的行业(云时代架构文章读后感09)

Deadly 提交于 2020-02-21 23:50:32
PSD,即poor、smart、desire,翻译成中文即:出身贫寒、聪明能干、渴望致富。早期一些投资银行偏好以PSD为标准,遴选招聘人才。 实际上像华为、阿里、头条之类的公司也非常青睐于招聘PSD型人才。他们出身贫寒,父辈拼尽全力供上了大学,毕业之时,年富力强,聪明能干,同时一无所有,却又极度渴望成功,能够忍受长期加班,皮实耐操,典型如余承东。 余承东出身安徽农村,一开始读的中学最高只有初二,因为没人读到过初三。后来辗转周折到县城去读初三,因为农村户口不能读重点高中,只能去一所从来没有出过大学生的学校就读高中。三年后,他以理工科全县第一的成绩考取西北工业大学,后来又读了清华的研究生。 据余在清华演讲,他从小养成了事事争第一的习惯,甚至不惜玩命。1993年,余承东加入了刚起步不久的华为公司,25年间,从一个毫无背景的小透明到成为华为董事会成员。余的主要贡献:牵头创建华为无线部门,并做到世界第一;带领华为终端从默默无闻做到全国第一、全球第二。 华为内部有个说法:“神终端,圣无线、海屌丝、大爷软、科学家”,简单说就是终端和无线可以大块吃肉,剩下几个只能喝点汤。余承东在无线和终端都做出巨大贡献,帮助公司在激烈的市场竞争中屡建战功的同时,实现了自己人生的飞速升阶。 今年微信月活跃用户突破10亿,中国人口不过14亿,几乎覆盖了所有国内智能手机用户。 清华毕业的宿华,海龟背景的黄征

程序员

两盒软妹~` 提交于 2020-02-21 19:02:47
一、软件性能的关注点 首先,开发软件的目的是为了让用户使用,我们先站在用户的角度分析一下,用户需要关注哪些性能。 对于用户来说,当点击一个按钮、链接或发出一条指令开始,到系统把结果已用户感知的形式展现出来为止,这个过程所消耗的时间是用户对这个软件性能的直观印象。也就是我们所说的响应时间,当相应时间较小时,用户体验是很好的,当然用户体验的响应时间包括个人主观因素和客观响应时间,在设计软件时,我们就需要考虑到如何更好地结合这两部分达到用户最佳的体验。如:用户在大数据量查询时,我们可以将先提取出来的数据展示给用户,在用户看的过程中继续进行数据检索,这时用户并不知道我们后台在做什么。 用户关注的是用户操作的相应时间。 1、 架构设计是否合理 2、 数据库设计是否合理 3、 代码是否存在性能方面的问题 4、 系统中是否有不合理的内存使用方式 5、 系统中是否存在不合理的线程同步方式 6、 系统中是否存在不合理的资源竞争 来源: CSDN 作者: glamour2015 链接: https://blog.csdn.net/glamour2015/article/details/104423572

12个Java长久占居主要地位的原因

匆匆过客 提交于 2020-02-21 11:39:33
我们很容易就会遗忘那些曾经在猿群中大热而又被各种新技术掩盖直至堙灭的技术的价值。就拿COBOL这个老猿们当年所用的神器来说,就跟条死鱼一样被现代猿基本这么形容:没价值,腥臭,过时了,对你没好处。Java 作为现代猿的中坚力量在这点上可能会成为下一个COBOL。 有关JAVA的技术卖出多少本书已经是一个很久远的记忆了。现处中年时期的Java语言的用途已经不再出现在各种杂志的封面上了。JAVA从出生到现在已经19年了,应用开发圈已经开始绕着那些更有吸引力的如“Node.js”,"Objective-C","Dart","Go" 等等类似的新技术转圈了。Java? 那是Web 1.0时代的一个传说吧? 从Dice.com网站的招聘信息你就可以知道押宝在哪。跟iOS相关的开发有2500左右的招聘,Java则有17000多个。Dice的数据不一定能完美的衡量技术的价值,但是在不断推陈出新的技术推广压力下,Java职位是iOS的7倍之多可以说确实是神器了。 也许,相比把私人开发App的收入的30%分给Apple并期盼(更多的是等死)你的App有一天爬上了Top-25List,Java开发可能会给你一个更好的商业计划。但是实际上,Java一直都要面对一个比怎么玩鸟砸猪还要大的问题。那就是如何在任意平台上建立统一平台并流畅运行的问题。这样服务端程序猿,客户端程序猿

程序员的真实生活

戏子无情 提交于 2020-02-21 11:32:07
本文借用了多张动态图,以诙谐的方式,展示了 程序员 /开发人员的真实生活。文章原始版本是 西班牙语 ,由 Alex Soto 翻成了 英文版 ,再由伯乐在线翻成了中文版。    往工作环境上传东西的时候:    没有“Google 一下”,也找到了问题解决方案的时候:    没保存,就关了 IDE 的时候:    凌晨三点调代码的时候:    正则表达式返回了了预期结果的时候:    当老板告诉我,我那一直负责的模块失效了的时候:    刚修复了 Bug,我给老板演示的时候:    上传的代码,没有测试,居然也能如预期工作的时候:    市场部同事卖出东西了,来我们面前显摆的时候:    第一次用 CSS 的时候:    系统管理员给了我 root 访问权后:    辛辛苦苦折腾脚本几个小时,结果第一次运行,就这样的……    当我度周末,而其他人在办公室修复问题的时候:    当老大发现某人解决了一个重大 Bug 的时候:    如果项目在截止日期前完工,当我收到一笔额外报酬的时候:    当 XX 明明在周五还好好的,结果到周一就不行了的时候:    无 需求文档 ,就要我去开发的时候:    “测试是给那些不知道肿么写代码的人”,当老大和我说这话的时候:    当我更新数据库脚本,结果发现我把数据库删除了的时候:   各位程序员/开发人员,你们有过上面这些经历么?我是希望会有