Git bash alias config

SourceTree是一个功能很强大的Git GUI工具,但是就是太慢,且在Windows下会出现莫名占用一个核心CPU。于是开始折腾Git bash,目前基本够用。其中alias部分的配置文件如下,供参考,放到 /username/.gitconfig里面即可。 [alias] l = log –pretty=format:”%C(yellow)%h\ %ad%Cred%d\ %Creset%s%Cblue\ [%cn]” –decorate –date=short a = add ap = add -p c = commit –verbose ca = commit -a –verbose […]

在产品的发布流程中,通常会分几个阶段如DEV,QA,Pre-production,production等,根据发布环境动态加载网站的配置文件是一个比较常见的需求。 在ASPNET和aspnetcore中,有着不同的实现方式。 aspnet 在传统ASPNET项目中,采用Web.config做配置文件,这种XML结构的文件,微软提供了Transform(转换)语法的功能。 通过这种aspnet,可以实现对XML节点的追加、替换、删除。在Web.relase.config中,就使用了这种功能来移除调试的配置节点。在编译的过程中,可以声明配置的名称,生成最终的Web.config为转换后的结果。 aspnetcore 在aspnetcore中,可以根据当前运行环境来决定使用哪个配置文件。这个运行环境读取自host进程的ASPNETCORE_ENVIRONMENT环境变量。ASPNETCORE的配置文件为appsettings.json格式,加载时采用子配置文件覆盖的策略,即appsettings.dev.json节点会覆盖appsettings.json的。 结论 通过上面的对比,可以看到aspnet项目是编译时确定环境,而aspnetcore是运行时确定环境,后者可以一次编译随地运行,在便捷上,aspnetcore优于传统的aspnet。 但是在现代化的DevOps工具支持下,可以通过配置分发解决大部分问题。(待研究)

2017 year plan

item detail note Linux 熟悉shell,以及常用开发环境 效率 Python 做一些小项目 学习一下这门“胶水语言” 深入理解操作系统 读完,理解 加油! 计算机网络 4~7层读完,理解 磨刀 分布式系统设计 读书,了解现有的框架 磨刀 算法 每周3~5 基本功 github 参与一些感兴趣的项目 砍柴 健身 减肥 ….

新的项目采用了ASPNETCORE,其中依赖注入使用了AutoFac,通过JSON配置文件实现注入. 在配置生存周期的时候,将部分类型设置为SingleInstance. 其中有个发邮件的类,代码大概是下面的. Class EmailService{ .. ctor(){ mailMessage = new MailMessage(); } public void SendAsync(string To,…){ mailMessage.ToList.Add(To); } .. } 单例的对象里面的mailMessage.ToList在并发的情况下,在controller注入实例化后下次实例化之前,可能被多次添加收件人, 出现了一些用户收到多封的情况. 一些教训: 1. 不要写和修改自己不理解的代码 2. 代码提示很重要, 用代码配置可能比写配置文件更清晰,避免犯错 3. CodeReview很重要 […]