- 博客(47)
- 资源 (2)
- 收藏
- 关注
原创 scala 近期代码一些收获,记住了
1 创建匿名子类对象abstract IloPollingActorBoss{val actor:Actordef pooling = {}def suicite = {}} 在其他地方可以创建如下子类对象, 本生抽象类是不允许创建实例的,但是创建的时候可以传入实现构成一个匿名的变量val s = new IloPollingActorBoss {val a
2014-10-15 20:34:52 519
转载 CQRS 和 EVENT SOURCING的例子读后感
在12月11日新的有关DDDCQRS和Event Sourcing演讲:改变心态- 以更加面向对象视角看待业务领域建模中,作者以足球比赛football Match为案例说明传统编程方法和CQRS的区别。CQRS作为DDD的最佳实践已经得到广泛承认和普及,下面摘取该文章的PPT部分图片简单讲解一下,如何使用CQRS和Event Sourcing实现DDD系统。首先,领域
2014-10-12 20:53:23 774
转载 effective scala
http://blog.csdn.net/li385805776/article/details/19232601
2014-09-27 21:13:50 384
原创 Scala操作笔记--函数式编程 及 case 类
1 咖喱函数定义:多参数def curriedSum(x: Int)(y: Int) = x + y生成咖喱函数scala> val onePlus = curriedSum(1)_onePlus: (Int) => Int = 2 使用递归完成参数可变的情况下加法 it("should sum all parameters by sum functions
2014-09-10 19:54:41 417
原创 Scala List操作笔记 --备忘(9.9总结)
1 getorElse val resultByThree = map.getOrElse("three", 0) 2 find 找到第一个满足条件的值 it("should get 3 given condition is greater than 2 using find") { val numbers = List(1, 2, 3, 4)
2014-09-10 19:52:32 533
原创 windows GCC环境 UT搭建选型,及 mockcpp的使用小东东
最近在弄Windows上编写GCC代码环境的 UT工具搭建工作,尝试了几种组合,供大家选择。1 windows + gtest + gmock + cygwin 缺点 gtest 不能mock C函数。2 windwos + gtest + cygwin + mockcpp 缺点 mokcpp同cygwin不能完全兼容,而且 不支持修改代码段的内存,所以自研的hook工
2014-03-08 12:56:40 1791
转载 ZZ: 关于Python的descriptor的知识
http://www.cnblogs.com/btchenguang/archive/2012/09/17/2689146.html
2014-02-18 22:09:04 406
转载 Python 中的with语句用法
转载于:http://jianpx.iteye.com/blog/505469感觉写的不错,抄录下来: 由于之前有一个项目老是要打开文件,然后用pickle.load(file),再处理。。。最后要关闭文件,所以觉得有点繁琐,代码也不简洁。所以向python with statement寻求解决方法。 在网上看到一篇文章:http://effbot.org/zone/pyt
2014-01-22 21:06:40 676
原创 python 的内存管理
1 函数调用,赋值等操作都是引用传递,即传递的是一个别名。 2 内存管理给予refer count,计数发现如果使用为0,则自动执行回收内存。
2014-01-21 21:47:21 408
原创 python中的generator高级用法 -- send
def yield_tester(self): value = yield if value: yield value else: yield 'no value' def test_generators_can_see_if_they_have_been_called_with_a
2014-01-19 21:07:53 1462
翻译 python中的mro
发现一个号网站:http://stackoverflow.com现在才发现,土呀:什么是MROFollow along...:>>> class A(object): pass... >>> A.__mro__(, )>>> class B(A): pass... >>> B.__mro__(, , )>>> class C(A): pass... >>
2014-01-13 21:13:52 631
原创 chain of responbility 职责链模式
个人理解这个模型必须同composit模型结合起来使用,否则从上到下都要继承一个服务接口类,修改起来非常麻烦。这个模型的现实意义是,当系统是整体与部分的时候,对部分请求一个整体才有的职责时,部分发现自己没有这个职责,则向上传递这个职责。比如 部门里面,向一个普通员工对象要求获取部门平均工资的请求,这个责任明显不是普通员工拥有的,模式的实现是直接丢给科长, 科长发现也不是自己
2013-12-30 21:17:07 644
原创 设计模式- 对象结构型模式小结
粗粗看文GOF的设计模式第二部分:感觉着这部分类图实现上看差异很小,但是从动机和范围却差异很大:1 ADAPTER 适配两个不兼容的类,采用多重继承或者的类适配器或者委托对象的对象适配器。 典型例子是 TextShape2 Bridge 把抽象和实现隔离,使用场景是当某个抽象的实现不止一个,的时候,使用该模式的IMPL,把两者隔离开来,从而他们
2013-12-29 17:45:57 544
原创 PF_NETLINK 协议 获取IPV6路由信息的一些陷阱
关于使用NETLINK获取系统路由信息,GOOGLE上可以搜索到相关的使用方法,不过IPV6的倒是确实没有涉及。涉及IP6的路由操作,整个internet都没人涉及;本人经过多个坑,终于搞定,有些陷阱分享一下: 1 创建SOCKET方式: sock = socket(PF_NETLINK, SOCK_RAW, NETLINK_ROUTE)) 必须为NETLINK_R
2013-12-23 20:03:16 1556 1
原创 Bridge 模式学习:
基本模式是复杂类的抽象和实现分开,这样抽象和实现可以相互独立,各自演进发展: 类似于: sruct Impl;struct ComplexClass{ virtual void interface1(); virtual void interface2(); virtual void interface3(); Impl * ge
2013-12-21 15:36:15 457
原创 设计模式factory method; abstract fatory; builder ; prototype
GOF 经典设计模型的几种对象创建模式:两种方法:1 创建对象类的子类,这个对应于Factory Method 缺点就是子类可能很多。2 依赖对象复合,定义一个对象负责明确产品对象的类,这些模型有个共同的特点都涉及创建一个新的负责创建产品对象的工厂对象。包括如下:Abstract Factory : 优势在于创建一系列相同属性的对象。Builder:优势在于创建复杂的对象,
2013-12-15 21:06:22 501
原创 如何获取当前配置的IPV6地址的前缀长度(掩码)
首先问个问题:IPV6是否有掩码?答: 有 GOOGLE上查了一圈没有找到好的方法,字节摸索了一套可行的方法,同分享:下述程序打印处掩码长度,由此判断前缀长度,good! #include #include #include #include #include #incl
2013-12-02 20:48:05 27796 1
转载 ZZ: linux IPV4 IPV6 sockaddr 几个结构体及其关系: sockaddr sockaddr_in sockaddr_in6
1struct sockaddr {sa_family_t sa_family; /* address family, AF_xxx*/char sa_data[14];/* 14 bytes of protocol address*/};这个结构体是IP4 IP6通用的,但是但看结构体长度好像只适合IPV42struct sockaddr_in { __ke
2013-12-02 20:41:53 1759
原创 python 中List 与dictionary
1 List 中的平行赋值, 注意其中的last_name前面有一个*,表示如果 List中元素个数大于待赋值的对象个数的话,表示这个对象是一个子list def test_parallel_assignments_with_extra_values(self): title, first_names, *last_name = ["Sir", "Ricky", "Bo
2013-11-10 20:37:46 1239
原创 Cpp Primer CH12 泛型算法
1 stable_sort()有些泛型算法有不同的变形,使用重载实现,比如stable_sort(begin, end);stable_sort(begin,end, less_than);第一种内部比较算法依赖容器对象的比较操作符。第二种允许用户定义或者重定义比较规则。其中less_than是一个函数指针或者是一个函数对象。 2 函数对象2.1 什么是函数对象
2013-11-10 15:24:08 640
原创 Cpp Primer CH11 异常处理
1 C++异常类型通常用类(class)实现。 2 捕获异常try{ throut (YYY)}catch(XXX) { }其中catch内容可能是:2.11 单个异常类类型, 对应的YYY是类型名2.2 单个对象声明,对应的应该是XXX类型的某个对象2.3 .... 表示能捕获所有的可能异常。 3 捕获异常C++的异常处理是不可恢复的:
2013-11-10 14:52:21 583
原创 Clean Code CH12
简单设计4原则:1 通过所有测试;2 不可重复;3 清晰表达;4 尽可能减少类和方法;以上规则暗器重要性排列。 1 测试2~4 重构依次迭进,达到称心。
2013-11-06 22:35:02 507
原创 Clean Code CH9 CH10
单元测试:TDD 3定律: 保持测试整洁:结论:测试代码和生产代码一样重要,需要被思考,被设计和被照料。 1 面向特定领域的测试语言DSL:2 每个测试一个断言,概念。 F.I.R.S.T.原则。 类1 类应该是短小的。衡量类大小的单位是职责。2 单一职责原则 SRP,类应该只有一个变化的理由。3 什么是内聚:1 类应该只有少量的数据。
2013-11-06 22:28:42 770
原创 Clean Code CH8
1 如何使用第三方代码?第三方接口提供方追求普世性,提供很多种方法在各种环境下都能应用,以吸引用户。而使用者则想要集中满足特定需求的接口。这种矛盾在系统边界上出现问题。 比如 Map sensors = new HashMap();别人访问的时候必须要 Sensors = (Sensors)sensors.get(sensorsId); 代码的使用者承担了从MAP取出对象转换为正确
2013-11-06 22:12:52 664
原创 CleanCode CH7
错误处理:1 使用异常,而非返回码。try{}catch{} 2 从异常处理查看对第三方接口打包的好处:比如:ACMPort port = new AcmPort(12); try{ port.open();}catch (DeviceRespronerror e){ report err;log(xxxx);}catc
2013-11-06 21:52:49 557
原创 CleanCode CH5 CH6
CH5 格式代码格式很重要,原始代码修改很久后,可能代码不存在了,但是代码行文风格还是保留。 垂直格式相关函数,调用者应该尽可能的放在被调用者的上方。概念相关放在一起。 横向格式: CH6 对象与数据结构1 隐藏并非只是在变量之间放上一个函数层这么简单,隐藏实现关乎抽象。类并非简单实用取值,赋值函数,而是暴漏对象接口,以便用户不用了解数据实现,就能操作数据。
2013-11-06 21:24:14 592
原创 C++ Primer CH9 CH10
1 重载函数 1 必须体现在参数个数和参数类型差异上,仅仅判断返回值不足重载,会议之前的描述底层函数名+参数个数+参数类型编码。2 const 修饰的参数不足以重载,比如void f(int i)void f(const int i)不能作为重载函数。但是如果作为引用或者指针类型,则表示是可以重载的。比如 void f(int *);void(const in
2013-10-29 21:25:58 440
原创 C++ Primer ch7 ch8
1 数组参数: 1 C++中数组永远不会按值传递,他是传递一个指针,函数永远不知道对应数组的长度。 2 如果解决上面的问题,可以使用数组引用作为参数,这样数组的长度就是已知的,比如void putvalue(int (&a)[10]),表示参数是大小为10的int数组。 2 函数缺省实参只能提供调用缺少的尾部,比如;char *init(int height = 19
2013-10-28 22:12:10 468
原创 Python List相关
包括 list queue stack 等容器。 1 python 是一种面向对象的语言,比如如下测试 range(1,6)是一种range type 可以作为list的构造函数的参数,但是他们本身并不相等。def test_lists_and_ranges(self): self.assertEqual(range, type(range(5)))
2013-10-27 11:01:58 440
原创 Python入门学习 :)
无意中发现一个非常棒的学习新语言工具 Koans,very nice! 使用了几张,发现python学习挺有乐趣,交互式学习,填空式学习,TDD方式学习, that's amazing!!!!!
2013-10-27 10:56:08 454
原创 python 中的特殊常量 None
1 None是一个常量对象,对象类型是NoneType所以None不是0 不是FALSE, 不是空字符串3 NoneType类型没有任何内建的方法。2 可以把None赋值给任何变量,但是不能反向操作。 个人感觉None类似C语言NULL,但是由于是对象所有还是有差异。
2013-10-27 09:42:42 737
原创 CPP_Primer CH6--抽象容器
Ponit1:顺序容器:拥有有单一类型元素组成的一个有序集合:1 Vector 2 List3 Deque 类似Vector,但是对首元素删除,插入有特殊支持。 关联容器:MAP 描述关键字(KEY)到有效数据(VALUE)映射。SET 描述关键字的集合,有效支持关键字是否存在。 Point2:如何选择Vectro还是list?1 如果需要随机访问
2013-10-20 21:25:53 461
原创 CPP_Primer_CH4_CH5
Ponit1:C++的四种显式数据类型转换:1 static_cast 静态的转换,所有自动隐形转换的函数都可以使用;消除精度丢失告警2 const_cast 转换掉表达式的的常量性,如果采用其他方式转换则会出现错误。extern char *str_copy(char *)const char *pc_str;str_copy(const_cast(pc_str));
2013-10-20 07:10:56 475
原创 C语言实现SOLID原则的模式
SOLID定义:S (Single Responsibility Principle) 单一职责原则O(Open Closed Priciple) 开放封闭原则,对扩展新功能开放,对修改老代码封闭L (Liskov Substitution Principle) 发起调用的代码,在不需要知道被调用的代码的任何特别的知识就可以替换有着相同接口的模块。I (Interface Segr
2013-10-16 22:13:07 1179
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人