- 所有团队的程序模块都要通过 ServiceInterface 方式将其数据与功能开放出来
- 团队间程序模块的信息通信,都要通过这些接口
- 除此之外没有任何其它的通信方式
- 任何技术都可以使用
- 团队必须做好规划与设计,以便未来把接口开放给全世界的程序员,没有任何例外
- 不这样做的人会被炒鱿鱼
因为这个项目是我主导的新项目没有历史遗留问题,而这个新开发的系统不那么强调一致性,系统关联的复杂度也不那么高,上面又要求的急,并要求适当的时候能开放所有能用的API,为了满足这些需求,架构师和我们讨论以后,决定采用微服务的设计方式,牺牲一部分未来的强一致性,增加横向扩展性和高容错性
- 首先你得说,你刚到公司的时候,公司比较重视后端,所以,那个时候公司战略对前端的要求是能够实现ui,做多浏览器兼容就成了
- 那个时候比较痛苦,因为很多前端页面你都是后端,然后在给后端讲明白后端在写成模版代码,然后在测试在上线,中间还会因为交流问题产生各种隔阂,后端,前端,测试天天加班
- 结果你发现很多模版引擎其实和html语言很像,然后你就自学了模版语言,这个的结果是,公司解放了后端和测试,生产力大幅度提高
- 但你累了,因为不同语言之间有标准差异性,写起来不顺手,经常要想一下彼此的区别
- 后来公司转战2.0,经常要操纵dom,然后什么百团大战天天上马,应用要求用户反馈性非常高
- 这个时候,大部分dom都是用jquery来操纵,写多了那叫一个痛苦,会产生非常多的垃圾代码
- 没有docker之前,开发测试运维彼此环境不统一,大家都喜欢在自己电脑上干活,结果造成的问题就是,你碰到的问题他没有碰到
- 为了解决这种流程沟通问题,最开始用虚机,但是虚机太慢,docker现在勉强能接受
- 首先用户拿到系统,我们得为用户提供如下功能,预测目的地、价格预估、时间预估、最佳路径匹配、用户匹配、订单分派、供需预测、预测X体验。
国内大家普遍觉得DevOps就是使用工具什么CI,CD之类的。这是错误的,因为DevOps是一种文化,强调的是整个软件的全生命周期管理,目标是让开发人员直面市场变化快速迭代,CI CD只是我们现阶段采用的方法论不是终点,然后对方问你用没用过jerkins你说用过不好用。 你们团队里面有资深的系统工程师他试用了多个以后给你们的反馈是gitlab ci更好用
一种昂贵又缓慢的分布式存储技术,玩区块链的一种是小屁孩闲着没事蛋疼,一种是利用闲着蛋疼的做资本转移的。比特币,区块链应用成功的本质,激励机制是核心
const FizzBuzz = (start, end, cb) => {
for (let i = start; i <= end; i++) {
if (i % 3 === 0 && i % 5 === 0) {
cb(0)
} else if (i % 3 === 0) {
cb(1)
} else if (i % 5 === 0) {
cb(2)
} else {
continue
}
}
}
FizzBuzz(1, 100, (type) => {
switch(type) {
case 0: console.log('FizzBuzz')
break
case 1: console.log('Fizz')
break
case 2: console.log('Buzz')
break
default: break
}
})