我是张飞洪,.NET程序员一枚,躬耕于微软10年有余,人不堪其忧,吾不改其乐,热爱编程,不拘语言,业务优先,关注IoT,关注DevOps和微服务
.NET架构师招聘不如JAVA那么顺利,可以搜索到的.NET架构师可以说是凤毛菱角。当然好的架构师都是需要长期观察和挖角才能得手,如何去招聘到合适的.NET架构师可能是摆在所有求贤者面前的难题。这里的难分两方面,一个是数量少,二个是考核点难。
最近在拜读郑晔的10x程序员工作法,收益良多,文中提出一个概念叫DoD(Definition of Done)给我的感触颇深。这让我联想到实际工作过程中,经常遇到的扯皮、争吵等各种场景,其实就和这个DoD分不开。
git相关的文章和教程非常多,但是系统介绍和了解工作流的人并不多,在使用过程中用错或用偏的也不少,这里分享的是,假设你已经入门的情况下,我们如何去选择适合团队需要的工作流。 git优势 这里先唠叨git的优势,对比传统的代码管理工具,git至少有以下这些优点: 有温度的工具:由 Git 衍生出来的 GitHub/GitLab 可以帮你很好地管理编程工作,比如 wiki、fork、pull request、issue……集成了与编程相关的工作,让我们的工作可以呈现在一个工作平台上,并以此来规范整个团队的工作。
希望给你3-5分钟的碎片化学习,可能是坐地铁、等公交,积少成多,水滴石穿,码字辛苦,如果你吃了蛋觉得味道不错,希望点个赞,谢谢关注。
要了解管道的实现机制,我们必须要深入框架的源码,幸亏微软开源了,我们可以访问GitHub的地址来下载源码。
我的博客即将入驻“云栖社区”,诚邀技术同仁一同入驻。
希望给你3-5分钟的碎片化学习,可能是坐地铁、等公交,积少成多,水滴石穿,谢谢关注。 管道流 我们知道一个管道可以有一个或多个中间件,而中间件的职责是根据HttpContext处理HTTP请求,然后往Response里填充东西,最后完成整个Response的输出。
希望给你3-5分钟的碎片化学习,可能是坐地铁、等公交,积少成多,水滴石穿,谢谢关注。 入门篇 1.1专题介绍 1.2环境安装 1.3创建项目 1.4部署到IIS 1.5准备CentOS和Nginx环境 1.
希望给你3-5分钟的碎片化学习,可能是坐地铁、等公交,积少成多,水滴石穿,谢谢关注。 dotnet run的麻烦 如果您使用的是vs code进行跨平台开发,那么dotnet watch run对你的调试就是一把利器!我们先看下使用dotnet run的效果: 如视频所示,我们在vs code里面创建一个mvc项目,dotnet run后,启动调试,一切正常。
希望给你3-5分钟的碎片化学习,可能是坐地铁、等公交,积少成多,水滴石穿,谢谢关注。 WebHost配置 覆盖配置文件和修改启动URL 覆盖配置文件和修改启动URL是经常使用的地方,覆盖配置文件可以自定义自己的配置信息,或者同时支持多个配置文件并存,对配置内容过多的情况可以起到一个分类的目的,非常的好用。
希望给你3-5分钟的碎片化学习,可能是坐地铁、等公交,积少成多,水滴石穿,谢谢关注。 HTTP请求过程 这里展示整体的HTTP请求的过程,这里化繁为简,保留了主干流程: 从浏览器输入域名开始,这里忽略了建立TCP的3次握手,向服务器发起HTTPRequest请求,服务器接受到之后,会触发服务器对网站的动态解析,然后把生成的网页信息通过HTTPResponse返回给用户,内部包含HTML的Body,Head等信息,最后就是浏览器对这些HTML信息进行内部引擎渲染的过程了。
希望给你3-5分钟的碎片化学习,可能是坐地铁、等公交,积少成多,水滴石穿,谢谢关注。 前后端分离的开发模式,假如使用的是基于RESTful API的七层通讯协议,在联调的时候,如何避免配合过程中出现问题?这里分享一些不成熟的浅见。
希望给你3-5分钟的碎片化学习,可能是坐地铁、等公交,积少成多,水滴石穿,谢谢关注。 角色转变 从工程师转技术管理这两年,好比头马变成车夫,除了角色认知的转变,还要看方向,定计划。
希望给你3-5分钟的碎片化学习,可能是坐地铁、等公交,积少成多,水滴石穿,谢谢关注。 安装.NET Core 官方安装地址: https://www.microsoft.com/net/learn/dotnet/hello-world-tutorial?initial-os=linux 安装完后测试一下版本 测试一个webapi dotnet new webapi dotnet run 默认是在5000端口,虚拟机该端口还没打开,这个时候在虚拟机外面是无法访问的 再开一个终端使用curl访问 返回values数组,大功告成。
希望给你3-5分钟的碎片化学习,可能是坐地铁、等公交,积少成多,水滴石穿,谢谢关注。 从UML来理解依赖 1.1什么是依赖 我们先看下图 可以简单理解,一个HomeController类使用到了DBContext类,而这种关系是有偶然性,临时性,弱关系的,但是DBContext的变化会影响到HomeController 1.2显示依赖和隐式依赖 先看显示依赖代码: 显示依赖通过构造函数,很清楚的描述了HomeController类都依赖了哪些对象,这样就可以很好的管理这些依赖。
希望给你3-5分钟的碎片化学习,可能是坐地铁、等公交,积少成多,水滴石穿,谢谢关注。 配置的使用流程 //第一步.初始化Builder var builder = new ConfigurationBuilder(); //第二步.
希望给你3-5分钟的碎片化学习,可能是坐地铁、等公交,积少成多,水滴石穿,谢谢关注。 大家知道通常我们修改网站的配置文件比如,webconfig的时候,网站需要重启才能读取到最新的修改,所谓热更新就是网站无需重启,修改完配置文件,直接F5就可以看到效果如下图所示: 修改IOption为IOptionsSnapshot 上一节当中我们使用IOption来作为注入,这次我们改成IOptionSnapshot,注意如果我们是在Controller里也是一样的,见下图 修改为IOptionsSnapshot后,即可达到热更新,非常简单。
希望给你3-5分钟的碎片化学习,可能是坐地铁、等公交,积少成多,水滴石穿,谢谢关注。 Startup.cs中创建MVC中间件 关键代码:services.AddMvc();app.UseMvcWithDefaultRoute(); 关于中间件的内部机制,后续单独专栏进行深入挖掘,此处略过。
希望给你3-5分钟的碎片化学习,可能是坐地铁、等公交,积少成多,水滴石穿,谢谢关注。 新建MVC项目 这次我们没有使用控制台项目,而是使用mvc来测试。 如下图所示,选择空的项目,建完后,记得把项目设置为启动项 新建配置文件appsettings.
希望给你3-5分钟的碎片化学习,可能是坐地铁、等公交,积少成多,水滴石穿,谢谢关注。 命令行配置 1.新建控制台项目 2.nuget引入microsoft.aspnetcore.all 这里要注意版本号必须和dotnetcore兼容 3.
准备CentOS 1.1虚拟机 CentOS的安装这里使用vmware workstation 14来做虚拟机,当然你也可以用Oracle的虚拟机或者不用虚拟机,使用云服务或者使用双系统,不是什么大问题。
希望给你3-5分钟的碎片化学习,可能是坐地铁、等公交,积少成多,水滴石穿,谢谢关注。 很多人第一次在IIS中部署Asp.Net Core App的人都会遇到问题,会发现原来的部署方式无法运行Asp.Net Core App程序。
控制台创建项目 dotnet new --help 使用控制台采集项目,务必要熟练使用命令,--help是命令帮助的指明灯,在你无法google的时候,可以离线状态最快的帮助到你。 根据模板名称,我们可以创建各种模板,比如 dotnet new webaipdotnet new mvc…… 运行命令: dotnet run VS2017创建项目 都是创建,只是采集的方式不一样,殊途同归,前者适合ubuntu或者mac系统的操作方式,后者适合window底下的操作方式。
官网 在介绍安装环境之前,先介绍周边信息,比如微软net官网。 https://www.microsoft.com/net 这个网站是学习微软技术栈比较权威的地方,包括环境下载,学习,架构,文档,社区等等非常有价值的内容。
大家好,我是架构师张飞洪,专注于.NET平台十年有余。 工作之余喜欢阅读和写作,学习的内容包括数据结构/算法、网络技术、Linux系统原理、数据库技术原理,设计模式、前沿架构、微服务、容器技术等等…… 喜欢但不限于,Java、C、C++、Python、Javascript……Wait……不装了,因为我也还在学习的路上,愿你我一起终生学习。
入门篇 1.1.专题介绍 1.2.环境安装 1.3.创建项目 1.4部署到IIS 1.5准备CentOS和Nginx环境 1.6部署到CentOS 2.1命令行和JSON的配置 2.2Bind建立配置文件和实体的映射 2.
我是张飞洪,钻进浩瀚代码,十年有余,人不堪其累,吾不改其乐。如果你和我的看法不一样,欢迎您留言交流。 接下来来讲解Docker三大组件之一的容器,如果说镜像是静态的只读文件,那么容器就是带有运行时需要的可写文件层。
我是架构师张飞洪,钻进浩瀚代码,十年有余,人不堪其累,吾不改其乐。如果你和我的看法不一样,请关注我的头条号,我们一起奇闻共赏,疑义相析。 接下来来讲解Docker三大组件之一的镜像,如果说镜像是静态的只读文件,那么容器就是带有运行时需要的可写文件层。
我是架构师张飞洪,钻进浩瀚代码,十年有余,人不堪其累,吾不改其乐。如果你和我的看法不一样,请关注我的头条号,我们一起奇闻共赏,疑义相析。 本节属于入门简介,从三个小方面进行简单介绍Docker。
我是张飞洪,钻进浩瀚代码,十年有余,人不堪其累,吾不改其乐。我喜欢把玩代码,琢磨词句!代码算法让我穿透规律,文章摘句让我洞察人情。如果你觉得和我的看法不一样,请关注我的头条号,那我们一定合得来。 程序员给人大部分的印象是呆板,沉闷,寡言。
创业团队是一个高风险的团队,包括内部核心人员和管理者,因为好产品不是决定成功的唯一因素,这里暂且不谈论市场,运营,单单从团队稳定性来做一些探讨。 自己做过一些年的开发,包括现在也在兼做开发,也没有买房,在如此浮躁的年代,恰巧又身处大城市,屌丝一个,自己凭什么不跳槽? 大城市太辛苦了,没有节操的房价,每年一涨的房租,狗日的公立学校。
创业团队如何招聘到合适的程序员是每个招聘主管的头等大事。 我所在的团队只有10来号人,随着业务发展,目前正在积极扩建,所以前前后后面试了有1年的时间。 其中有成功的,也有很失败的,有干一年就跑掉的,最短三天就走人,让人无比郁闷,如何才能找到满意的人员,如何能得到性价比高的程序员,可能是创业当中的你绕不开的话题。
1.什么是策略模式? 本质:面向借口编程。或者说策略模式是面向接口编程的最佳体现。 他抽象的是不同的算法,或者说策略。 比如税收,有个税和企业税。
1.概念:将一个类的接口转换成客户希望的另外一个接口,使得原来由于接口不兼容不能一起工作的类可以一起工作。侧重接口转换。 2.案例:姚明的翻译 3.场景:复用旧类,但接口和复用环境不一致。
1.概念:将一个复杂对象的构建和他的表示分离,使得同样的构件可以创建不同的表示。 2.实例:肯德基和中餐,肯德基抽象了整个做菜的复杂过程(相同的构建),然后在不同的店铺进行实现(不同的表示)。中餐往往做菜是没有统一的过程的。
1.概念:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变算法的结构即可重新定义该算法的某些特定步骤。 2.模板方法的特点: 当代码环境中,子类们的行为方法存在重复,通过抽取封装不变的行为到父类,从而去除子类重复代码,代码因重复利用变得简洁。
通过复制产生一个对象,而不是通过new产生。这种复制是内存二进制流的拷贝,性能比new好很多。缺点也是优点是:构造函数是不会执行,减少构造函数的约束。浅拷贝 共享 深拷贝 创建副本(不共享) 改变新对象属性或字段不影响原型对象如果我们我们只需要原型对象中的属性不引用其他数据信息,可以使用浅...
简单工厂 简单工厂模式的工厂类一般是使用静态方法,通过接收的参数的不同来返回不同的对象实例。 不修改代码的话,是无法扩展的。 工厂方法 工厂方法是针对每一种产品提供一个工厂类。通过不同的工厂实例来创建不同的产品实例。
1.概念:提供一个创建一系列相关对象的接口,而无需指定具体的类。 用简单工厂改进抽象工厂实例: public class DataAccess { private const readonly string dbstr="MSSQL"; public ...
1.简单工厂模式 对象的集中管理,是把对象放在工厂类当中,那么如何避免工厂类重复new操作? a.通过构造函数进行注入。 b.设置工厂类为Singleton模式或者使用static方式。
一、创建型模式[静态] 1.1单件模式 1.2工厂方法模式 1.3抽象工厂模式 1.4模板方法模式 1.
1.定义: 某一个类只有一个实例,并且这个实例是在类内部进行实例化,并向整个系统提供该实例。 2.单例模式的通用代码: public sealed class Singleton { private static sealed Singleton ...
引言 数据库设计规范,仁者见仁,但是有共同的目标都是想要更加简洁清新,可维护可扩展等等。有时候设计的时候没有想到,等到开发的时候,或者发布完了,客户帮我们发现BUG,那是很得不偿失的事,这些得不偿失的事,我都经历着或经历过,记得刚毕业出来工作,对命名没有什么概念,很随意,更别谈用心去设计了,后面带来的痛只有自己清楚。
一、前言 线程同步其实很简单,但是往往被老师教的很复杂。这是之前上课受的伤。脑袋瓜当人人家的跑马场,被蹂躏一番,最后老师留下的是先入为主的错误,以至于后面不停的干扰我的理解,纠起错来,真是不知道浪费了多少精力。
一.委托和异步调用: 先上代码: public class AsyncClass {private List output=new List();public List OutPut { get { return output; } }public AsyncClass(...
本文主要谈的是委托相关运用。包括委托的简单定义,使用,好处;以及委托和Lambda的关系。所有知识点都简化为启发式的注释,应该不难理解,希望对你有帮助。 /// /// 委托让排序代码更加优雅(易扩展,易维护)/// 本文包含知识点:/// 1.
As its name suggest, with code-first, you start with the code. You can create the corresponding database directly from the code, but you could also be working from an existing DB.