OOP系列之OO设计七大原则

对于OOP,想必大家都很熟悉,通常我们说的OOP有5大原则,即SOLID,这里我加上了两条也比较重要的迪米特法则和多用组合少用继承,组成了OO设计的七大原则,我们一起来复习一下。

OOP系列之聊聊依赖

依赖,或者用英语更准确,dependency,是程序设计中不同对象或方法之间所必不可少的,我们的代码就是由不同的方法不同的对象相互调用组成的,因此,对于依赖,我们要做到心里有数,依赖是如何产生的,依赖的强弱关系是怎样的。依赖的强弱是指依赖者对被依赖对象的依赖程度,即替换被依赖对象所花费的代价程度如何,依赖程度越强,替换掉被依赖对象的代价就越大,方法越底层,难度越大,灵活性越差。

[C#]单线程递归遍历文件夹

最近在做一些代码分析的小程序,抓出代码里面符合特定规则的文件,把符合特征的代码文件和代码片段抓出来,输出成一个txt文件,方便统计和查找,为日后分析做准备,因为要遍历所有项目文件,所以需要程序依次访问每个文件夹下的所有文件,因为还有子文件夹,因此想到了用递归来遍历,这个实现没有涉及多线程,以后有机会再改成多线程吧,这里记录一下方法,用到了尾递归。

[C#]聊聊.net core的InMemoryCache

这两天在看.net core的in memory cache,这里记录一下用法,主要涉及MemoryCache的Get/Set/Expire/Flush。

[C#]在Mac上安装VsCode+Vim插件

这里总结一下在Mac上安装VsCode和Vim插件时遇到的一些坑,希望能帮助到遇到同样问题的人。

[C#].net 异步编程的前世今生 & async & await

今天我们来聊一聊.net异步编程,.net 4.5为我们提供了两个新的关键字async 和 await,使我们能够借助TAP提供的一系列Async方法像同步编程一样来写异步代码,这篇文章里还会回顾一下之前异步编程的一些模式,比如EAP,APM,让我们体会一下async和await带来的便利。

聊聊三体
聊聊三体

三体世界由一颗行星和三颗质量相近的恒星构成,行星围绕三个恒星做无规则运动,导致没有规律性的气候。上一刻还是适合生存的气候(它们称为恒纪元),或许下一刻就会进入不适合其生存的气候(称为乱纪元),恒纪元与乱纪元会持续多久,什么时候出现都没有规律,以致这颗行星上的文明出现又被毁灭达二百多轮次。三体人虽然能够通过主动脱水让自己干纤维化以度过乱纪元,到恒纪元时再浸泡复活,但是度过期充满了未知的危险,脱水次数也是有限度的。

[C#]代码之坑–编译器不会告诉你的那些事

这些一个个的零散的小点都是在日常工作中总结出来的,似乎没有哪一本编程书会讲这些,所以就总结出来放到这里,要记住你所做的一切决定,都是有代价的,或是性能,或是灵活性,没有最优解,你需要自己去权衡。

[C#]Attribute 与 反射

Attribute是C#的一种语言特性,用于为各种实体(class,field,property)附加一些说明性信息, 并且可以在运行时环境中检索这些信息(通过反射)。这篇文章介绍了如何去声明和使用一个attribute,并且介绍了反射的基本知识,以及如何运用反射来读取attribute的信息。

ubuntu VPS 搭建SS + 开启BBR教程

用几行命令搞定ubuntu vps上ss的安装,并且利用脚本一行命令安装google最新的BBR TCP拥塞控制算法,给ss加速

ElmahR Introduction

Elmah stands for Error Logging Modules and Handlers and is used to log unhandled exceptions to the file system, event log, databases or even have it email you the errors.

正则表达式入门教程

本文介绍了正则表达式的基本用法,和一些举例,参照例子能够轻松上手

第二个Chrome扩展程序-生成二维码

从上次实现了第一个Chrome扩展程序之后,我们对chrome扩展程序对组织结构有了一定的了解,对这次我们来学习如何自己写一个生成二维码的Chrome扩展程序,主要功能是把网址或者用户输入的内容转化成二维码。

争与不争

我从小就是个不爱与人竞争的孩子,很喜欢一篇文章,我想成为坐在路边鼓掌的人,我们听了太多的成功学,告诉你要有狼性,要做人尖,出类拔萃,考第一名,这是一种极其功利的眼光,但是你也无可奈何,社会的价值观就是这样,浮躁,功利,只看谁的钱多,并不看你过得幸不幸福。

Adafruit树莓派系列教程汇总
Adafruit树莓派系列教程汇总

Raspberry Pi(中文名为“树莓派”,简写为RPi,(或者RasPi / RPI)是为学生计算机编程教育而设计,只有信用卡大小的卡片式电脑,其系统基于Linux。这里汇总了Adafruit树莓派的系列教程,一共13课,有关树莓派的配置,远程连接,控制温度传感器,步进电机,PIR传感器等,非常适合初学者入门。