源码熊编程作品教程 怎么阅读Spring源码?

[更新]
·
·
分类:金融
4517 阅读

源码熊编程作品教程

怎么阅读Spring源码?

怎么阅读Spring源码?

我一直想回答这个问题,但是由于我的答案是软件开发相关的,比较小众,怕别人很难理解。现在这个关于Spring的问题的回答就算是我对这个问题的回答吧。
软件开发的一个亘古不变的方针策略就是抽象、透明和封装。语言从汇编到面向过程到面向对象,开发从原生代码到类库到框架,都是这个趋势。别说软件开发了,就说软件使用吧,从DOS命令行到GUI图形化界面,也是这个方向。
抽象、透明、封装就是不让你陷入到底层的细节当中,把精力专注在你那一层面的问题上。什么叫你那一层面的问题?你开发产品或者项目,就把精力用在实现业务需求上。并不是底层不重要,而是没必要到一开始就去看底层源代码的地步!
我想先问一下题主和有些答主,上的文档你们都读了几遍了?
所有项目的文档读不过来没事,spring framework这一个项目的reference有完整从头到尾读一遍的吗?然后再来问怎么阅读spring源代码,或者回答人家如何阅读spring源代码。
详细认真读过spring所有项目的reference,并对所有API doc了如指掌的人都少之又少。你先开始读源代码干嘛?说明书和各种电器参数都不看就想把家里的电视拆了研究的,只能是熊孩子干出来的事。我见到太多简历里面写阅读Linux源代码的,这些人无一例外都是浮躁型的。
不建议读框架的源代码,如何实现一个框架和如何用框架实现业务有很大的不同,在阅读底层框架源代码上的时间精力投入相比收获来说不划算。
只有下面三种情况,你可能需要阅读源代码:
你打算发明一个类似Spring Framkework一样的框架,可以参考源代码。你自认为发现了Spring的一个Bug,并提交到官方的Issues list,且得到确认。而你想贡献自己的力量帮助Spring团队解决这个Bug。不过在你发现疑似Bug的时候,最好先去Issues list里面或者stackoverflow上找一下答案再说。以目前Spring的健壮性和被广泛采用的程度,几乎没有可能有一个Bug被你捡漏。Debug跟踪进入底层框架代码的时候,不得不看两眼。反过来想想,如果什么框架要你必须阅读源代码才能掌握,那这个框架一定很烂、不成熟,或者说至少处于成熟的前期。
为什么这么说呢?像Google、Facebook、Microsoft等大厂,开源项目是专职团队做的,是有专门的文档编写和社区关系维护人员的。但有些开源团队确实是几个大牛用业余时间在做。没有专职的文档和公关人员。他们前期的精力肯定是要放在开发框架本身上。框架基本满意了,才开始考虑文档,然后还可能顺手把网站也搞漂亮点。Spring和Hibernate很早很早以前都是属于这种情况。
我把话说直接点吧:所有跳过文档这一步就想直接阅读底层源代码的,只能是英文水平不行,读不懂文档又急于求成。想给自己的简历或平时的谈资加点料而已。在没有正确的学习路径下,一时不知道如何提高自己又心急的人,很容易想到的就是去读底层源码

股市当中有哪些好用的指标,带源码的?

指标不是万能的,不是万能钥匙,灵丹妙药,指标五花八门,林林总总,不计其数。每一类指标只能反映股票运行规律的一个侧面。
我自以为是的适合自己的好用的主图指标如下:
DRAWKLINE(H,O,L,C);
涨停1:(C/REF(C,1))1.095 AND (C/REF(C,1))1.105;
STICKLINE(涨停1,O,C,4,0),COLORYELLOW;
涨停2:(C/REF(C,1))1.105 AND (C/REF(C,1))1.195;
STICKLINE(涨停2,O,C,4,0),COLORLIRED;
涨停3:(C/REF(C,1))1.195 ;
STICKLINE(涨停3,O,C,4,0),COLORMAGENTA;
EXPMA17:EXPMEMA(C,17)COLORMAGENTA LINETHICK2;
MA55:MA(C,55) COLORWHITE;
MA89:MA(C,89)COLORYELLOW ;
MA144:MA(C,144) COLORRED LINETHICK2;
CCL:ABS((2*CLOSE HIGH LOW)/4-MA(CLOSE,20))/MA(CLOSE,20);
DDL:DMA(CLOSE,CCL);
上:(1 7/100)*DDL,DOTLINE,COLORGREEN;
下:(1-7/100)*DDL,DOTLINE,COLORGREEN;
中:(上 下)/2,DOTLINE,COLORGREEN;
上上:EMA(上,181),DOTLINE,COLORRED;
下下:EMA(下,181),DOTLINE,COLORRED;
中中:EMA(中,181),DOTLINE,COLORRED;
DRAWICON(上上上,上上,17);
主十增仓:10*WINNER(CLOSE*0.9)*8,NODRAW COLORYELLOW;
十换手:SUM(VOL/CAPITAL*100,10),NODRAW COLORWHITE;
ER:V/FINANCE(7)*100;
MAXCYC:DMA((C O)/2,ER/TMA(ER,(1-ER),1));
T1T:BARSLAST(CMAXCYC*POW(1.1,0.9));
T2T:BARSLAST(CMAXCYC*POW(1.1,-0.9));
T3T:CROSS(T1T,T2T) OR CROSS(T2T,T1T) OR BARSSINCE(T1T 1)0 OR BARSSINCE(T2T 1)0 OR BARSCOUNT(C)0;
T4T:REF(MAXCYC,BARSLAST(T3T));
主力盈利:LN(C/T4T)/LN(1.1)*10,NODRAW;
{盈利天:BARSLASTCOUNT(主力盈利0) COLORMAGENTA,NODRAW;}
获利比例:WINNER(CLOSE)*100,NODRAW;
DRAWICON(获利比例0 AND 获利比例2,L*0.98,9);
DRAWICON(获利比例2 AND 获利比例5,L*0.98,23);
P1:90;
AO:P1 (100-P1)/2;
BO:(100-P1)/2;
CCO:COST(AO);
DDO:COST(BO);
筹码集中度:(CCO-DDO)/(CCO DDO)*100/2,COLORRED,NODRAW;
DRAWICON(获利比例80 AND 筹码集中度10,L*0.98,25);
翻倍:REFDATE(REF(LLV(LOW,90),3),DATE)LOW AND (CLOSE-LOW0-CLOSE OR OPEN-LOWCLOSE-OPEN);
STICKLINE(翻倍,H,H*1.2,2,0),COLORLIRED;
DRAWTEXT(翻倍,H*1.2,机会来了),COLORYELLOW;
DRAWTEXT(翻倍,H*1.15,坚决持有),COLORCYAN;
DRAWTEXT(翻倍,H*1.1,后市暴涨),COLORMAGENTA;
N:1.5;
M:3;
DIFF:EMA((EMA(CLOSE,N*12)-EMA(CLOSE,N*26))/EMA(CLOSE,N*26)*1000,M);
DEAF:EMA(DIFF,N*9),COLOR000088;
加仓:IF(DIFFREF(DIFF,1) AND DEAFREF(DEAF,1),DIFF,DRAWNULL),COLORLIRED,NODRAW;
短线出局:IF(DIFFREF(DIFF,1) AND DEAFREF(DEAF,1),DIFF,DRAWNULL),NODRAW;
STICKLINE(加仓 ,C,C*1.0015,8,0),COLORYELLOW;
感谢阅读,欢迎关注提问,共同提高!