我是闲大赋,我的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世界一点一点。

Beetl开源那些事3相关推荐

  1. Beetl开源过程中那些事

    为什么80%的码农都做不了架构师?>>>    我是Beetl的开源作者,叫李家智,网名是闲.大赋.可能很多人更熟悉这个名字,我本意是希望自己又有钱,又很闲,结果事与愿违,尤其是Be ...

  2. 开源囧事4:你们这些卖代码的能不能留自己的QQ号?留我QQ号干嘛?

    缘起于开源项目 从 2017 年开始,陆陆续续写了一些开源项目放到开源网站里,都是一些实战项目,给大家练练手.有基础整合的demo,有 Spring Boot 博客项目,有 Spring Boot 商 ...

  3. 关于开源不得不聊的那些事

    开源 简单的理解是指开放源代码(Open-Source). 开源软件 是指在软件发行的时候,附上软件的源代码,并授权允许用户更改/自由再散布/衍生著作,开源并不抵制商业收费. 开源硬件 是在开源软件的 ...

  4. 如何参与一个顶级开源项目

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 前言 最近个人事情比较多(搬家.换工作.短暂休息)所以一直也没有顾 ...

  5. 2019年度最受欢迎中国开源软件公布

    点击上方"深度学习技术前沿",选择"星标"公众号 资源干货,第一时间送达 经过 22 天的投票评选,今天 2019 年度最受欢迎中国开源软件产生了. 开源中国( ...

  6. 太难了!开源项目如何商业化?

    整理 | 王晓曼.伍杏玲 出品 | CSDN(ID:CSDNnews) 对于我们互联网开发者来说,开源就像空气和水一样运用在众多项目里,甚至有说法是"开源正在吞噬软件".优秀的开源 ...

  7. 腾讯开源负责人许勇:未来开源计划重点是AI和服务小程序生态

    导读:2018年6月25日,Linux 基金会,集结世界顶级开发者的非营利开源组织,宣布腾讯成为基金会的最新白金会员.在开源领域,腾讯的贡献正逐步增长,日益成为社区活跃一员.在与社区机构互动上,腾讯广 ...

  8. 如何让开源多点成功的几率;开源和 COVID-19: 道高一尺魔高一丈;等开源之道每周评论2020 04 07...

    ▼ 更多精彩推荐,请关注我们 ▼ 声明:本文所言论,仅代表适兕个人观点 文章评论 避免边缘化:开源软件如何成功? 原文链接:Avoiding the ragged edge: How open-sou ...

  9. 飞桨《开源夜话》第一期——开发者如何与飞桨共同成长

    这是一场技术趴,来聊聊开源? 这是一场聊天局,是属于技术人的夜话! 这是飞桨<开源夜话>系列节目的第一期! 在这期飞桨<开源夜话>的首秀中,我们邀请到了百度杰出研发架构师胡晓光 ...

最新文章

  1. 【Python】GroupBy:数据聚合与分组运算
  2. 50个直击灵魂的问题_当妈后,你想过这三个直击灵魂的问题吗?
  3. SAP UI5 Label related stuff and accessibility研究
  4. 分布式缓存的面试题9
  5. Stopwatch类学习
  6. HAProxy负载均衡原理及企业级实例部署haproxy集群
  7. java 线程安全性_i++是线程安全的吗?如何解决线程安全性?
  8. 【数学】稀疏图的随机游走问题
  9. 漏洞分析中常用的堆调试支持
  10. 3 | 复杂度分析(上):如何分析、统计算法的执行效率和资源消耗?
  11. spring整合redis菜鸟版
  12. 推荐一个工具:Dukto 免费快速实现局域网跨平台文件传输
  13. cesium导入骨骼动画
  14. 手机日历怎么备注农历生日提醒
  15. php微信上传头像,微信小程序怎么上传头像
  16. OA项目之我的会议(会议排座送审)
  17. simpleCaptcha语音验证码实现及其扩展
  18. easyui treegrid php,easyUI TreeGrid | 学步园
  19. 用DEVC++写射击游戏
  20. 京东客服岗位人才考试

热门文章

  1. nc6400 在bios中打开SATA模式就会蓝屏呢
  2. 智能家居领域小米,涂鸦,天猫精灵的 “中台之战”
  3. Redis——狂聊教程笔记
  4. (转)帮你彻底搞懂JS中的prototype、__proto__与constructor(图解)
  5. 硬件学习笔记(一)AD入门+STM32C8T6最小开发板得制作
  6. 服装进销存管理软件哪个比较好用?
  7. 使用 ES6 编写更好的 JavaScript Part II:深入探究 [类]
  8. el-table纵向和横向都有滚动条的时候,右下角会出现白色方块区域
  9. 细数中国历史上的十大乱世枭雄(上)
  10. Android7.0 BatteryStatsService