0%

呜呜呜,我竟然拖到了现在,头好晕,想睡觉。

微信付费文章

我觉得目前微信付费文章功能真的好垃圾啊,打磨了这么久就这样?这个功能在公众号是没有入口的?用户购买了后怎么再次找到文章?难道靠搜索?看一次圈钱呢?然后怎么着也要订阅功能吧?不然一次一次地购买?得多费劲呢。合集功能可不可以有?

我有点疑惑,付费文章功能微信自己想到使用的场景是哪些呢?到底是如何服务生产端与消费端呢?

平台方

TODO

生产端

TODO

消费端

TODO

最后

我想睡觉了,撑不住了。

沟通

很多的问题表面上是其他问题,但其实本质是沟通的问题。在看《幕后产品》的时候学到了一个新的东西——“要把沟通放到同一个维度,这样才能被彼此理解”。

在得到上面听了一门沟通的课,觉得也挺不错的。其最后对沟通技巧做了总结:

如果你接下来要去完成重要对话,思考一下:内容——清晰简单吗?需求——对方想要什么?想听什么?关系——能恭维对方,找到相似吗?和让对方有选择了吗?这样一个高度简约的框架,帮助你对所有的沟通做好筹备。

情绪

很多事情我还不是很能够接受,也不能够理解,也容易情绪化,对自己这种情绪化事后都会懊悔不已。当然我们也不用完全去克制情绪,有些时候情绪化也是一种催化剂,对,就是催化剂。但是我们其实都知道什么时候的情绪化不好,只是当时控住不住。

最后

人与人之间的各种纽带各种关系让我们痛苦与快乐,接受痛苦创造快乐不是一件容易的事情。有时候在想,如果你不去表达自己,那么你肯定是孤独的。去表达自己是一种希望,虽然难免会失望,会伤痕累累,但我相信也必须相信是会慢慢好起来的,而不是一直都是苦行僧一般。

能够被人理解,能够被记起是一件幸福的事情。

应用启动

随着应用各种接入第三方 SDK 与自身服务的增多,启动流程也越来复杂,难以管理与监控。因此会有这些问题:

  • 服务的列表,我们不知道有哪些服务
  • 服务的依赖问题,有些服务会依赖另一个前置服务
  • 服务的异步执行,为了启动的性能优化
  • 服务的条件执行,有时候服务的启动需要符合一些条件
  • 服务的启动耗时 ,我们不知道启动这个服务的启动耗时

我们应该如何管理启动流程?将启动过程看做多个任务的执行过程。通过对启动任务的管理达到管理启动流程的目的。

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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
@interface MPIBootTask : NSObject

/**
启动任务的名字。
*/
@property (nonatomic, copy, readonly) NSString *name;

/**
启动任务需要在哪个阶段执行。
*/
@property (nonatomic, assign, readonly) MPIBootPhase bootPhase;

/**
启动任务执行的优先级,优先级越高的越早执行。
注意:优先级只有当 task 的 bootPhase 相同时才有意义。
*/
@property (nonatomic, assign, readonly) NSInteger priority;

/**
是否能够异步执行。
*/
@property (nonatomic, assign, readonly) BOOL asynchronous;

/**
* 如果asynchronous为YES,可以指定priority设置异步启动服务的线程优先级。取值为dispatch_get_global_queue的优先级取值。
* DISPATCH_QUEUE_PRIORITY_HIGH
* DISPATCH_QUEUE_PRIORITY_DEFAULT
* DISPATCH_QUEUE_PRIORITY_LOW
* DISPATCH_QUEUE_PRIORITY_BACKGROUND
*/
@property (nonatomic, assign, readonly) long dispatchQueuePriority;

/**
是否执行过。
*/
@property (nonatomic, assign, readonly, getter=isExecuted) BOOL executed;

- (instancetype)initWithName:(NSString *)name
bootPhase:(MPIBootPhase)bootPhase
priority:(NSInteger)priority
asynchronous:(BOOL)asynchronous
dispatchQueuePriority:(long)dispatchQueuePriority;

/**
是否能够执行 task。
*/
- (BOOL)canExecute;

/**
执行 task。
*/
- (void)execute;

/**
需要执行的内容。
*/
- (void)main;

@end
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@interface MPIBootLoader : NSObject

- (void)appendTask:(MPIBootTask *)task;

- (void)appendTasks:(NSArray<MPIBootTask *> *)tasks;

- (void)executeTasksWithBootPhase:(MPIBootPhase)bootPhase;

- (void)executeAllTasks;

- (nullable MPIBootTask *)taskForName:(NSString *)name;

- (void)executeTaskWithName:(NSString *)name;

@end

通过 MPIBootLoader 持有及管理 Task ,继而通过 Task 来定义执行阶段、优先级、是否异步执行等。值得注意的是,每个 Task 只会被执行一次。

应用服务

这里先说明一个概念问题,Task != ServiceTask 定义的是时机,通过 Task 来启动 ServiceService 是可以在整个应用生命周期都存在(当然也可以中途被销毁),但是 Task 不会有副作用,执行过后就代表已经完成和结束。

举一个以前的错误例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
@implementation MPIBootTestTask

- (void)dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self];
}

- (void)main {
[Foo start];

[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(didReceiveNotification:)
name:MPITestNotification
object:nil];
}

#pragma mark - Notification

- (void)didReceiveNotification:(NSNotification *)notification {
[Foo update];
}

@end

这个例子中,我们在 Task 中监听了通知,等于执行完 Task 后会产生副作用,并且假如以后需要移出通知,那就需要为 Task 增加移出通知的方法,这就违背了 Task 的职责。

因此我们引申出 Service 的概念,通过 Service 来追踪应用状态的改变。下面是 Service 的头文件。

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
28
29
typedef NSString *MPIServiceName;

/**
* \code MPIMicroService 代表一个服务。
*/
@protocol MPIService <NSObject>

@required

/**
* 启动一个服务。框架在完成初始化操作后,会调用该方法。
*
* 如果一个服务要启动一个应用,必须在该法被调用之后,才能启动其它的应用。
*/
- (void)start;

@optional

/**
* 服务已经完成创建。
*/
- (void)didCreate;

/**
* 服务即将释放。
*/
- (void)willDestroy;

@end

当然 Service 的作用不止于此,我们也可以通过 Service 做模块化处理。

1
2
3
4
5
@protocol DemoService <MPIService>

- (void)doTask;

@end
1
2
id<DemoService> service = MPIApplicationGetServiceByName(@"DemoService");
[service doTask];

总结

通过 Task 管理及监控启动流程,使用 Service 追踪应用状态改变和模块化处理。

参考资料

mPaaS 框架介绍

网易云音乐的前产品负责人王诗沐负责的网易美学已经停运很久了,众所周知,网易云很成功。

傅盛做出了 360 杀毒,后来离开 360 继续做杀毒,确打不赢自己之前做的 360 杀毒。

当然不能否认个人能力的重要性,但错过了时间点,想要复制成功依旧很困难。

昨天看到公众号《半佛仙人》运营一周年的推送,想想他的成绩也很感慨,一年原来也能这么强大。

昨天和树文打电话,他说要做创作者,随即就看到了微信的“微信创客自荐计划”推文,好巧啊,这就是一个和创作者相关的活动。“再小的个体也有自己的品牌” —— 微信公众平台的 slogon 很激励人心,这也是目前很多人的方向。

我们能把握什么时机?看到怎样的未来?

找到未来的那一群人,然后服务他们。

2020 是我以前多么不敢想象的未来啊,可它即将到来,坚定不移。它是我们每个人的创作。

哭唧唧,努力好难。

李娟

无意中又看到了一些人喜欢李娟,有些意外,原来她很红的。而我对李娟的印象则开始于 2012 年的时候看过的一本《人民文学》的期刊,那上面有她的小说 —— 《冬牧场》。虽然小说的内容我已经忘记,但是当时看小说的那种感觉我却永远记得。寒冷的冬天,再加上一杯热茶,看着温暖的故事,嗯,这就是幸福。

最后

唔,我要水一篇了。要上班了哈哈哈哈哈哈。今天估计要加很久班了哈哈哈。

游戏

最近买了一个游戏机,任天堂的 Switch。目前主流的游戏平台有三个,分别是 PS4、Xbox 、Switch 。由于我希望的是休闲娱乐并且侧重于多人游戏,考察了一番后发现 Switch 是最适合的。

Switch 并不算贵, 2200 左右,但其本身是没有内置游戏的,游戏需要单独购买。而游戏让我这种从来没有接触过的人来说还是觉得好贵啊!主流游戏随随便便一个都要 2,3 百。最终是买了三款游戏:《塞尔达传说 旷野之息》、《Just Dance 2020》、《超级马里奥聚会》。当然也没有让失望,体验下来确实蛮不错的,特别是《超级马里奥聚会》在多人一起玩的时候好欢乐。

Switch 上面有许多的体感游戏,比如前面说的《超级马里奥聚会》,玩的时候需要肢体的配合,玩着玩着出了满身的汗也一点不用奇怪。

体感游戏(英文:Motion Sensing Game)顾名思义:用身体去感受的电子游戏。突破以往单纯以手柄按键输入的操作方式,体感游戏是一种通过肢体动作变化来进行(操作)的新型电子游戏。

2006 年,任天堂发布了新一代游戏主机WiiWii配套的新款游戏手柄第一次将体感动作引入了电视游戏主机。 Wii 的内部开发代号是“The Revolution”(大革命),而它也的确名副其实:用户们第一次发现原来除了传统的手柄按键控制之外,自己还可以直接用身体动作来控制屏幕上的游戏人物。

想法

许多想法灵光一闪,转瞬不见。需要找一个比较简单、轻量、高效的想法记录工具,如果没有,那就自己做一个。

最后

刚刚得知了树文已经离职了,而我最初明年的计划并不是挣钱,但目前的状况,找挣钱的方案已经是不得不考虑的事情。

我说不要自己戏太多,但内在的平和哪有那么容易。

心态

不知道为什么,我总是很容易就紧张起来。呼吸加速,心跳加快,还有控制不住的表达欲,脑子却不能说完全清醒。这么多年了,我却还是做不好。

目标

无论做什么,先要确立目标,后续的思考如果没有目标,你自己也不知道你自己在说什么,在做什么。

当然这说起来是很容易的,实践却并不容易。昨天我和同事讨论需求,最后却发现自己并不知道这样做的目的是什么,我们真的有服务目标吗?有些时候似乎是知道了问题,但最终的解决方案并没有服务目标,那就是我们对于目标理解的不够透彻,拆分的不够精准。

最后

要有进步啊!心态平和,脑子清醒。

罗永浩与贾跃亭

最近政府出台了互联网电子烟售卖的禁令,老罗的电子烟“小野”怕是比较难野起来了。以为凭借自己的设计能力能够高维打低维,然后大杀四方的场景可还没有开始却可能要结束。这种落差是比较大的。

我对贾老板了解也不多。他创办的乐视就像一匹野马从默默无闻一跃而成整个互联网都闪耀的一颗星。做视频网站、做体育,造电视、造手机、甚至造汽车。生态化反、为梦想窒息等等让人看来眼花缭乱,而这些却在很短的时间都崛起了,具有一定的影响力。当然这和有钱是强相关的。

明天还钱罗永浩,下周回国贾老板。一些人恨他们,一些人爱他们。一些人指着他们骂,这是骗子;一些人却维护他们,说他们是理想主义者。但我是觉得,不管怎么说。他们都做出了成绩,也对社会造成了不小的影响吧哈哈。

最后

天气越来越冷,真的是冬天了呢。一年又快结束啦。

沟通

上周五晚上由于我和她的一些的问题,聊到了接近凌晨三点。为什么自己的心态是如此容易爆炸?说好的心态平和呢?说好的要学会沟通呢?

沟通能够让我们关系融洽、利益最大化。而沟通最重要的技巧是倾听,我为自己一直以来的行为羞愧。

How stupid I was.

平等

该如何去喜欢一个人呢?或者说,该如何去经营一段亲密关系呢?这对于我来说真是一件无比困难的事情。那天她说希望我们的关系在相处的过程中是平等的,要我不用太刻意、太做作。我深以为然,自己也是期望关系是对等的,但我还是不会应该怎么去做啊!!!或许,我首先应该做到不刻意、不做作地去喜欢。

最后

逝者如斯夫,不舍昼夜。我不知道多久才会消亡这份恐惧。

让我们热爱生活,让我们拥有闪耀的灵魂之光。

又又又失信了。

本来说昨天(突然发现现在已经是前天)会写写工作相关和未来计划,但是又没有完成。

罗永浩

罗永浩被列为了“失信执行人”,然后火了,罗老师后面写了一封公开信为自己说明和开脱,这封信也火了。当然,对于罗老师来说,不火才不正常。

很多人同情罗永浩,同时也有很多人持否认态度,这才是生活的有意思之处。不可否认,其实我们是容易被说服的,或者说被欺骗到的。保持冷静客观,再怎么强调都不过分,我依然是做得很差劲。

有一句话很有意思——谁掌控了解读权,谁就掌握了事实。(我认为比这句更好:谁掌握了表达权,谁就掌握了节奏。)

梁宁

以前听了她的《产品思维 30 讲》,收获良多,最近她在得到又出了新的课程《增长思维 30 讲》,依然很干货。推荐听一听,并且可以多听几遍,她留下的问题可以自己多思考一下。

很佩服她的经历及见解,也感谢她的分享,更感慨于她所搭建的知识体系。或许我们也能说点什么,但是真的没那么清晰与肯定。成体系的知识,完整的输出,说服自己,真是太难了。

最后

明天又是美好的一天!加油!