From c72ec578ae6939385f829be7f9b16033d34ad14c Mon Sep 17 00:00:00 2001 From: Xargin Date: Fri, 25 May 2018 19:56:15 +0800 Subject: [PATCH] update --- ch6-web/ch6-08-layout-of-web-project.md | 2 +- images/ch6-08-control-flow.png | Bin 0 -> 14998 bytes 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 images/ch6-08-control-flow.png diff --git a/ch6-web/ch6-08-layout-of-web-project.md b/ch6-web/ch6-08-layout-of-web-project.md index 8c34a8f..52de9e3 100644 --- a/ch6-web/ch6-08-layout-of-web-project.md +++ b/ch6-web/ch6-08-layout-of-web-project.md @@ -24,7 +24,7 @@ 划分为 CLD 三层之后,在 C 层我们可能还需要同时支持多种协议。本章前面讲到的 thrift、gRPC 和 http 并不是一定只选择其中一种,有时我们需要支持其中的两种,比如同一个接口,我们既需要效率较高的 thrift,也需要方便 debug 的 http 入口。这样请求的流程会变成下面这样: -TODOTODO,thrift protocol -> controller -> logic -> dao|| http protocol -> controller -> logic -> dao +![control-flow](../images/ch6-08-control-flow.png) ```go func CreateOrder(ctx context.Context, req *CreateOrderStruct) (*CreateOrderRespStruct, error) { diff --git a/images/ch6-08-control-flow.png b/images/ch6-08-control-flow.png new file mode 100644 index 0000000000000000000000000000000000000000..ac3e5dc6da4a231c0f84f001a2d9aa600541ce3e GIT binary patch literal 14998 zcmeHubyQT}`!1ynDw2XCohrhpG)PIebc29214s-VDk&{WcSsIBbSSMzGed`TcS+to zpYQknZmf0xx@+D0yK7ySEQjMhXU^IC-Ou~H&-EJIoP`#=?5(E(kut%w0_A-C=h2&Vug3jQ@-f1fMa7p^WtZ3~{j)X4Fx7 zO)uf#WKPe+$<6tUQREgqJ^f3kw-$nGlG6V^9sDNDXyxMKCpoqqE&kg#**pLHvA_dDG5-U7&iM@bAJ+z_zQi0AlyHDKI+;5=gX@d%y!>b6 z|8VTTeb2wfzqWF4aR9U6WNjvA?_%x*PIfWD+?~jaf1mxo9`Qe4OU23B96a?uXFvb< z+5i2qe~*6&#XR_bHxd7u<$sQXX%@Nl68axYCUUE6;l(r-7QddHq_~DV_ExH!be{r%`S0rC4Nku%u|V)|g=`NA)mp*YU#Bafr*Q3kED0{5C4&qoi#EvxB8k4RJKj@x@s zvA-BD-s`QKbGsCn(??0fkcO0`cRpa@(GOr@Ycycu4V>%9u#BO2&4ViaWoms;bW} zv;Eyd=RFDvUe?K?(q_-=%afg{IxY=#t*nB=2C8Uu@n-~Pw>x(jzwzHF+mN!2>K*H63So9{rW}AgI;5~61E$7oa6dZakN9!muHsvboVb;Sq z1D@zROUReB2`2AZkdxO`sJwzh-Zt6>qit34gPh)<6a%__Kk5>n?kq7Hss@Dc0DY58Qbi2z0q>DVJUj9yUM`{ z=39t>d%xwvGTnzFLbLznfufq4T7FQI*NJ>Bn^IDh=h6D>EXj-cjxeeh1iAcPKj^>5 zpXPo0X2ZmBxvW;$e6RVCmXFxqe+QC3c`{}e6*#4aZ#?RAeoUBKyW7g;0}~pLpc6If zUE@<#QX9s* z)hUX~)S^8?@<^Xu?)Vumlsh!;b+V;zz<^J^RUI*WUhS|%K@>%QtG~pw(x{7e_J6OT--a?n(#RA>KL>{q1Z6l*Ja{4NZ zANQfXeSL5PWGWrQpjC`??1r}hPjpU!?2S^ew9=5jx3M9$DgI}J>q;$umy@aH2V`rO zi?v>@aTR54gk5iNPvVwjEuM#B&5V3A^9D} z_W%hUWpMJ3X-HzQ0bKfrK{6&dZ{7R`PA0Bp!qzyC4Cw~AEB0LqPsC5{V5C63^Mx4Y z_|jeVs@{drST_ACtHBDXureQdGn)*?R;}{qEQ(7J3~!QOteWf{tn}yQ=52`TnccZ< zM=SAw^yXda`#N}TE(XE(bGc!KZ4$1rWW`=4z`@L?mgRU%mEh=W_1jQcwKo z$cQ4yc8*4Asg+;8!E!;el9)R?+SouN*q=VNoBkFdD17lIg8xN6oOxBg=a*KoPPt`& zTA$mjuvcHo?`jxRLEsBw$W3g*XWL`tW?S{H>+|7sqQ0lQfA*AgoT)uFRkymw*R*G{ zq{282>$yFDCzP9YvCatYGVZTGBES|U<#%5lsK`}-8r5^Z-F-vzG&(71T?Ps}B0xpn za?^A@>Wp~E2b;*@nFgt1dj_Gefl|GXBf^-$GM41@()+aR%2+X7M3{?fSf)>4?N%WS z+lS+pM&9{qxf!5#Af?z!JGA2DYy2_6F*i5g7%iP`_VEJK!gCp$n!06TIb|tW2-8)B zZ_PA0b$n`=pWn|@>gnx878^bJ;O_>pit}A5F|q$W|Ph@G?_K?J(WTt z!ecFdA{!S!5{Yh3Ad7A)>Y(1T7_2)9zi*S0(nFn$|2+_>t5g4`XgyP$xS@2M^FF`& z$Yj{kZ7)koTVB31f~F``{)`IE^i4XRq}Fk7{?}LbqfN#5zEqxo=}Zay_y?=(&abx; z0uH1#ztZN6EPQ$J;DNJ6|MpO>f?`sp8iZddqcQ6h+5Tj;J<6<2Jx_5E*GgG`@%mVG z>wc%sq%wy=)oObvndf~O=NFG3KYnf(UdZqU`aUU{?__(t(gs!d>mi@?tY`TtDh=$i z@}=V5I{5ZffePH)yU|x*qB2U)&M*rOnR1QSQnZF(pzKVxNak}|+|7HF-~@O^v*%V4 zE%#WBpI_AWv}JEv>R{nl8pO~|JX5i`{iPmuZNx;4gRxeg@`S9UpVb!Jdc?1z0)jYhB&Czi4(A9@qWFp8_9mmJ_HHCywfh789E+~IZjU?C#zw$!_`|U0?ylgzdmUyjNHcFfLLYhv=NDpJc+5;-&bXlv0;F#seN`u zsmBW7NDlPg(z7djWONm2tWW|W6?WXHBZ_wCQmEEA5F^X;KbGT{RxZ4?^v_lQHj_)`d3pP$-l zmqy-y{%X=>gL+2RHp@T}tikgiHq}F)e#ygXvxSFTNEx0;&+!2GNT@t1$KkpaAhcT5oIRZGNC5HNy z@U3mbhKXue5yR&8bVD+`iv2^7Gk9C=CDkWZo%F?jOdxI5lXz1FoGrk9dZ-%mlsF{C zU-|gaqelbqF;8!|)&PRGpu6VboK8vAUnG&RA9fWnJ=!HtbsJBIKjP<3a9RGARZ-#7 z#U5uEc!ZPgy&oExT<7$6f54=TRXO3imOw<-vJ0!m2-mf&6KTC1x zH(6mG_AT6{a2Qb4Lk;Ci4-b4CS7Lsb(=y()kxZ_MEuW#qpDA*N_)JmEnG>`GBOF`+ z`Em?#iReV8TKxPt`sHnBrWDX-MG|--=bKzKmY%xt@-OIMgo!ED#L-Hu`OY zeR?iQyZh!ng+)cK8SBvu5@Q_0%BM3n3i^j@%#9zmCiQdjHa0)_+PN(tPElqYg@#1; z-Pktv++fLdwkP&mM}@k-0Eu>+40DB(4Yd0CyhIlpA(qC>y22mu*l4_Z^ zVY$_*r}f&Wr5@MQkVu+DE-&~)TJ^{q=6t9EL(O)$8;$HpI2#4^RLsp%o&d!A&HFr(NP8y0bvPK& zW9pikNRzgp-ekTSJCuCtc8Otwo;nm+>o2wx@lc=FVW!HXvM&_fXIdv9P(1D?uCvL7 zjjE19UUH<0`WaPzIU`ApPZn~Ws2ce~eh$l!vL*07{S&Oml0}mt9Z4+!pW=_~E2Ai7 zvyngwlYHxr7|}q1uh1&d%SCJ>8<{N!GP*aiagQN*?Fdh~(mQS9wy;J2?W3Pwq_3%H=tjWqP(k?AAYVz!#Y1*1Z4ofqJyXj)1 z+FUaxXz!-!4inJ`=Je(oVc84I_nL)y`45Bcni^;>*5;y4hKRf9KKQ+3^m^=DL3&DYAsjCIu{^B%;jKAV#{R zOC=%WAax;`J508>mQs+D)R*c=HF1!G!pAa0xnmQb|WYT}m9z3nru!@fgZkTwGjT&vuc(14Ip7 zs$XN)b$3fJ14eazyf*yWe&*wMO2D|Gvb#GRID&QZ*+sUa#d7u&F3aH$#>dC~%TvT$ zm3sSHTamV-Hp=c(weLUu0 zkCD_v>Re}>Bik#U&zdC8k5#o~_ui0-AwNDi>GU)-Qq6R3<~g1KG^kf?-N8)Zb14P3 z$yAwd6RX$o(2xsU+)t}(^g~;&E|_**Q}N%Wd5?G$JV5yz@!iHy4;1ahk0lo?rAyp) zW)Kb{TPzu5PXIAjF@5z)l1CMSa}6Y!5=R||87}Z2 zSC{9N6%}}eWE-;^Oj7k8;NCne-a|8e>QR9stXb-;D(Fh@-)iV9NevAx`-v*Kh9~PX zq3~rYencwTY`RY=DdB?3$;$+6~~-d1sKh z-&jfW+8%raS2LZDuXM!6z73F?LhO#+J;4~Y6*Z&NO|H-{y#DCp_wS|N&9@U=Uh!)h z6dy6@u?&Ig=zG@pJsmPJq?yv#%8_lJU@Bhe!5mMgu6{v7PQ_S|Lu^oyF^b8aC@`>AmWlCdqAa5yxQ+ImNa+3J)6 zTO*n1l^wzActV|NdGq9b6hvj7Pe&q*GEHYsXUd=D}Cq(4>0`2^QdARE9s+{ z4+x#J?r3{qY?_4%tG)Rm78bLvh=;d3?lU8m+~1KcV2dRHy#^+PeeQ7@F9#6YSa8~s6CXHCZxrT zynD_XM0Q@=isnLpnoyqZFETcjyR;or6D z89qEbe0>wKs#9;57z7opa-fs9`yHsYb9r^rqN1YEbFoj4WPM2aRHw|dm#Q~p=K4D> zAjL};^PRiQQ3{ZOQMeravju0Iy#ACylij?qu;9B7zg;;DFD`yA(!O5tyOQ}pOGkHo zP3u#&7rbnRJ-gx1nAvu#YVSn!`atv{Teh}_#%jSK$hHNRhzJ7wJNL2NAnuW1#_FQ~ zPQ5XEDM|BZF(>B%m&K}LDbPVRLOrX%?x%?ISrLkuB6IyQd-V;L#=Y{`NUx30VpC@t zr26`btXGyF*LG9s(;F8K`lDy3C6Jf2CJtwLN}_R`y8C-<=_9KS;NTcx@-U0q`$_RZpR{WiP^ED)sBVxIPZNmogclD^EM;{E2lc;fSD22RE($ z)|8j7>&GrkOQ4Y3X*{=|f;q&0{rdOZE_L!H>yH|c7H5Od!;$yWMGyiKW*UOONm!Z> z`h;@L%}v(oHM=gN9GVLXdiwDzTP{Aoh3Z!1^xbMni4lU-rh+LuhTIqs=@qtN38fzW ziCc4$l-meOq4OT&D^k`Uo^O|@Pi7jt|2pZ^W4{g+6xeKw0{ssagX0I-XxsCr8NQAy z2fAI&KFB;&wPBub|rOeNHDpsZOIX}Sv;rVtGgQ+CR=z9>v{Hr?KPvc2)}*H zalh0^jg~RMi^Hmnc~96BPYuYAs){Z&!fL}j+)ZJsQtV}Ih(xR)Y``PK} zS5HsX1C6>!kE))y{E5MexbvMB(ZVN>s9%Czxodi59>uf#%x&9X%bjvun$EZ+T!;+s z)~#DEiyzVumhZv{Y~D6)l;F|hCHhp}Iz*{qsSl!miOZj_z>3Tr%Nzm=)0buu0zRe~YLoXph^m~*3TR`%L$5>pyTe+t{B4309N+y*0sPA=A&XqI6}o4(pihQ^e`=ALltKzq@!$R(XY-JW z`OH?_Rl_7rEJV}?cChN@Mr%ApCBNw!Sp7iK=dOEAH*X z($%7@pb!FYl7Pt?<a8?<#qz}HopO>wa$X^75eWoj9E~_q#ryjiTa_H+V&PWf>6M%nEKvu+i6L8=yF7{}kuv zTje-+dOZI{U2pYPyh8kYDjt9Kbn3gkN=-nT4a-fXz_omRef9K`{;UVn`PQ2E#2p^G zuvol(`)Cg+M4+zQ9IspfEC>|GT~T!DiHRPUXGdF;H5-O3kq@|*2Qnq(73JmC=0REe z#n($%`m*L)*mZpbbazl$>((=kbuS)CRTENigS^uLDhysy2dL~Vyc8CH8=)RiM})(4 zy=z~J0Fd?v#cO6SmicBu*QeBbi5+xUeuG|x5V+R-{CpRkpFx&@%j$sW_22%|rei$= z0|TJ;+`e^7uga?2c}2P47&Nn<*z^mZ7?c_{`R;zCbJ-l*Q}H{C~Hs@A#ewx&93M^a*5{V2~anC07UnB8TP}t?-_(vqKGP zG3`Rab9q6Sqw&W`r9r_57X48(>XFA)S29 zdxULE=~st&>yw4)MXHfr+jU*CDSQqy03X176zaSF%q=ps_`gQx@xeXkdRjwLfhWH#AWvWBZuK{5zPuoyf7-Q0DVYpFcuT@c4*)=hk(a^ zPRdAk(4WE}dT!~x$=NF{pFhzDLrR9m&EC3xJWojFRb*xJ51#%7qV9bU4G*8AfG5v6 zxlK!qE?O=pTLOo2&(|9_s@3z9Z61B;yMbpQ>ra$_`{TTREcZ>0S&`E@+}@+LSJ|kC zymqhWCmmW4v!!ZkEQRM_rtB8E)u=+V-+Q*&bpQG_MCl(##A}OIbg=GI&*r4ECg|zp z09_V;5>mI$j&v=+ieMn|w_Geid6W@9rgp$yAziI=URgiOjW-$^D>1@!$wV*OM6Gff zMDU(u)i5JX9#9!a#T8iHSq!8!dIW{WvqZhz59u6evss|PDFHFtz{`Ebt(aB(XN^|a z(<&tgG#NqnI3E=Egs1IfDlXeoy0}xJp`m&zL;eR;b7&XylkMq~&2e=h{e=xxb^yfJ zs8ZkDJz~N#t2>6-+{mJNDja)O;ymMT_SHm_rZQr-JIp$u`Q!x(d1Sr)j}JG>ZP|-0 zI1s~lW;Ql9j|}6icmkybxV=f_?dIk${vJ?axA;JE_m1+j5$0@E%!8w1xP%?s9GCpj zlzQFy4kQTc!BNf4i7X3Ik~apEDuajN(Dlc`<4?w^M7-T~OmS<@k_rx{J4ds{KQl-K zjp!1D5<7BXOUq7C)7X6kJr`n-NA9w<3S)XPe1Pgt|37hjP6Llmrb}efWw#_!tGrZr zLr-2#P8I0<=4ef8btO~Z^EF~#q!O1A08B3dPl|C7>mlZXv`FWXpG#>%G4{U`p0^Ui zgL0(am}*AcRUUrVDafn7Xok9ZbQX`bB7MeJ?Y3WBSon*dZyz+8IyyQ8A2n4~X|(#} zIcy8A#2R_^#u}{OaJ3 zl(}otGWwMs9C}r+HS6<>iw~!2kH3BuO|9% zKl3&NO6%|9;#;}u&Jf|zQBFZ8$zw}%b1B&$p{DD$MSdKA;@)OYC`*2ygk??4L>hCW z6_A8m(IK+PrbpvW#&H{^tcO|RCVsjSwWuC+7zye5U$1&8jmhCZVQ6=28QF%2a+3at zXxSr41`ZAmJqq49N@wJ^mdyBwh~Y0QAmgSHnS8l>zm>$C6EksfQ)J<{pOQ7KkPQXG{$MV83u8fd4 ztU?+N@n4{;Nn92SR7N(~1jcVc%mD;Fy$@f4!RI$@paxQ&sKR(J==A_2s=|9rglRH@ znx#6m%KA3OxKRb_D=PvuT1;0m6|9Yr^)SZ7@!ksD`5aFE6}@oRLsWZ^v-Oifl^~p#Nd^8BD}?S5G831 zaSsxsiF)GR3BN=55*yLCJ=@aqtV~g8H$4ywTMUUyZf9Jd6ra4I(BgOt=Li@AHkio1 zxDeiIxjde9XgZ4H{4ifBbTPub4yO6^J1)^`D-DH7ARiFEW(wNIO2}U$5IkgxUyE;qCB5+IT@Nv~;Pd7zX)6HC@%B9^-UEzFrND z@^)~{C8}h zK5!9#&6s!(;ZlBuh0_e`>T}jF{J=?p2Q(6zkY@|bpoVz}0L$T3C=VErQJcGA+) zbMAi}-(YT-02xn%dSKWS551nfzMQ?suC;pqeKb2THMs*18{k;k?b8iz3QJ^UWI&rr z!O%t3c?`wo(64qhQh`uW8nH#sx#E}2o?tqCmVGI@1_m!dNwJdd*Q^lFsph!0Uk#gF z{+&1snk3+BEG;cd^^ohp50~{EnCgI!4M@h97=a}n&}(3#yWF%CwVkM1169LhmGy#` z0spEO&LPr=&a_|XwDmSrwgQ!zChB)J)8wU+!k$e)Kz}KaH87Z>yV?yddpY&$dl=Z6P-zYwUIh=!-w82ENl$8c>@daE(Z;Ak zNNx{?o09T8*+)3|u;2MrVcsL?vii*T!acXEtE;FRc$p~Ug7qQpF`$s`$iLBJ5#a^; z00G|ilhueI$&qudU!c(j%ORrXfA-}^?dyUxVXq)kAjSx~u9Md<;o!`G{p!UB7cXx# z>xu;4ms=hUpl=YN%dYx3^AH%<0$d+;1>2gbl*abUM+}TF>!Gn6d7Nx1BaUHdARu_E=uBE;`g-!DzZcmA`0S& zU$Y&qql(t^MJ{&RsGb^?y?M`q>dgPFUSp*9Cq6FDf}7zdTE4lku<*+la>5|1IJL(n z2yHDbj28@dO6_l14RuQ@0KmToE5<%Ynm(o7k9!L+qNe)?tPRj}V-0Uqa1J#Y4%Pdc zhnxgLTNQ=N^&*>SBLBPjtpwnO1g=3>FTuyeyPSY>H$H60(7y^ZzIerswn!<@r5&lLSY$S_UUD zF%BRkhlHFIh6vfw10sZ#$ciCCI>1s?eTU^9hWwPh2ZRUrZ4wwl|Km)z_~xvNd16S%tAy z+m0$*13{u`i>8Jxq^?iHx#8>BiU_!sb5qlJDZwv2?n-Gd>lzyyfgtOpIf<$@-+DWv zwgqN%q=E`oAp7w5I=M&8H6x@%h`yKN4mT+Qc3(tzK$7S$+3Zr#BKgxAI6rTCqzN^w z&&h5Cg;e9xG?2?5Og-g6Nm%d!^3TJA)GX3E%cS432a*I3ddDA4NszdpHO?mb_T4I6 zkM`#m7F;W`$eD$O4Oc`q!kzmIs{5W&w1}9ol9FQs}bB%7+tY+n+u~ z@m5JNGNO*N-u95_mb4@$CeGZ-VVGJs-{^pZ)|jr;BJ-;k7#xSN{s*%CjDw?BE|PVU zw^QPf@9+h%T;M8!1n6?Q)W|?RlM4dwL3%>Msv%_=HO@E4u3gS!gSSB-Ugn;Gc=>}h z@DH(72Qi{v+kFQUJ0@Vk+ORYJA-3N@ynJ(vd4P$dHZUd_SL^^2kcuEUmHsetVPYy6 z%+XzZ|78p_PXIl^Q=e+I|~Z(!JO%(>K{S`(tiO8SSHe*yt~ zi!u>&F25qMQS)PQ|HI75!Of9#zQCO8m;j*95zFcyX8su5-2Z=o|C}p8s<_0;g-6Zy z8nomA@#+p=U$-%g*VYJ70~ndq-VtbD2c%a>`*fqnuqEf8$QA+(P3`M>$`+u}ln(cP zQ%b&?!xxnei7GuXBxRVx#gJ?IkRMLspI!p#?#vslFAMi^ls&-*u|fClP8?-jUEPtu z)OY=(dki!P&u2vyrppTQ~QNAzp*VsWrVLAYL$_hS8h;l4Xp3sn&S zgc|#me~~yyj`%$Lv?pEz8R8~npo@^zHQnkBnM%Ye^s$s)bYys6wcP77E_Tt4_agDtW$Htghr2ka%WDPP`>WQK_} zdC6$gg3#rg5BOR`CMzpDAO?@shZ?RPAHU2I`|bzMyYAo?qqTO0_aZ2Js&L7V zzBkC9Fz?b~LvdGuI03p2F9!nSFTcYf2_P9H`%7t2lHPBnf>BD}h&7e-pUyUw8@=sn zd(;8cwoA0WLm=AB{l|LCWI{qhell=mTnPVU($+(q&H;A4`yDs)D2(jG90OasmvO}}3jt;+RJH#>~wAj@wPfJNoT5IZu8n7hj(F{N)eIw;Hnzyodq3_Lyu%V@T0eIKJ4;DHJclA(%+fk!j2hFt^0 z&oG(+1Uw4~FqL88u?u{T%*->vKq3hs$V~pyB$&^UASP)fRN63*$Ox8H1}lQ`A9w@} z38A30APgi*g4a(Xv8be|nRdHGuikY>Geq)$GeC)`F?mD$dw?|A8;M=%Y{qN{0!Qfv z2Z;@~uDjIyWe&5=KR)6I3uqb`G=e+`m@Tl;z2MK`;H~!1jKa?930$hGq-uDFF%?GG?_d!l@Fh**f z?@i0w#@A<~XoNm^0YoLJ#(LP|cyl}me{XMZr9YjH-w{*c8~a_lx>oh43gy)>&vRM) zekQFjG(61ns>1iuvs56WiP$Oxt8ki_X2vYBP2J?PHKVU9>#)%wWHu2r00P%wA|UNShpI^VI)(I2HE8|{!F5`Ihm z2a0zg?$5(~6_V}H)ZN#om44Od7_sEq&#+61>L}}y^a7v{v~KrcmX=@ur{YdPtYFd>vePJQcTEap)&%w#B4}+ z{shyZPj^1txNQ(7A-usP6M48ZD{4oW9v70|HCRe0 zWS}#0Nv`A#HsXZ}=z#i#?-An=?_!LYDueBmU>9Cv5VPw(5!faF0{8y}gMnNvD#hhw zjA^V^$uBNFwoda;a3(GHu=`Sb8%Pqt^xI*W7qeXB>{V4&!TV8;@5VMffE6<`mhvz3 z1F@yUdDSw8eF1^DY3=i!pIzV`EMUEK;We|iE_gTOamb@Cfs2>KZT&eZsZbr|GM@_+ z3c|O`9FPD2CT;$Bt6HWcbabV|PPz1;_7*(Rm08M~;PuAInRxY&_WTK_6^09+<$jOR z7QWFu7n}gTag2y;VyK~|CEuW=Er}hACpmLkLGEFa*8ux$JW!cE@#7LNKtmt$IX0GM z97r&SNZ6@ZekttYR}9dLd9hA($=)3zyeU-Gw`H?)N0I_YZvW&B