招募伙伴和我一起开源一个前端框架,有偿也可以。 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
sskyy
V2EX    程序员

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

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

    框架的基本特点:

    • 类似 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     Solana     1024 人在线   最高记录 6679 &bsp;     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 18:33 PVG 02:33 LAX 11:33 JFK 14:33
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86