我是LubanLock的作者

——LubanLock,鲁班锁,我正在开发,并且已经开发了一年多的一款企业内部信息系统平台,代码托管在Github

不知是从什么时候开始,特别想做好一个企业信息系统。好吧,姑且这么叫它。也许这听起来永远没有移动App那么大众化,没有CRM、ERP那么专业,没有点评那么实用,没有豆瓣那么文艺。但我开始做了,而且看到了商机,我就想把它做好,就是这样。

2011年6月,受熟人委托,尝试着做了上大附中的评教系统。

当时的我,是一个法学院大三学生,正在备考司法考试。先前有接过一些制作网站的生意,使用PHPWind,Discuz!,PHPCMS,Joomla,ECShop,这样的一些CMS去完成,几乎没有自己写过后段代码,只是用Dreamweaver折腾了不少的HTML和CSS。

我很自信,至少在技术方面,尽管连半桶水也算不上,但是却接下了这个评教系统的任务。记得我从网上找了一个现成的B-S架构的php评教系统,甚至和php, MySQL环境都是打包的。这个系统可以满足我80%的需求,但我需要修改源码来满足剩下的20%。写的非常粗糙,以至于放在标准php环境中满眼都是报错。尽管如此我一行行读它的代码,一点点理解。大约一周以后,我改出了自己评教系统的第一个版本。由于修改了大量不符合新的php版本建议的代码,源代码修改幅度大约在一半。界面上则使用了一块大黑板,在上面显示所有该班级教师的信息。还挂了一面锦旗显示班级名称。

系统被我安装在客户学校内的一台教师用计算机上,当知道任何一台计算机都能用作服务器时,他们很吃惊,也很满意。系统很好地满足了一个机房的学生同时上线参与评教,最后查看评教结果和排序统计的需求。我的第一个自己写的B-S系统就此圆满完成。

司法考试结束之后,我进入了一家律师事务所,在那,我继承并发扬了大学时候做网站的干劲。这是一家十分年轻的律师事务所,老板在互联网和内部管理方式上都很有想法。我改版和新建了好多网站,于此同时打起了律所内部系统的主意。

律师事务所使用一个2万元买来的老旧asp系统记录所有的客户信息,案件信息和律师工作台账。当时界面填写信息十分繁琐,软件公司只有一个程序员偶尔过来修改程序。我决定自己重写这套系统。

我的提议很快被批准了。我撰写了一个系统功能计划,在上大附中系统代码的基础上,我建立了新的MySQL表,新的HTML界面,中间混杂着各种php代码和SQL语句。

当时的我甚至还不知道MVC,我从Discuz!获得启发,建立了controller, function和view文件夹,分离了界面和数据库读写,将重复使用很多的php+HTML表格绘制抽象为一个exportTable()函数,给它设置了各种复杂的参数,以不变应万变。

2012年夏天,仍然在使用Dreamweaver编写php, HTML和SQL代码的我加入了Github,将自己的系统项目(原名starsys,现名syssh)搬了上去。版本管理的好处?是的,即使至今仍依稀可见上传的第一版代码

后来,我分离了Model和Controller,引入了正规军Codeigniter框架,使用AJAX技术将整个系统改为内部导航不需要刷新整个页面。使用同一系统为上大附中提供服务,作为其校园信息系统,这意味着同一数据库开始存储多个公司的信息,同一组代码开始为不同的公司服务(尽管只有两家)。很有野心的我花600大洋注册了五字母短域名sys.sh,欲做在“上海”滩通用的“系统”。

但与此同时,系统被捆绑地越来越死,越来越不能添加新的功能。业务需求不断的不能被满足。甚至系统的梳理和通用化的抽象常常梳理掉原本实用的功能。老板很失望,说我主动性下降,我也很失望,说老板不提供资源。

我始终相信这套系统是一定可以被做好的。2013年中,我决定停止更新syssh,重写整个系统。

这样的重写是在什么背景下的呢?1. 我与上大附中的系统合约刚刚完成,对方对我的系统并不是很满意,很多后续的需求看起来也不能被实现。2. 律师事务所有越来越多的新功能需求,系统的更新却停滞甚至倒退,大家对我的实力开始怀疑。3. 朋友中有新的学校,企业,公司甚至政府单位欲使用类似的系统,新的一波需求伴随着商机袭来。

我决定一个需求也不答应,自己重写自己的系统。我要做一个在后端层面通用的东西,所有数据都可以被转换,存储进来,而不需要写新的代码。我要做一个在前端开放的东西,所有企业都可以定制他们自己的页面,甚至不需要经过我的许可。

这样的东西要组成很简单,但却可以有很多种变化,而且牢不可破。我给它想了个名字:鲁班锁

待续


评论

《 “我是LubanLock的作者” 》 有 2 条评论

  1. wenchangming211

    请问鲁班锁的账号密码多少呢,谢谢!

    1. 陆 秋石

      这是一个神马都没有的系统,如果你想玩的话:guest1:guest

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据