V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
sskyy
V2EX  ›  程序员

招募伙伴和我一起开源一个前端框架,有偿也可以。

  •  3
     
  •   sskyy · 2020-10-11 18:22:40 +08:00 · 3519 次点击
    这是一个创建于 1502 天前的主题,其中的信息可能已经有所发展或是发生改变。

    框架的基本特点:

    • 类似 Vue3 的 reactive data
    • render function 来视图,而不是 template
    • 为组件库开发者设计的 component utility,写更少的代码,支持更灵活的需求。
      • feature based 的组件扩张
      • 样式逻辑与组件逻辑完全分离,突破性的语义化样式系统
      • 自动调用事件回调、自动实现 controlled/uncontrolled 、自动实现 preventDefault 等

    目前框架主体已经开发完,官方组件库已经写了大部分,devtools 的 chrome extension 原型已经开发完。我需要伙伴来完善组件库、devtools 、官网、开发内存泄露检测工具。

    背景

    说来话长,但做这件事的背景还挺重要的,请耐心看吧。 这个框架本来只是另一个底层引擎的例子,本来那个底层引擎才是重点,底层引擎将现代框架里的基本部件——如负责 diff 算法的部分、负责渲染的部分(类似 react 的各种 renderer)、任务调度的部分——都独立的出来。用这个底层,用户可以造出自己的 react/vue 。当然我希望的是用户打造出适合自己的框架。因为这个底层的萌生就是我的团队在写编辑器和页面搭建工具时,有很多需求要 hack react 才能实现,因此才想要自己造底层。 同时我也考虑了生态的问题,因此在这个底层上又实现了一个 react 的版本,可以兼容 react 的组件。其 diff 算法和 react 完全一致(我测试 preact 等其他框架,diff 都和 react 有区别)。理论上用这个底层还可以造出 vue 、angular,把它们都当成我的一种组件写法而已。这样就有可能实现整个生态的大融合。

    目前要开源的这个框架也是基于这个底层,以它来开源是因为它是我 240 天职业规划的一部分。我计划用 240 天来完全改变自己未来的工作方式,去做喜欢的事并且把钱赚了,永远追求更健康更科学地工作,找到有梦想、能深度交流的伙伴,为我的宝宝提供更好的教育更好地照顾家庭。过去的创业和大公司经历,在这特殊的一年的催化下,让我看到目前的公司环境给不了我想要的,并不是因为做不到,而是因为帮助员工实现价值、好好照顾员工并不是公司的核心目标。例如远程办公这件事,只要有好的工具、约定,就能做到,还能规避掉很多无效的会议。但若不是疫情,老板是不会主动去推进实施的,这不是他的核心目标。还有更多地例子可以参照《重来 3》。

    说回来,这些让我意识到我想要改变,必须要自己去创造。wolfram 的 Seeking the Productive Life 给了我很大的启发。作为工程师我首先要以工程的方式改善自己,要造工具让自己写代码更快、更少、更容易。于是我花了很长时间来梳理我的知识体系。顺便介绍一下我的经历吧,便于理解我为什么要做这些。 我是学存储的、数据库方向。读研时就开始写云存储软件,当时实验室和一家北京的教育软件集成公司合作,软件卖给了很多高校,现在应该还在跑。快毕业时去百度实习,想着自己未来要做独立做产品只差前端没搞了于是拒了 php 的职位选了前端。毕业后收到邀请和新浪的师兄开始创业做云计算,成立了国内第一家做 openstack 的公司,我负责前端和设计团队、兼任产品经理。又补齐了很多产品知识,写的博客被华章的编辑看到还受邀写了本小小的电子书《产品设计七日修行》。再后来公司资金出现问题,我离职到了支付宝做前端。因为之前一直对框架感兴趣,所以不管本职工做什么,我一直在关注框架,AngularJS 的第一版 developer guide 就是我翻译的。也在写框架,我的 github https://github.com/sskyy。也在用自己的框架写产品,在我的 github 里面可以找到博客、论坛等等。我做过的其他事情可以通过我的知乎文章 https://www.zhihu.com/people/hou-zhen-yu/posts 和以前的博客找到。

    说回来,我发现我不管是初心还是知识体系,其实都是围绕着“做完整产品”的。我应该不为公司,不为任何人,而是为自己打造一条生产线,让我做下一个产品时,不用再写那么多 crud,不断实现 rbac,不断写前端组件了。当然我不可能造出银弹,这个生产线是有一个明确应用范围的,即“单一数据中心,多用户,以数据操作为主”的应用。围绕这个范围我进行了长达一年时间的推导以及和朋友的讨论。目前已经全部完结,核心是以“需求描述”为中心来构建系统,这样能极大地复用已有的能力。这 240 天的计划就是实施计划,这个前端框架是这个整体生产线的一部分。前端的重点是 reactive data 和 component utility 。 reactive data 是介于 raw data(如 react 的 state) 和 event stream based reactive system(如 rxjs) 之间的数据形式,它比 raw data 更易于操作,又能利用 reactive 的特性简化逻辑。又比 rxjs 那一套更适合人类思维,它也可以和 rxjs 结合来使用保证强一致性。 component utility 是为了让组件库开发者更轻松地维护组件库的。虽然现代前端框架都是以组件系统为中心,但使用组件,和开发组件库面临的问题重点完全不同。使用组件构建应用时的重点怎么快怎么来。而组件库的重点是要尽量灵活,适应各种不同需求。如果还要基于组件构建“页面搭建系统”,就还要考虑组件向外声明自己属性、行为的问题。我把 ant.design 和 materialUI 的所有组件分析了一遍,再结合之前做搭建的需求,设计了这个 component utility 。

    在 240 计划中,除了生产线之外,我还写了自己的编辑器,自己的项目管理工具。至于为什么又是一个故事了。不管想愿意加入我还是想了解都欢迎来找我。我的微信 rainer_H 。非常期待。

    18 条回复    2020-10-29 16:28:19 +08:00
    bojue
        1
    bojue  
       2020-10-11 18:38:28 +08:00
    看了标题还以为差个程序员系列,原来已经做了这么多工作,GitHub 关注了期待后续
    oops403
        2
    oops403  
       2020-10-11 18:56:29 +08:00
    持续关注
    sixway
        3
    sixway  
       2020-10-11 20:11:43 +08:00
    想看看
    wwwwzf
        4
    wwwwzf  
       2020-10-11 20:33:05 +08:00   ❤️ 1
    我行吗?
    逐浪 CMS 成员,bootstrap 中文站维护者。
    yunser
        5
    yunser  
       2020-10-11 22:38:41 +08:00 via iPhone
    对项目没兴趣,倒是对你和你的计划感兴趣
    DiamondYuan
        6
    DiamondYuan  
       2020-10-11 22:42:35 +08:00 via iPhone
    如果编辑器 /项目管理工具不是产品的一部分,感觉是重复造轮子。
    sskyy
        7
    sskyy  
    OP
       2020-10-12 02:04:13 +08:00
    把 240 天的计划也写完了。https://zhuanlan.zhihu.com/p/264954202
    pigzzz
        8
    pigzzz  
       2020-10-12 09:06:30 +08:00
    大佬
    Anshi
        9
    Anshi  
       2020-10-12 09:36:20 +08:00
    大佬执行力好强,支持
    azh7138m
        10
    azh7138m  
       2020-10-12 10:14:56 +08:00 via iPhone
    是什么需求需要 hack react 呢?这个方便详细讲讲吗?或者发 ata 讲一下也可以(
    hoosin
        11
    hoosin  
       2020-10-12 10:26:58 +08:00
    关注...
    Czzzzzzzzzzr
        12
    Czzzzzzzzzzr  
       2020-10-12 14:17:58 +08:00
    关注大佬
    KuroNekoFan
        13
    KuroNekoFan  
       2020-10-12 14:36:29 +08:00
    好厉害
    dianxinyonghu
        14
    dianxinyonghu  
       2020-10-12 16:14:17 +08:00
    对于自己开发框架的大佬,我只能膜拜了
    zvil
        15
    zvil  
       2020-10-12 16:44:22 +08:00
    能力不够 持续关注大佬
    Asyncway
        16
    Asyncway  
       2020-10-12 17:22:08 +08:00
    有点意思 能力不够 持续关注
    JokerLiang
        17
    JokerLiang  
       2020-10-15 15:50:20 +08:00
    大佬
    sskyy
        18
    sskyy  
    OP
       2020-10-29 16:28:19 +08:00
    @wwwwzf 不好意思才看到 v2 上的留言,请加我微信说吧。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5252 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 01:23 · PVG 09:23 · LAX 17:23 · JFK 20:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.