Skip to content

Beetl 开源那些事情3

About 1981 wordsAbout 7 min

Beetl开源

2018-08-05

img

img

我是闲大赋,我的 Beetl 开源转眼已经有 8 年历史了,BeetlSQL 也有 3 年开源历史。不断有朋友发邮件告诉我,使用了 Beetl 代替了原来的 Freemarker&JSP,或者使用 BeetlSQL 获得了很大的便利。 前几天,还就有个朋友告诉我,他们的平台为是国内所有信用卡 APP 提供服务,使用的技术正是 BeetlSQL。

并非想炫耀自己的开源技术,而是感到郁闷,我经常为我自己的开源技术并不能用到自己的公司而感惶恐和悲哀。记得我多年以前我在电信系统公司的时候,有个朋友自称他们研发社交系统说使用了 Beetl,他自报家门是电信研究院的,我很开心,我们在一栋楼,他就在我楼下。我也很郁闷,因为我自己的公司,我从来都推动不了使用我的开源。

反对我使用 Beetl 和 BeetlSQL 的原因我好多都忘记了,我只记得三个月前,当我推荐公司的开发平台使用 BeetlSQL 而不使用 MyBatis 方案的时候,我得到的反驳是,万一我不在公司了,BeetlSQL 还会支持嘛?他们认为 MyBatis 无论如何,都会持续发展,且任何问题都会从网上找到答案。

我对反驳我的同事嗤之以鼻。同样是这些同事,还曾经反对我用 Spring Boot 搭建系统,而说要用 SpringSide 搭建,我后来写了一本畅销书《Spring Boot 2 精髓》他们才作罢。

我每次都收到朋友的来信说采用了 Beetl&BeetlSQL,我都会小郁闷一下,为什么不认识我的人愿意信我,而天天在一起工作的同事,却充满了疑惑。

我无法反驳我同事的观点,显然我的开源产品正在跟一个庞然大物做斗争,更何况我的开源还有一定的技术革新。我没有百度,阿里,华为那样公司级别支持,能轻易获取使用者的信任。我从事的开源与我的工作没有交集(我一直都很羡慕有些程序员的工作就是开源),我本人也只是一个 IT 普通从业者,无显赫的学校背景和工作经历。拿我们客户的话来说我,“你无法说服我,因为你的薪水只有几十万,而咨询公司的人年薪有几百万,虽然我觉得你说的也没错”。

利用开源的人,如顺水行船,创造开源的人,如逆水推舟。

开源生活里碰到的郁闷不止这一处,比如,开源乐趣并不会长久,更多的是责任。开源使得自己专注与某一领域技术,对其他技术不太掌握,很容易落后时代。开源很容易遭受谩骂和攻击,比如,我就在社区里遭受各种诋毁,今天就有一个轻度诋毁 http://bbs.ibeetl.com/bbs/bbs/topic/1321-1.html,事实上我很莫名其妙,严重的莫过于社区网站都被黑过。现在都还有些我马甲周期性的来问候我。我那一代老程序员在年轻的时候被很多技术忽悠过,如早期重量级 EJB 技术,过度复杂 WebService,想接管一切的 Hibernate,问天天不应,叫地地不灵。现在,本以为以我对我所在模板技术,数据库访问技术领域的实践以及开源产品成果,可以把让我大胆讲一些同类开源的述优缺点,但还是有不少人恶意揣测我的文章。

开源当然有很多好处,比如获取到更好的工作.... 据说,现在淘宝上专门有买 github 上的 fork 和 watch 的,可见开源人多受 IT 公司的欢迎。现在外国人都不太理解为何 github 上有很多中国人疯狂的 PR...... 我的现在这一份工作就是这么获得的,当时面试我后,公司并没有感觉我适合,但幸好一个人喝水的时候看到我的简历,他知道 Beetl,也晓得我纯手写了虚拟机代码来提升 Beetl 性能。再他的推荐下我才能侥幸获得现在一份工作,这也说明,就算你有一个很好的开源,也并不一定能得到应聘公司的肯定,我简历其实还投了很多公司,都没有有因为我做个 Beetl&BeetlSQL 而能得到一份更好的工作。我有时候想,我应该给其他知名开源打个下手就好了,又不费劲,又能更出名,比如,我应该贡献一下 Spring Cloud 周边工具开源,或者 Elastic Search 周边开源,这样,我能得非常高的薪水。我也劝那些有志于通过开源提升自己的人,多从事一下流行开源技术对自己比较好。Beetl 这样技术,虽然很复杂,但谁会欣赏一个模板技术开源作者呢?

做开源有 8 年历史了,自己的技术有了很大提升,这肯定比在公司做 8 年业务开发提升太多了,总结了很多软技能,愿意和大家一起分享。

  • 开发软件不是一堆人一起做工程,而是一堆人一起写小说。

    :可以想象团队开发软件难度多大,有时候开发出来,客户根本看不懂,就是这个原因

  • 软件可读性非常重要,远远超过了 “写的便捷”

    :代码要写的酸爽,还是读的愉快,这是程序员入行面对的首要问题

  • 没有一个对象解决不了的问题,如果有,用俩个对象

    :当发现解决不了软件问题的时候,也许是你的系统里,有个隐含的对象你没有考虑到

  • 没有用一个层解决不了的设计,如果有,用俩层

    :这个不用说了,这是分层架构是架构模式里的一等一模式。

  • 开源并没有多大乐趣,审美很重要

    :开源的区别,最后主要是审美区别,你觉得 xml 配置好,我觉得 JSON 好,他觉得 YML 好

  • 故意错误是学习新技术的窍门。

    :给新手的建议,比如任何一个技术的 helloworld 例子,你都可以故意制造若干错误来学习新技术,当然,也可以通过这门技术对错误的处理来了解技术的成熟度。

  • 学会最管用的模式是 “职责模式 “

    :这是设计模式里最重要的模式。或者,你只需要知道这个模式就不会犯错。

  • 开源并不是百米跑,一声枪响,按照规划直奔终点,而是一场探险攀登,也许下坡路正是到顶的唯一路径

    :知识越来越普及,然而开源并不容易

    每次因为开源而郁闷的时候,都会写一篇这样博客抒发一下情怀。第一篇发表在 2014 年,第二篇发表在 2015 年。不过总得来看,因为开源,日子过的还是非常精彩,比如,机缘巧合获得了一份不错的工作;得到电子出版社青睐,出版一本畅销书;得到很多平台的邀请有露脸演讲机会;还有因为开源结交了很多不可思议的朋友们,最后,我认为最重要的是,也是我的初衷,让技术变得更实用和更容易,我应该改变 IT 世界一点一点。

知行合一