关于自身技术栈的一些思考跟感想

发布于 2016-06-02  约 5 分钟

一般心情烦躁我是应该把文章扔豆瓣上, 不过这篇技术内容太多了点
大概每过一段时间就会觉得迷茫, 虽然和身体有关, 但跟技术方面也有关系
这个大概是从到上海开始的, 毕竟之前上学和实现很难形成自己的节奏
我印象比较深的一次, 大概是两年前某个时候, 我写的 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 是个好办法...

阅读 3.7k发布于 2016-06-02

推荐阅读
题叶
用户专栏

ClojureScript 爱好者.

490 人关注
247 篇文章
专栏主页
目录