??xml version="1.0" encoding="utf-8" standalone="yes"?>
代码在这里:https://github.com/vcycyv/react-redux-typescript-saga-webpack-springboot-jpa-pomotodo
使用ҎQ?/p>
1. clone/download the project
2. run "gradle wrapper"
3. run "gradle build" (It will download jar files and js modules dependency)
4. Before importing the project into IDE, comment out "http://include 'src:main:frontend" from settings.gradle
5. Import gradle project to IDE. (I use eclipse)
6. create a postgre db named "pomotodo"
7. Start the mid-tier by running Application.java
8. UI development
8.1 For projection, navigate to /src/main/frontend and run "npm run build", and go to localhost:8080/pomotodo
8.2 For development (hot reloading), navigate to /src/main/frontend and run "npm start", and go to localhost:9090
使用redux-saga的好处是Zside-effect, 比如下面代码中,const tasks = yield call(ApiTasks.listTasks); 调用后端服务Q?nbsp;
export function* listTasks() {
const tasks = yield call(ApiTasks.listTasks);
yield put({
type: LIST_TASK_SUCCESS,
tasks
})
}
再下面一行的yield put语句dispatch了LIST_TASK_SUCCESSq个actionQpayload是REST API q回的数据tasks.
计划l箋开发这个项目,最l做一个番茄时间管理的工具。感兴趣的朋友可以在github上star q个目Q下ơ可以随时在“your star”中找到它?/p>
开发经理的职责?strong>保软g产品按时保质发布。流E也个目标服务, 但流E本w的作用很有限。Y件开发流E理论经历瀑布式,q代式(RUP, 又称l一软gq程Q以及现在的敏捷开发(敏捷在现实中几乎是scrumQ,理论来成熟完善,但落地执行又不简单?nbsp;大量文章都在分析Z么敏hE在很多开发团队不起作用。比如最q看?nbsp;Z么敏捷开发在亚洲实行不了 里说Q?“敏捷开发需要大家当面直a问题所在,而这有悖于亚z文化,因ؓ亚洲人特别注意对别h表示重、给别h留面子,q一点与西方文化特别不同Q而西Ҏ是敏h想的发源地?#8221; 从自q亲nl历看,q纯属扯淡。讲到留面子Q和E泥,打太极拳Q老美一点儿也不输给中国人。流E只是个工具Q能否因地制宜执行得好,开发经理v到决定性作用。没有普适的程Q针对一个特定的团队Q只有合适的程?nbsp;全栈型的l理比较Ҏ领导团队做正的事情q做得够?/strong>?nbsp; 能做到这一点,是不是scrum都不重要。他不必在各个方面都是专Ӟ但至需要能预见技术上重要的风险才能及旉取措施处理。一些技术决定对目成|有关键性的影响Q比如技术选型Q搭Y件应用的架构Q包括分? 模块化,secruity, transaction, exception, auditQ自动化试{等。开发经理不必把q些工作都承担了Q但臛_需要把养I保证q些核心的工作没有明昄漏。因为最lؓ产品发布负责的还是开发经理自己,而不是某个犯了错的程序员。不全栈Q把兌然就不全面?/p> 开发经理的各项工作中,我认为最重要的就是面试招聘。招对了人,工作中即佉K到棘手的问题Q技术好素质高的队员自己p决了?strong>团队不怕小但要_?/strong>Q队员必能独当一面。不论前台后端,l理臛_应该具备_好的技术品呌滤掉不合格的应聘者。乔布斯有个观点Q一旦招了庸才,两年后,׃轮到庸才做面试招聘,很可能再招进来的q是庸才。如果开发经理不全栈Q面试就要靠q气了。反q来_资历好而水q_的程序员Q也可以靠运气进好公司的?/p> E序员ؓstory估时_story pointQ的时候,会不会虚报呢Q如果认为scrum的打牌可以避免虚报的话,可以看看上面关于留面子的讨论。即使把story的分配放在scrum打牌之后Q经常大家心里已l知道哪个h做哪个story, 比如feature enhancement的story自然是这个feature之前的owner来做。打牌的人很Ҏ?#8220;做好?#8221;們于多估时间。(再说一ơ,q不是中国特Ԍ是h性)心理学有个有的关于撒谎的讨论,撒谎的前提是1. 我知?nbsp;2.你不知道 3.我知道你不知道?/strong>如果l理在品某Ҏ术上是小白,容易出C旉虚报的问?#8212;—q样的事情我亲见q很多次了。全栈的l理自然不会被糊弄?/p> E序员经怼在一个技术问题上产生不同的意见,q很正常Q技术上很多事情本来p做取舍。这时候经帔R要开发经理介入做军_。经理做合理的决定不但对目重要Q对队员的个人感受也重要。决定不能是随机的选A或选B, 需要有军_的依据。程序员往往都有点小骄傲Q经理技术上捉襟见肘的时候,E序员就Ҏ惻I“你还不如我呢Q凭什么做军_?#8221; 开发经理需要做coding的工作么Q我认ؓ是需要的?p里有句谚语, He that would command must serve。至也要做比较多code review的工作。评价队员工作效果是开发经理的重要职责之一。技术不全面的经理经怾靠听队员自我评hQ吹牛)Q数代码行数{这U不靠谱的方式评价工作。错误地认同或不认同严重影响团队氛围。n先士卒的l理Ҏ长期保持住团队良好的氛围。我没有能力定义什么样的氛围才是好的Qv码,我带团队Ӟ成员互相之间心存善意?/p> 澄清一下自p点:l理一定要全栈或技术精湛才能带好团队么Q不是,但是很多理的难题在全栈的经理眼里都不是问题Q?比如上面提到的评价队员工作。带不好团队无法好好职业发展么? 不是Q?我见q太多靠吹牛Qh事等各种非技术技巧成功哄骗二U三U经理的了。管理的路越往上走Q技术越不重要,而政治越重要。问题是Q作为程序员或开发经理,你的目标是把目做好q是获得上认可Q?/strong>我觉得这是职业hD最Ҏ的分歧, 但, 不想讨论?/p>
]]>
下面开始测试sql了: 1. 先比较一下加primary key前后的结果: select * from emp_new where empno=1; 加primary key constraint之前q行0.023U?加了primary key constraint之后0.001U。加primary key constraint?00万条数据上大U花?U钟?/span> 2. where子句 vs. having子句 select deptno, avg(sal) from emp_new group by deptno having deptno != 10 and deptno != 20; 0.24U?/span> select deptno, avg(sal) from emp_new where deptno != 10 and deptno != 20 group by deptno ; 0.16U?/span> 所以having中的条g一般用于对一些集合函数的比较Q如count(){,除此之外Q一般条件应该写在where子句中?/span> 3. 减少对表的查?/span> update emp_new set sal=(select max(sal) from emp_new), comm=(select max(comm) from emp_new) where empno=1237; 0.11U左?/span> update emp_new set (sal, comm) =(select max(sal), max(comm) from emp_new) where empno=1224; 0.07U到0.08U之?/span> 注意Q以上三个测试都只fetch?0条数据?/span> 4. 传说中用exists替代in通常可提高查询效率, not exists 也比not in 快?br />先生成dept_new表: create table dept_new as select level deptno, SYS.dbms_random.String('u', SYS.dbms_random.value(3,10)) dname, SYS.dbms_random.String('u', SYS.dbms_random.value(3,9)) loc FROM DUAL CONNECT BY LEVEL < 10000; 实际试中,无论是执行计划还是实际测试的速度都是基本一致的?/span> W一l?/span> select * from emp_new e where e.empno > 986000 and e.deptno in (select d.deptno from dept_new d where d.loc='AYDN')
select * from emp_new e where empno > 986000 and exists (select * from dept_new d where d.deptno = e.deptno and d.loc='AYDN')
W二l?
select e.empno from emp_new e where e.empno > 996000 and not exists (select 1 from dept_new d where d.deptno = e.deptno and loc like 'A%')
select e.empno from emp_new e where e.empno > 996000 and e.deptno not in (select d.deptno from dept_new d where loc like 'A%') |
最q的一q回了三ơ丹东,其中两次是带着大猪和老虎儿一起回ȝ。每ơ老虎儉K跟爷爷奶奶玩儿得很高兴。虽然他们不常见面,血~还是能瞬间拉近他们Q很奇妙的事情。大猪坚持十q如一日地M呵,开始喜Ƣ上唱歌Q最频繁的时候一周唱好几场KTVQ比职业歌手q辛?..我跟她说Q她的性格很好Q如果没有嫁l我Q她跟很多h都适合Q而我性格不好Q适合我的人很,能够有她是很q运的事。然后,她就常说Q我跟她在一h多幸q啊。真是一点儿阛_也不能给她,要不然控制不住她的灿烂。老虎儿越来越聪明了,怼说些令h惊讶的话。精力无限,春节回家睡了三个晚上Q最早的一天是11?0睡的。不q,他太爱哭了,q有半年p上幼儿园了,爱哭d估计要把老师折磨M?/font>
大猪和我都得C升职Q大猪做了副处,我做了manager。从表面上看Q应该是挺殷实的家庭Q但其实我们俩都是升职不加薪。加入SASӞx期望会在SAS工作五年q么久,q是很感谢Emily一如既往的支持,最q的一q和以往一P很多愉快和不快,很多抱歉和感Ȁ?/font>
今年用过的两个密码是thank you和principle.
q去的一q_有多事情会被永久的CQ假如这些事情是本该忘记的,忘记之后又有什么其他值得我记得?
视频文g在:https://docs.google.com/open?id=0B22ayLe4teeYQm56QnhaWkUxM2s
ppt在:https://docs.google.com/open?id=0B22ayLe4teeYdEhsMkItTk16UDg
有h说google drive上不Ҏ下蝲大文Ӟ压羃一下,但是我不太会用视频压~YӞ压过之后效果不好了,倒是也能就着看:
1. 老婆_她工作压力挺大的。我_我来看孩子,你快d吧。老婆_她不去,她压力最大的地方是不知道该忙什?#8230;.
2. 我拍打儿子逗他玩儿Q老婆不喜Ƣ我q么逗儿子,威胁我说Q你再打我儿子,我就打你儿子了啊。我Q?#8230;…
3. 老婆爱抚儿子的头Q不无得意地向我炫耀Q?#8220;q小家伙是从我肚子里生出来的Q你能体会么Q?#8221;Q我回答Q?#8220;q小家伙是我你肚子里的Q你能体会么Q?#8221;
4. 老婆把腿伸给我,_"帮我抻长点儿"Q我装模作样d下,Ҏ另一条腿也טq来Q?q条也抻抅R?