[翻译]UML Association(关联) vs Aggregation(聚合) vs Composition(组合)

最近在看 《架构整洁之道》 ,书中举一些例子时会有 UML 类图,个人对于 UML 类图记得不是很清晰,所以理解起来不是很方便,准备再总结下。总结时发现对于 组合/聚合/关联 之间的差异有点不太理解,查了一些相关说明的文章,发现这篇写的比较好,但是没有中文,所以自己翻译了一下,哪块翻译的有问题欢迎在评论区批评指正。

ps 也有结合 mermaid 的使用写了一篇UML类图的总结,有兴趣的可以看下 UML Mermaid .

为加强记忆,对于关键词,中文和英文会同时列出

原文地址:visual-paradigm.com

阅读更多

UML Mermaid

继承Inheritance
classA --|> classB : Inheritance
组合Composition
classA --* classB : Composition
聚合Aggregation
classA --o classB : Aggregation
关联Association
classA --> classB : Association
依赖Dependency
classA ..> classB : Dependency
实现Realization
classA ..|> classB : Realization
阅读更多

WindowsProgramMonitorService

WindowsProgramMonitorService


Topshelf

Nuget

1
Install-Package Topshelf

Main

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var rc = HostFactory.Run(x => {

x.Service<ProgramService>(s =>
{
s.ConstructUsing(name => new ProgramService());
s.WhenStarted(p => p.Start());
s.WhenStopped(p => p.Stop());
});

x.RunAsLocalSystem();

x.SetDescription("Windows Program Monitor Service Host");
x.SetDisplayName("Windows Program Monitor Service");
x.SetServiceName("Windows Program Monitor Service");
});
阅读更多

Mysql 设计规范

公司要开发一个新项目,之前是.NET Framework + Sql Server,这次要用.NET Core + Mysql,没怎么接触过mysql,所以做数据库设计之前,结合网上的资料,以及项目的使用,总结了一下Mysql设计规范。按照规范设计了数据库,目前项目开始正常开发,没遇到因为数据库设计产生的问题,记录一下。ps.随着开发,应该还会记录下mysql与SQL server的差异。

命名规范

基本命名原则

  • 使用有意义的英文词汇,不要使用拼音或拼音缩写。
  • 只能使用英文字母,数字,下划线,并以英文字母开头。
  • 表名库名全部小写用_分隔,列名Pascal(避免代码中太多attribute)
  • 避免用 MySQL 的保留字,如 desc,关键字如 index
  • 命名禁止超过32个字符,须见名之意,建议使用名词不是动词
  • 数据库,数据表一律使用前缀
    • 临时库、表名必须以tmp为前缀,并以日期为后缀
    • 备份库、表必须以bak为前缀,并以日期为后缀
阅读更多

关于Cookie的属性说明

Cookie服务的首部字段

首部字段名 说明 首部类型
Set-Cookie 开始状态管理所使用的Cookie信息 响应首部字段
Cookie 服务器收到的Cookie信息 请求首部字段
阅读更多

Redis .NET CORE 简单使用

最近在面试,很多公司都有要求使用过 Redis ,之前没有用过,既然很多公司都要求会,自然是有原因的。本文试着简单学习下 Redis ,并了解下它与 MemoryCache 有什么区别的(之前在 LPS 缓存是用的 MemoryCache )。

定义

看下官网的说明,

Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker. It supports data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs, geospatial indexes with radius queries and streams. Redis has built-in replication, Lua scripting, LRU eviction, transactions and different levels of on-disk persistence, and provides high availability via Redis Sentinel and automatic partitioning with Redis Cluster.

阅读更多

Trac-DailyReportAnalysis

WHY

每年要写年终总结,最近做的事情会记着,之前的却不一定记得那么清。个人有在 Trac 写日志的习惯,可以说是清楚的记载了工作内容,但是一天一天看也太浪费时间,而且效果也不好,没有一个实际的量化。于是就想着爬一下日志内容,分析下词频,这样就可以直观的看自己的工作内容了。

HOW

虽然也自学过一点python,但是学的很基础,而且忘得也差不多了。马上就要交年终总结了,还是用自己习惯的语言吧。大概查了一下用C#爬网页,觉得没啥问题,就开始了。嗯,没错了,想的容易,做起来总会遇到问题:

阅读更多

Trac-NoPreview Chrome Extension

WHY

公司用Trac作为管理系统。修改Ticket,或者提交工作日志时,总需要先预览才能提交(应该是有权限的人设置的),为了方便自己使用,就花了点时间写了一个浏览器插件,可以不经过预览就提交,顺便学习下Chrome插件的开发。

阅读更多