V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iOS 开发实用技术导航
NSHipster 中文版
http://nshipster.cn/
cocos2d 开源 2D 游戏引擎
http://www.cocos2d-iphone.org/
CocoaPods
http://cocoapods.org/
Google Analytics for Mobile 统计解决方案
http://code.google.com/mobile/analytics/
WWDC
https://developer.apple.com/wwdc/
Design Guides and Resources
https://developer.apple.com/design/
Transcripts of WWDC sessions
http://asciiwwdc.com
Cocoa with Love
http://cocoawithlove.com/
Cocoa Dev Central
http://cocoadevcentral.com/
NSHipster
http://nshipster.com/
Style Guides
Google Objective-C Style Guide
NYTimes Objective-C Style Guide
Useful Tools and Services
Charles Web Debugging Proxy
Smore
ShikiSuen
V2EX  ›  iDev

2022 年该怎样自学 Reactive programming?

  •  
  •   ShikiSuen · 2022-09-01 10:13:48 +08:00 · 9584 次点击
    这是一个创建于 574 天前的主题,其中的信息可能已经有所发展或是发生改变。

    威注音专案已经有半年多了,目前也已经找出了使用 IMK 选字窗的的方法。于是可以慢慢开始考虑让整个专案“去 zonble 化”的可行性。其中的一个方法是 Apple Japan 的输入法工程师 Mzp 写的 InputMethodKit 日文教材当中的利用 ReactiveSwift 与 Actomaton (ReactiveAutomaton) 做状态管理的方法(与 Zonble 采用的“状态与策略结合”的 design pattern 完全不同)。

    然而,我智商不够。Mzp 的教材当中,唯独 Reactive Programming 这一点,我目前实在想不明白究竟该怎样将这些与威注音的产品功能需求结合起来实现。不过我不是来问这个的,因为太个案了。

    结论就是:我可能需要重头理解 Reactive Programming 究竟是怎样一回事。所以想在这个版请教一下各位大神、看看有没有相关的易懂的理念入门自学资源。

    P.S.: 特别是在做东亚中日韩语言处理这一块,乃至至少中文纵排,懂日语都是一个很好的工程师技能加分项。我不是工程师出身,只是在维护我这一个小案子,但能看懂日语写的资工材料已经很幸福了:原来 InputMethodKit 的高端知识并非被 Zonble 垄断着。

    11 条回复    2023-11-28 16:39:24 +08:00
    imzcg2
        1
    imzcg2  
       2022-09-01 10:43:40 +08:00
    除了反应式编程能看懂,其他都在说些啥啊!有大把的视频和文字教程可以学
    lmshl
        2
    lmshl  
       2022-09-01 11:19:49 +08:00
    我的学习路线是 《 SICP 》-> Node.TS + Ramda.js + React + RxJS -> Akka Stream -> 工作中用 Scala 写了有 5 年代码 -> ZIO ZStream/Cats-Effect fs2 等纯函数式流库

    书的话国内有一本 《响应式设计模式 reactive design patterns 》,但主要讲的是架构层面的,具体到状态管理与框架,还是得多写多练才行。掌握(纯)函数式编程可以让你在各种 Reactive Programming library 中自由切换,因为背后的理念都是相通的
    yazinnnn
        3
    yazinnnn  
       2022-09-01 11:42:24 +08:00
    你在说啥
    ljpCN
        4
    ljpCN  
       2022-09-01 11:54:58 +08:00
    看来是台湾网友。有一些用词根大陆有差异。比如专案->项目,个案->个例。
    当然,用词应该不是最根本的楼上不懂楼主的原因。
    应该还是楼主没有说清楚自己的问题背景。楼主标题里说的是响应式编程,但开篇却开始提输入法的开发。不知道楼主是不是想问,响应式编程是什么,怎么应用到输入法的开发中?
    ljpCN
        5
    ljpCN  
       2022-09-01 11:55:21 +08:00
    @ljpCN typo:根->跟
    yannxia
        6
    yannxia  
       2022-09-01 11:57:16 +08:00
    网上很多的 Blog ,差不多看看就懂了,几年前我还写过一个源码分析,就不嫌丑了。reactive 重点显然就是线程切换的部分,那部分理解了其他的 operator 也只是顺带的事情。
    ShikiSuen
        7
    ShikiSuen  
    OP
       2022-09-01 12:35:24 +08:00
    @ljpCN 输入法开发用 Reactive Programming 的话,有个现成的案子: https://github.com/mzp/EmojiIM 但我看不懂他的实现逻辑。
    ShikiSuen
        8
    ShikiSuen  
    OP
       2022-09-01 12:36:40 +08:00
    @ljpCN 我不是台湾人,但你当我语文老师是台湾人就好。
    这篇提问文本来是贴在脸书的,直接复制粘贴到 V2EX 忘记转术语了。
    lmshl
        9
    lmshl  
       2022-09-01 13:33:32 +08:00
    这人明显函数式厨,看他 GitHub 还玩 ML ,Coq 定理证明,还有他用的这些符号 <|>,这是 Alternative 的 or 操作: https://en.wikibooks.org/wiki/Haskell/Alternative_and_MonadPlus

    https://github.com/mzp/EmojiIM/blob/a3b10281c7/Sources/Automaton/ReactiveAutomaton%2BAction.swift
    amon
        10
    amon  
       2022-09-01 14:44:48 +08:00
    之前搞 iDev 时眼熟孙志贵这个名字,记得喜欢折腾字体,哈哈。
    diagnostics
        11
    diagnostics  
       121 天前
    @yannxia great blog post, thanks.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1262 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 17:55 · PVG 01:55 · LAX 10:55 · JFK 13:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.