项目组J2ee程序员的标志,你中招没 转载+评论

原文在此

校园级别的程序员的标志:

 

代码中最多的是嵌套if(null == xxx),还要告诉你,null必须写在前面,我靠。

防止把==写成=,c语言时代常犯的错误。由于null不能做左值,在写=的时候出现编译错误。一般来讲,在java中,由于boolean和其他类型不会作隐式转换,因此这么写没有意义。

写着写着突然想起来这么个代码:

Boolean b = true;
               
                if(b=null)
                {
                       
                }

 

顺利编译通过,也许把null写在==的左侧还是有意义的。

 

后台满是system.out.println(“——–程序应该会运行到此处的。。。userId:”)。

调试程序过程中,如果想在控制台中打印什么东西,最好用log工具,如已经在多少年前就俗到家了的log4j。好处是:打印日志的语句和控制是否打印日志、控制怎样打印日志的语句是解耦的,可以在程序中随便写打印log的语句,然后在正式上线后,通过某个选项,令其全部失效。

当年流行的组合是log4j+apache commons logging,在程序中引用commons logging的api,build path中放一个log4j的jar包然后再写个log4j的配置文件并且初始化一下,实际生效的就是log4j了。这样做的好处是,想换日志实现类的时候,不用修改程序代码。

今年的流行款是logback+slf4j,对应上面那两个东西。logback的实现据说效率高了多少倍,不过除了非常关键的模块外,这点开销基本可以忽略不计。
html页面总是对不起一两个div的线,老用firefox去框框显示那个div。

搞前端的都是神,我到现在也对不齐那堆div。另提一句,bootstrap是良心作,好人一生平安。
IO异常处理那个就是叠罗汉啊。

异常处理是个技术活,我当年的思路是,根本不知道有非受控异常这件事,出现受控异常未处理的编译错误时,点开eclipse的自动处理选项,然后按照心情选一个。

一点经验:

数据库异常、io异常就直接上抛,如果框架非得搞成checked的话(譬如ibatis2.x),发现了就给封一层RuntimeException,一直抛到顶层让这个事务挂了就好了。然后客户会明确的知道这个程序sb了,怒不可遏的给维护打电话,然后维护远程ssh,重启数据库了事。如果项目经理稍稍良心一点的话,针对这种错误可以做的包括:1、打异常log,2、给客户一个明确的提示“系统挂掉了,请联系系统维护人员电话是13xxxxxxxxx”而不是显示一堆异常堆栈然后再让客户翻电话本。想写段代码自动处理这些异常的想法不是不能实现,但对于业务定制类的系统来说,代价太大。

nullpointerexception、各种illegelxxxexception,其它各种开发人员懒得去学的异常,这些基本上都是程序的bug,开发测试阶段出现了就调整,打各种补丁,直至所有的测试流程都走通。实际运行阶段再出的话,类比上一条。

在业务基本走通,正常流程都没问题了,而项目组又恰好有足够的时间投入在异常架构上,可以做下面的事:分析业务,找出需要处理的业务异常,如根据身份证号查出了两个完全不同的人等,定义处理这些异常的逻辑,定义项目级别的异常基类api,之后就可以从底层一层层的加各种if判断,抛出异常,再向上找到该处理异常的地方,写catch代码。最重要的就是在抛异常的时候,把所有有意义的信息都记录下来,比如上面说的身份证号的异常,起码要记录身份证号是什么、找出的两个人的主键,另外还可以记录操作时间、操作人等信息。只要在异常抛出的时候做到这一点,随便你决定在哪一层catch,哪怕只做个log,都会让维护人员、后续开发人员感谢你的良心。

一般级别的程序员标志:
会struts+spring+hibernate|mybatis,面试神器。

曾经的观点:

怎样用这些东西:找个文档读一点,都能学会。

为什么要用这些东西:体现真正水平的问题。

现在的观点:

怎样用这些东西:做到随便给给技术,读读文档就能用上的,都是水平已经不错了的人。

为什么要用这些东西:网上答案一搜一大把,需要分辨是直接拿的结论,还是真被某些雷炸过然后很良心的告诉你,struts2真操蛋。

struts1、2、spring mvc这一层,用的并不多。由于没做过什么访问量特别高的项目,因此对struts2的效率并没有太多吐槽。现在的选择标准:1、是否提供了足够的语法糖让一般水平的人也能够快速开发 2、是否没有提供不恰当的语法糖,从而大幅度的增加维护难度。annotation、零配置这些东西,个人觉得最好用于元属性设置,而不要用于流程控制。曾经有个同事发现前台传进来的参数莫名其妙的会丢一个,后来发现在引用的某个jar包中有一个annotation方式定义的filter。尽管实际上的问题是架构组没有写完善的文档,没有做培训,但是经过那件事之后我也同意,这种东西放在一个统一的配置文件里面看着会更清楚一点,控制粒度也更细一点。

当年实训初学spring就觉得这东西很蛋疼,迄今为止一直没遇到复杂度高到有大批量属性需要注入的地方。aop的应用场景倒是遇到几个,不过出于对庞大的spring以及配置文件膨胀的恐惧,我宁愿改变整个的框架,定一个抽象层然后用各种各样的strategy模式。倒是觉得有完善annotation支持的轻量级aop应该是个不错的选择。

hibernate用的也不多,我好像对主流的s2sh有本能的抗拒……一直对sql的结构化有深深的执着,因为你真的不想没事总给别人调那一堆动辄五六行变量名很奇怪大小写都有的sql语句。所以在看到hibernate做某些复杂查询必须用hql的时候就放弃了这门技术了,sql本身就不想看,再发现这sql实际上是在java里面用String拼起来的……

ibatis/Mybatis一系用的比较多的原因是,职业生涯用到的首套一站式框架的作者就用的这玩意儿,属于马屁股性质的事情。这东西的好处就是把sql和java代码分离开了,程序看起来比较干净。但是让每个模块的程序员都去决定要写哪些sql,怎样写,同样是个很可怕的事情。所以当年我定义了一套针对每张表的标准sql列表,几项最基本的CRUD操作。select操作只支持id查询和各个属性的and相等查询。这个基本上已经可以满足80%的需求了,剩下20%,定好了配置文件分割策略后,找个sql好点的人慢慢写就是了。另外,这东西的一大槽点是只支持假分页,我们的处理方式一般是忽悠客户买个内存大点的机器就得了,不具备这种忽悠机制的同行们请慎重选择,ibatis想解决这个问题需要hack jar包,mybatis也需要自己写个插件支持,大概有个半天到一天的工作量。

再后来觉得配置文件有些繁琐,所以又在apache commons dbutils基础上封装了一套,不用写配置文件,定义好列名和属性名的映射关系后,自动生成CRUD操作并作db访问操作。在封装复杂的select操作时发现了nutz这个东西,觉得思路基本一致,就懒得再继续写了。

nutz提供的dao工具实现了用比较结构化的方法拼sql语句,试了试,用着还不错。事务管理机制据说有槽点,没细看。

决定我没有实际使用的槽点:1、不支持手动配置db和java的名称映射,而我给项目组定的映射规则又比较奇葩,给每个属性都写个annotation有点蛋疼。2、貌似是用反射方式直接读写java属性,而不是用java bean规范的get、set方法,而我的很多工具类都是做的虚拟属性,只有两个无比复杂的get/set方法,没有实际的属性。当发现annotation只能加在字段上时,欲哭无泪只好放弃了。

现在项目中用着的还是mybatis,用官方提供的mybatis generator生成配置文件,单表操作支持得很完善,多表操作自己写sql解决。

能分清楚group和having的区别。

关于db另一个要说的问题:复杂的东西尽量别放sql里面。orm层提供基本操作就够了,剩下的逻辑交给java层表达。做好封装,实在有效率问题,再专门进行优化。好吧,我承认我不知道这哥俩到底有什么区别。


数据库里的字段必须只能2个长度,不能32个长度,性能问题。表名要以T开头,蛋快碎了。

长度问题没看懂要说什么。前两天遇到一个问题,在oracle中如果用char类型的,而实际内容又不正好等于char长度的时候,select出来的数据是带空格的……各种trim都感觉不太好使之后,果断varchar2了。反正这点效率差异,早就被各种奇葩的业务逻辑给抵消了,还是那句话,有问题的时候再优化。

表名问题,我觉得加前缀还是为了跟视图进行区分。当表只有几张时,什么区分也不用做,当表有一百七十张时,什么区分都不管用。所以,战略上看需求决定就行了……

一点经验:通通加T跟没加是一个效果。现在项目中的做法:数据库中大部分的表都是对应了一个业务实体,这些类直接写名字就行,在这些表上建的视图统一加一个V_前缀,也就能起到区分效果了。一般来讲,一百七十张表中至少有一百五十五张以上都是这种表。其他的表,则大多对应了某些特殊场景或算法,实际开发中一般由专门的核心人员负责,可以按照权限控制、事务控制等实际用途,加个什么前缀,谁负责哪个模块就关注哪个前缀就好了。


会用jquery.ajax获取数据,不知道ajax的同步锁。

我也不知道。对于一切锁,我的意见都是,上个最大粒度的,保证数据一致性。出现的所有问题具体分析,逐个减小锁的粒度。

一会显示的表格有数据,一会又没数据啊,太生气了。

遇到此类抱怨时:1、告诉他,工业界没有玄幻故事,2、再提同样的问题的话,辞了他。让这种人觉得自己还有混在程序员界的错觉是对他的不负责。

详细记录当时的运行环境,一般都会找到原因的。

骚年级别的程序员标志:

懂div的float,clear的含义。

1、上一套bootstrap,解决80%的问题。2、剩下20%的问题,找个跟你关系不错的前端,没事多请人家吃吃饭,然后就解决了。


数据库超过n记录表横向纵向分表。

问题在于,n等于几。高估n无所谓,反正要出现的问题肯定会出现。低估n的话,造成的进度损失会让你有自杀的冲动,造成的数据损失会让项目经理有杀了你的冲动。

知道oracle的用with,这个sql写起来看起就舒服了。

这个也不会,粗略google了一下,确实有点用途。

看到aop能说一大堆废话,又是代理又是反射,就是没写过。

你的错误在于,不知道用途就研究实现原理。

DateUtil一定写过好多次,简直太复杂了,非常多的格式定义,那个static格式变量,必须要深刻理解才能知道。

1、有句评价说的好:把一个工具包的几乎所有方法都写到标记过时,这是得有多仇视这个社会。

2、自从有了JodaDate,妈妈再也不担心我的日期处理了。当一个同事又一次熬通宵写出一个DateUtil然后我拿出了JodaDate之后……

砥柱级别的程序员标志:

会架构程序,能用extjs或者easyui写个框架frame,还能写个递归menu。

所有的知识点都很基础,但是能把这一切都完整写出来,完成debug之后让项目组用上,一段时间之后还能维护或者添加点新功能的,都是中流砥柱。说白了,这是个情商要求大于智商要求的活。业务系统定制开发,实际上都是这种类型的活。你并不需要有特别高深的技术,也不会突然面对多么巨大的困难,只会在一个个看似不起眼的bug中,把所有激情都消磨殆尽。

会用ps处理图片,还能写上几个字,XXXX系统beta版本。

会ps的都是神,不解释。

基本上util包的作者,用log或者拦截器记录日志。

并且,愿意跟一切动过你util包的人玩命。

能用fiter或者Interceptor处理权限,但是搞不懂如何处理button的权限。

在业务级别去掉button权限的需求就好了。

真正的解决方案没有实际执行过,只是一个想法:系统建模的时候,权限模型直接建到操作级,比方说每个Action处理函数对应一个操作,针对这个操作定义每个角色的权限。button在概念上同样映射到权限就可以了。至于怎么针对函数做权限控制,随便你用xml或者annotation定义一下就行。

明白了异常处理转换成RuntimeExcetion太好了,不会丢失而且好处理。

异常处理真是个技术活。当我说,我也不知道我的方案好在哪,只是觉得你们的方式不优雅时,我清楚的听到了对方心里的嗤笑声。往往我的结论都会在大概三个模块开发周期之内被确认。

page分页里代码和css样式和类class都在jsptag里,认为没法分啊,这个是典型。

前端用于提交参数,目测所说的代码是计算page、rowperpage这些属性的。随便找套js grid控件,看看他们的参数提交方式,前端不依赖任何jsp,分到那个份上我觉得就足够了。

小牛级别的程序员:

知道url资源树和menu的区别。

不明觉厉。这种概念性的东西其实挺多人都挺不重视的,曾经很反对这种不重视,但是重视了很多年还真没重视到什么收获。现在的观点就是,用到了再说。

能手写css,懂important能拿来做啥,这个好玩得很。

又是前端,上bootstrap吧

能够理解数据库必须用主外键,否则那帮家伙一定会乱写程序。

只要是实体类,必须有主键,并且一定要有物理主键,不能只依赖于逻辑主键。id这东西,找不到其他用途的话就简单的当个快速查询定位的工具就行。随着业务复杂度的增加,你会发现它的表现力越来越强。在大部分依赖于持久化的业务类系统中,可以简单的定义,有id就代表这东西存在,没id就代表不存在,顺着这条思路往下想,很多业务都会简化。

只用id做外键,不要用神马身份证号、订单编号之类的东西。然后你的程序随便怎么写都能写得下去。

会设计数据库模型,几百张表的小意思。

针对真实世界,只作抽象,不作修改,保持整个系统概念上的一致性。然后你会发现,设计的模型会恰好符合数据库设计的各种准则。这时候这个数据库结构就能用了。

如果你设计出一张自认为很有用的关系表,却起不出合适的名字来;或者数据库中有一个不是纯粹为了效率问题而设置的冗余字段,相信我,你终将遇到一个你的模型无法表现的业务需求。

注释用//只有一行,不用/**多行,因为程序即注释。

jdk标准注释都不用,那javadoc咋办?

好吧,程序即注释这东西,几个水平相当、思路相近的人,通过不定期的结对编程、互相重构代码,还是可以做到的。如果是大规模的开发,还是建议通过架构层面合理的分层解决。

知道struts模型驱动代替属性注入,方便太多事了。

又一个语法糖。有了实际需求再用,到底用不用不要争论起来没完,遵循这两点就行了。这个真心不是核心问题。

用过this做参数传递,哈好多人都没用见过。

哈真神奇!这话真有人对我说过。

技术上this就是个指向自身的引用。某些具体的场景确实用起来很有意思,高层面的意义还没太想清楚,只有一个模模糊糊的印象,大概就是做了一件把自身委托给其他对象的事,封装了某个参数传递的过程,也就是封装了自身和被委托类的关系。

se级别的程序员:

研究过struts,hibernate的源代码,ui里有颜色互补概念,看起来是要舒服点啊。

学源代码要跟写代码结合起来执行,学到了新的模式之后,多想想有什么应用场景,但是真的实际使用要慎重。譬如说看到struts2的层层wrapper模式后就用了一次,被喷了好长时间

觉得struts,hibernate,spring,要扔掉一个框架,一定是spring,这个废啊。

让我选的话,我扔hibernate。

写过mvc,知道前端拦截器,中心分发器,后置处理,bean映射。

要知道就算没有这些概念,代码层面也一定会实现mvc的全部功能。然后找到没有这些概念的代价,哪些东西就耦合了,哪些变更就应对不了了等等。最后你的水平就提高了。

会用模型驱动user.save(),代替dao。

少传一个参数,概念上优雅了一些。模型驱动太考验建模能力,一定要在一个范围内把所有问题想清楚再使用。建议把DDD那本书看个两三遍再说。

不过这东西看上去真的很吸引人。

能用metadata生成一堆乱七八杂的代码,这下爽多了。

metadata的解释是“描述数据的数据”,比方说数据库的表结构定义可能就算是一种metadata。在写代码过程中能正确的抽象出元数据之后,眼光会提高一个层次,至于是不是要搞生成代码的工具,因项目而异。

曾经用过一段时间的freemarker,写一些轻量级的代码生成工具还是挺好用的。

研究过Annotation,用Annotation写过注解,知道Annotation如何继承,太复杂搞不懂。

拿Annotation实现过一套Model工具,没有深入了解过ejb,可能有点entity bean的思路在里面把。

前面说过一部分annotation了。这东西的好处就是把元数据跟java代码放到一起了,于是好找也好改了,坏处也是放在一起所以耦合了。如果代码量大到一定程度之后,最好把所有主力都集合到一块儿商量一下,到底是xml好还是annotation好。

在代码量没大到一定程度,或者annotation配置的数据仅仅是annotation所在的类自己用的话,可以在开发效率上考虑一下这个问题。jdk提供了语言层面的annotation操作工具,使用简单,有一部分的编译期检查,写起来比xml要舒服。另外,个人认为annotation的语法不太适合定义层次太深的结构,在类前面写上四层annotation再用ide做个formatter,说实话挺愁人的。

Boss级别的程序员:

仰慕一下。。。。

 

以上经验建立在如下基础上:

我做的项目是大部分是技术要求特别简单,业务要求中等复杂,需求变更特别频繁,开发人员平均素质不足,工期不是很紧的类型,所以关注点集中在如何通过分层隔离业务复杂度,以及如何通过语法糖来降低开发复杂度。bug方面,比较关注的是影响数据一致性的bug,只要不影响数据一致性,哪怕系统直接挂了,都不是影响项目的生死因素。

在做技术方案的时候,比较倾向于:

1、通过各种设计模式封装复杂度,提供尽量简单,甚至无脑开发的接口

2、忽略一切效率问题,在业务打通之后再想优化的事

3、能在编译器做的事就不往运行期放,哪怕会影响开发的灵活性

[全文整理] 二千年传承的古武术秘密

这辈子是练不成这玩意儿了,不过看点文章纸上谈兵还是挺有意思的

原文在此

[全文整理] 二千年传承的古武术秘密

2009-12-29 14:04:09|??分类: 某些技术 |字号?订阅

整理说明这是一篇比较出名的经典老文了, 似乎没看到有完整的 stand-alone 版本。这里从论坛原文整理出完整版本, 尽量保持了原文排版布局的风貌, 并收录所有作者主题相关的文字。力求忠于原著。此文作者是养生无双。原文见 (一) (二) (三) (四) (五) 。以下正文。

 

二千年传承的古武术秘密 (一)

在火器时代之前, 中国是天下第一步战强国。动则数十万人的战争中, 能活下来的人所凭借的东西到底是什么?
我研究在世上活命之道二十年, 不敢在擂台上说能打赢泰森, 小光头, 格雷西, 但是自有自己独到之处。如今就完全免费地和各位分享一下。

本文会分析中国几大传统拳种的源流。看看它们的来历和用途。将分为如下几个章节 [1]。

  1. 战场之拳
  2. 义士之拳
  3. 暗杀之拳
  4. 飞贼之拳
  5. 擂台之拳

战场之拳

中国古代战争的特点就是人多, 多到什么地步呢? 我打个比喻, 一个足球场大概可以容纳5万人在那里密密麻麻地站着。一场较大规模的战争, 大概就是好几个足球场的人密密麻麻地挤在一起。这么多人挤在一起, 面临的最大危险是什么?

答 案是个废话, 就是被踩死。五万人中只要有1000人突然发了神经乱走路。至少一瞬间就能踩死2000人。踩残废的则不计其数。什么泰森小光头遇到这 1000个发神经乱走路的人, 可能可以一阵摆拳打倒四五个, 但最后也只有死路一条。死得最快的是什么人? 是格雷西家族的人, 这个家族的人有个坏习惯, 就是一打架就往地上趴。只见一阵大脚丫过后, 顿时退货。
如果这发了神经乱走路的1000人, 不是一般人, 是骑着马拿着长矛的, 死的人就更多了。什么? 发了神经的不止1000人, 是另外50000个骑马拿长矛的人?!?!

所以各位喜欢看穿越小说的兄弟们, 千万不要以为自己练了点什么无限制啊, k1啊, 跑到古代就能吃香。真过去的话吃的估计都是烧的香。
在战场之中, 对武功的第一要求是

1. 重心低+平衡感 (马步稳) , 否则一滑倒则万事休矣
2. 保护要害。挨一刀一枪则省下娶老婆生孩子的费用了。

这里说的保护要害, 可千万不要以为是像拳击手一样两手护着太阳穴和下巴。在战场上你摆这个姿势就是找死。
首先分析你是个什么兵种, 你是长枪兵 (排在最前面送死的就是你这个兵种) 就摆个形意拳的三体式。前手防咽喉和胸, 后手防腹+下阴, 两手抓一支长枪, 用趟泥步前进。形意拳号称是岳飞传下来的武功。岳飞用的肯定不是什么泰拳黑市拳。动脑想想就明白了。

你是刀盾兵 (好不到哪里, 也是个送死的兵种啊! ) 就一手在前持盾, 一手在后持刀。摆个太极拳的白鹤亮翅的姿势。谁要是摆泰拳姿势死了不要怪我没指点啊!

你是弓箭兵 …… 安心射箭吧, 别想这么多了。士兵在该死的时候不死是一种耻辱。

如果你祖先积德, 分配了个骑兵, 也别太得意。你照样要练马步。那些喜欢蝴蝶步的兄弟还是在家和美女扑蝶嬉戏吧。

看到这里, 也许有些聪明的朋友已经明白了一个道理, 那就是“功夫实用不实用, 关键看你在哪里用”

当年巴西有个小男生, 学了日本的柔术。据他自己说“删除了一些不实用的技法, 创编了无敌的格雷西柔术”
格雷西柔术现在已经到处挨打了。说明这世界上那有什么无敌的东西? 那都是广告! 我们分析一下日本柔术和格雷西柔术的异同, 就不难发现格雷西删除的是什么技术。

日本柔术的针对对象, 是双手持武士刀的铠甲武士 (一般开始从小练刀, 反应不会比你差) 。面对这样的对手, 你用什么鞭腿, 什么下潜抱腿摔都是假的, 你若用鞭腿, 只见对方潇洒地大刀一挥, 只见一条腿如鞭一样飞上半空去了。
吾观察街斗多年, 未见有人敢对手持西瓜刀的对手使用高鞭腿, 便是这个道理。
但如果对手是个空手的人, 那便不可怕了, 拼着挨几拳, 也要把对方推倒凌辱一番。但这依然有危险, 你永远不知道他身上是不是藏着把小刀, 或者摸出把钥匙朝你脸上猛刺。
我观察了一下泰森的身板, 在要害未被刺中的前提下, 他大约能在挨5刀的情况下支持10分钟不死亡。超出10分钟则情形不乐观。
如果要害被刺中, 没啥说的, 当场毙命。
在街斗中, 吾未见面对匕首者双手护头跳跃作泰森状的。反对的人请上视频证明。

日本柔术和中国同类拳法 (太极拳) 的最大异同在哪里? 两者都有快速进身反关节夺刀的技术, 都有快速进身用“内劲”打透铠甲的技术, 都有借力跌人的技术。这几项都是战场上最实用的东西。
但日本柔术多出一个“寝技”, 其原因无他, 因为日本战争人少, 几百人对打就是大会战了。打着打着就稀疏起来, 可以放心用擒抱技术来抓俘虏, 除此以外, 还因为日本从来没发明过盾牌兵之类的兵种, 只要躲开了对方双手持的刀、枪, 近了身抱住对方的手臂就安全了。要是到了中国, 一盾牌 (铁山靠) 把你撞开, 顺手补一刀, 看你还来寝技?
但到了格雷西的时代, 就离战场越来越远, 在单对单徒手对抗中, 只剩下插眼踢裆等技术还能让对方忌惮一下, 格雷西柔术大刀一挥, 把插眼踢裆去掉了, 在不用武器的前提下, 寝技顿时失去了天敌, 迅速繁殖起来。我常常见一些热心的传统武术家在思考怎么对付格雷西柔术, 我每次都对他们说, 别想怎么对付了, 干脆就别对付。干吗去找郁闷呢?

战场之拳的第二要求是

1. 有去无回
有去无回不是指一种精神状态, 而是指你后面的人时刻在挤着你向前走。你一停步或者回头看一看就被50000人踩死。沉迷于侧踹, 鞭腿啊的兄弟抚心自问。你背后有人始终用全力推着你的时候你的鞭腿还剩下几成功力? 踢完人之后能不能站稳?

2. 贴身发力
我前面说的内劲打透铠甲, 估计已经有兄弟怀疑了。这也不怪你们, 谁叫你们没练过内劲呢? 我没练过也不相信有人深蹲900公斤。要真有人深蹲900公斤, 别说打透铠甲, 打透航母都可以啊!

在这里就公布一个不传之秘, 那就是日本人潜心研究中国拳法多年, 研究出来的内劲速成太监版。放到空手道馆, 至少要骗你几万块学费, 混到个什么师范才教你。
一般人出拳, 是先蹬地, 然后扭腰, 然后送肩, 然后出拳, 然后击中对手。
用 内劲的人是先出拳, 然后迅速上前一步 (很重要) , 扭腰, 送肩, 同时击中对手, 就这么简单。只要用这个诀窍, 就算后面有一千人在拼命推你, 你也能连续不断打出重拳。能不能透甲, 就看你每天花几个小时练了。兄弟们, 拿出点练黑市拳流深蹲的精神出来!

 

外篇, 透甲打神秘吗?
答, 丝毫不神秘。练过散打跆拳道的都知道, 穿着硬式护甲被人一击KO的例子比比皆是。护甲充其量作用是避免流血性外伤罢了。你背靠墙站定不动, 在胸口垫一块木板, 我找个没练过任何功夫的大汉对木板猛击, 在座的兄弟估计没几个人能挨几下后还不吐血。何况我国古代铠甲一般以片状叠加的软甲为主。
透甲打只是一种更方便贴身的针对铠甲研发的发力方法而已。

总结一下, 在中国古战场上, 最实用的招数就是“站稳, 保护要害, 在对方武器以外的范围痛打对方。”
我 国古代贪污成风, 士兵的武器基本都是偷工减料的。能拿到一套正常的武器/铠甲, 该士兵要含泪跪谢祖宗。这不是开玩笑的话, 是血 腥的事实。而即使是正常的武器, 砍了几个盔甲人以后也会损坏。作为一个老兵, 你不得不考虑后备武器, 那就是你的肉体, 这就是战场之拳的雏形。至于战场之拳的真正成型, 是在元代的禁武令之后。
元朝禁武器, 汉人藏武器者全家死。菜刀必须几户公用。申请备案。该菜刀出了血案伤了元人的话, 共用菜刀的这几户一起咔嚓咔嚓了。
宋军虽然积弱, 但毕竟曾用步兵对抗游牧民族几百年, 怎么可能没几分实力? 于是藏在民间两眼发红, 一边拜岳爷爷一边时刻准备还我河山的军人比比皆是。然而元朝的禁武令下, 你要是带着一批村民每天拿着武器练捅人砍人, 估计没几天你就挂在旗杆上示众了。
所以元朝的汉人武士们发明了一种看上去很像健身操的东西。“左手撑着, 向前一步, 右手向前伸一下, 回手摸一下自己后脑勺, 再摸一下前面……”“一手在喉咙位置, 一手在下阴位置, 用趟泥步往前走……”

太 极拳里面有一招看起来很华而不实的招数“切地龙” (用日本人的说法就是“XX流秘奥义——地龙死闪) , 其真正用法就是近身后先举着盾牌顶着对方, 同时挡住对方视线, 然后保持盾牌举着, 身体下潜一刀子猛捅对方下阴。还有什么海底针 (水龙死闪) 大致上也是如此。揽雀尾则是用左手来抱着对方的长矛, 右手猛斩。
张三丰被元朝皇帝召见, 路上杀山贼若干, 他说他是夜梦神人授拳, 鬼 (元朝鬼子) 才相信。实际上答案很简单, 他就是传承战场之拳的人之一。但这要是明着和元朝皇帝说, 元朝皇帝绝不会表扬张三丰热爱科学实事求是, 而会命令御林军猛冲过来考验科学。

 

外篇: 戚家军剿匪法
有朋友提到, 在战场上最实用的是武器而不是拳法, 并且举出了戚继光为例子。
但 事物并非一成不变的, 实际上在古战场上, 双方隔开距离对刺对砍, 实在是一种非常理想化的状况。实际的状况是什么呢? 是两军第一回合的对刺对砍之后, 你还没来得及刺第二枪, 砍第二刀, 就已经被后面的人挤得和敌人脸贴脸, 心连心了。这个时候如果你还没死, 那么最可靠的不再是手中的大刀长矛, 而是拳法, 肘法。只要能一拳把对手打晕2秒, 你就可能多活了两秒。
戚家军的鸳鸯阵是一种剿匪阵法, 适合对抗不能形成践踏性杀伤的小股的步兵倭寇势力。但是却不适合大规模军阵, 戚继光的战友余大猷中后期被调去守北边, 对付北方骑兵, 他就没再使用鸳鸯阵, 而是使用了其他更适合环境的阵法。
不审势则宽严皆误啊。

战场之拳中还有些叫“劈拳”的招数, 是单手从上到下砸对方的脸。这种拳法在手持刀柄的情况下威力特别强大。还有些叫大劈的招数, 则是一手高一手低地同时往下砸, 这一招的密码只需要手持长枪即可明白, 这是用枪尾凿击近身对手的技术啊。

以传承战场技术为目的的战场之拳在清代发生了很大变化, 其中相当一部发展为更适合用来单兵/小规模作战的“义士之拳”这点会在后文再述。

 

二千年传承的古武术秘密 (二)

闲言闲语, 在这个时代, 保守其实是没啥意义的, 我的师父们教我的时候不是怕教会徒弟打师父, 而是怕东西失传, 恨不得先都塞到我脑子里。但东西还是在我这一代失传了不少, 为什么? 因为这东西不值钱。
不值钱的东西就没人去学去练, 这是千古不易的真理。好比说我在第一贴里毫不保留地说了破甲打的发力方法。在古代我估计就会因此被同门追杀, 但是这样便宜地说出来, 留意的人又有几个?
其他人也就罢了, 但却要点名批评一下24, 这家伙最近一直挂着太极拳的名义到处招摇撞骗, 却连实战太极拳最基础的东西发劲都不会 (简直就像拳击手不会直拳一样) , 看见了真传一句话的东西, 却不去详细琢磨一下。中国功夫的名声, 就是败在这些终日大言炎炎, 沉迷于自我心理满足的人手里。

许多看帖人都在留意“古代打仗怎样才能赢” (其实养生一句都没提过战争的胜负问题) 。而自动忽略其他内容, 这就是功利心。这样的人适合当军师, 但不适合当士兵, 适合当票友, 却不适合当拳手。

下面我会专门用太极拳的一些秘奥义来讲解一下这一流派的战争之拳精髓。觉得不能理解或者声称自己没听说过的人也不用怀疑, 当小说看即可。

在说太极拳之前, 先说一下巴西的华丽格斗术: 卡波依拉
卡波依拉的动作主要为腿技, 其次是一些匪夷所思的翻滚跳跃技巧。这东西在现代人看来只是怪招, 看起来好看。改成街舞能泡MM。但这种拳法的来历是什么呢?
是几百年前, 殖民者入侵巴西, 将巴西男子列为奴隶, 持有武器者杀杀杀。大部分奴隶还要带着较长的手铐工作。连晚上睡觉都不能解下来。在这种情况下, 巴西人发明了一种华丽的“传统舞蹈”, 这种舞蹈实际上是专门利用手铐铁链为武器而研发的杀人拳。
卡波依拉的基础格斗式是身体不断左右变换 (尽量躲闪火枪) 两手保持距离交错在面前划过 (用铁链锁拿刺刀) 一旦抓住机会, 就用铁链锁住对方手臂或脖子, 然后通过身体的跳跃和旋转勒断目标, 这种包含体重和跳跃力的锁链技, 加上攻击角度诡异, 实在是奴隶们对抗火枪的最有效的方法。
看到这里, 我知道肯定有人把自己代入到殖民者的身份说: “这样能打得过火枪吗? 我如果拿火枪去打, 对方如何如何, 等等。”
但我也要反问, 当你就是那些奴隶的时候, 你去哪里拿火枪? 难道没火枪就安心当亡国奴了吗? 手上有啥你就用啥, 战争的胜负轮不到你关心, 但是关键在你努力了。

巴西有这样的技术, 中国也有。而且种类更多。
形意拳是以枪化拳, 太极拳则是刀盾兵留下来的拳法, 一刀一盾, 就是那阴阳鱼 (当然, 还有别的比喻)
所谓的借力打力, 在徒手打斗中没那么管用, 或者说, 使用难度太高, 但是配上了盾牌+刀, 就是最恐怖的技术。
当一个盾牌兵顶着四米长的长矛, 冲到敌人跟前, 他的任务就是把敌人的长矛阵破开, 让自己的兄弟们能冲上来。
在敌人的枪阵还没冲破的时候, 太极拳奥义“切地龙”“海底针”“跌叉”等技术的方法都是持盾矮身潜进, 避开上身的矛头, 用刀猛捅对方下身。而当近身以后, 则使用揽雀尾等技巧抱住对方的多枝长矛, 用刀猛砍。
揽雀尾的雀尾, 指的是孔雀的尾巴, 用来比喻许多长矛。当一个刀盾兵奋不顾身地抱住了对手好几根长矛的时候, 他的战友们就可以乘虚猛冲进去乱砍。
这也是揽雀尾被称为太极拳母拳的原因之一。当然, 揽雀尾也可以用来接腿摔, 用来反关节。但效果便打有折扣。
而当兄弟们都冲到身后, 把你挤得和敌人已经脸贴脸, 心连心的时候, 你已经没有距离举刀, 这种情况下, 你有几个选择

1. 用发力距离极短, 可以借背后力的发劲透甲打来打对方, 把对手打晕或者打退, 有了挥刀距离后补上一刀。
2. 用盾牌猛击对手。 (太极拳凡是用小臂发劲的技术大致都出于此)
3. 用刀柄自上而下猛砸对方的脸。
4. 丢了武器抱住对方脖子拧 (看着练太极拳的兄弟在那里玩太极石球, 不要奇怪, 等你的脑袋像石球一样在对方手里的时候就明白了)
5. 用盾牌挤对手, 趁对手用力对抗的时候盾牌上玩点虚实, 让对方失势跌倒 (牵动四两拨千斤) , 成功的话, 是让对手一大堆人一起跌倒 (踩死)
6. 用BT的柔韧性, 突然矮身用盾牌和肩膀撞击对方小腿 (七寸靠) , 让出上盘的空间给自己兄弟在背后砍/捅对方。
7. 用长劲将对方撞退, 然后突进砍杀。

除了刀拳合一的拳击术外, 太极拳有种种匪夷所思的小臂劲法, 例如堋、履、挤、按, 这些都是用盾牌打击或者挤压对手的训练法。还有採、挒这两种针对长矛或者对方手臂的控制技, 肘、靠两种近身打击技。

上述都是实用至极的标准军人技术。但军人和军人之间总有区别, 其中一些军人将自己的军体拳和道家的“返先天”奥义结合, 潜心体己, 发现了一些进阶的锻炼技巧。
注意, 是锻炼技巧。不是实战技, 我知道肯定有些回帖不看帖的人会在那里大喊: “这些东西战场上有用吗? ”我现在就提前回答: “这些就像长跑跳绳一样, 不是实战用的, 都是锻炼用的, 锻炼锻炼锻炼锻炼……”

和真正练太极拳的人搭手, 会有奇怪的发现, 就是无法从对方的手上感觉到对方的重心, 但对方却能抵抗住你的力量不后退。这个情况在某些练日本剑道的人身上也能找到。

答 案其实在李仲轩前辈的门下另一条走狗徐浩峰 [2] 的书中已经披露, 那就是无名指锻炼法。 (全身及其他手指放松, 只有无名指紧张) , 无名指在日常生活中是废指, 很难动用到相关的力量, 但是它紧张的时候却能让力量传到手上。而且你感觉不到自己无名指的相关力量, 对方也感觉不到从你无名指上传出来的暗劲。
正确用刀挥砍的时候, 主要就是无名指带动刀的运行, 其他手指只是在砍中目标的时候紧张以保持刀的平稳, 所以很多练剑道的人无意中能练出这个效果, 专练柔道的兄弟反而练不出来。

而太极拳最重要的攻击力量虽然来源于无名指, 但是其核心却在大拇指上, 在持刀挥刀的时候, 身体因刀而失重, 全靠大拇指来维系刀的重量和平衡。内家拳的“人刀合一”秘法, 也在大拇指上。

我 们平时坐公共汽车, 汽车一颠簸, 我们就要找个地方扶一下来维持平衡, 实际上扶一下那个力相对是很轻的, 为何就能让我们一百多两百斤的体重保持平衡了呢? 因为我们只是要找一下平衡感。找到了来源于两个大拇指的平衡感, 就进入了“不动之动”的境界。真正的 “四两” 拨千斤, 用的是四两重的大拇指, 拨自己的体重千斤。
养生自己发明了一个方法, 平时把大拇指握在其他四个手指里。行走时假装失重, 有时拇指从其他四个手指里寻找借力来平衡, 有时其他四个手指也从拇指上找借力来寻找平衡。

题外解释一下, 手背为阳, 手掌为阴, 把大拇指握在手掌里这种互相借力的方法, 暗语称为“阴中有阳, 阳中有阴”

关于原文:
养生自己发明了一个方法, 平时把大拇指握在其他四个手指里。行走时假装失重, 有时拇指从其他四个手指里寻找借力来平衡, 有时其他四个手指也从拇指上找借力来寻找平衡。
题外解释一下, 手背为阳, 手掌为阴, 把大拇指握在手掌里这种互相借力的方法, 暗语称为“阴中有阳, 阳中有阴”
作者的解释:
重心前倾走路, 感觉快失重的时候拇指一顶, 就像顶在别的物体上一样顺势把重心调整过来。
语言表达有其极限, 你可以试着坐公共汽车, 扶着扶手, 感受用手指轻轻借力来维持身体平衡的状态。平时练习, 就把拇指当作其他手指扶着的扶手。以此保持身体平衡。或者把其他四个手指当作拇指顶着来维持平衡的物体。

中 国的武家, 为了避免被禁武的当局发现自己在练武, 纷纷借用道家学说来掩盖武功的练法, 所以你看一本古代的武功秘籍, 里面一大堆阴阳啊, 五行啊, 千万不要奇怪, 那些都是为了保证这本书被警察看到的时候不至于让书的持有人满门抄斩才这么写的。用时髦的话来说, 道家的隐语成了军用密码。例如“吕洞宾”“吕纯阳”, “吕祖”这些词指的都是男人的小鸡鸡。 (洞里的客人)
这些军用密码, 在上一代的武术家都还有很多能翻译, 但是到了我们这一代, 能翻译的人就越来越少了。还有些乱翻译的人 (好吧, 我是在说我自己) , 搞得秘笈出版界一片混乱。
读者们只需要明白, 当两个元朝/清朝初期的武术家在谈论“阴随以无厚入海”这种莫名其妙的话, 其实是在谈悄悄地背后用刀插入对方小鸡鸡附近的暗杀技术。就好了。

当统治渐渐稳定, 战场之拳再难有用武之地, 其中一部分战场之拳的传人沦为街头卖艺者, 向高难度的华丽动作发展, 一部分沦为拳手, 专业角斗供吃饱了撑的观众取乐 (或换个好听的说法说是参加奥运会为国争光) 。而其中一部分转变为义士之拳。

义 士这个词, 在古代就是黑*色*会的意思。在元代, 是明教, 白莲教为主, 在清代是以天地会, 红花会等为主。这些秘密会社以反清复明为己任, 大多数时候潜伏在民间, 一般很少有大规模作战。打斗的对手一般也不是军人, 而是衙役, 捕头, 密探, 在这种情况下, 战场之拳就不那么实用了。其中有一些实战高手发明了更实用与当前这种情况的技术。

我年轻的时候, 遇到个练八卦掌的朋友, 这位朋友练了好几年的八卦掌, 但是还是打不过拳击手, 他十分苦恼。认为是他内力未到的原因, 实际上按他那种练法, 就算练十年, 也打不过练了十年的拳击手, 因为八卦掌这东西最早出现在商业社会的时候, 虽然是在一次职业擂台赛上, 但是八卦掌最早的诞生用途却绝非打擂台, 而是反清复明。
八卦掌的手法和身法让人眼花缭乱, 打击力却不尽如人意。有很多八卦掌的朋友因此苦恼, 都兼练铁砂掌之类的重手法, 但是铁砂掌配合到这样灵活的身手上却又没了威力。所以当世很多八卦掌名家都遇到两难的境地。
实际上八卦掌的可怕之处还是在兵器上, 空手的掌法也是掩人耳目罢了, 甚至连八卦掌这个名字也是掩人耳目。八卦掌的精华在其独门武器子午鸳鸯钺, 这东西可以锁勾, 可以划, 可以抠, 可以割。但这东西也只是和平年代用来表演的。子午鸳鸯钺的真正平民身份是——镰刀。
在夕阳下的小树林里, 一个双手持镰刀的农民, 突然用极其诡异的身法, 向着你的颈动脉, 股动脉, 脚筋, 腕动脉等地方连续不断地袭击, 你出一刀的时间他已经对你攻了五六刀。而当你反击的时候, 他又躲到了树后, 用匪夷所思的角度不断袭击你。八卦掌的“九宫步”, 说穿了就是在人群中, 树林里逃走或者躲闪反击的技术。在树林/无辜群众里的话, 什么形意拳, 什么太极拳, 都不是八卦掌的对手。
八卦掌其实是介乎暗杀拳和义士拳之间,
真正招牌的义士之拳就是“洪拳” (前身为太祖长拳, 后来者为国标武术长拳套路)
太祖长拳, 即托名宋太祖的黑*色*会拳法, 在元朝就有出现。
其特征如下:

1. 注重王八拳 (最符合人体本能的拳法, 但此王八拳非彼王八拳, 下面会详述)
2. 注重桥手 (小臂运用技巧)
3. 注重移动, 上一招向东打, 下一招可能就向南跑了

今晚累了, 明天看看有没有朋友能猜到为何会有这三个特征。

 

二千年传承的古武术秘密 (三)

小温侯所谓的言论自由, 我国自古就有, 不过定义稍有不同, 大多数人对言论自由的定义是 “我有批评你的言论自由, 但是你没有反驳我的言论自由。”

上个帖子里, 有人不就具体问题反驳或骂 (这点24倒是做得比他们好) , 却喋喋不休于“武人学文就是忽悠人”“我最反感有人一个人会很多门派功夫的”

金庸大侠说的好, 某些人一辈子就练一种拳法, 美其名曰“贵精不贵多”, 他们是否能做到“精”, 那是很可疑的, 至于“多”是肯定做不到的。所以只要有人说“贵精不贵多”, 他们就油然而生知己之感。
而养生刚好相反, 所学的拳法能不能做到精这个很难说, 但至少种类多是无可疑的。而且读书不少, 所以绝不是他们的知己。

养生认为太极拳为刀盾兵所创, 证据嘛……比太极拳是张三丰夜梦神人所授, 或者陈王庭在乡下种田时拍脑袋想出来的还是要充足一点的。
陈王庭创太极拳说, 来源于陈氏族谱。而养生的说法, 来源于春秋时期齐桓公的……错了, 那个应该是神虎术。那么就来源于李景林将军的秘传日记本好了, 李景林将军深明打仗之道。他日记里的记载应该比在座各位都有说服力吧? 看谁还敢质疑?

调侃就到这里好了, 前几天有兄弟其实已经答对了。义士之拳是利用杂物, 以少对多, 克制古代警察的一种拳法。

顺便回空格兄的话, 依靠鲸鱼和鲨鱼样子长得像, 是不能判断他们属于同族的, 但是却能够判断出这两种东西都是在海里生活的。因为他们的样子都符合海洋生物原则, 而不符合陆地生物原则。

我们先看看义士之拳必须符合什么原则

1. 身体平衡, 不容易在移动中摔倒。一旦倒地, 就会被一堆捕快扑上去施展巴柔紧紧擒住。而被擒住的话, 则比死还惨, 自己受尽酷刑不说, 还要连累亲戚好友一起死。
2. 反擒拿, 不能被人轻易用关节技抓住, 理由同上。
3. 在一群围着自己的对手中找到可逃生的空位, 并且冲出去。
4. 为活命不择手段。 (没错, 就是24如获至宝地发现的无限制格斗术)
5. 简单速成。
6. 所用武器便携。

义士拳五宝之一, 四平大马
大部分义士之拳里都有四平大马, 就算不是四平, 也是马步桩。李连杰演的精武门里批评马步桩, 说那样不适合起腿踢人, 所以是死马。那部片的动作指导估计是个李小龙迷+散打控, 哪里知道马步桩的妙处?

马步桩之妙, 第一在速成。
义士们平时要工作养家, 还要打扮成良民大大的样子, 自然不能像职业拳手那样买了各种器材, 公然夏练三伏冬练三九给官府看, 这样一来, 大多数时候也只有晚上睡觉前能关了灯练一阵子。在这种前提下, 四平大马就是最快的增加平衡力和腿力, 协调性的方法。

站四平大马也没啥标准和诀窍, 就是按标准站到四平状态, 站到四平就啥都懂了。诸如“两膝对称撑拔, 气沉丹田, 腰马合一。”等, 一句话概括起来都是四平状态, 说多了反而让人糊涂。
练拳有两种方法, 一种是明理后练拳, 一种是练拳后明理。前者精细, 后者强壮。各有各的好处。各有各的好处, 嘿嘿。

有人也许会说“四平大马这东西对膝盖有害啊, 是不科学的练法。”, 义士们对此则回答说, 眼前还活着最重要, 让科学见鬼去吧。
四平大马之妙, 还在于这是一种在移动时能时刻保持身体平衡的步法。拳击的步法在打中目标时固然威力强大, 但是在开始移动到攻击到目标之前, 身体都处于被他人一撞就会失重的状态。这种步法是不适合群战的。
当然, 义士之拳中也有高位步法, 所谓的高位步法也没什么特别, 就和田径运动员的短跑/跳远前的助跑差不多。但只要有人近身, 就会马上切换为马步。

 

二千年传承的古武术秘密 (四)

AMAN和风云生是两个不同的例子, 风云生认为传统拳法有其适应性, 所以坚持在研究传统拳法在现代擂台上的应用, 以及和西方技术的结合。AMAN则直接否定, 认为传统的发力方式在西方人厚实肌肉面前不起作用。
对于适应性, 我的看法是这样的。
一匹马和一匹毛驴结合, 生下的是骡子。虽然骡子可能比马和驴都更适应特定环境, 但是他们非马非驴。
形 意拳和拳击结合, 它们的产物可以叫形意拳击或者风云道, 但是不能叫形意, 也不能叫拳击。形意拳和拳击各有其对应环境, 集合了一些精华的同时, 必然导致其他一些精华的失传。以传承为目标的, 则是形意, 以发扬形意拳其中某些技术或训练方法为目标的, 则是风云道。

AMAN所练的, 则是散打, 散打就是散打, 不是别的东西, 他说他练过形意拳, 但只要他用的教的研究的练的不是形意拳, 那就等于没学过。把两者扯到一起, 也只是骗骗外国人吧。
题外说一句, 85年左右我还是儿童的时候, 曾看过AMAN对张建国的散打比赛。因为某些缘故, 有深刻印象。一转眼二十多年, 物是人非, 真是让人感伤。

题外话说完了, 继续说义士之拳
义士之拳的第二宝, 是王八拳。
对 于一般没受过职业训练的街战者来说, 为什么本能的用王八拳? 因为王八拳是一种杀伤范围大的拳法, 只要在手臂范围内, 都在扇形攻击覆盖下, 只有整体下潜躲闪才能躲得过。而会使用下潜躲闪的人一般都是受过职业训练的人 (会使用腰腿力) , 常人无非就是硬抗或者后仰躲闪。
王八拳能保证在自身训练时间较短, 而又面对大批平庸对手时, 有相对较高的命中率。而杀伤力问题则用武器来弥补。
《杀 破狼》里吴京手持一把短刀来使用长拳。动作设计者是个明白人。但最适合长拳的武器不是短刀, 而是峨嵋刺, T字短拐等。一个王八拳摆过去, 对方低头闪过了后, 还能回手再摆一下或者顺势举起往下扎砸。一个回合能攻击好几次。如果配合马步移动还能造成一次出拳横扫几个目标。回步又横扫或者突捶其他目标等。
也许你这种横扫几个目标的拳法杀伤力不够大, 但却能起到“荡开阵脚”的地步。在横扫的过程中, 对手谁是最弱的, 马上就能分辨出来。

用 三国演义中三英战吕布的局面来比喻一下, 三英战吕布描述的不是军阵, 而是小群殴, 吕布单对单未必能绝对搞定关羽张飞, 但是依靠赤兔马的移动和力量, 却能和他们两个打得不落下风。等到刘备上阵, 形成合围, 吕布移动就有了困难, 但刘备三人组中最弱的刘备还是成了吕布逃跑的突围点。
这个突围法, 是义士之拳的第三宝
冲撞
义士之拳中有很多冲捶类的拳法, 冲捶之后还有靠撞的小动作。
冲捶的原理和训练方法很简单, 就是上半身硬梆梆的, 把手和身体化为刚体, 利用下身的快速移动把这个刚体向对手捅去。这东西没什么技术含量, 就是简单速成, 无需悟性。
琉球人的空手道也是义士之拳的传承, 他们最喜欢召集一大堆学生把这样硬梆梆的一个正拳练上N久, 只有入室弟子花钱买了黑带才教身追手的破甲打。
这个故事告诉我们, 功夫有时不需要精深, 只需要够用就好。一名义士如果能用这样没有技术含量的技巧在人群中冲撞出一个缺口跑掉。就是捡回了自己的命, 捡回了组织的命。捡回了红花会千千万万弟兄的命。

这类不精深但是好用的拳还有很多精髓, 例如 “唯快不破”。
人的反应神经最快的时间一般在0.2秒左右。很多拳击手出拳都比0.2秒快, 那么对手怎么办呢? 还是可以破, 因为可以观察对手的身体变化, 尤其是肩部或者脚步, 可以判断出提前量。
而大部分普通人出一拳至少要 1 秒, 那些没时间进行职业训练的义士估计不会比普通人好到哪里。但是他们却能做到超越对手的神经反应能力, 避开对手对自己的身体预估来对对手进行打击。

待续, 看看有没有兄弟猜到义士之拳中的 “唯快不破”是如何解释和应用的。

 

唯快不破

在说这个技巧之前, 我先埋下伏笔。说一下别的东西。

李小龙的截拳道创立时期, 李小龙主要的交手对象为中国南方的武师而非外国拳法, 而李小龙的拳法架势非常特别。在这里估计没人不了解截拳道的架势, 就不重复了。
清末, 埋藏数百年的战场之拳太极形意等纷纷重出江湖。和八卦掌一起横扫北方武林。
王芗斋认为形意拳有不适合环境的地方, 于是对形意拳进行了一定的改革, 其独特架势为前手远远撑抱的矛盾桩。

上述拳法在当时虽不能说中国无敌, 但是却都是一方豪强。至少都是公开接受挑战的。而且挑战者众。证明其是有实战作用的。
但这几种拳法到今天则再也不能横扫一方, 为什么呢?

继续扯。

义士之拳故老相传中常说“某招可破某招, 某招可克制某招”。这些话, 练现代搏击的人自然都不屑一顾, 但是在一两百年前, 这些话是谁都不怀疑的真理。
原因就在唯快不破, 唯硬不破这八个字上。

上文说到人体反应一般最快就是0.2秒, 义士们在社会稳定的情况下, 纷纷退出江湖, 成为“技击家”, 作为技击家, 一般对手就是单体攻击为主, 虽然还有群战套路传下来, 但是较技时一般不用群战套路, 而是用门内秘传的“独门绝招”
需的说, 这个世界上没有什么绝招, 只有对方破不了的攻击。要对方破不了, 只有更快。

在肌肉能力有其极限的情况下, 最快频率攻击对方的守则如下

1. 动作尽可能小, 避免对手预读后躲避, 小动作也有两条出路, 一条出路是纯靠手法袭击对方面部脆弱器官, 身体不参与出力。另一条是手先动, 身体到2. 最后一刻才参与作功。
3. 发力距离尽可能短, 距离2米出手, 就算再快也要0.7秒才打的到对手, 距离10厘米出手就算不快也只要0.1秒。
4. 减少自己出拳时花费的思考和计划时间。

南 方之拳术家相角, 则一二手, 多亦不过五六手, 势均力敌者, 不互中要害, 即相揪相扭, 同时力竭罢角, 或重整旗鼓, 相与复角, 曾未有角至若干手, 尚不分胜负者, 此其分别之点, 在北拳尚气劲, 南拳则不然, 纯以技巧胜, 功夫不到者无论已, 有工夫者, 其气劲不必惊人, 然出手必能创敌, 角时多不施展门户, 临时落马, 意到手随, 每有胜负之分, 非特旁观者, 不知所以致胜之道, 即被创之人, 亦多不明敌手来去之路。

??? —— 平江不肖生
 

二千年传承的古武术秘密 (五)

东西方的思维模式是完全不同的, 好比说某男失恋后迁怒, 杀了他的教授, 东方思维是: “如果他没失恋, 就不会杀人了。”西方思维是“幸亏那女的没嫁给某男, 不然也和教授一起被杀了。”
这两种思维都是对的, 也都不对。

思维模式的差异, 最终使东西方拳法开始走向不同的领域。如果按西方的思维看唯快不破, 那么就是猛练速度, 比对手更快到达目的地。按东方的思维就是减少距离, 比对方更快到达目的地。
我培训一批新下属时, 常用一个手段, 就是问对方认为自己的上限是每秒能打击多少次。有人回答1次, 有人回答3次, 有些经过锻炼对自己速度比较自信的人回答5 次。我便拿着秒表给他计时10秒, 让他尽全力高速鼓掌, 自己数次数。结果是很出人意表的, 一般普通人每秒鼓掌平均在7次以上, 部分人达到12次以上, 受训的人往往也被自己所数的次数所震撼。不相信是自己做出来的。

这个鼓掌的原理, 包含了许多纯技巧上的武学至理, 例如什么同动近取, 截拳中途, 本能出击, 贴身发力等。当然, 这些只是博大精深的武学中的一个局部。但人都有走极端的时候, 大约在清代中后期, 中国拳法在整体上就走向了这样的一个极端。
因为义士之拳普遍使用小兵器作战, 所以在这个情况下, 你只要手上拿一支小铁笔, 用鼓掌的速度对对方眼睛, 咽喉连续猛插, 一般没练过的对手就铁定得死。
而 如果手上没有小铁笔怎么办呢? 也有办法, 就是将自己的手练得坚硬如铁。这也是现代内家拳的人往往不齿的“局部力、局部硬度。”以一对坚硬如铁的手, 用练成了本能的鹤啄, 虎爪, 手刀, 拍掌等手法, 每秒7~12下地对对手脸部发动多角度攻击, 如果配合马步突进, 实际攻击速度还能翻倍。而人体反应速度的上限是每秒反应5次 (做到这点的也是神人了) 。外加眼睛受到威胁时的本能躲闪反应时间, 理论上几乎是1秒内必分胜负。
当双方都完全依靠“拳招”来形成鼓掌式攻击本能时, 谁的招数 (攻击角度次序) 最能克制对方的攻击角度次序, 谁就能先击中对手, 一旦击中, 则绵绵不绝。 (如果手持武器, 则一击必杀) , 在这种情况下, 传说中的“拳招时代”就到来了。

当然, 每秒 7~12 下只是理论速度。实际上影响攻击有效性的因素很多。为了对抗这种 “闪电手”, 我国拳法家也发明了很多训练方法, 例如 “听劲” “粘手” “擒拿” “拔根” “控距” “地堂” 等。

清末, 隐藏多年的战场之拳突然重出江湖, 大杀三方。并不是战场之拳在街头打起来一定真的比这种义士之拳实用, 而是因为“杀人时代”过去了, “比武时代”开始到来。在徒手比武中, 因为前提是被对方轻攻击击中非要害部位不会死, 那么战场之拳就能大行其道。
战场之拳最擅长的就是用整劲使对方的锋锐 (长枪或鹤啄手, 砍刀或虎爪) 的攻击偏移, 使对方不能连击。例如形意拳的整劲硬打硬进, 八卦掌的闪击, 太极拳的缠绞。这些隐藏拳法的重出江湖, 为一味追求“唯快不破”的武林带来了一片新的气息。但也是真正的战场之拳, 义士之拳失传的开始。当战场之拳, 义士之拳用于和平年代的比武, 他们就像被阉割后的动物, 只能发出瞬间的光辉了。一旦有其他更适合和平年代比武的拳法出现, 这些旧时代的拳法就必然被淘汰或挂羊头卖狗肉。

而除此以外, 还有擅长距离控制的流派。例如大成拳和截拳道。
大成拳王芗斋公然声称“一切局部硬度的手法打法, 全不足取”, 他在当时也未尝一败, 主要原因还是他的对手主要是古拳法, 他所发明的矛盾桩也是一种专门破解唯快不破拳法的架势, 重心后倾, 前手远撑不让对方近身, 后手和脚等待机会给与打击。这样的架势适合对抗古拳法, 却不适合对抗现代拳法。

李小龙的截拳架势则是侧身对敌, 用低端截踢控制距离。等待机会给与重击。这样的架势适合对抗古拳法, 但也不适合对抗现代拳法。

所谓的“拳本无法, 有法也空”“以无法为有法”其中透露出来的信息, 就是“用最适合环境的打法去在这个环境里打”, 在散打擂台上, 最实用的拳法就是散打, 在泰拳擂台上, 最实用的拳法就是泰拳。
在这个和平年代, 最实用的拳法就是养生。如果以泡妞为目的, 最实用的拳法就是跆拳道 (不带I) , 如果想要保命, 则最实用的是消除自己的一切心理盲点, 让自己迅速进入环境, 进入角色。

空拳老陶的拳法可以说威力一般, 看老陶体型也很疏于锻炼, 但是我相信很多专心练习 XX 拳的人打不过他。原因无它, 因为他没有 “心理盲点”。这个心理盲点则是专注于 “XX拳” “XX擂台” 的人最致命的地方。
替老陶打了一下广告, 这家伙应该付我钱。


附注:
[1] 因为是论坛连载, 作者比较注重和读者回帖互动, 并调整内容。在结构上较为随意, 并没有完全按照提纲进行编写。
[2] 这里是学习借用网友 “太极拳24” 的说法, 没有贬损的意思。

 

非结构化操作日志解决方案草稿

需求:

记录系统的操作日志,要求可以做简单的查看详情功能。例如:

xx于xx年xx月xx日将xx人员信息修改为xxx

根据这条日志的内容,需要显示若干链接,点击之后可以查看详情。如上述日志内容与操作用户、被修改的人员信息相关,就需要在显示日志的时候提供查看操作人的信息、查看被修改人员信息的功能。

问题:

大部分操作日志是非结构化的,之前的方案是根据系统的核心功能,定义若干外键,强制转换为结构化的数据。如在日志表中增加人员id、单位id、用户id等若干字段,点击之后查看详情,这样的灵活性不高。

解决方案:

灵感来自于wordpress的操作日志:

image

图中共支持三种详情操作,即查看用户详情,查看类别强行和查看标签详情。这些链接都是嵌入字符串中的,不是在文字最后增加若干“查看XX详情”的链接,用户体验较好。

故有以下解决方案:

在生成日志内容的时候,将需要增加链接的部分用类似于html标签的形式包起来。如:

[user id=1]xx[/user]于xx年xx月xx日将[employee id=2]xx[/employee]信息修改为xxx。

针对每种标签,写一个标签处理类,将标签内容转换为符合html标准的超链接。标签和标签处理类的对应关系可以写xml或者properties配置,支持扩展。标签可以灵活支持各种属性。

简明版业务调研模板

1、你们的工作一共有几件事

2、每件事都是怎么办的

3、有没有异常情况

要点:

  • 找客户群体中的一线操作人员问这些问题
  • 循环问,直到你认为自己做这项工作比客户做的还好
  • 针对每项工作询问的结果,按照以上三点的格式记录下来
  • 都完成后,基本上可以回家找技术开发了。功能点比较多的项目,建议做一版原型然后问第四个问题:你们以前的每项工作,用这样的新方式干,可以吗?
  • 客户的工作一共有多少件事,能推导出项目的范围
  • 在每一次迭代中,依次处理每件事,记录完成情况,就能推到出项目的工期

不进则退

悄然发现当年一届的同学现在已经有在业界混得相当好的了,而自己还在稀里糊涂的写代码想妹子胡吃海塞。

这个年代,不进则退,一失足成千古恨,惊回首发现自己已经sb很多年了。

嗯,某位一直鼓励我的同学,贤伉俪好人一生平安不解释(这句话一般会作为“图种菊熊”的反义词使用,用在此处只是为了纯粹的表达敬意)。

多页面提交,统一持久化解决方案

需求:

人员信息包括一张主表和若干张子表,点击某链接进入某人员信息详情页面后,可以针对主表和子表信息进行修改。所有的修改统一保存后,打包提交到上级审核(相当于做底层的持久化操作),审核通过后,进行实际修改操作,审核不通过时,保留原信息。

计划采用Command和Strategy模式,将修改操作抽象为若干Command,每个Command都有changeStrategy函数做实际的变更。在Command之上建立Transaction概念,用以表示一批的修改内容,要么同时生效,要么同时不生效。

问题:

每个保存操作会提交一个单独的http请求到后台,此时需要作Command的持久化。多个修改操作需要多次重复此过程,最终每个Command都与同一个Transaction相关联。因此,需要在多次http请求之间共享Transaction信息。

解决方案:

使用JSP的session机制进行信息共享。考虑到客户端的不可靠,不能依赖浏览器的onclose事件来判断用户操作是否完成。

在session中建立Map,key为人员id,value为Transaction对象。

进入人员主表信息页面之前,先根据该人员信息的id在上述map中查询,如果有Transaction对象则删除,之后建立新的Transaction对象。

在每个修改请求的处理函数中,根据人员id在session中查找到Transaction对象,新建command并与之关联,一并存入session中。

点击统一的保存后,根据人员id查找到Transaction对象,修改状态并作持久化,进入下一流程。

优点:

依赖于用户的明确操作,即“点击保存按钮”,来完成持久化动作,避免浏览器异常退出后,流程不能正常完成。