Team Lead

Stay Hungry,Stay Foolish

0%

什么是协程

协程, 又名纤程,是一种协作式的任务调度模式,程序可以主动挂起或者恢复执行。简单来说就是我们自己可以控制程序/函数的挂起和恢复,而不阻塞当前的执行线程。从这里大家可以看出,协程是一种比线程还轻量级的调度单元,无需类似进程,线程的上下文切换,不消耗CPU资源。

线程是操作系统层面的概念,协程是语言层面的概念。

下面我们通过 生产者-消费者模型 来看看到底什么是协程:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import time

def consumer():
r = ''

while True:
n = yield r
if not n: return
print('[CONSUMER] Consuming %s...' % n)
time.sleep(1)
r = '200 OK'

def produce(c):
c.__next__()
n = 0

while n < 5:
n = n + 1
print('[PRODUCER] Producing %s...' % n)
r = c.send(n)
print('[PRODUCER] Consumer return: %s' % r)

c.close()

if __name__=='__main__':
c = consumer()
produce(c)
阅读全文 »

一个令人困惑的小问题

大家请看下面这段代码(摘自objc.io twitter的swift quiz)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
protocol Drawing {
func render()
}

extension Drawing {
func circle() { p rint("protocol")}
func render() { circle()}
}

class SVG: Drawing {
func circle(){ print("class") }
}

SVG().render()

// what's the output?

请给出你的答案😄

阅读全文 »

背景

在职场,越往上走,越觉得管理是门学问。很好奇我的开发经理(Dev Manager)是如何工作的,他们每年给我们这些 “一线开发” 制定KPI,那他们的KPI是如何定义的,他们的产出在哪里?平时他们除了开会,就是回复邮件,这些真的能带来产出么?带着这些疑问,我淘到了一本英特尔前CEO格鲁夫写的一本 《High Output Management》, 里面详细介绍了如何衡量一个经理人的产出以及如何提升其产出的方法,令我感触颇多。这本书也帮助我理解了公司和团队日常开不同会议的目的和作用,以及经理人在其中的角色。

阅读全文 »

随着智能手机,平板在中国普及率的上升,人们越来越依赖移动设备进行娱乐、消费,由此催生出的App更是层出不穷。根据苹果2019年2月的数据,目前AppStore上的App数量已经超过220万,比2018年同期增长了近10万个App。2015年6月到2016年6月可谓是App发展的高速时期,仅仅一年时间就增长了50万个App;同时期也是中国互联网+的黄金时期,各种创业项目,平台推出了各式各样的移动App产品。

随着App的爆发式增长,我们越来越清晰地发现, 大多数App是无法长期停留在用户手机里的, 而今天这篇文章,我们将从一个开发者的角度来思考:如何提升用户体验,让我们的App在同类产品中脱颖而出,最终能够长期稳定的存在于用户手机之中。

每当我们说到用户体验,我们往往想到的是优化界面,交互方式等。这些固然重要,但这更多的是产品和UX的职责。作为开发,我们需要考虑他们无法完成的,更有技术导向的事情,比方说:优化App的启动流程。

阅读全文 »

关于我

我是一名移动开发者,也做Web和混合开发,目前有6年的开发经验。

最早接触的是iOS开发, 那是在大三尾巴上的时候,那个暑假去魅族实习,挣了万把块钱,就”败了”一台MBP 13。当时买它的主要原因还不是想做Apple的开发,是源于我们的Team Lead。他从微软回来后加盟的魅族,也在微软做过Scrum Master, 带领团队。他提到在美国,老美们都用Mac开发,说它是开发利器,加上我们当时做Ruby on Rails,每次看他”秀”终端操作和工具的时候,总觉得那才是一个开发应该有的样子。当然你用其他系统一样可以开发,一样可以使用终端操作。除此之外,我还想学iOS开发,毕竟魅族当时也被誉为”中国的Apple”,我们的产品经理也是苹果粉,天天在爱范儿关注着各类信息。就这样,在他们的持续熏陶下,我踏上了iOS开发的道路。

阅读全文 »