工控网首页
>

新闻中心

>

业界动态

>

如何在GitHub上开源一套受欢迎的组态软件

如何在GitHub上开源一套受欢迎的组态软件

2018/3/27 16:30:41

工控小滢:老坏猫是个有故事的人。上次,小编约他做了篇《组态软件测评∣WinCC、Citect、LabVIEW、InTouch、Ingnition,你更喜欢用哪个?》(想知道老坏猫的个人简介,请点击~),读者反响热烈。

为啥找到老坏猫来做测评?下面这篇他的自述或能说明答案。

有一天,我在GitHub上开源了一套组态软件SharpScada


2017年国庆,我在GitHub上开源了一套C#写的组态软件SharpScada。


SharpScada一经推出之后,反响超出预期,收获的星星已达486,月均100,在C#语言的总排名612位(目前C#开源项目总数接近20万个),国内C#开源项目排名24位,SCADA/HMI/工控项目排名第一位。


GitHub是一个面向开源及私有软件项目的托管平台,因为只支持git作为唯一的版本库格式进行托管,故名GitHub。它于2008年4月10日正式上线,除了git代码仓库托管及基本的Web管理界面以外,还提供订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。目前,超过180万个企业和组织使用GitHub。

SharpScada地址:https://github.com/GavinYellow/SharpSCADA


虽然在群星荟萃的GitHub不算什么,和那些成千上万星星的大牛项目更是没法比,不过C#及.NET生态圈在开源界只是后起之秀,人气远不及javascript、JAVA这些老前辈,我对这个项目的表现已经很满意了。


开源之后,有很多素不相识的同行给我点赞,他们也好奇我为什么要做这个开源,开发的过程是怎样,等等。回想起来,当年自己是怎样从编程菜鸟,一步步成长,中间的甘苦只有自己知道,但是把经验教训、个人感悟写出来,或许能对同道有所启发。


半道出家,找到最合适我的“码农”角色


我本人并不是科班出身的码农。大学之前我并不知道自己对什么职业感兴趣,在父亲建议之下选择了机电这种万金油行业,但是很快发现自己对机械毫无兴趣。大学期间(小编注:笔者2000年大学毕业),编程已经逐渐热门起来了,我也曾经试图涉猎,但看了几本《C++入门经典》这类的书之后决定放弃。其书有国产教材的通病,晦涩难懂,充斥术语,让我对编程产生畏难心理。


但这段时间也不是一无所成,我发现了自己对数学的爱好,业余攻读了离散数学、编译原理、数学建模,虽然只是走马观花,但对我之后的编程之路大有裨益。


这样浑浑噩噩地度过了大学时光之后,并没有什么一技之长,只能搞搞本行。不过我给自己定了个目标,如果三十岁之前找不到自己真正想做的事情,就埋头研究机械吧。


幸运的是,很快我就因为一个偶然的机会踏上了码农之路,找到了最适合我的职业。


当时是一个做ERP的朋友需要搞定一个机电行业的老板,拉我做说客。项目谈成了,朋友嫌单子小要求多,放弃了。我却因此对软件的设计产生了兴趣,并愿意接下这个单子,自己试试。


现在想来,也实在是当时年轻,无知者无畏,在对需求分析、代码实现几乎一无所知的情况下就敢做如此承诺。但也因为这个机会,逼得我白天上班,晚上熬夜研究代码,每天睡眠时间不足四小时。这样过了半年,项目做了个半吊子,从此却迷上了编程,一发而不可收。


这半年时间,我从最基本的概念开始学起,比如最基本的数据库的连接、数据库建表,VB语言+Visual Studio6.0编程环境,到关系数据库设计、存储过程、面向对象。每一个概念都力求吃透,理解不透就网上百度,如果一个概念没想明白,晚上睡觉都不安稳。这样半年多的魔鬼经历,让我建立了编程语言+编程环境+数据库设计的基本概念,对程序设计有了基本的理解。后面再学习新概念,就轻松多了。


如果说我有什么天生的码农特质,大概有两点:兴趣+完美主义。


第一是我不信“行行出状元”,我只能从事我感兴趣的事业。

第二是我一旦产生兴趣,就会进入狂热状态,而且有完美主义(或者说强迫症)倾向,这点在我打电脑游戏状态下尤为突出,明明通关了还要反复提高难度自虐;而在程序设计领域,就表现为一开始就高度重视程序的架构和质量,用了一种方法实现却并不满足,总是在追寻“最佳”解决方案,设计哪怕一个小项目,也以“类库”的标准要求自己,力求用最少的代码,还要高性能、高扩展。


这种习惯对我的成长尤为重要,虽然一开始比较累,明明可以快速搭建的项目,却逼的自己搜集大量资料,比较各种方案,反复推敲。但是一旦造好轮子,未来这些代码库都是你的财富,做新项目就可以顺手拈来,越做越轻松。


埋头苦干不抬头的码农绝对不是好码农,只有对自己熟悉的领域驾轻就熟、可以抽出时间在新领域进一步的提升,才是正道。


为什么要做开源SCADA?


随着软件水平的提升,我也转型成为了一枚挂着“电气工程师”名号的码农。当时主要工作是开发工控上位机程序,单位需要一套新系统,除了能实现设备监控,还有一定的生产管理功能。


而我当时目睹了在西门子WINCC基础上二次开发的各种不适,如VB脚本功能有限、WINCC编程环境复杂庞大、对非西门子设备的通讯是老大难问题,等等。


于是,萌生了自己做一套组态系统的想法。当时的我已经从菜鸟升级为老鸟,虽然依旧带着当年不会写代码就敢做ERP的楞劲,但我已经具备了一定的项目分析能力和程序设计经验。在搜集大量资料,仔细分析了OPC规范,我认为自己开发一套组态系统还是有可能实现的。


然而,这个想法很快被单位否决了,因为大家都认为我靠个人力量做出能替代老外大公司的软件,实在脑洞有点大,也没有列入工作计划。


但我并不死心,业余自己搞。结合自己多年的代码库,从实现一个OPC客户端开始逐步向设计组态软件的目标逐步靠拢。就这样若干年,OPC客户端-OPC服务器-西门子驱动-WPF界面控件-VisualStudio设计器扩展-表达式编译器,这些组态软件的零部件,一个个生产出来了。最后就有了SharpSCADA这个麻雀虽小五脏俱全的系统。


我的设计目标,就是四个字:多快好省。多,就是驱动类型多,适应的行业多。快,就是设计速度快,用搭积木的方式构建系统,同时运行速度尽可能快。好,就是系统稳定,界面美观,扩展性好。省,就是完全免费,省钱省力。从开始构思项目到现在,将近10年时间,可以说目前正在越来越接近这一目标。


设计这套系统的时候,GitHub和开源社区在国内并不流行,网上能找到的开源库并不丰富,尤其是工控开源库更是奇缺,很多时候要靠自己从头造轮子,亲身经历,实在很累。而.NET在国内发展的并不好,其他语言的程序员看不起甚至排斥.NET,认为.NET做不了大系统,这不行那不行,甚至不少.NET程序员居然有自卑感,让我颇为不平。所以,我萌生了将这个项目开源的想法。


如何开发一个受欢迎的开源系统?


项目从去年十月份开源到现在,反响良好。我在推出项目之前,为项目如何推广先做了一番构思。


首先我选定了Github和国内的码云两个平台发布。Github是全世界最大的开源平台,人气极旺,影响最大,发展趋势最好;而码云作为国内最大的开源平台,在国内访问流畅,也可以与Github很方便的同步,相当于git的国内镜像。


研究分析了几个Github上颇有人气的项目,我得到几点结论,并做了实践,取得了不错的效果:

📌越有人气的项目,越受关注

当然前提是你的项目要足够好。

但是你作为一个业内无名小卒,无论项目多好,大概很久都是零Star,因为根本不会有人关注到。Github上几千万个项目,据说8成以上从来没有一个Star,而Star越多的项目吸引的眼球也越多,参与者如果发现项目确实不错,也会介绍给朋友、同事,同时你的项目被google、百度等大引擎收纳的概率也越大。现在项目我即便不做任何推广,每个月通过搜索引擎和程序员网站也能获得不少点击。


📌要自己做推广

为了在项目初始阶段获得点击,必须做相应的推广。

我想到了国内最大的程序员网站博客园和CSDN(小编注:专业IT技术社区)。但用了CSDN后发现一个问题,因为我籍籍无名,发出去的文章根本没有人推荐,也不可能登上CSDN头条,想在CSDN获得流量和人气只有你积累一定声望之后。

而博客园显然更为“亲民”,编辑如果觉得你的文章不错,就有可能上首页推荐。因此,我认真构思了第一篇博客,花了一番心思搞的图文并茂,果然很快上了博客园首页推荐和头条,一下子为项目获得了大量点击和star(两周内就超过了100),算是旗开得胜。也因此一发不可收,连续写了十篇博客,成为一个系列,并多次登上博客园首页甚至头条,为项目带来了人气,也认识了一大批博友。


📌英语要好,最好要有双语支持

我的项目虽然反响尚可,但提出issue和push的次数很少,大部分都是国内同行下载。虽然也有国外朋友提出英文版,怎奈我的英文水平实在拿不出手,一直没有动作。国外的程序员感觉更有分享精神,热心参与,积极提交问题和改进,而国内大概因为大家都苦于生计,个人时间也有限,看的多,参与的少。如果这个项目想获得进一步的发展完善,应该推出英文版的说明,并及时解决提交的问题。

心声


这个项目得到了业内前辈和众多网友的鼎力支持,在此表示感谢。下面我会继续完善这个项目,尤其是在目前欠缺的Web展示、三维显示、分布式数据库等领域开拓。但我一个人的精力是很有限的,希望能有更多热心工控、热心开源的朋友参与进来,为.NET社区及国内工控行业的发展尽自己的一份努力。


工控小滢:虽然俗语有云“男怕入错行”,却被老坏猫的“一根筋儿”打败,而立之前能与自己的兴趣“喜结良缘”,真真让看官们由衷地感到欣慰。看到一丝机会,十年磨一剑地苦心钻研,如果这都不是我们所提倡的“工匠精神”,还何以称之?


工控小编相信,手机屏幕前还有诸多低调的“隐身大拿”,欢迎你们撕掉“隐身衣”,和我们分享你们早已习惯了的默默钻研及不俗的成果~

欢迎留言,等着你~



投诉建议

提交

查看更多评论
其他资讯

查看更多

进博时刻丨定义未来技术方向,立足产品诠释新质生产力

可靠反馈位置信息的真图像技术无需密封空气

倒计时9天!第23届中国自动化+数字化“新质奖”送选火热进行中

科美新闻丨科美控股获中国煤炭工业协会科学技术奖

钢结构移动焊接机器人