程序员

人生苦短?试试Groovy进行单元测试

China☆狼群 提交于 2019-12-04 23:57:02
如果您今天正在编程,那么您很可能听说过单元测试或测试驱动的开发过程。我还没有遇到一个既没有听说过又没有听说过单元测试并不重要的程序员。在随意的讨论中,大多数程序员似乎认为单元测试非常重要。 但是,当我开始使用代码并问“单元测试在哪里?”时,我得到了一个完全不同的故事。我最近在网上问我的程序员朋友为什么不这样做,以及为什么其他程序员不这样做呢?不要编写单元测试。当我问程序员或IT经理同样的问题时,我经常听到的第一答案是:“我没有时间”或类似的问题。通常会出现这样的论点,即使用单元测试编写应用程序要比不使用单元测试编写时间长20%,并且“我们受到时间限制”。 我的建议–当我们尝试解决时间不足的问题时,也许我们可以在娱乐性上做出一些贡献。 在实践中 我正在为一个应用程序设计原型,该应用程序将允许用户输入有关房屋装修项目的信息,然后与朋友共享该项目的材料和工具信息。然后,朋友可以承诺贷款或购买项目中所需的一些材料或工具。基本上是用于家庭装修项目的“登记处”。 测试将在采用Project对象的方法上进行,遍历该项目的工具列表以查看该工具是否已经被承诺,并创建一个未被承诺的工具列表。然后,它将把该列表传递给将查询每个工具当前价格的服务。 原型是用Grails完成的,但是我们将用Java编写此方法: public List<Tool> neededToolList(Project project

程序员大宇

拈花ヽ惹草 提交于 2019-12-04 23:40:21
程序员知识码头公众号: 程序员知识码头,现已有10000+读者持续关注学习!从2019年8月底开始发技术文章,一直持续到今天,并且会一直 持续更新 下去,帮助读者提高技术能力,拿到心仪的Offer,给读者们营造好的 学习氛围 ! 作者介绍: 作者 大宇 曾前就职于 蚂蚁金服 ,他工作经验 十余年, 现担任技术总监职位,带领技术团队项目不断突破! 内容介绍: 每日分享 Java 干货、并发、Spring全家桶、微服务、集群、分布式Liunx、Mysql以及2019整套面试专栏文章! 公众号福利: 回复【 JAVA 】【 面试 】即可领取相关知识以及整套面试题+答案, 回复 【 加群 】即可加入技术讨论群聊 回复 【 通关 】【 知识 】即可获取一对一面试指导和技术讲解 回复 【 打卡 】【 学习 】即可加入21天打卡学习并获取精品书籍一本 还有很多一线大厂 内推 名额!以及 秋招 精选指南! 现在 关注 ,马上加入专属 学习社群 以及精品 面试资料 一份! 来源: https://www.cnblogs.com/ssyssy/p/11888582.html

程序员知识码头

元气小坏坏 提交于 2019-12-04 23:38:27
程序员知识码头公众号: 程序员知识码头,现已有10000+读者持续关注学习!从2019年8月底开始发技术文章,一直持续到今天,并且会一直 持续更新 下去,帮助读者提高技术能力,拿到心仪的Offer,给读者们营造好的 学习氛围 ! 作者介绍: 作者 大宇 曾前就职于 蚂蚁金服 ,他工作经验 十余年, 现担任技术总监职位,带领技术团队项目不断突破! 内容介绍: 每日分享 Java 干货、并发、Spring全家桶、微服务、集群、分布式Liunx、Mysql以及2019整套面试专栏文章! 公众号福利: 回复【 JAVA 】【 面试 】即可领取相关知识以及整套面试题+答案, 回复 【 加群 】即可加入技术讨论群聊 回复 【 通关 】【 知识 】即可获取一对一面试指导和技术讲解 回复 【 打卡 】【 学习 】即可加入21天打卡学习并获取精品书籍一本 还有很多一线大厂 内推 名额!以及 秋招 精选指南! 现在 关注 ,马上加入专属 学习社群 以及精品 面试资料 一份! 来源: https://www.cnblogs.com/ssyssy/p/11888570.html

如何成长为一名专业的程序员?

半城伤御伤魂 提交于 2019-12-04 23:35:57
版权声明: 本文为北京尚学堂原创文章,未经允许不得转载。 要想成为一名专业的程序员,仅仅会写代码是不够的。从团队合作去解决问题到版本控制,你还得具备其他关键技能的工具包。当我们询问相关的专业开发人员,那些必备的关键技能都是什么的时候,下面是我们了解到的情况。 关于如何学习代码,各种声音很多,然后很多人就被误导为成为专业开发人员懂得一门编程语言就够了?!就像其他工作一样,光会一个技能那是远远不够的。如果你想要成为一名开发人员,下面就是一些你必须要掌握的最重要的技能(编码这个要求就不赘述了,这太理所当然了)。 1、学会并擅长沟通 虽然一些媒体上面将编程描述为一种“闭门造车”的行为,但事实上,它涉及到很多与人沟通和协作的事宜。如果你工作于一家公司,那么你会成为开发团队的一部分,并且得和其他人交流和合作。 然而,知道如何清晰可信地说话和写作对于那些独立的开发人员甚至更加重要:学校课程一点也没有教我们学习必要的书面表达技巧。(就教我们编程,对不?)在你的职业生涯中——如果你以后想继续晋升的话——那么你需要花大量的时间用于清楚简洁、令人信服的沟通交流——从你需要发电子邮件给同事、经理、客户/合作伙伴、甚至有一天可能是高管仅这个方面想,就足够说服人的了。但是由于我们开发人员习惯于比其他人做事快两倍(我们都很聪明,对吧?!),所以令人沮丧的是,这样会导致需要多花上两倍的时间才能顺利地表达清楚

北京尚学堂:小白如何快速入门编程

旧巷老猫 提交于 2019-12-04 23:35:44
版权声明: 本文为北京尚学堂原创文章,未经允许不得转载。​ 大学里面学的是理论知识,比较广泛,主要是对编程进行一个大体的介绍,对于在大学之前已经对编程有过了解的人,可能大学的东西就是小儿科。但是对于小白来说还是有一定作用的,他能让你体验一下编程的小乐趣,是否真正想编程。相信很多人都忘了自己是什么时候写下人生的第一行代码。我还记得自己的第一个程序编译成功,输出结果的时候,兴奋不已的情景。​更多精彩内容关注微信公众号:北京尚学堂。 学习编程为什么会从入门懵逼 1、必须需要学习底层的技术 学编程不像学习挖掘机。学习挖掘机可以不用学习挖掘机是怎么造出来的,换句话说,不懂挖掘机的原理,也可以学会「怎样开挖掘机」。但是学习编程就不一样了,想真正的学会编程,必须理解编程之下的底层技术。为什么学习编程是这样苦逼的存在呢?因为: ​ 编程世界的基本概念是抽象的,正常的人类无法理解。什么意思?编程的基本概念是什么?二进制,比特,字节,变量,这些看不见摸不着的东西,如果不理解,很自然的就会从入门到懵逼。 公司需要“会造车”的工程师,不需要“会开车”的工程师。公司,尤其是小公司对技术的需求,都是要“制造出一个工具”,而不是“使用和维护现有的工具”。“使用和维护现有工具”的工作通常由其他部门的同事和软件机器人来完成(软件机器人也是由工程师制造出来的)。 软件技术发展太快,今天刚习得的技能明天就过时了

Python语言基础07-面向对象编程基础

一笑奈何 提交于 2019-12-04 21:53:11
本文收录在 Python从入门到精通系列文章系列 1. 了解面对对象编程   活在当下的程序员应该都听过"面向对象编程"一词,也经常有人问能不能用一句话解释下什么是"面向对象编程",我们先来看看比较正式的说法。   "把 一组数据结构和处理它们的方法 组成 对象(object) ,把 相同行为的对象 归纳为 类(class) ,通过 类的封装(encapsulation)隐藏内部细节 ,通过 继承(inheritance)实现类的特化(specialization)和泛化(generalization) ,通过 多态(polymorphism)实现基于对象类型的动态分派 。"   这样一说是不是更不明白了。所以我们还是看看更通俗易懂的说法,请看下图:   之前我们说过" 程序是指令的集合 ",我们在程序中书写的语句在执行时会变成一条或多条指令然后由CPU去执行。当然为了简化程序的设计,我们引入了 函数 的概念,把相对独立且经常重复使用的代码放置到函数中,在需要使用这些功能的时候只要调用函数即可;如果一个函数的功能过于复杂和臃肿,我们又可以进一步将函数继续切分为 子函数 来降低系统的复杂性。   但是说了这么多,不知道大家是否发现,所谓编程就是程序员按照计算机的工作方式控制计算机完成各种任务。但是,计算机的工作方式与正常人类的思维模式是不同的

CORNERSTONE对话腾讯&华为敏捷专家

六月ゝ 毕业季﹏ 提交于 2019-12-04 21:35:29
由CORNERSTONE主办的“深圳敏捷狂欢大会”圆满落幕。此次活动集齐了敏捷领域的大咖与近百位敏捷研发爱好者到场,会上大家通过提问互动与敏捷大咖产生了精彩的思想碰撞,大家就敏捷开发如何落地及技术人员如何转型晋升这两个话题做了深度探讨. 以下为敏捷专家薛军和李林在敏捷狂欢大会上的演讲分享 为什么腾讯产品最好 2017年5月份,网上有一份关于移动APP月活跃度的排名数据,在这份排行榜中,前十四名里,腾讯的产品就占了七款。 这个耀眼的数据足以说明,腾讯的产品是有多受欢迎。 腾讯的产品为什么会那么好呢?其实这和腾讯的创始人马化腾以及其企业文化有关。马化腾是一个天文学爱好者,爱好天文学的人最喜欢做的一件事就是远距离思考规律,所以马化腾的这种爱好延伸到产品上就是,为了做好一款产品,他们会花时间去观察和研究用户的行为习惯,然后找出这些行为背后的规律,再根据规律去优化自己的产品,只为更好地满足用户需求。所以一个产品之所以能成功,离不开它的企业文化,而企业文化的核心是它的创始人。就像当年为什么李彦宏能做好搜索引擎,因为他本身的技术就很牛逼。 腾讯产品创新之道 腾讯的产品创新之道由三部分组成, 即产品、研发和运营,这是一个闭环的过程。第一步,先由产品远距离观察用户寻找规律。但这规律并不一定是真理,也不一定是能够成立,所以需要研发用敏捷开发快速对规律进行迭代验证,把这些规律变成一个产品

在编程中为所欲为[圣诞版]

断了今生、忘了曾经 提交于 2019-12-04 20:46:05
众所周知,在Java中final String中的值是一成不变的。大家都知道String的+(拼接)运算会丢弃内存引用并在内存中重新开拓地址,事实上也确实如此。但final的变量真的是一成不变的吗?谨以此文打开程序员思路,跳出定式思维,希望本文会给你的程序员生涯带来新的思考。 一个简单的例子 这个例子很久远,早有前辈做过,但并不是所有的程序员都接触过。通常喜欢“猎奇”的程序员对此不会陌生。 import java.lang.reflect.Field; public class ChangeFinalString { public static void main(String[] args) throws Exception { final String s = "12345: caiyongji"; System.out.println(s); System.out.println("hashcode: " + s.hashCode()); Field f = String.class.getDeclaredField("value"); f.setAccessible(true); char[] value = (char[]) f.get(s); value[0] = (char) 20851; value[1] = (char) 27880; value[2] =

如何确定自己是否适合做程序员?程序员的成长需要什么?

℡╲_俬逩灬. 提交于 2019-12-04 20:45:49
现在程序员岗位比较热门,不少机械、化工、水利等专业的毕业新生也涌入到了该岗位中。然而,很多人虽然选择了程序员这个行业,但对自己是否适合还是不确定的。代码能力作为未来必备的基础能力之一,先干几年是绝对没问题的。但在干这一行的过程中,你可以慢慢去思考。下面认真说一说做一名程序员需要的一些基本能力: 1、持续学习能力 IT 需要的知识技术太多了,你工作用到的知识,大部分学校都没有专门的课讲授,更别指望工作后有谁专门教你,有的最多是技术分享,做一些介绍,想要掌握还是需要自己私下学习,只有不断的增强自己才能在程序员这个行业如鱼得水。 2、工作总结能力 因为程序员在工作中会遇到很多问题,所以你的经验大部分来自于踩坑。程序员能力高低不是天生的,也不是职业时间越长能力越高。主要还是在工作中的总结积累,碰到一个问题,总结下来,加深自己印象,下次遇到同样的问题可以快速想起解决方案。光靠大脑记忆是有限的,并且没有记录,印象会更浅,每天都有问题,很容易忘了以前遇到同样的问题是怎么做的。如果你能把积累下来的问题,总结成文章,用清晰的逻辑表达出来,再给别人讲明白,那你的能力就会有很快的提高了。 3、专注力能力 写代码和写文章一样,也是需要状态的,状态好,你就会思如泉涌,状态差,轻则写出来的代码质量很差,重则 bug 成山。当你调试问题或者捋思路的时候,可能需要花20分钟进入状态,此时如果你被一些因素打断了

程序员应该有什么样的职业规划?值得思考一下!

只谈情不闲聊 提交于 2019-12-04 20:42:33
每个程序员、或者说每个工作者都应该有自己的职业规划,如果看到这里的朋友没有自己的职业规划,希望你可以思考一下自己的将来。 Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。 Java程序员你是否有了明确的职业发展规划? 初级程序员:做一些静态的界面;程序员:做一些增删改查的小模块;中级程序员:做逻辑较复杂的模块;高级程序员:做核心模块;项目经理:系统的整体架构;部门经理:多项目的管理; 1、 走向架构师 架构师其实就是一个漫长的积累过程,从准备期到动荡期我们都是不停的探索,学习。大部分的架构师的年龄都是在35岁左右,这个阶段就是程序员的黄金期。 程序员要成为一名架构师,需要进一步加强技能的修养。对于互联网公司而言,最重要的技能是对网络和分布式系统的理解,网络上面的书籍很多,比较麻烦的是分布式系统,除了分布式在现在大型互联网企业中,对于技术知识,个人推荐还得掌握高性能、深入浅出。性能调优、Spring,JVM等技术。当然了,良好的驾驭管理开发团队的能力,良好的人格修养,能够让架构师在开发项目中游刃有余,不会出现意料之外的干扰,更能从内散发出人格魅力。 2、 走向项目经理