摘要:我做了一个observer的设计模式实现version1// --------------------------------------------------function Subject(){}Subject.prototype.add = function(obj){ if(type...
阅读全文
摘要:首先要说的是,javascript其实是可以进行OOP编程的,其次javascript的OOP编程实现方式有多种,我写的这一种只是我测试过,可行的一种version1// 父类function Person(name){this.name = name}Person.prototype.say = ...
阅读全文
摘要:QUnit:jQuery的单元测试框架,但不仅限于jQuery(从这个工具不需要引用jquery.js可以看出)index.html QUnit Example api.jsfunction sum(a, b){ re...
阅读全文
摘要:摘要本文将介绍领域驱动设计(Domain Driven Design)的官方参考架构,该架构分成了Interfaces、Applications和Domain三层以及包含各类基础设施的Infrastructure。本文会对架构中一些重要组件和问题进行讨论,给出一些分析结论。本文原文连接:http:/...
阅读全文
摘要:http://blog.csdn.net/toy_shop_owner/article/details/25448849任何一个软件都是可以测试。在某种意义上,用户的使用过程也就是一个软件测试的过程。可是这并不是我们今天要讲的可测试性。我们讲的可测试性指的是代码的可测试性,通俗点儿说就是是一串代码里...
阅读全文
摘要:http://blog.csdn.net/zhouyong0/article/details/8281192/*references:感谢资源分享者。info:简单记录如何通过工具从源码生成类图,便于分析代码结构,对源码阅读挺有用。*/看点开源代码学习下,本想找个代码查看方便点的工具,便于理清代码层...
阅读全文
摘要:http://www.cnblogs.com/Logen/archive/2012/11/08/2760638.html场景分析:我们知道,一个移动设备的应用大多与网络有关,也就是说,我在移动设备上看到的数据,一般都是从Server上”拉“过来,显示在我们的移动设备(ios androiud、wpo...
阅读全文
摘要:http://www.cnblogs.com/blusehuang/archive/2007/07/06/808740.html Martin Fowler很早以前就写过一篇文章,题目叫"贫血模型"。文章里面批判贫血的领域模型是不够优雅、不够OO的,提倡使用充血的领域模型。在Java世界里这是一直争...
阅读全文
摘要:http://www.codeceo.com/article/web-js-and-server-artch.html一个优秀的WEB架构,必定会应用一些分层设计的思想,这样可以让系统开发起来更灵活,同时后期维护也比较方便。本文作者麦舒设计了一个前端与后端分离的架构,原文分享如下:看了《系统架构:Web应用架构的新趋势—前端和后端分离的一点想法》这篇文章,对前端与后端的分离非常认同,这样做对于系统的维护是有相当大的好处的。正好自己也设计了一个这样的系统,于是把它拿出来,和大家讨论一下。这个架构,与其说是想出来,还不如说是我做系统总结出来的最佳实践。我们做的系统,前端的页面基本都是使用 Java
阅读全文
摘要:http://www.bitstech.net/2014/01/07/log-best-practice/前言日志用来记录用户操作、系统运行状态等,是一个系统的重要组成部分。然而由于日志并非系统核心功能,通常情况下并不受团队的重视。在出现问题需要通过日志来定位时,才发现日志还存在很多问题。日志记录的好坏直接关系到系统出现问题时定位的速度,同时可以通过对日志的观察和分析,提前发现系统可能的风险,避免线上事故的发生。我们在开发和运维NOS(网易对象存储,Netease Object Storage)的过程中,对整个系统的日志进行了分析优化,积累出一些经验,归纳如下。相关问题经验整理1.关于日志级别
阅读全文
摘要:http://blog.jobbole.com/31248/1、软件长期运营存在什么问题一个大规模的客户端软件的生命周期中,我们可以把它分为两个比较粗的时期。一个是前期的搭建软件的时期,即从无到有的时期;第二个是搭建完成之后,进入的一个稳定的运营时期。第二个时期才是最关键的,在这个时期我们会持续的迭加需求,持续的优化功能,而且第二个时期也是代码在慢慢变质的时期。在这个时期,你可能会发现:我们的软件慢慢出现模块耦合严重,牵一发而动全身;每个版本都会涌现出老功能的BUG,你没动过的模块也会出BUG;或者改了一个小问题了,带出来很多其他问题;缺乏扩展性,往老模块加新功能非常痛苦;程序的崩溃率越来越高
阅读全文
摘要:http://kb.cnblogs.com/page/112298/作者: 池建强来源: InfoQ发布时间: 2013-12-01 13:03阅读: 2892 次推荐: 7原文链接[收藏]摘要:本文主要介绍了领域驱动设计的基本概念、要素、特点,对比了事务脚本和领域模型的特点,最后介绍了我们在软件开发过程中的领域驱动设计实践。 引言 软件系统面向对象的设计思想可谓历史悠久,20世纪70年代的Smalltalk可以说是面向对象语言的经典,直到今天我们依然将这门语言视为面向对象语言的基础。随着编程语言和技术的发展,各种语言特性层出不穷,面向对象是大部分语言的一个基本特性,像C++、Java、C..
阅读全文
摘要:http://www.infoq.com/cn/news/2012/11/dropbox-scale-bestpracticeDropbox的运维工程师Rajiv,跟大家分享了可伸缩性设计的最佳实践第一讲。众所周知,Dropbox是一款非常易用的网络存储云端产品,现已达到40,000,000的用户。令人惊奇的是,Dropbox公司对于服务器集群的运维人员投入在一到三个人。Rajiv就系统的可伸缩性设计,尤其在资源有限、流量快速增长的情况下,将最佳实践分享给大家。Run with extra load(通过额外加载发现系统故障)在生产环境最常用的一个技巧就是,人为制造一些额外的数据进行加载。举个
阅读全文
摘要:// com口操作类package xyz.game;class ComOpera { public void openPort() throws Exception {...} // 打开com public void closeProt() {...} // 关闭com private String readMsg() {...} // 读取com消息 private void writeMsg(String msg) {...} // 写com消息 public boolean getComStatus() {...} private String u...
阅读全文
摘要:mylog.h#ifndef _MY_LOG_H#define _MY_LOG_Hint init(char *filename);void *get_category(char * cateory_name);void info(void *category, char *message);void debug(void *category, char *message);void fini();#endifmylog.c#include "zlog.h"#include "mylog.h"int init(char *filename){ retur
阅读全文
摘要:看了kent的实现模式,对代码抽象层次有了一点理解,kent首先问了一个问题,下面的代码有神马问题?void compute(){ int flag = input(); flag |= 1; output(flag);}粗看来没有,但其实不然,但其实,input和output已经是高层抽象了,例如你并不知道输入来自于何方,到底是键盘输入呢,还是文件输入,又或者是网络输入,同样output也是如此,但是中间设置flag的语句则是一个低层抽象,如果整个函数都是低层抽象,代码应该是这样:void compute(){ extern char *s; int fl...
阅读全文
摘要:译自Optimal Loggingby Anthony ValloneGoogle Testing Blog要找到一个系统问题的根本原因,你需要多长时间?5分钟?还是5天?如果你的答案接近5分钟,很大可能是因为你的生产环境和测试环境使用了非常好的日志记录。更常见的情况是,诸如日志、异常处理、甚至测试这类非核心的工作,被当作一种出现问题后的补救方式。同异常处理和测试一样,日志记录真的也需要策略,无论是生产环境还是测试环境。永远不要低估日志的作用。有了使用得当的日志,你甚至可以说debug不是必需的。下面是多年来对我非常有用的日志记录指导原则。保持适度切勿记录过多。大量的磁盘空间被日志占用说明你没
阅读全文
摘要:http://www.ibm.com/developerworks/cn/java/j-logging/提前规划一个记录日志的计划,在开发过程后期就可以获益Charles Chan(chancharles@gmail.com), 首席顾问, Ambrose Software Inc.简介:在企业级的开发过程中,我们不可避免地会碰到很多问题;如果您希望在开发过程的后期能够有效地捕捉 bug,那就需要一种有效的日志策略。但是在一个企业的应用程序中要想实现有效地记录日志,需要进行一番规划,并设计一些准则。在本文中,顾问 Charles Chan 将向您介绍一些最好的实践,从而帮助您从项目一开始就编写
阅读全文
摘要:module/a.awkfunction sum(a, b){ return a + b}module/b.awkfunction sum(a, b){ return a * b}main.awkEND{ print sum(3,4); }调用方式:echo "" | igawk -f main.awk -f module/a.awk# 打印 7echo "" | igawk -f main.awk -f module/b.awk# 打印 12这样也能体现接口的一种理念:让main.awk里的代码依赖接口(sum函数) 而控制不同模块文件的加载控制行为,
阅读全文
摘要:项目代码:alias book_search="/usr/local/mysql/bin/mysql -h 172.18.12.202 -uppstat -pstatpp book_search"echo "select id,cpname from search_cp_infomation where hide=1;" | book_search -s > $cpFile使用打桩代码alias book_search="/home/lishujun/src/mockobject/book_search"echo "s
阅读全文