编码机

程序员如何实现编码黄金标准CSDN

发布时间:2024/1/28 15:38:05   
编程的黄金标准是Linux,版本控制的黄金标准是Git——那么程序员是否可以合理地同时使用代码和模型,并用版本控制管理两者?本文分享如何利用Linux,Git,MetaEdit+三剑客解决版本管理、建模和编程的问题。以下为译文:有人经常讽刺码农不愿意建模,不过我持保留意见。我认为我们只是不愿意浪费时间去做那些无法产生任何实际的效益,只为了满足某些毫无意义的规则的事情。而且我们中的绝大多数人都不愿意做两次同样的事情。所以为了管理而事后画UML、做文档的事情不会有人做的。我们喜欢我们的语言、框架和工具,对我们来说放弃这些很困难。非程序员也许很喜欢建模,他们喜欢可见的形式,但通常建模并不能代替代码。说服程序员进行建模最常见的说辞就是状态机。if...elseif或switch...case的结构并不清晰,文本形式的DSL也不行,只有图能做到。就连Linux的内核GitHub上都有个状态机的图——尽管是用ASCII画的!*

*V*+---STARTUP----+*

*

V

*

DRAIN----+*

*

V

*+---PROBE_BW----+*

^

*

*

+----+

*

*+----PROBE_RTT--+大多数人都因为ASCII的使用不便和耗费时间,而宁愿选择实际的图形工具。而先画图再写代码或者先写代码再画图会导致重复性工作和两者不同步,因此应该以状态模型作为唯一的标准——如同用其他语言编写项目的某些部分,一切只为了选择最佳表现形式。只要一切都能自动构建和集成,并且版本控制也能正常使用,那就很好。但是,一般情况下事实并非如此:因此才有了上述ASCII画的图形。那么我们可以改变这种状况吗?我们是否可以合理地同时使用代码和模型,并用版本控制管理两者?能否不需要大量的额外工作,特别是在使用的时候不需要额外工作?好了,废话你也看够了,下面开始上干货。三位芬兰剑客:Linux,Git和MetaEdit+由于编程的黄金标准是Linux,版本控制的黄金标准是Git,而两者都源自芬兰,让我们来看看怎样让第三个芬兰朋友与两者融合提供帮助。MetaEdit+是一个建模工具,也是一个语言工作台(一种可以让你轻松地创建自己的建模语言和代码生成的工具)。很方便的一点是,它还支持Linux、Git以及IDE等其他集成工具。而且它还有一个很好的“数字手表”的状态机示例及其完整的代码生成功能。完整的代码生成功能?!那岂不成了一个可怕的流程图,上面充斥着IF,GOTO和IDE不支持的内联代码片段?又或者非常笨重,难以阅读,效率低下的一堆代码吗?幸运的是不会。这种图形语言和它的代码生成器都是领域专用的,也就是说是针对任务微调过的(例如制作数字手表应用的任务)。因此,里面的东西大家都认识,如果你没有接触过该领域的工作,那么这一切也许对你来说很陌生,但是你依然可以理解模型和代码。上述是一个秒表应用程序的图。这个手表可以处于多种状态,你可以按按钮进行操作并移至新状态,操作类似于设置时间变量或打开显示屏上的图标等。简而言之,该应用的内部处理由代码生成和一个小状态机框架组成,你可以通过该语言从手表终端用户的角度进行设计。你可以试试看Linux下的MetaEdit,如果你的IDE使用Eclipse的话,还可以下载Eclipse插件。有关详细信息,请参照该手表的示例:

转载请注明:http://www.aideyishus.com/lkgx/6272.html

------分隔线----------------------------