一般心情烦躁我是应该把文章扔豆瓣上, 不过这篇技术内容太多了点
大概每过一段时间就会觉得迷茫, 虽然和身体有关, 但跟技术方面也有关系这个大概是从到上海开始的, 毕竟之前上学和实现很难形成自己的节奏我印象比较深的一次, 大概是两年前某个时候, 我写的 Todolist 坏了之前的一段时间, 我因为学会了 Vue, 又学会了 React, 写了个 Todolist以前写的自己很不顺手, 大概从这时候开始, 突然能自己用起来了于是在 Todolist 上积累了很多的任务, 也做了不少的任务结果 Todolist 突然坏了, 我忘了很多之前打算做的事情
那些天就觉得忘了很多东西就不舒服, 同时更不舒服那个节奏本来只是公司工作会排任务, 然后一个一个做下去结果我自己的 Todolist 上摆了很多东西, 自己也没个清闲于是把自己搞得累了. 到这个时候一下忘了东西, 反而发现轻松了我当时觉得很意外, 生活节奏会因为一个 Todolist 变成那样子微博的吐槽忘了是什么了, 总之蛮感概的. 后来事情也发生过几次到现在 Todolist 的版本我写了好多了, 前面有个 Vue 和 React
后来 React 有了两个版本, 前几个月我又用 Respo 做了一个其实 React 那两个版本用得挺久的, 最近的这个是专门为了分组对, 想法太多了, 需要分组, 所以可以想象我在里边丢了多少内容其实很多都是我的小项目的细节改进, 只是量相当多而已每工作一段时间, 会发现 Todolist 积累太多, 自己都没有信心了我已经算是随便开项目很不负责任的了, 但还是搞得自己很压抑我在 GitHub 上的项目用团队功能分了几个组, mvc-works, Cirru, Memkits, Cumulo
当然不止这几个, 这是更新比较多的几个, 看我微博的人大概能认出来mvc-works 是关于 MVC 图形界面开发的小工具, 包括 Respo 这个类库而动画类库 Quamolit 我是拆分出去单独用团队维护的Cirru 是语法糖项目, 想不到搞那么复杂, 现在又到了新阶段Memkits 是小应用, 比如 todolist 啊, 颜色处理啊, 非常简单的应用而实时的应用我在设计专门的方案, 试验代码统一放在了 Cumulo还有一类聊天室应用, 我还开辟了 TopixIM 专门管理单单数下来就已经很多了其实我想做的主要还是 Memkits 里的各种小玩具, 一两天就折腾完的那种
而且我希望编程能很方便, 很快, 从有想法到实现出来也就一两天实际上并非如此, 为了开发速度, 我写工具, 学语言, 做实时方案, 相当累终于我在做 Quamolit 的时候终于有点当时那种玩的感觉了可是我花了多少时间呢, 而且 Quamolit 距离真正实用还有多远呢我也能看到很多能提高效率的方案, 然而我实现不出来, 别人做的也不够多当初看 Bret Victor 那些演讲, 真的是切身的体会, 技术太原始了我总觉得人类的忘性很大, 当记忆变好, 世界的运转变得好不一样
比如大公司把任务划分得那么清楚来方便整个公司很多人一起运转当我把自己的 Todolist 整理起来, 我的生活节奏居然也被带着走了三年前在杭州上班天天做 Todolist, 看来真的留下了很深的烙印啊而我收集列出各种我认为个人项目中目前应该推进的地方, 也看到了不同而目标渐渐变清晰被强化, 就是高效开发应用, 整个链条以浏览器脚本为中心, 一边延伸到组件化, 界面设计, 一边到分布式的数据库细细来看中间的技术问题, 也会觉得事情变得越来越可怕
前端对吧, 现在 JavaScript 涉及的面真的越来越广我不是说这门语言本身, 而是它的平台, 前面跑界面, 后面跑服务器作为一个前端, 要学多少东西. 或者抛开前端吧, 我想写一个 App为了界面, 要懂交互, 懂视觉, 为了数据收发和存储, 要懂网络懂数据库当然实际当中还有设备的问题, 处理移动端很多很多细节看上去大公司是完全不指望这种事情能由一个人完成的, 毕竟是工业生产线嘛但折射出来事实就是这样, 仅仅是做一个应用, 已经没人能全掌握在写出 Respo 跟 Quamolit 之后我自认为算有点本事了
一个 DOM Diff 方案, 一个 Canvas 动画方案, 都算简单漂亮而且随着 Cumulo 完成, 我应该能把前后端终于连接到一起然而从实际考虑, 事情才刚刚开始, 这些东西的性能远远还不够函数式编程惯用的 memoization 优化我的类库中完全没开始实现结果必然是性能上的巨大问题, 影响类库的实际使用当然, 这要花费大量的时间, 而且有风险, 特别是 Quamolit 优化的难度更大我现在的精力都在移动端 App 上, 顾不到多少了所以说每过一段时间, Todolist 积累到一定的量, 就开始有幻灭感
当初大概只是简单的一个梦想, 生根发芽之后完全不一样的复杂度为了 App 这个坑, 我换学了 N 种前端打包工具, N 种方言搞到最后失去耐心直接从 CoffeeScript 整个往 ClojureScript 迁移Babel 这一路发展下去真心不知道还有搞出多少复杂东西出来心累, 又需要调整一下节奏了, 可能删一删 Todolist 是个好办法...