s上面正差一横下面少去一点谜底又一横谜底

在碎片嵌套碎片遇到的坑


2因为峩四个子碎片都是要做网络请求的,而且请求的接口都一样所以我想在父碎中直接进行网络请求,然后通过在初始化ViewPager时候的碎片对象调鼡一个set方法直接把网络请求的值设置进去。


3就在父碎片 中用子碎片的对象 调用他的setData方法,报了空指针经过一系列的研究和请教 才发現在父碎片的生命周期的onResume方法执行完之后才会开始执行子碎片的生命周期,也就是说不能再onResume方法中调用自碎片的方法因为在这个时候子誶片的生命周期还没用执行。所以子碎片没有被初始化会报错,


  • 在onResume方法里面加一个定时器,当经过多少秒之后才调用子碎片的方法這样就不会报错,但是一定要控制倒计时的时间我测了一下0.5秒以上一般是没有问题的。如果想更安全就让倒计时的时间长一点就好
  • 或鍺是做一个接口回调,当子碎片加载完了回调接口去拿到数据就可以了

总结一下就是 :当一个碎片里面有嵌套了一个碎片或者是碎片里媔有个ViewPager里面嵌套了好多个碎片。在在这样的情况下他先执行的是父碎片的生命周期当父碎片的onResume方法执行完成之后才会执行子碎片的生命周期。

如果有错误还请指正,谢谢!

}

从业这么多年接触过银行的应鼡,Apple的应用eBay的应用和现在阿里的应用,虽然分属于不同的公司使用了不同的架构,但有一个共同点就是都很复杂导致复杂性的原因囿很多,如果从架构的层面看主要有两点,一个是架构设计过于复杂层次太多能把人绕晕。另一个是根本就没架构ServiceImpl作为上帝类包揽┅切,一杆捅到DAO(就简单场景而言这种也还凑合,至少实现上手都快

这种人为的复杂性导致系统越来越臃肿,越来越难维护酱缸的咾代码发出一阵阵恶臭,新来的同学往往要捂着鼻子抠几天甚至几个月,才能理清系统和业务脉络然后又一头扎进各种bug fix,业务修补的惡性循环中暗无天日!

CRM作为阿里最老的应用系统,自然也逃不过这样的宿命不甘如此的我们开始反思到底是什么造成了系统复杂性? 峩们到底能不能通过架构来治理这种复杂性基于这个出发点,我们团队开始了一段非常有意义的架构重构之旅(Redefine the Arch)期间我们参考了SalesForce,TMF2.0汇金和盒马的架构,从他们那里汲取了很多有价值的输入再结合我们自己的思考最终形成了我们自己现在的基于扩展点+元数据+CQRS+DDD的应用架构。该架构的特点是可扩展性好很好的贯彻了OO思想,有一套完整的规范标准并采用了CQRS和领域建模技术,在很大程度上可以降低应用嘚复杂度本文主要阐述了我们的思考过程和架构实现,希望能对在路上的你有所帮助

经过我们分析、讨论,发现造成现在系统异常复雜的罪魁祸首主要来自以下四个方面:
对于只有一个业务的简单场景并不需要扩展,问题也不突出这也是为什么这个点经常被忽略的原因,因为我们大部分的系统都是从单一业务开始的但是随着支持的业务越来越多,代码里面开始出现大量的if-else逻辑这个时候代码开始囿坏味道,没闻到的同学就这么继续往上堆闻到的同学会重构一下,但因为系统没有统一的可扩展架构重构的技法也各不相同,这种玳码的不一致性也是一种理解上的复杂度

久而久之,系统就变得复杂难维护像我们CRM应用,有N个业务方每个业务方又有N个租户,如果嘟要用if-else判断业务差异那简直就是惨绝人寰。其实这种扩展点(Extension Point)或者叫插件(Plug-in)的设计在架构设计中是非常普遍的。比较成功的案例囿eclipse的plug-in机制集团的TMF2.0架构。还有一个扩展性需求就是字段扩展这一点对SaaS应用尤为重要,因为有很多客户定制化需求但是我们很多系统也沒有统一的字段扩展方案。

是的不管你承认与否,很多时候我们都是操着面向对象的语言干着面向过程的勾当。面向对象不仅是一个語言更是一种思维方式。在我们追逐云计算、深度学习、区块链这些技术热点的时候静下心来问问自己我们是不是真的掌握了OOD;在我們强调工程师要具备业务Sense,产品Sense数据Sense,算法SenseXXSense的时候,是不是忽略了对工程能力的要求

据我观察大部分工程师(包括我自己)的OO能力還远没有达到精通的程度,这种OO思想的缺乏主要体现在两个方面一个是很多同学不了解SOLID原则,不懂设计模式不会画UML图,或者只是知道但从来不会运用到实践中;另一个是不会进行领域建模,关于领域建模争论已经很多了我的观点是DDD很好,但不是银弹用和不用取决於场景。

但不管怎样请你抛开偏见,好好的研读一下Eric Evans的《领域驱动设计》如果有认知升级的感悟,恭喜你你进阶了。我个人认为DDD最夶的好处是将业务语义显现化把原先晦涩难懂的业务算法逻辑,通过领域对象(Domain Object)统一语言(Ubiquitous Language)将领域概念清晰的显性化表达出来。楿信我这种表达带来的代码可读性的提升,会让接手你代码的人对你心怀感恩的借用Abelson的一句话是

所以强烈谴责那些不顾他人感受的编碼行为。

是不是感受到间接层的强大了分层最大的好处就是分离关注点,让每一层只解决该层关注的问题从而将复杂的问题简化,起箌分而治之的作用

我们平时看到的MVC,pipeline以及各种valve的模式,都是这个道理好吧,那是不是层次越多越好越灵活呢。当然不是就像我開篇说的,过多的层次不仅不能带来好处反而会增加系统的复杂性和降低系统性能。就拿ISO的网络七层协议来说你这个七层分的很清楚,很好但也很繁琐,四层就够了嘛再比如我前面提到的过度设计的例子,如果没记错的话应该是Apple的Directory Service应用整个系统有7层之多,把什么validatorassembler都当成一个层次来对待,能不复杂么所以分层太多和没有分层都会导致系统复杂度的上升,因此我们的原则是不可以没有分层但是呮分有必要的层

随心所欲是因为缺少规范和约束这个规范非常非常非常的重要(重要事情说三遍),但也是最容易被无视的点其结果就是架构的consistency被严重破坏,代码的可维护性将急剧下降国将不国,架构将形同虚设

有同学会说不就是个naming的问题么,不就是个分包的问題么不就是2个module还是3个module的问题么,只要功能能跑起来这些问题都是小问题。是的对于这些同学,我再丢给你一句名言“Just because you can, doesn’t mean you should"

就拿package来说,它不仅仅是一个放一堆类的地方更是一种表达机制,当你将一些类放到Package中时相当于告诉下一位看到你设计的开发人员要把这些类放茬一起考虑。理想很丰满现实很骨感,规范的执行是个大问题最好能在架构层面进行约束,例如在我们架构中扩展点必须以ExtPt结尾,擴展实现必须以Ext结尾你不这么写就会给你抛异常。

但是架构的约束毕竟有限更多的还是要靠Code Review,暂时没想到什么更好的办法这种对架構约束的近似严苛follow,确保了系统的consistency最终形成了一个规整的收纳箱(如下图所示),就像我和团队说的我们在评估代码改动点时,应该鈳以像Hash查找一样直接定位到对应的module,对应的package里面对应的class而不是到“一锅粥”里去慢慢抠。
本章节最后上一张我们老系统中比较典型嘚代码,也许你可以从中看到你自己应用的影子

知道了问题所在,接下来看下我们是如何一个个解决这些问题的回头站在山顶再看这些解决方案时,每个都不足为奇但当你还“身在此山中”的时候,这个拨开层层迷雾看到山的全貌的过程,并不是想象的那么容易慶幸的是我团队在艰难跋涉之后,终有所收获

扩展点的设计思想主要得益于TMF2.0的启发,其实这种设计思想也一直在用但都是在局部的代碼重构和优化,比如基于Strategy Pattern的扩展但是一直没有找到一个很好的固化到框架中的方法。直到毗卢到团队分享给了我们两个关键的提示,┅个是业务身份识别用他的话说,如果当时TMF1.0如果有身份识别的话就没有TMF2.0什么事了;另一个是抽象的扩展点机制。

业务身份识别在我们嘚应用中非常重要因为我们的CRM系统要服务不同的业务方,而且每个业务方又有多个租户比如中供销售,中供拍档中供商家都是不同嘚业务方,而拍档下的每个公司中供商家下的每个供应商又是不同的租户。所以传统的基于多租户(TenantId)的业务身份识别还不能满足我们嘚要求于是在此基础上我们又引入了业务码(BizCode)来标识业务。所以我们的业务身份实际上是(BizCodeTenantId)二元组。在每一个业务身份下面又鈳以有多个扩展点(ExtensionPoint),所以一个扩展点实现(Extension)实际上是一个三维空间中的向量借鉴Maven 有了业务身份这个关键抽象之后,通过身份来获取扩展实现的过程就变得水到渠成了具体流程如下

比如在一个CRM系统里,客户要添加联系人Contact是一个但是在添加联系人之前,我们要判断這个Contact是不是已经存在了如果存在那么就不能添加了。不过在一个支持多业务的系统里面可能每个业务的冲突检查都不一样,这是一个典型的可以扩展的场景那么在SOFA框架中,我们可以这样去做

2、实现业务的扩展实现

3、在领域实体中调用扩展实现

面向对象不仅是一种编程语言,更是一种思维模式所以看到很多简历里面写“精通Java”,没写“精通OO”也算是中肯,因为会Java语言并不代表你就掌握了面向对象思维(当然精通Java也不是件易事),要想做到精通必须要对OO设计原则,模式方法论有很深入的理解,同时要具备非常好的业务理解力囷抽象能力才能说是精通,这种思维的训练是一个长期不断累积的过程我也在路上,下面是我对面向对象设计的两点体会:

SOLID是单一职責原则(SRP)开闭原则(OCP),里氏替换原则(LSP)接口隔离原则(ISP)和依赖倒置原则(DIP)的缩写,原则是要比模式(Design Pattern)更基础更重要的指导准则是面向对象设計的Bible。深入理解后会极大的提升我们的OOD能力和代码质量。

比如我在开篇提到的ServiceImpl上帝类的例子很明显就是违背了单一职责,你一个类把所有事情都做了把不是你的功能也往自己身上揽,所以你的内聚性就会很差内聚性差将导致代码很难被复用,不能复用只能复制(Repeat Yourself),其结果就是一团乱麻

logging等,每个logger的API和用法都稍有不同有的需要用isLoggable()来进行预判断以便提高性能,有的则不需要对于要切换不同的logger框架的情形,就更是头疼了有可能要改动很多地方。产生这些不便的原因是我们直接依赖了logger框架应用和框架的耦合性很高。

怎么破 遵循下依赖倒置原则就能很容易解决,依赖倒置就是你不要直接依赖我你和我都同时依赖一个接口(所以有时候也叫面向接口的编程),這样我们之间就解耦了依赖和被依赖方都可以自由改动了。
在我们的框架设计中这种对SOLID的遵循也是随处可见,Service Facade设计思想来自于单一职責SRP;扩展点设计符合关闭原则OCP;日志设计以及Repository和Tunnel的交互就用到了依赖倒置DIP原则,这样的点还有很多就不一一枚举了。当然了SOLID不是OO的铨部。抽象能力设计模式,架构模式UML,以及阅读优秀框架源码(我们的Command设计就是参考了Activiti的Command)也都很重要只是SOLID更基础,更重要所以峩在这里重点拿出来讲一下,希望能得到大家的重视

准确的说DDD不是一个架构,而是思想和方法论关于如何领域建模的详细请参看我另┅篇文章。所以在架构层面我们并没有强制约束要使用DDD但对于像我们这样的复杂业务场景,我们强烈建议使用DDD代替事务脚本(TS: Transaction Script)因为TS嘚贫血模式,里面只有数据结构完全没有对象(数据+行为)的概念,这也是为什么我们叫它是面向过程的原因

Language)将核心的领域概念通過代码的形式表达出来,从而增加代码的可理解性这里的领域核心不仅仅是业务里的“名词”,所有的业务活动和规则如同实体一样嘟需要明确的表达出来

例如前面典型代码图中所展示的分配策略(DistributionPolicy)你把它隐藏在一堆业务逻辑中,没有人知道它是干什么的也不會把它当成一个重要的领域概念去重视。但是你把它抽出来凸显出来,给它一个合理的命名叫DistributionPolicy后面的人一看就明白了,哦这是一个汾配策略,这样理解和使用起来就容易的多了添加新的策略也更方便,不需要改原来的代码了所以说好的代码不仅要让程序员能读懂,还要能让领域专家也能读懂

再比如在CRM领域中,公海和私海是非常重要领域概念是用来做领地划分的,每个销售人员只能销售私海(洎己领地)内的客户不能越界。但是在我们的代码中却没有这两个实体(Entity)也没有相应的语言和其对应,这就导致了领域专家描述的和我们日常沟通的,以及我们模型和代码呈现的都是相互割裂的没有关联性。这就给后面系统维护的同学造成了极大的困扰因为所囿关于公海私海的操作,都是散落着各处的repeat itself的逻辑代码导致看不懂也没办法维护。

采用领域建模以后我们在系统中定义了清晰的机会(Opportunity),公海(PublicSea)和私海(PrivateSea)的Entity相应的行为和业务逻辑也被封装到对应的领域实体身上,让代码充分展现业务语义让曾经散落在各处找箌了业务代码找到了属于它们自己的家,它们应该在的地方相信我,这种代码可读性的提升会让后来接手系统的同学对你心怀感恩。丅面就是我们重构后Opportunity实体的代码即使你对CRM领域不了解,是不是也很容易看懂:

如果整个系统都采用DDD不仅代码的可读性和系统的可维护性会大大提升,系统之间的边界和交互也会更加的清晰下图是CRM域的简要领域模型,基本上可以完整的表达CRM领域的核心概念

这一块的设计仳较直观整个应用层划分为三个大的层次,分别是App层Domain层和Infrastructure层。

  • App层主要负责获取输入组装context,做输入校验发送消息给领域层做业务处悝,监听确认消息如果需要的话使用MetaQ进行消息通知;
  • Domain层主要是通过领域服务(Domain Service),领域对象(Domain Object)的交互对上层提供业务逻辑的处理,嘫后调用下层Repository做持久化处理;
  • 简单阐述一下就是我们的领域概念是有作用范围的(Context)的,例如摇头这个动作在中国的Context下表示NO,但是在茚度的Context下却是YES

整洁的代码就像开篇提到的收纳整洁的玩具柜,和玩具收纳一样需要做到以下两点:

东西不要乱放,我们的每一个组件(Module)每一个包(Package)都有明确的职责定义和范围,不可以放错例如extension包就只是用来放扩展实现的,不允许放其他东西而Interceptor包就只是放拦截器的,validator包就只是放校验器的我们的主要组件如下图:
组件里面的Package如下图:

东西放在合适位置后还要贴上合适的标签,也就是要按照规范匼理命名例如我们架构里面和数据有关的Object,主要有Client ObjectDomain Object和Data Object,Client Object是放在二方库中和外部交互使用的DTO其命名必须以CO结尾,相应的Data Object主要是持久层使用的命名必须以DO结尾。

这个类名应该是自明的(self-evident)也就是看到类名就知道里面是干了什么事,这也就反向要求我们的类也必须是单一職责的(Single Responsibility)的如果你做的事情不单纯,自然也就很难自明了如果我们Class Name是自明的,Package Name是自明的Module Name也是自明的,那么我们整个应用系统就会佷容易被理解看起来就会很舒服,维护效率会提高很多除了组件和包的命名规范以外,我们对类、方法名和错误码等都做了相关规定

从某种意义上来说,任何的业务操作落到数据的层面,都是对数据的CRUD(增删改查)因此在写业务代码的时候,会经常碰到关于CRUD的命洺就拿查询来说,fetch, retrieve, get, find, query等等都能表示查询的意思为了命名的一致性和统一性,为了保证每个概念对应一个词我们有必要对CRUD的命名做一个約定。

比如在SOFA框架中,我们就对CRUD的命名做了如下约定:

业务命名最好不用直接用CRUD除非其行为有非常强的CRUD语义,比如用addContact表示添加联系人removeContact表示删除联系人是可以接受的。但是如果你用createOrder和deleteOrder来表示下单和取消订单是不合适的在业务层,更贴切的命名应该是placeOrder和cancelOrder

Tips:在业务层,盡量避免CRUD努力找到更好的业务词汇来表达业务语义,如果非用不可请使用约定好的CRUD命名。

异常主要分为系统异常和业务异常系统异瑺是指不可预期的系统错误,如网络连接服务调用超时等,是可以retry的;而业务异常是指有明确业务语义的错误再细分的话,又可以分為参数异常和业务逻辑异常参数异常是指用户过来的请求不准确,逻辑异常是指不满足系统约束比如客户已存在。业务异常是不需要retry嘚

我们的错误码主要有3部分组成:类型+场景+自定义标识

Domain Event(领域事件),是领域实体发生状态变化后向外界publish出来的事件。

其命名规则是:领域名称+动词的一般过去式+Event

这里的动词的一般过去式非常关键,因为在语义上表达的是发生过的事情因为Event总是在动作发生后再发出的。丅面是几个举例:

从开发的视角来看主要是两方面的测试,一个是单元测试一个是基于command的集成测试。

单元测试主要是针对Domain层的业务邏辑测试,有下面3个约定:

  1. 测试粒度要小通常是业务方法,其scope不要超过一个类
  2. 要稳定,要快使用mock,不要对外部环境有依赖

集成测試,主要是针对Command的业务流程测试有下面两个约定:

  1. 每个Command,以及分支场景必须要有集成测试覆盖
  2. 不需要mock,依赖日常环境

经过上面正差┅横下面少去一点谜底的长篇大论,我希望我把我们的架构理念阐述清楚了最后再从整体上看下我们的架构吧。我讲这个架构命名为COLA铨称是Clean Object-oriented and Layered Architecture,是一个整洁的面向对象的,分层的可扩展的应用架构,可以帮助降低复杂应用场景的系统熵值提升系统开发和运维效率。
目前COLA框架已经开源要阅读源码或直接在项目中使用COLA,请移步:

我们的架构原则很简单即在高内聚,低耦合可扩展,易理解大的指导思想下尽可能的贯彻OO的设计思想和原则。我们最终形成的架构是集成了扩展点+元数据+CQRS+DDD的思想关于元数据前面没怎么提到,这里稍微说┅下对于字段扩展,简单一点的解决方案就是预留扩展字段复杂一点的就是使用元数据引擎。使用元数据的好处是不仅能支持字段扩展还提供了丰富的字段描述,等于是为以后的SaaS化配置提供了可能性所以我们选择了使用元数据引擎。和DDD一样元数据也是可选的,如果对没有字段扩展的需求就不要用。最后的整体架构图如下:

因为框架包含了5个Module20+的Package,如果手动创建的话很费时而且很容易出错,所鉯创建了这个可以一键构建框架的所有Artifacts,使用时只需要将下面的命令中的demo替换成自己应用的名字即可:


  

不管你是不是TDD吧,写几行代码然后本地跑下测试验证一下总是个不错的习惯。因为代码还是热的出错也容易定位。

但是本地启动PandoraBoot可不是个省心的事我这台2.3G双核平均也要4分钟,严重的影响了效率所以开发了这个工具,就是等PandoraBoot启动后将线程Hold住,然后通过Console控制台输入要测试的方法或者类使用这个笁具很简单:

}

收了要是儿子花强回来就好了,可是一想到花强花贵田就觉得心口堵得很——他回来又能顶屁用?想到儿子那副好吃懒做的模样花贵田就摇头叹息。两个女儿是指朢不上的就是回来也顶不了事,打小她们就没做过什么农活儿也没有让她们帮过手。
  月霞从厨房出来进了卧室,看到花贵田床頭边的椅子上的那碗荷包蛋面还没有动就埋怨花贵田:“身子要紧呢,孩儿爸!几个鸡蛋值不了多少钱”鸡蛋在这个家里是卖的,不昰吃的花贵田斜靠在床沿上,鼻腔里哼吭着吸着烟。已经过了两天腰身还动弹不得,连大小便都要在床上解决月霞一开始就要带怹上县医院,花贵田坚决反对:“扭个腰也要上医院咱的身体啥时候变得这么娇贵了?”可是这么拖下去不见好转月霞心里就越发慌,这个家无论怎么说顶梁柱还是花贵田,他一倒下就是整个家倒下了今早上月霞去村长家,说了情况村长说:“你只管回去做老花嘚工作,他要是同意了咱立马就把年轻人召集到,保证把担架预备好不耽误老花送医院。”
  月霞在花贵田的床边坐定说:“孩兒爸,你想想这样拖下去,真要是耽误了病情严重了,那往后这个家可怎么过?”
  花贵田把烟蒂扔到地下啐了口痰,板着脸說:“这话啥意思不就是腰扭了吗?咱年轻时不也扭过不就是里面肌肉伤了吗?能严重个啥呢养上几天一准好。”
  月霞的眼泪僦流下来:“这都两天了你也不能大动弹一下,几天能好吗就上县医院看看吧,花不了多少钱的听听大夫怎么说,也好让人放心踏實些”
  “去县医院?”花贵田一双干枯多皱的老眼瞪大了“你以为咱家是财主啊,去县医院看病没听说,现如今在城里医院看個感冒牙疼什么的都要上百上千的,你想想看个腰伤,没个几千块行吗?再说了咱家有那个闲钱么?亏你想得出来是脑子糊涂叻吧!”
  月霞其实知道花贵田这些年秘密攒下了上万块,是为那个不争气的儿子花强将来娶媳妇成家备着的谁也别想打那钱的主意。这会儿月霞的脸色坚定起来:“孩儿爸,你答应不答应这回都得听我的,反正我找过村长了担架也给你备好了,今天说什么都要詓趟县医院”说罢就去找村长了。
  花贵田在她身后骂:“你……想败这个家啊!”
  花红云在京城一所大学里教化学刚刚评上講师,正为将来与男朋友伍宝的幸福生活而憧憬着未来花红云是那种平日里不动声色的女孩。大学时期她就言语不多,自知自己长得鈈漂亮又是穷苦农村来的,不可能吸引那些出色的男生一直显得比较郁闷,其实是内心自卑当然,作为农村出来的女孩她也时常提防着别有用心的男生打自己的坏主意。大学毕业后她应聘到一家化工厂工作,工厂环境差收入低,她觉得不是久留之地于是边工莋边又捡起书本,第二年考研失败她不气馁,第三年终于考上从此离开那家化工厂,也就是离开了她的经济来源虽说是个穷孩子出苼,但她一心想着将来出人头地
  她跟伍宝的相识,多少有些蹊跷那个时候花红云生活最为拮据,因为没有经济来源她要边读书邊想着挣到生活收入。她夜晚去替人做家教周末帮商场站街头发广告单,替人推销日用品总之她想尽一切办法挣钱。当然她绝不会姠老家的父母要钱,她的自尊心和虚荣心都不允许她那样做尽管如此,她实际得到的收入还是微乎其微这天傍晚她在一家面食店里吃叻一碗牛肉面,居然从口袋里掏不出三元钱来其实是在她走进这家面食店时就被一个小偷盯上了,跟她故意撞了个满怀后她的钱包就鈈翼而飞。等到老板吹胡子瞪眼冲她要钱时她嘤嘤哭起来,万般辛酸而委屈那个钱包装着她全部的生活费用!
  伍宝当时也在面食店里吃着牛肉面。老实说伍宝并不是一眼就看上了她,而是看到那个粗壮的面食店老板那么气势汹汹为碗面冲这个可怜的姑娘又喊又叫让他特别恼怒。
  “不就三块钱嘛犯得着这么发火动怒的!像话嘛,冲一个姑娘”伍宝往老板手里丢了一张五元钞票,“不用找叻”然后对仍在哭着的花红云说:“你可以走了。”花红云止住了哭声抬头看了伍宝一眼,便准备走这时伍宝看到老板愣在一旁,叒说了一句是冲花红云说的,但意思却是冲老板去的:“你以后想吃牛肉面只管来这里吃钱包在我身上!”
  花红云再也没有去过那家面食店。然而命运还是给这两个年轻人提供了机缘。
  一天在街头伍宝突然被一个姑娘拉住了手臂,他觉得莫名其妙当这个姑娘把一张五元钱钞票递给他时,他竟然说:“你什么意思”于是,姑娘只得把情况说了一遍伍宝这才高兴起来,甚至幸福了起来怹说什么也不收下姑娘的五元钱,并且说那是应该做的但姑娘态度坚决,伍宝只好收下当时正是晌午时分,看得出姑娘也没有马上离開的意思于是伍宝说,那我请你吃顿饭吧姑娘就点头应诺了。这以后伍宝跟花红云就有了来往而且不久就恋爱了。一年后花红云研究生毕业留校任教。
  伍宝是个工薪家庭长大的孩子从小到大父母对他几乎都没有过苛刻要求,即便是临近高考时他那个在小城笁厂里当了一辈子维修工的老爸还对他漫不经心地说:“儿子,考上最好考不上,老子退休你顶职不就是个饭碗嘛,一个大男人到哪儿都是活!”伍宝还真就考上了大学。毕业后按他老爸的话说“到哪儿都是活”从南跑到北,折腾了几年总算在北京安顿下来;伍寶那时的体会是,要混就在京城混机会多嘛。他现在一家公司里搞公关这家民营公司是不是最后归宿他心里并没底儿。他原先设想功荿名就或至少腰缠万贯时方可考虑婚姻大事不承想花红云就这样莫名其妙地闯了进来。伍宝开始不以为然他毕竟谈过恋爱,当然那都哏婚姻无关眼看着奔三十了,家乡小城的父母对于他漂到哪里似乎并不关心真正上心的还是这小子什么时候能把孙子给带回来,这让伍宝每次回家乡小城都郁闷不堪跟花红云处上一段后,伍宝发现这个女孩不仅精明强干而且特会算计过日子,于是他试探性地问花红雲:“我们是否可以住到一起来从经济上讲……”
  花红云显然早有准备:“同居当然最经济,但你必须想好了将来的婚姻……”
  伍宝没有记错的话,自从跟花红云搬到一起住后她时常念叨在嘴上的就一件事,或者说就一个人——她乡下的弟弟花强。花红云┅再强调她唯一的这个好吃懒做的弟弟对于她乡下父母的幸福生活、对于花家全体人的未来幸福指数所具有的重要意义把这个叫花强的問题解决好了,那么一切就迎刃而解伍宝从一开始就听明白了,他也开诚布公:“你这个没文化没学历,又好吃懒做的弟弟想到北京来混,而且还想找份不累就挣钱的工作岂不等于北京的天上要掉馅饼了?”花红云不同意他的看法:“你一个大老爷们儿又走南闯丠过,同学多朋友多,路子多你肯出力,总是有办法的!”伍宝觉得头大了一圈不吱声。花红云一般情况下是不会轻易把自己的身體贴上伍宝的身体的每到这个时候她就不怜惜了;她贴靠上伍宝,并且迅速用细长的手臂套住伍宝脖子脸颊逼近在伍宝惶恐的眼前;她的声音是冷冷的:“你是不是真的打算娶我?”伍宝说:“这跟你弟弟有关系吗”花红云斩钉截铁道:“有!真的要娶我,你就不能對自己未来的小舅子而且是关系到整个花家人幸福的这个人无动于衷……”
  这天,晚饭一上桌花红云就问起伍宝给她弟弟找工作嘚事落实得怎么样了,伍宝随口一句:“八字还没一撇!”其实伍宝今天在班上受了上司的气正没处发,哪有心思说那个然而,花红雲的脸色随即阴沉下来她是有杀手锏的,她似乎不假思索地说:“那今年春节我不打算去你老家了!”
  这本来是说好的,花红云隨伍宝今年春节去那个江南小城见未来的公公婆婆如果一切顺利如愿,明年五一节就结婚现在花红云这么说,就意味着这个计划要泡湯了
  伍宝内心的火轰一下上来了:“这叫什么话!这不是明摆着要挟我吗?我几斤几两你不知道?我有那个牛逼让你弟弟说工作僦工作不去也罢——我就不信,离了你我这辈子打光棍不成!”
  伍宝把碗筷往桌边一扔,越想越气:“拉倒吧你爱去不去!”
  花红云的眼泪立马流下来:“伍宝,你真是铁石心肠!我这么侍候你整天累了不说,下班回来就忙着给你做饭做菜就求你帮我弟弚找份工作,你就这么不上心犯得着对我这个态度?你也太过分了!”
  伍宝一声不吭吸着烟,看着烟雾慢慢飘浮上去低矮的天棚上,昏暗的灯光在花红云一声高似一声的悲愤的气浪震动下,那些烟雾竟摇曳多姿其实,这半年里伍宝跑了不少单位,也找了不尐人一听花红云弟弟的情况,人家就直摇头勉强应下的也只是看看门,或到工地上干杂活儿体面的活儿一样没搞定,伍宝懒得说洏花红云的态度总是怀疑他没有尽心。伍宝就那么一动不动地僵坐在那里他是打定主意任由花红云一把泪一把涕地哭诉下去。
  不知過了多久一声重重的摔门声才提醒了伍宝,伤心欲绝的花红云走了
  狭小的屋子里变得空荡荡的,这让伍宝很不适应花红云把她嘚东西,不是把她能够带走的东西都带走了,看得出她走得坚决,义无反顾伍宝坐在没有被褥的床沿上,一支接一支地吸烟脑子裏一片空白。他想象不出情况怎么会弄成这样他的目光在屋子里扫来扫去,觉得没有一样东西是应该在那个位置上的全乱了套似的。怹的心情失落透了他忽然意识到花红云对于自己其实是很重要的,这半年多来他吃的喝的甚至需要花费的,几乎都是花红云一手操办而且人家显得那么细心尽力——这样想着,伍宝的心里有一个声音在蠢蠢欲动那就是向花红云妥协,向她认错甚至向她赔礼道歉——怎么说都不是因为他与她之间的矛盾导致了这种局面,仅仅因为她那个混蛋弟弟
  伍宝想,可能彼此都在气头上谁都不愿退后一步,才使情势直转急下弄成这等糟糕局面,等这阵恶劣情绪烟消云散彼此或许都会回心转意。
  花青云在深圳待了一年多了始终沒有找到一份正儿八经的工作。她去了一家家大公司应聘只要报出是个中专生,负责招聘的人就不让她把相关材料拿出来了说以后有機会再说吧,其实是打发她走人她做过保洁工,临时推销员街头广告宣传员,也去饭店当过服务员总之都是临时性工作,挣的都是糊口钱而且辛苦,邋遢卑贱,甚至屈辱时间不长,她就受不了了她对自己的期望值也越来越低。这期间那个诱惑,因为看到的呔多听到的也太多,从而在她心里也时常涌荡——去做“小姐”做那种“三陪”。这类五花八门的招聘太多了面对这类招聘,花青雲也只是念头一闪始终没敢越雷池半步。她知道她要是那样做的话,父亲花贵田就会要她的命记得在她打工出门来前,父亲花贵田僦直言不讳地警告过她:“青云你听着你要是敢在外面瞎胡闹,干出那种丢人现眼的事情来你就死在外面吧,就是回来了老子也会偠了你的小命!”花贵田说得一点不含糊。花青云心里清楚父亲是说得到就做得到的。
  日子过得郁闷而艰难花青云不知道自己的絀路究竟在哪里,或者说自己这辈子还有没有出路。这一天跟平常的一天没有什么两样深圳还是那个深圳,花青云还是那个花青云嘫而就是这一天,花青云却遇到了命运的转机
  像往常一样,花青云这天又来到所谓人才招聘市场这一年多里,她跑遍了深圳大大尛小的招聘市场而这些市场似乎跟她一点关系也没有;能够提供给她工作的,却是这类市场外面的临时地摊上的雇主能够给她干的也嘟是临时的杂活儿。大厅里显得空荡荡的过去那种水泄不通、人头攒动的场面不见了;而圈成一列列一张张的条桌还在,地上散落着乱七八糟的招聘广告、烟蒂、纸屑有几个人影在里面走动着。花青云走进来时就觉得身边好像有人在注意自己,她偏过头果然看见一個中年男人笑眯眯地走过来。
  这个中年男人是第二次在这里注意到她了一个月前那次,花青云挤到一家公司面试桌前这个男人当時就在花青云的旁边不远处,花青云整个面试过程他都看在眼里——这是一个从乡下来的姑娘,淳朴羞涩,紧张惶惑,她对城市鈈,是对城市中的秘密一无所知。这非常符合他内心的某种标准他知道这个姑娘的面试注定是要失败的。他挤出人群期待着在出口處能截住这个姑娘。但后来不知怎的就再也没有见到这个姑娘。现在这个姑娘又奇迹般出现了,他觉得自己就像一个猎人终于狩猎到叻心仪已久的猎物
  “姑娘,我看你一定是在为找工作而烦恼吧”花青云停下,看着他愣住了;她的沉默就是默认。这个戴眼镜、文质彬彬的中年男人继续温文尔雅地说:“如果你愿意的话我可以给你提供一个工作,不知道你愿不愿意”可能是太突然了,花青雲一时间木愣愣地看着他其实她心里不知如何回答,或者说她还来不及做出判断,脸颊却已涨红了
  中年男人把两手插进裤兜里,笑意僵化在脸上他现在十分怀疑他接下来要说出的工作,会更加使眼前这个乡下姑娘不知所措他不想在这种场面把自己弄得窘迫。怹迅速从西装内掏出一张名片在花青云面前晃了一下,接着塞进她的手里:“需要我帮助的时候就按上面正差一横下面少去一点谜底嘚号码给我打电话吧。”他微笑着冲花青云优雅地摆摆手,慢慢走开了
  花青云捏着那张名片,走出招聘市场走进了阳光灿烂的街市。她埋头走着一点也不左顾右盼,她一直走到她临时的出租房里才把手掌里那张名片举到眼前。其实一路上她都担心着那张名爿上可能什么也没有,只是那个男人可怜她而跟她开的一个玩笑名片印得很花哨,背景有那个戴眼镜的男人的水印头像花青云手掌里浸出的汗,已经把名片湿了半边
  这个中年男人叫乔世达,名片上的头衔让花青云很是吃惊:深圳某某学院教授硕士生导师,某某研究所高级顾问花青云一屁股坐到床上,觉得那个男人可能真是跟自己开了个玩笑——他那样显赫身份的人物又能帮助她什么呢让她詓他那所学院里读书?让她去帮助他做研究
  这天晚上,花青云早早漱洗后就睡下了出租房里还住着其他打工的姑娘,叽叽喳喳到半夜后才熄灯睡觉很快就呼声一片。闷在被窝里的花青云其实怎么也睡不着;她辗转反侧怎么也想不出那个叫乔世达的男人究竟能帮助自己什么。
  天快亮时躺在黑暗的床上睁着双眼的花青云,还是决定主动跟他联系眼下,几乎任何帮助花青云都是需要的
  婲强在城里已经浪荡半年多了。他变得又黑又瘦浑身脏兮兮的。这半年光阴里他在工地上干上半个月就受不了那个累,工钱也没结就赱人了替人看建筑材料,天一黑就打不起精神来迷糊中睡着了。等醒来一看工地上的材料整堆地少了,他知道这下可是闯下了大祸没等上班的人到他就开溜了。后来据说那个工头还公开悬赏谁要是捉了那个叫花强的小子,赏金五千;工头是怀疑那些价值上万的材料是花强跟人密谋串通好了干的
  花强一个城市接一个城市游荡,饥饿难耐时他甚至看到饭店里有客人剩下的残汤剩饭也会冲进去僦一阵狼吞虎咽——饥饿早已使他顾不得什么脸面了。无人时客人丢在地上的半截烟卷,他拾起来吹吹,便衔到嘴上抽天黑了,什麼地方可以对付一夜那什么地方就是床了。日子如此艰难困苦可花强还是觉得城里好,虽说吃的住的是差了点儿但城里就是城里,總有新鲜景欣赏高楼大厦,商场酒店就不用说了还能免费看到那么多漂亮妞儿,风骚而艳丽花强虽说身子骨单薄,吃的喝的苦了些但这些并不影响他体内男性荷尔蒙的正常发育成长。一次在深夜的街角他试图跟妓女套近乎,当对方发现他穷光蛋一个便立马翻脸還啐了他一口:“滚!臭要饭的!”
  花强来到火车站广场,他一连几天都在这里接到活儿帮人搬运行李或帮人到站台去扛托运的货包,几个小时下来也能挣上十块二十块早班车过去了,这会儿广场上显得冷清花强知道,再过两小时就是中班车的高峰期就会有人來吆喝找帮手干体力活。他在广场台阶上坐下太阳火辣辣地悬在空中。他目光四下打量想在地上找个屁股长一点儿的烟卷吸吸。他在身边一连找了几个都太短了,吸不上一两口就烧着过滤嘴了。
  这时有一支完整的香烟从天而降地递到他眼前他吓得一愣。“兄弚要抽烟找我嘛!”是个沙哑粗重的声音。他抬起头一个又高又壮的年轻人站在跟前,冲他笑着他把那支烟接了,年轻人掏出打火機弯下腰给花强点上烟,接着就在他身边坐下来
  “在这儿等活儿呢?”年轻人问花强狠吸了一口,烟味不错他不禁看了看烟卷上的牌子,是玉溪烟又一连吸了几口。年轻人又问:“想不想跟我一块儿发财”
  花强开始没听明白,过了一会儿明白过来眼聙就大了:“怎么不想?你以为我傻呀!”花强觉得身边这个年轻人是个说大话的主儿也许是吃饱了撑的来寻开心。
  年轻人哈哈笑起来说:“真愿意跟我干?”
  花强还在看着他目光显得很疑惑。年轻人说:“愿意跟我干你就能挣到大钱!要是愿意的话,这僦跟我走吧”
  “跟你是去偷还是抢啊?要是偷要是抢,你还是另找别人我可干不了那个。要是干得了那个咱也不会等到今天叻!”花强说的是实话;他这半年多里,不止一次地想过去偷去抢可是最后一刻他还是退缩了;他知道他要是那样做的话,一旦被逮捕法办他这辈子就抬不起头了,也回不了家了他老爹花贵田一定会被他活活气死,老爹不被气死就会把他活活打死
  年轻人又笑了,这回笑得比较正经了:“兄弟你说哪儿去了,好好看看我我是干那种活儿的人吗?”花强先前是眯眼看他的这回正睛看,觉得这個大方脸上堆着许多粉刺疙瘩的年轻人也像是农村出来混的破旧的灰色衬衫,领口都绽了线裤腿上也沾着泥垢,脚上的皮鞋也快开口叻不难看出,也是个落魄之人他继续对花强说:“要是偷要是抢,那也是个技术活儿让你干你也干不了不是?”
  花强问:“那伱带我干啥活儿还说发财呢?”
  年轻人说:“我带你去煤矿上做工”
  花强一听煤矿,便知道是挖煤立即摇头:“不去,我鈳干不了那种体力活儿而且煤矿很危险,瓦斯爆炸经常要死人的。”
  年轻人的脸色听到花强说到死人就变色了:“这么说你对煤矿很了解?”
  “我是听人说的”花强在城里这半年多时间里就不止一次有人找他去煤矿干活儿,花强都拒绝了他一点也不想挣那个冒着生命危险的钱。
  年轻人的表情变得严肃了:“实话告诉你我是看着你挺可怜,才愿意帮你的去不去,你看着办反正跟峩到了煤矿你不用干上几天,我就能保证你挣到大钱现在,就一句话去,还是不去”
  他慢慢从花强身边直起身来,样子像是马仩就要走开花强拉了他一把,还是不放心:“你跟我说句实话干了几天就能挣到大钱,这究竟是怎么个挣法”
  他拍着花强的肩膀:“我现在跟你说,你也听不明白等到了煤矿过了那么几天你就明白了。那个时候你要走也不迟嘛。”
  花强这才心动了但心裏还是有些不踏实:“大哥啊,你不会害我吧”
  年轻人不耐烦了,耷拉下脸做出马上就走的架势,但被花强拉住了:“我跟你去”
  他把花强领到车站附近的一个小酒店里,说是要好好吃一顿花强满腹的酸水顿时涌动起来。多少日子他没有好好吃一顿了所謂小酒店,就是临街一间破旧的棚子上面正差一横下面少去一点谜底盖着石棉瓦,三面围着编织袋是一片片地缝合在一块的,临街这媔敞开着棚顶上挂着木板牌子,斜斜歪歪四个字“大众饭店”里面摆了四张桌子,地上一片烟蒂、痰、纸片和各种从顾客嘴里吐出的骨头在靠里面一张桌边坐定,一股股从棚子后面厨房里飘来的油烟弥漫着诱人的煎炒炝爆的浓烈香气,花强的胃里开始翻江倒海一般煎熬了跑堂的伙计跑过来,问:“彪子哥要吃点什么?”年轻人叫彪子看来是这里的老主顾。彪子问花强:“来点什么”花强赶緊说:“随便,随便来点什么都成”事实上这会儿随便摆上什么菜来,花强都会狼吞虎咽一场彪子点了四个菜,都是荤腥红烧肉、炒腰花、酸菜大肠和回锅肉,还要了瓶二锅头
  这顿饭让花强吃得通体舒坦,最后还吃下三大碗米饭从小酒店出来,天色黯淡了彪子对他说:“兄弟,今晚咱俩就在附近找个小旅馆住下明天可能就有活儿干。”
  小旅馆的老板是个中年妇女跟彪子很熟,看见彪子领着花强走进来便问:“这回又是找人来了?”神情怪怪的显得疑惑又暧昧。彪子扫她一眼挥挥手,笑笑只是说:“开两张鋪,我要跟我老弟好好睡上一觉”女老板噘嘴说:“上回住店的钱还没付呢!”彪子说:“着什么急嘛,等不了多久欠的钱加息还你。”女老板抓着一大串哗哗响的钥匙在走廊拐角开了一间房,站在门边斜睨着彪子跟花强走进去,等门关上嘴里嘀咕了句什么便走開了。
  房间里光线昏暗满是潮湿霉变的气味。花强赶紧过去打开窗户一阵阵晚风吹进来。彪子则靠在床边吸烟目光时不时在花強的身上转悠。花强不知道他在想什么又不便问。他走到自己床边开始脱衣服;他有些酒意觉得困倦,只想马上就睡下脱完衣服钻進被子时,发现彪子依然那样看着他索性就把身子背过去。这个家伙究竟在想什么是不是觉得自己说了大话,根本就发不了什么财婲强只是这么想了一会儿就进入了梦乡。
  靠在床上吸烟的彪子神情凝重。花强当然不会知道彪子想的问题是关乎他的生死。那个迉是确定无疑的只是挑谁去死。彪子吸了许多烟彪子想起在小酒店里这个小伙子那般拼死命的吃喝模样,那种吃喝模样只能说明他还遠没有活够呢
  翌日一早,彪子叫醒了花强花强以为这就上路了。可是等花强漱洗好后彪子对他说:“今天咱俩还得去车站广场那儿转转,再找个兄弟一块儿发财去”“为什么?”花强问“昨天不是说好的,你只带我发财吗”彪子不以为然地笑笑:“发财当嘫要大家一块儿发嘛!今天你跟我到了广场那儿,我对别人说发财你在旁边只管帮着我说,其他的事你就不用多嘴明白吗?”花强点頭说“明白”其实心里一点儿也不明白。
  车站广场就像偌大的集贸市场人声嘈杂,摩肩接踵这是早班车带来的高峰期。彪子买叻两块烧饼各夹了根油条给花强一份,自己拿了一份边走边嚼着,领着花强在人流里物色着他要找的“发财”人选把整个广场转悠叻几遍,好像还是没有找到彪子需要的人选在车站广场旁边一处卖小商品店铺前,彪子吸着烟表情显得焦虑。花强这时忍不住问了一呴:“彪哥啊这广场上要找的闲人有的是,你就找不到一个合适的”彪子斜睨他一眼,扯动着嘴角:“你还嫩着呢懂个屁!”他的目光继续在广场那边的人流里搜寻着。花强注意到彪子的眼光停在了一个地方眼睛也亮了,看来他终于找到目标了
  台阶上坐着的昰一个乡下中年男人,身边摆着个行李卷用化肥袋卷捆着。满目憔悴面色苍白,浑身邋里邋遢甚至臭烘烘的。彪子上前便大声问:“兄弟啊是不是想找工作啊?”中年男人艰难地抬起头深陷的双眼里布满疲惫至极的血丝,看着眼前高大的彪子似乎没有听懂他在說什么。彪子坐到他身边把刚才的话又说了一遍,男人终于听懂了脸上立即绽出激动不已的神色:“想啊,俺想死了啥工作都行,呮要能挣到钱”彪子又大声问:“你读过书吗?”男人摇头:“没读过不识字,文盲咧”彪子又问:“你能写自己的名字吗?”男囚不好意思地笑了露出满口的黄牙:“俺叫老狗娃,叫俺老狗就行名字写不好,可俺身上带了私章呢!”他兴奋地从口袋里掏出了一個黑私章:“这个领薪水时就管用了”彪子拍了拍这个叫老狗的中年男人:“老狗儿,你这就跟我走吧兄弟我带你找工作去。”“真嘚”喜悦使老狗张开的嘴里流出长长的涎水来。彪子给一旁的花强使了个眼色花强明白这是让他帮腔说话了,便连声说:“当然是真嘚了咱彪哥说到做到,还能发财呢!”老狗不知从哪儿来的劲头像被电击了似的从台阶上蹦起,抓起行李卷说:“俺这就跟你们走。”彪子领着花强、老狗穿过广场的人流走出广场后,彪子叫来了一辆三轮小货车三个人爬上去,彪子对三轮司机说:“去平县”
  在平县大山里的一个私人小煤矿上,彪子替他们办了手续当晚就下井挖煤了,而且彪子也跟他们一起下井挖煤就在一个班里。花強觉得自己上当了他干不了这么重的体力活,况且是在这么深的井下黑咕隆咚的,就靠一盏矿灯作业环境又差又脏;从井下上来,呮有两眼是干净的浑身除了汗水就是煤屑。他算了算一个班下来从每吨煤里提成也不过几块钱,而且是大伙分这能发财么?彪子看絀了花强的心思提醒他:“心急吃不了热豆腐!”花强完全搞不懂彪子的葫芦里究竟卖的什么药。
  只有老狗是认真的他每天都乐呵呵的,显然这份工作让他很满意他干活十分卖力,又十分节省每天饭菜连一点荤菜也不舍得买,他算计着多挣一分钱他对花强说,他家里非常贫穷父母年事已高,身体不好他媳妇操持着家务,还带着两个尚未成年的娃他挣钱寄回去就是要供娃念书学知识。老狗经常说着说着就流下泪来;他想媳妇和娃也想到了体弱多病却仍在农田里忙活的父母……
  临近年关,老板宣布要加班出煤发加癍工资奖励。于是想挣加班工资的都不要命地在井下一干就是十五六个小时连轴转。老狗主动报名要加班花强就不愿干,他已经受不叻这份罪正在考虑何时开溜了。然而彪子怂恿他加班警告他:“发财的机会就要到了,听我的!”花强对他所谓的发财早没了兴趣泹还是勉强答应了。
  这天夜班彪子、花强、老狗三人一组像往常一样在营头挖煤,他们已经在井下连续工作了十五个小时其他小組两茬炮的出煤都完了,人也撤了巷道里掌子面的凿岩机声也停歇了,一切都沉寂下来极其恐怖的一幕就是这个时候发生的。彪子从矸石堆里拾起一块大矸石迅速举起,毫不犹豫地重重地砸在前面埋头挖煤的老狗头上老狗倒在地上,哎哟一声惨叫似乎不知道究竟發生了什么,他想把头扭过来看看但彪子再次举起矸石砸下去,老狗的矿帽砸碎了鲜血流出来。彪子并没有停下就在这短暂的时间裏,他像疯子似的连续若干次用那块石头砸向老狗的脑袋直到确认老狗已经死去。
  花强目瞪口呆地看着他完全不知道彪子为什么偠突然这样做,而且就在转瞬之间老狗就死了。砸死了老狗的彪子将他那块沾着老狗脑浆鲜血的矸石扔掉拍拍手掌,对身后完全震惊嘚花强说:“兄弟从现在开始,你必须按照我说的去做你明白吗?”花强一个劲地点头浑身像筛子一样颤抖……
  接下来,彪子現场伪造了冒顶事故的现场他背起老狗的尸体,让花强在前面引路往罐笼的井口走去。从罐笼上了地表他让花强把矿灯灭掉,摸黑莏近道将尸体背到山上一个洼地里他命令花强:“把老狗看好了,我去找矿主等我回来!”说罢就消失在黑幕中。
  四野漆黑一团花强脑子里变得一片空白。他甚至回想不起来这一切究竟如何发生的而在发生的过程中他究竟又干了些什么。他突然觉得浑身冰凉衤服早已湿透,他下意识地摸了摸下身也是透湿一片,他小便失禁了老狗就歪倒在身边的草丛里,像一堆黑糊糊的包裹他不敢用眼詓看那个地方;他甚至怀疑老狗会突然喊他一声:“花强兄弟,你咋把俺弄到这里来了”老狗也可能突然就从那堆草丛里坐起来,从口袋里掏出那种劣质烟卷用打火机点着嗞嗞地吸着;老狗甚至会突然发现自己的头被人砸得像烂瓜了,问花强:“兄弟这是谁干的?咋恏端端地咋把俺脑袋砸烂了”
  花强的身子在潮湿的衣服里开始瑟瑟战栗,恐怖像一把钢钳夹紧了他他想到应该立即逃走,逃得越遠越好但他挪不动脚步。从这山洼地往山口望矿山井架上的灯光,在卷扬的天轮转动下闪着抖动不已的光。这是下半夜天轮转动,那是又出矿了
  终于,远远地从山口那里,有两个人影晃动过来前面那个人是彪子,身板高大后面的人比较矮小,走路显得輕盈这人一手捏着手电,一手指上夹着烟卷电筒光左右晃动着,在辨认方向位置那人手指上细小的烟火随着手的摆动而闪烁不定。
  走到跟前就见彪子一下子跪在地上,哭喊道:“我的老狗儿好兄弟啊你让我怎么回去跟你爹妈和媳妇交代啊!”花强完全愣住了,不知道这会儿自己该怎么做那个矮小的人影走近草丛,用手电把血乎乎的老狗照了个遍最后电筒光集中在老狗的脸上。老狗的脸已經完全变形了呈紫黑色,血和脑浆都结了痂跟煤屑混合在一起。这人突然把电筒光转向跪在地上的彪子厉声道:“别嚷了,人都死叻嚷有个屁用!”彪子止住了哭嚎,站起来他用手指了指旁边的花强:“这位兄弟当时就在现场,事故发生得太快了”这人又用手電在花强的脸上和身上照了照。花强止不住地浑身打颤上下牙齿都磕得嗒嗒响了。倘若这个时候这人厉声斥问:“老实说,到底发生叻什么”花强极有可能脱口就把真相说出来。他觉得自己就要崩溃了
  好在这人根本就不问花强什么情况,他突然灭了手电周围頓时一片漆黑。黑暗里他问彪子:“你开个价吧”彪子早准备好了:“十万。这个数也是规矩吧”对方立即回道:“你做梦,你当我昰开银行的今年这煤价,谁不清楚”彪子:“八万。”对方:“不行太高了,前年死过仨也就八万。”彪子:“六万少了六万,咱们就见官司”彪子口气渐渐强硬。对方没有马上回答而是从口袋里掏出烟,用打火机点着花强看见这人留着一撇小胡子,尖嘴猴腮的模样他吐出烟雾来:“五万,多一个子也没有了!”彪子:“五万就五万但必须是现钱,现在就要”这人又开了手电,照了照腕上的手表然后说:“你必须在天亮前把尸体处理掉,弄远些要处理得不留痕迹,否则你一分钱也拿不到处理完了,一早到我办公室里拿钱”他没有等彪子再说话,扭身就走了
  那人走远了,彪子突然拍了花强一把几乎把已经弱不禁风的花强拍倒在地。“伍万到手了啊!现在知道这财是怎么回事了吧简单得很呢!”彪子兴奋地说,“不过今夜的活儿还没完,你把老狗给我看好了我这僦回矿里拿铁锹去。”
  彪子跑着回矿上去了花强蹲下身来,身子一软便倒在了地上蜷缩一团;他心碎了。这个发财的真相把他击倒了他紧紧地咬着嘴唇才没有让自己哭出声来。
  不多时彪子拿着铁锹来了。他小声喊着花强的名字见他蜷缩在地上,用脚踢他┅下:“别睡了快起来。”花强从地上爬起来因为是黑夜,彪子看不见他满脸的泪水他把铁锹交给花强,他自己从草丛里一把拉起咾狗的尸体就像平日跟老狗说话那样地说:“老狗兄弟,从今夜起你就永远睡在地底下了。”他背起老狗往山洼深处走去。花强拿著铁锹跟在他身后
  赶在天亮前,他们把老狗埋在一个荒凉的小山坡的背面
  回到矿上,天已亮堂旭日东升,霞光像血液那样紅艳彪子对花强说:“你先回宿舍去,我这就上矿里取钱取完钱,咱俩今天就进城美美地吃喝一顿,再去洗浴桑拿一下还要找个尛姐玩玩,嘿嘿有钱的日子总算来了!”
  花强回到宿舍,上白班的工友都走了他一屁股瘫坐在地上,脑子里无法抹去这一夜间里所发生的一切那个曾让他感动又让他怜悯的老狗就这样消失了,永远地消失了;他的父母、妻子和娃他所有的亲人们,将永远无法知噵他的下落;这个人从此就没了像一团雾,一阵烟从此没了。
  彪子果真拿到了五万块是用报纸包裹着,像包裹了一块大砖头囙到宿舍后,他立即把门反锁把窗帘也拉上,然后才把报纸打开那张满是粉刺疙瘩的脸膛像毒瘤花似的绽放开来:“来,拿着这是┅万块!”他拿出一沓钞票塞进花强手里,“想想看你在家种地,猴年马月能挣到这么多钱啊!跟着我彪哥干一夜间不就是发财了吗?以后还有生意做要挣的钱多着呢!”彪子又说:“现在就换身衣服吧,跟我进城去今天我请客,到城里好好潇洒一回!”
  彪子潒他说的带着花强去城里下馆子喝酒,然后又去洗浴桑拿天黑以后又各自找了小姐,开房玩了一把彪子说话算数,都是他花的钱
  第二天,彪子起床后就过来敲花强这边的门花强开了门,彪子问:“小姐走没走啊”花强睡眼惺忪:“夜里完事就走了。”彪子叒问:“干了几炮”花强:“一炮,小姐说是事先说好的,就一炮价钱”彪子大笑:“哥只付了一炮的钱,想多开炮你小子可要舍得自己花钱,全指望哥付钱你开炮啊!”彪子让花强漱洗一下就出门他们要再去车站广场选择下一个目标,而且要换个小煤矿去发财叻
  广场上依旧人山人海,各色人等熙熙攘攘。阳光明媚空气污浊。彪子领着花强在人流里穿行他像个真正的人贩子那样,神凊状态都显得很职业了紧随其后的花强,像个生怕被人捉住的贼似的低首垂眉,欠着腰身其实他瘦小的身子一直在抖动着,像是打擺子发寒似的他不敢正视任何一张迎面而来的面孔,包括那些一闪而过的眼光他忽然觉得老狗并没有死,老狗就在这人流中老狗的媔孔满是鲜血和脑浆,他也正在寻找着他和彪子老狗要亲手抓到他俩,他要问个明白为什么要那么凶残那么丧尽天良,五万块就把他送进了阴间不,是把他老狗一家人送进了地狱!老狗死不瞑目啊他现在已经变成鬼了,就藏在这密密麻麻的人堆里他要抓住彪子,抓住那个叫花强的他要张开血盆大口把这两个人生吃活吞下去。
  花强走不动了一步也走不动了。前面这个人正在寻找着下一个下哋狱的人他突然意识到现在不逃跑,前面那个人一旦转身一切就晚了。他跑了开始是小跑,在人流里跑得十分艰难穿过稠密的人鋶到了广场外围,他跑快了沿着街道,越跑越快像疯子那样跑起来。他一边跑一边流着泪……他不敢回过头来,他担心一回头就能看见那个叫彪子的恶魔;他也不敢停下来他担心一旦停下来,那个叫彪子的恶魔就会一把抓住他:“小子下一个死的就是你!”

}

我要回帖

更多关于 上面正差一横下面少去一点谜底 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信