上下文

DDD及相关概念

心已入冬 提交于 2020-03-05 07:00:50
领域 :指一个具体的应用范围,比如电商、订票管理、会议管理等,实现某一领域的功能,与其对应的商业领域一致。譬如Contoso会议管理系统从两个方面来阐述(1)系统概览:销售会议座位、创建新会议【领域的活动是什么,核心内容】(2)非功能性需求:扩展性、灵活性【降低维护成本,延长生命周期】。 有界上下文 :引入本概念的目的是为大型、复杂系统的分解提供一种容易管理的方法。在这种分解方式下,一个大型系统由多个有界上下文构成,每个有界上下文所包含的是一个自包容的领域模型,且有自己本身的普适语言。可以将有界上下文看做是一个有着清晰一致性边界的自动化的商业组件。在通常情况下,一个有界上下文更另一个有界上下文进行通信的方法是发送事件。 上下文线路图 :描述不同模型之间的接触点,明确说明所有需要进行翻译的通信链接,并注明任何共享模块或对象。用户在进行这些活动后得出的结果就是一种“上下文线路图”。这种地图提供的是整个系统的概览,帮忙人民理解不同的有界上下文是如何相互交互的。 失血模型 :模型仅仅包含数据的定义和getter/setter方法,业务逻辑和应用逻辑都放到服务层中。这种类在java中叫POJO,在.NET中叫POCO。 贫血模型 :贫血模型中包含了一些业务逻辑,但 不包含依赖持久层的业务逻辑 。这部分依赖于持久层的业务逻辑将会放到服务层中。可以看出,贫血模型中的领域对象是不依赖于持久层的。

android的上下文菜单

风格不统一 提交于 2020-03-04 09:55:50
android的菜单有三种: Options Menu 当用户按下menu button按钮时显示的菜单 Context Menu 当用户长久按住屏幕,即被注册显示上下文菜单的视图时显示的菜单 Submenu 当用户按下一个菜单的某个选项时弹出的子菜单 现在演示一个上下文菜单。 main.xml布局文件:此布局文件定义了listview,用来显示一组列表,稍后上下文菜单将被注册到该listview,并且响应该listview。 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/layout" android:layout_width="fill_parent" android:layout_height="fill_parent"> <ListView android:id="@+id/lv_list" android:layout_width="wrap_content" android:layout_height="fill_parent"> </ListView> </RelativeLayout> item.xml布局文件,用来显示listview中的一个单独的控件

简单理解RESTful

北城以北 提交于 2020-03-03 14:58:30
REST是一种架构风格 , 其核心是面向资源 ,REST专门针对网络应用设计和开发方式,以降低开发的复杂性,提高系统的可伸缩性。REST提出设计概念和准则为: 1.网络上的所有事物都可以被抽象为资源(resource) 2.每一个资源都有唯一的资源标识(resource identifier),对资源的操作不会改变这些标识 3.所有的操作都是无状态的 REST简化开发,其架构遵循 CRUD原则 ,该原则告诉我们 对于资源(包括网络资源)只需要四种行为:创建,获取,更新和删除就可以完成相关的操作和处理 。您可以通过 统一资源标识符(Universal Resource Identifier,URI)来识别和定位资源 ,并且针对这些资源而执行的操作是通过 HTTP 规范定义的。 其核心操作只有GET,PUT,POST,DELETE 。 由于REST强制所有的操作都必须是stateless的,这就没有上下文的约束,如果做分布式,集群都不需要考虑上下文和会话保持的问题。极大的提高系统的可伸缩性。 来源: oschina 链接: https://my.oschina.net/fairy1674/blog/3186557

selinux

浪尽此生 提交于 2020-03-03 08:10:22
补:在客户端登录时,lftp无法列出资源,可能是vsftpd服务没有打开或者火墙没有关闭 selinux功能 selinux关闭状态: 在进行之前的实验中,多次修改/etc/vsftpd/vsftpd.conf文件,为了实验的正确,在进行接下来的实验中, 1.还原配置文件,打开匿名用户登录功能,及上传功能 2.查看selinux关闭时,其影响 a.在/mnt/中建立文件,文件安全上下文为空文件被移动到ftp默认发布目录中可以被访问 b.ftp程序安全上下文为空 c.用户可以上传文件 selinux开启状态 1.当selinux开启会给系统中的每一个文件及每一个程序加载安全上下文 特定安全上下文的程序只能访问特定安全上下文的文件 2.当selinux开启会对服务本身相对不安全的功能加载开关sebool并且设定开关为关闭状态以保证服务安全性 当需要此功能时需用户手动调节 selinux状态 警告状态只会收到警告,过程不会被拒绝 强制状态:收到警告,过程被拒绝 日志清空,操作后查看日志 /var/log/audit/audit.log 注:转换时重启,按照上图笔记 setenforce是临时的,重启时需看配置文件确定其状态 安全上下文 westoslinuxfile文件的安全上下文改为public....所以lftp访问服务器时会发现此文件访问成功 临时更改后,selinux重启

上下文管理

混江龙づ霸主 提交于 2020-03-02 23:12:56
上下文管理 1.什么是with语句? with是一种上下文管理协议,目的在于从流程图中把 try,except 和finally 关键字和资源分配释放相关代码统统去掉,简化try….except….finlally的处理流程。 所以使用with处理的对象必须有enter()和exit()这两个方法   1)with通过enter方法初始化(enter方法在语句体执行之前进入运行)   2)然后在exit中做善后以及处理异常(exit()方法在语句体执行完毕退出后运行) 2. with语句使用场景 with 语句适用于对资源进行访问的场合,确保不管使用过程中是否发生异常都会执行必要的“清理”操作,释放资源 比如文件使用后自动关闭、线程中锁的自动获取和释放等。 文件基本操作 打开文件:f = open(fole_name,mode = ‘r’),传入表示文件路径的字符串,会返回一个文件对象,mode是文件打开模式。 关闭文件:f.close(),调用给定文件对象的close方法。 3.文件打开模式: r:以只读方法打开文件,文件指针默认放在文件开头,文件不存在就报错。 r+:打开一个文件用于读写,文件指针默认放在文件开头,文件不存在则报错 w:打开一个文件只用于写入,如果文件已存在则将其覆盖,不存在就创建一个新文件。 w+:打开一个文件用于读写,如果文件已存在则将其覆盖

Android第四十一天

隐身守侯 提交于 2020-03-02 19:03:14
1.概念 <1>Android应用中的菜单默认是隐藏的,只有当用户点击手机上的MENU键,系统才会显示菜单。这种菜单叫做选项菜单(Option Menu)。 <2>从3.0开始,Android不要求手机设备上必须提供MENU按键。因此Android推荐使用ActionBar来代替Menu。 2、分类 <1>OptionsMenu 按手机menu弹出的菜单 (1)重写public boolean onCreateOptionsMenu(menu)方法 // 显示弹出菜单布局必须要重写的方法,在这个地方加载菜单文件 @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); setIconEnable(menu, true); // 必须要返回true return true; } (2)创建菜单项MenuItem a.创建菜单XML文件,必须以<menu>为根标签 菜单XML的位置:/res/menu/ <item>标签属性 android:id表示item的id android:icon表示菜单的图标,4.0系统仅在ActionBar上显示图标 android:title表示菜单的文字 二级子菜单 <?xml version="1.0"

学习服务之间的调用,三个方法的演化

为君一笑 提交于 2020-03-02 10:51:30
场景 业务场景:下单时扣减库存,由于比较简单,商品和库存都放到了一个上下文中 学习多个上下文之间的交互,协作,订单上下文生成订单时,扣减商品上下文中的库存 第一个方法 第一个方法的技术选型,Redis,WebApiClient,EF CORE, Polly, ExceptionLess,雪花算法 把商品的库存放到redis中,在redis中验证库存,redis中扣减库存,生成订单后使用WebApiClient调用商品上下文中扣减库存的接口 问题: 1,在redis中验证库存,扣减库存时,需要加上Look,多线程时,获取redis中的库存时不加锁获取的库存可能不正确 2,确保WebApiClient调用接口能成功,使用polly 如果掉接口异常,失败时,重试,重试过程中记录异常,和重试的次数,并发出通知。 3,性能不强,EF core 需要持久化订单的数据,使用WebApiClient调用商品上下文中的接口有网络开销 4,WebApiClient请求异常,失败时,Polly会进行重试,出现多次调用的问题,商品上下文接口必须做幂等 5,如何保证不超卖,执行扣减库存修改语句是带上库存必须大于0的条件 第二个方法 第二个方法的技术选型,Redis,CAP,Rabbitmq,EF CORE, Polly,ExceptionLess,雪花算法 把商品的库存放到redis中

JavaScript-this指向解析

痞子三分冷 提交于 2020-03-02 00:25:40
从执行上下文的角度解析this指向,因为this是与执行上下文绑定的,而执行上下文可分为:全局执行上下文、函数执行上下文、eval执行上下文,所以理所应当觉得this指向这三个方面,下面看看实例: // 全局执行上下文 console.log(this, "全局") // 函数执行上下文 function fun() { console.log(this, "函数") } fun() // eval执行上下文 eval("console.log(this, 'eval')") // 打印结果见下图1,从图中可见,打印结果与我们预期结果有很大的差异,三种执行上下文默认情况下均之上了window,那我们看一下怎样去改变this的指向 图1 改变this指向方式 1.使用关键字new 构造函数使用new实例化时this指向new出来的对象 function Fun(name) { this.name = name } var exm = new Fun("ann") console.log(exm.name) // ann 所以Fun中的this指向了exa 2.使用call,apply,bind 把函数绑定到一个对象上运行,函数this就指向目前绑定的对象 function Fun(name) { this.name = name } var obj = {} Fun.call(obj

Python: try finally 与 上下文管理器简介

允我心安 提交于 2020-03-01 23:47:32
用 Python 做一件很平常的事情: 打开文件, 逐行读入, 最后关掉文件; 进一步的需求是, 这也许是程序中一个可选的功能, 如果有任何问题, 比如文件无法打开, 或是读取出错, 那么在函数内需要捕获所有异常, 输出一行警告并退出. 代码可能一开始看起来是这样的 def read_file(): try: f = open('yui', 'r') print ''.join(f.readlines()) except: print 'error occurs while reading file' finally: f.close() 不过这显然无法运作, 因为 f 是在 try 块中定义的, 而在 finally 中无法引用. 如果将 f 提取到 try 块外部, 如 def read_file(): f = open('azusa', 'r') try: print ''.join(f.readlines()) except: print 'error occurs while reading file' finally: f.close() 那么, 问题在于当打开文件失败, 抛出异常将不会被捕获. 挫一点的方法自然是, 再套一层 try 吧 def read_file(): try: f = open('sawako', 'r') try: print ''.join(f

截取屏幕图片

人走茶凉 提交于 2020-03-01 22:47:13
Link Address:http://blog.163.com/lwd_xinghuo@126/blog/static/1682935782011528331843/ //创建一个基于位图的图形上下文并指定大小为CGSizeMake(200,400) UIGraphicsBeginImageContext(CGSizeMake(200,400)); //renderInContext 呈现接受者及其子范围到指定的上下文 [self.view.layer renderInContext:UIGraphicsGetCurrentContext()]; //返回一个基于当前图形上下文的图片 UIImage *aImage = UIGraphicsGetImageFromCurrentImageContext(); //移除栈顶的基于当前位图的图形上下文 UIGraphicsEndImageContext(); //以png格式返回指定图片的数据 imageData = UIImagePNGRepresentation(aImage); 来源: https://www.cnblogs.com/xingchen/archive/2011/11/27/2265379.html