摘要:项目代码: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
阅读全文
摘要:http://www.cnblogs.com/snandy/p/3189379.html什么是模块化模块化这个词最早出现在研究工程设计中的《Design Rules》,这本探路性质的书中。其后模块化原则还只是作为计算机科学的理论,尚不是工程实践。此时硬件的模块化一直是工程技术的基石之一。如标准螺纹、汽车组件、计算机硬件组件等。软件模块化的原则也是随着软件的复杂性诞生的。从开始的机器码、子程序划分、库、框架、再到分布在成千上万公里的互联网上主机上的程序库。模块化是解决软件复杂性的重要方法之一。模块化以分治法为依据,但是否意味着我们把软件无限制的细分下去。事实上当分割过细,模块总数增多,每个模块的
阅读全文
摘要:.在制作自己的发行版时经常需要判断某条命令需要哪些共享库文件的支持,以确保指定的命令在独立的系统内可以可靠的运行;在Linux环境下通过ldd命令即可实现,在终端下执行:ldd /bin/ls //ldd命令通常使用"-v"或"--verbose"选项来显示所依赖的动态连接库的尽可能的详细信息。即可得到/bin/ls命令的相关共享库文件列表:libtermcap.so.2 => /lib/libtermcap.so.2 (0x4001c000) libc.so.6 => /lib/libc.so.6 (0x40020000) /lib/ld-
阅读全文
摘要:http://littlepig3056.blog.163.com/blog/static/180758353201152992934358/编译器在链接时优先在环境变量$LD_LIBRARY_PATH指定的路径下寻找,如果多个路径下都有需要的动态链接库,则且优先使用靠前的路径下的动态链接库一般默认的优先级是: /usr/local/lib /usr/lib /lib /lib64(实际上是一个链接符,指向/lib)strings /home/lxn/lib/libxul.so | grep keywords 使用模式识别出libxul.so中的字符串,并找出包含keywords的
阅读全文
摘要:http://littlepig3056.blog.163.com/blog/static/180758353201212751814134/ldd 查看可执行文件依赖的库,结果会列出依赖的库名及依赖库所在路径ldd命令执行时,从环境变量LD_LIBRARY_PATH查找可执行文件链接的库。所以要让可执行文件链接到正确的库有两种方式:1. 编写setenv.sh脚本设置环境变量LD_LIBRARY_PATH 采用这种方式,要求每次启动新会话后,都必须执行source setenv.sh命令行,使得设置对于当前会话生效。2. 修改用户根目录的.bash_profile文件export LD_L.
阅读全文
摘要:http://blog.csdn.net/sky_qing/article/details/7208645一、安装:我看网上好多人介绍log4c安装的时候都说有两个步骤:先下载expat安装包并安装expat,然后下载log4c安装包并安装log4c。这么看来,log4c是依赖expat的。但是有时候我们不想使用的日志系统还要依赖别的库,毕竟现在的开源日志系统很多,这样一来log4c就没有那么大的优势了。所以我仔细看了log4c的README文档,发现log4c模块默认情况下是使用expat库来作为XML文件的解析器(因为log4c的配置文件默认是一个叫log4crc的XML文件),我们可以在
阅读全文
摘要:1 下载源码,解压 (假定解压到了当前用户的根目录下,位置是~/log4c-1.2.3)2 编译安装log4c(指定--prefix极其重要,如果没有指定到/usr下会有一堆麻烦事,还有,不能按照他的README里说的,指定到/path/of/installation,因为这样真的会在根目录下建立这样的目录)cd ~tar -zxvf log4c-1.2.3.tar.gzmkdir build; cd build../log4c-1.2.3/configure --prefix=/usr/local/log4cmakemake install3 编译log4c自带的例子cd ~/log4c-1
阅读全文
摘要:/etc/ld.so.conf这个文件记录了编译时使用的动态链接库的路径。默认情况下,编译器只会使用/lib和/usr/lib这两个目录下的库文件如果你安装了某些库,比如在安装gtk+-2.4.13时它会需要glib-2.0 >= 2.4.0,辛苦的安装好glib后没有指定 --prefix=/usr 这样glib库就装到了/usr/local下,而又没有在/etc/ld.so.conf中添加/usr/local/lib=================库文件的路径如 /usr/lib 或 /usr/local/lib 应该在 /etc/ld.so.conf 文件中,这样 ldd 才能找
阅读全文
摘要:摘要:系统架构设计之所以难是因为变数太大,既要从用户需求角度考量,又要考虑自身设计的种种局限性。异构系统间的接口设计是尤其需要注意的,因此,架构师要从宏观的角度来规划整个架构,以下列出五点注意事项仅供参考。文章来源于DZone,作者Simon Brown分享了自己在增强软件功能的工作中得出的一些经验,详细讲述了软件体系结构同样也需要加强功能性,并列出了增加新功能时需要重点考虑的注意事项。(以下是编译内容)我们现在需要提升正在使用的软件系统,将新的功能添加到现存的一些使用案例中。可以想象,用户案例得以执行,主要是通过用户在Web应用程序中的多个网页的实践,而且最终步骤的修改也是建立在大量用户案例
阅读全文
摘要:投递人itwriter发布于 2013-07-22 08:01评论(13)有1749人阅读原文链接[收藏]«» 英文原文:Not handling edge cases, making them explicit instead 写accidental entities系列文章之初,我们跟着一个顾问公司为一个汽车租赁公司开发一套软件。当时他们已经完成了新车注册部分的功能。计划中的下一步是让顾客能在系统中预订。 我们争取到了租赁公司的 CEO 抽出一小时时间给我们介绍预订系统流程。 CEO: 我想这个会议用不了一个小时。预订流程非常简单。你们对预订流程有什么看法?” Us:
阅读全文
摘要:我倒是不追求代码和C++相似,但是应该追求简洁的代码,下面是一个新的尝试shape.h#ifndef SHAPE_H#define SHAPE_Htypedef struct shape_t { void *shapeData; void (*area)(void *); void (*release)(void *);}Shape;void release(void *shape);#endifshape.c#include #include "shape.h"void release(void *shape){ free(((Shape*)shape)->shap
阅读全文
摘要:写版本2的原因,还是发现在不同的具体图形模块里发现了重复的release代码,这是坏味道,所以还是决定消除这些重复代码,DRY!shape.h#ifndef SHAPE_H#define SHAPE_Htypedef struct shape_t { void *shapeData; void (*area)(void *); void (*release)(void *);}Shape;void release(void *shape);#endifshape.c#include #include "shape.h"void release(void *shape){ .
阅读全文
摘要:我倒不是为了OOP而OOP,实在是OOP的一些特征,例如封装,多态其实是软件工程思想,这些思想不分语言,遵循了这些思想可以使得程序更有弹性,更易修改和维护,避免僵化,脆弱shape.h该文件定义的是图形接口,所有具体图形都必须实现自己计算面积,周长等API#ifndef SHAPE_H#define SHAPE_Htypedef struct shape_t { void *shapeData; void (*area)(void *); void (*release)(void *);}Shape;#endifcircle.h 圆形接口#ifndef CIRCLE_H#de...
阅读全文
摘要:功能:排序语法:sort [-bcdfimMnr][-o][-t][+-][--help][--verison][文件]参数: -b 忽略每行前面开始出的空格字符。 -d 排序时,处理英文字母、数字及空格字符外,忽略其他的字符。 -f 排序时,将小写字母视为大写字母。 -i 排序时,除了040至176之间的ASCII字符外,忽略其他的字符。 -c 检查文件是否已经按照顺序排序。 -m 将几个排序好的文件进行合并。 -M 前面3个字母依照月份的缩写进行排序。 -n 依照数值的大小排序。 -o 将排序后的结果存入指定的文件。 -r 以相反的顺序来排序。 -t 指定排序时所用的栏位分隔字符。 -k
阅读全文
摘要:http://www.ibm.com/developerworks/cn/linux/l-cn-shell-debug/一. 前言shell编程在unix/linux世界中使用得非常广泛,熟练掌握shell编程也是成为一名优秀的unix/linux开发者和系统管理员的必经之路。脚本调试的主要工作就是发现引发脚本错误的原因以及在脚本源代码中定位发生错误的行,常用的手段包括分析输出的错误信息,通过在脚本中加入调试语句,输出调试信息来辅助诊断错误,利用调试工具等。但与其它高级语言相比,shell解释器缺乏相应的调试机制和调试工具的支持,其输出的错误信息又往往很不明确,初学者在调试脚本时,除了知道用e
阅读全文
摘要:参考文章http://www.cnblogs.com/coderzh/archive/2009/04/06/1426755.html阿里的oceanbase用的就是这个库,看来很值得一学啊
阅读全文
摘要:从DBA那问来的,备份现有数据库表:create table B select * from A ;删除,重建数据库主键alter table book_order drop primary key; alter table book_order add primary key(bookid,platform,stat_date);根据小时分组数据select date_format(inserttime,'%Y-%m-%d %H'),count(userid), count(distinct userid) from pppay_order_alipay where stat
阅读全文
摘要:操作步骤以下两步:远程linux机器。修改环境变量LANG。例如在~/.bash_profile里面添加[plain]view plaincopyexportLANG=zh_CN.UTF8重新登录之后生效。现在查看一下当前设置:[plain]view plaincopymyname@myhost~>localeLANG=zh_CN.UTF8LC_CTYPE="zh_CN.UTF8"LC_NUMERIC="zh_CN.UTF8"LC_TIME="zh_CN.UTF8"LC_COLLATE="zh_CN.UTF8"
阅读全文
摘要:Code Review是一种通过复查代码提高代码质量的过程,在XP方法中占有极为重要的地位,也已经成为软件工程中一个不可缺少的环节。本文通过对Code Review的一些概念和经验的探讨,就如何进行Code Review和Code Review中应该注意什么提出一些建议。本文中涉及的问题大部分针对JAVA类代码。同时本文不涉及Code Review过程和组织。关键词:Code Review JAVA 代码质量 软件工程一、Code Review简介1 Code Review的目的凡事知其然还要知其所以然,我们首先需要知道什么是Code Review和我们使用它的目的是什么。Code Revie
阅读全文
摘要:http://www.csdn.net/article/2013-07-11/2816199-architecture-twitter-uses-to-deal-with-150m-active-users摘要:Twitter出道之初只是个奋斗在RoR上的小站点,而如今已拥有1.5亿的活跃用户,系统日传输tweet更多达4亿条,并已完成了以服务为核心的系统架构蜕变。Twitter如今在世界范围内已拥有1.5亿的活跃用户,为了给用户生成timeline(时间轴)需支撑30万QPS,其firehose每秒同样生成22MB数据。整个系统每天传输tweet 4亿条,并且只需要5分钟就可以让一条twee
阅读全文
摘要:#/bin/bash#创建数组方式1arr[0]=helloarr[1]=world#创建数组方式2arr=(hello world)#创建数组方式3arr=([1]=hello [2]=world)#遍历数组方式1for i in ${arr[*]}do echo $idone#获得数组长度length=${#arr[@]}echo $length#遍历数组方式2i=1while [ $i -lt $length ]do echo $i echo ${arr[i]} i=`expr $[$i+1]`donebash是更高级的sh(支持数...
阅读全文
摘要:1. 前言 Internet的高速发展,给人们的工作和生活带来了极大的便利,对Internet的服务品质和访问速度要求越来越高,虽然带宽不断增加,用户数量也在不断增加,受Web服务器的负荷和传输距离等因数的影响,响应速度慢还是经常抱怨和困扰。解决方案就是在网络传输上利用缓存技术使得Web服务数据流能就近访问,是优化网络数据传输非常有效的技术,从而获得高速的体验和品质保证。 网络缓存技术,其目的就是减少网络中冗余数据的重复传输,使之最小化,将广域传输转为本地或就近访问。互联网上传递的内容,大部分为重复的Web/FTP数据,Cache服务器及应用Caching技术的网络设备,可大大优化数据链...
阅读全文
摘要:作者: Dan Orlando发布时间: 2013-07-06 16:42阅读: 489 次推荐: 0原文链接[收藏] 英文原文:Cloud computing service models, Part 3: Software as a Service 软件即服务 (SaaS) 为商用软件提供基于网络的访问。您有可能已经使用过 SaaS,即使您当时并不知道。SaaS 的示例包括 Netflix、Photoshop.com、Acrobat.com、Intuit QuickBooks Online、Gmail 和 Google Docs。可能不太明显的 SaaS 实现包括移动应用程序市场中的相..
阅读全文
摘要:http://topmanopensource.iteye.com/blog/1278811MongoDB基本介绍及一些用法满足海量存储需求和访问的面向文档的数据库:MongoDB,CouchDB MongoDB Nice, I like it very much. 面向文档的非关系数据库主要解决的问题不是高性能的并发读写,而是保证海量数据存储的同时,具有良好的查询性能。MongoDB是用C++开发的,而CouchDB则是Erlang开发的: 1、MongoDB MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据...
阅读全文
摘要:https://github.com/Qihoo360/Atlas/tree/master/src
阅读全文
摘要:mail [-s 邮件标题] [邮件地址2] [邮件地址3]> [ [-F 显示发送人姓名]说明接收邮件地址以空格分隔加粗的表示必选从终端输入邮件内容# 以单独的一行点号结束邮件内容的输入mail -s "bookshelf.pp.cn" lishujun@3gpp.com.cn jinpeng@3gpp.com.cn -- -f lishujun@3gpp.com.cn -F leehello.EOT从文件中输入邮件内容mail -s "bookshelf.pp.cn" lishujun@3gpp.com.cn jinpeng@3gpp.com.
阅读全文
摘要:http://www.csdn.net/article/2013-06-30/2816056-how-to-be-a-great-technical-leader摘要:日前,曾就职于谷歌、Square、DoubleHelix等公司的资深软件工程师及创业者David Byttow撰文阐述如何成为一名伟大的技术领导者:丰富的知识积累、对问题的迅速处理、大局观意识、能动性和对不必要的功能说“不”等。最成功的项目都有一位优秀的技术领导者,来推动项目前进,同时确保正确制定每一个技术决策以及树立团队成员的信心。日前,曾就职于谷歌、Square、DoubleHelix等公司的资深软件工程师及创业者David
阅读全文
摘要:http://blog.jobbole.com/28672/本文由伯乐在线-唐小娟翻译自Niklas Frykholm。转载请参见文章末尾处的要求。猜猜看怎么了!你正”继承“(接收)了一堆混乱的旧代码。恭喜你!现在都是你的了。混乱的代码可能来自任何地方。中间件,网络,可能来自你自己的公司。你知道在一个角落里有一个家伙,没有人过去管他在做什么。猜猜看他一直在做什么?辛辛苦苦写出了代码,却是一堆烂代码。你还记得这个模块是一个家伙几年前写的,在他离开公司之前。这个模块已经有20个不同的人加过补丁,进行过代码修复,而且他们也并不理解代码到底是做了什么。是的,就是这样的代码。或者你从网上下载下的开源的软
阅读全文