六级英语都考过,见识下八级程序员

程序员的故事经常在网上被人用各种版本的“悲惨事件”进行描述调侃,而且人送外号“程序猿”。但是大多数被大家所调侃的程序员可能只是还没成功升level,停留在程序员的初级阶段。看看你认识的程序员是第几级? 在面试时,你可能会被经常问到“在未来5年,你想干什么?”,这可能是一个比较难回答的问题。在中国,答...

IT人士群集喝酒的讲究

大家喝的是啤酒,这是你入座了…… 你给自己倒了杯可乐,这叫低配置。 你给自己倒了杯啤酒,这叫标准配置。 你给自己倒了杯茶水,这茶的颜色还跟啤酒一样,这叫木马。 你给自己倒了杯可乐,还滴了几滴醋,不仅颜色跟啤酒一样,而且不冒热气还有泡泡,这叫超级木马。 你的同事给你倒了杯白酒,这叫推荐配置。 人到齐了...

C#的λ表达式树(LambdaExpression)

λ表达式树、lambda、委托它们之间的区别和联系 委托是一种类型,是方法的抽象,通过委托可以将方法以参数的形式传递给另一个方法,同时调用委托的时候,它缩包含的方法都会被实现。委托的关键字是delegate,可以自定义委托,也可以使用内置委托,通过简化,可以将Lambda表达式或Lambda语句赋值...

跟着 Github 学习 Restful HTTP API 设计

近几年提供 HTTP API 服务的公司越来越多,许多公司都把 API 作为产品重要的一部分,作为服务提供出去。而微服务的兴起,也让企业内部开始重视和频繁使用 HTTP API 。好的 HTTP API 设计容易理解、符合 RFC 标准、提供使用者便利的功能,其中经常被拿来作为教科书典范的当属 Gi...

Git 删除未推送的提交

场景 由于误操作,经常可能会将一些测试方法等直接选中并 commit 到了本地仓库中。但是还没有 push 出去。 这个时候,你可以用下面的方法补救。 示例 删除最近的一次 commit, 但保留已有的修改 $ git reset --soft HEAD~1 删除最近的一次 commit, 并且不...

一图看懂常用开源协议区别

首先借用有心人士的一张相当直观清晰的图来划分各种协议:开源许可证GPL、BSD、MIT、Mozilla、Apache和LGPL的区别。 以下是上述协议的简单介绍: BSD开源协议 BSD开源协议是一个给于使用者很大自由的协议。基本上使用者可以”为所欲为”,可以自由的使用,修改源代码,也可以将修改后的...

从Redis读取.NET Core配置

在本文中,我们将创建一个自定义的.NET Core应用配置源和提供程序,用于从Redis中读取配置。在此之前,您需要稍微了解一些.NET Core配置提供程序的工作原理,相关的内容可以在Microsoft开发者官网搜索到。另外您可能还需要了解一些Redis的基础知识,比如Redis的基础数据类型,持...

密码强度正则表达式

密码强度正则表达式 – 必须包含大写字母,小写字母和数字,至少8个字符等 方案一 至少8-16个字符,至少1个大写字母,1个小写字母和1个数字,其他可以是任意字符: /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[^]{8,16}$/ 或者: /^(?=.*[a-z])(?=.*...

编程名言

重构是程序员的主力技能。 工作日志能提升脑容量。 先用profiler调查,才有脸谈优化。 软件设计有两种方式:一种方式是,使软件过于简单,明显没有缺陷;另一种方式是,使软件过于复杂,没有明显的缺陷。 大部分情况下,构建程序的过程本质上是对规范调试的过程。 注释贵精不贵多。杜绝大姨妈般的“例注”。漫...

实现领域驱动设计——什么是DDD?

一、写在前面 今天的软件相对之前的软件,需求越来越复杂,变化越来越快。软件架构不断的在演进,一方面是为了适应新的需求,一方面也在寻找软件简单化解决方案,通过架构的规范是的软件更容易维护,逻辑更清晰。所以架构一直在追求易维护、可扩展。从早期的modle1、modle2,到现在这种微服务架构,一直在追求...