月度总结
本月面对的问题
- 后端架构技术选型
- 大数据迁移


当前已完成
- leancloud 表结构分析器
- 数据库表结构生成器
- 数据库表结构
- 后端测试框架及基础架构定型
数据?
热更新
- 定时从 leancloud 读取数据下来,刷入 mysql 数据库中。
- 要注意防止与热读写出现冲突。(使用事务)
热读写
在后端的 model 层做 hack:
- 读取数据时,检查 leancloud 上是否存在该数据,如果有则合并更新。
- 写入数据时要同步更新到 leancloud。

接下来牛厂会有什么
- 新后端兼容 leancloud 的用户系统
- 新后端打包成 Kubernetes pod 并部署
- 新后端逐渐提供接口,替代 leancloud
- 超牛币
#undef e//[->[-<<+<+<+>>>>]<<<<<++[->>+>>>+<<<<<]>+>+++>+++[>]]b
#define e(c)/**/if((_!=__LINE__?(_=__LINE__):0)){c;}//[20002,+[-.+]
,O,i=0,Q=sizeof(f);static f*P;static FILE*t;static const char*o[]={//
"\n\40\"8oCan\40not\40open %s\n\0aaFbfeccdeaEbgecbbcda6bcedd#e(bbed$bbd",
"a6bgcdbbccd#ead$c%bcdea7bccde*b$eebbdda9bsdbeccdbbecdcbbcceed#eaa&bae$cbe",
"e&cbdd$eldbdeedbbdede)bdcdea&bbde1bedbbcc&b#ccdee&bdcdea'bbcd)e'bad(bae&bccd",
"e&bbda1bdcdee$bbce#b$c&bdedcd%ecdca4bhcdeebbcd#e$b#ecdcc$bccda7bbcc#e#d%c*bbda",
">bad/bbda"};static int S(){return(o[p][q]);}static/**/int/**/Z=0 ;void/**/z(int//
l){if(/**/Z-l){Z=l;q++;if(p<b*5&&!S()){p+=b;q=0;}}}int main(int I, /**/char**l){//
d=sizeof(f*);if(1<(O=_)){b=((sizeof(o)/sizeof(char*))-1)/4;q=22; p= 0;while(p<b*5){
/*<*/if(Z-1){d=S()>96;i=S()-(d?96:32) ;q++;if(p<b*5&&!S()){p+=b; q= 0;}Z=1;}/*[[*/
while(i){_=o[0][S()-97];I=_-10?b:1; for( ;I--;)putchar(_ );if (! --i||d)z(~i );}
if(p==b*5&&O){p-=b;O--;}}return 0U; }if(! (P=( f*)calloc /*]*/ (Q ,I)))return 1;
{;}for(_=p=1;p<I;p++){e(q=1);while (q< p&& strcmp( l[p ] ,l[(q)]))++ q;
t=stdin;if(q<p){(void)memcpy/* " */ (&P [p],&P [q ] ,Q);continue ;}
if(strcmp(l[p],"-")){t=fopen(l [ p] ,"rb" ) ;if(!t ){{;} ;
printf(05+*o,l[p ]);return+1; {;} }}_=b= 1<<16 ;
*&O=5;do{if(!(P[p].q=realloc (P[p].q,(P[p].P += b)+1))){return 01;}O &=72 /
6/*][*/;P[p].o+=d=fread(P[p] .q +P[ p ]. o, 1,b,t) ;}//
while(d==b) ;P [p].q[ P[ p] .o ]= 012;d =0;
e(fclose(t ) );P [p] .p =P[ p] .q;if (O)
{for(;d<P[ p] .o ;d= q+ 1) {q= d;
while(q<P[ p].o&&P[ p].q[q]- 10 ){
q++;}b=q-d; _=P [p]. d ;
if(b>_){/*]b */
P[p].d=b;}{; }
#undef/*pqdz'.*/ e// ;
#define/*s8qdb]*/e/**/0 //
//<<.<<.----.>.<<.>++.++< .[>]
/*P[*/P[p].b++;continue;}}}t= stdout;
for (p=1;p<I;p++){/**/if(P[p].b>i ){i=P[p].b;}}
if (O){for(p=0;p<i;p++){q=0;/*[*/while(I >++q){_=P[q].p-P[q ].q;
b= 0;if(_<P[q ].o){while(012-*P[q].p) {putchar(*(P[q].p++));b++;}P[q]. p++;
} ;while (P[ q].d>b++)putchar(040);} putchar(10);}return 0;}p =1;
for(; p<I ;p++)fwrite(P[p] .q,P[ p].o,1,t);return 0 ;}//
#/*] ]<. [-]<[-]<[- ]<[ -]< [- ]<;*/elif e //b
|(1 << ( __LINE__ /* >> `*//45)) | 01U
# /* */ endif //月度总结
By magine
月度总结
- 249