Zn - 面向业务的编程语言

demohn2016:GitHub 传送门:reg0007/Zn

写在前面

去年入职了一家新公司,负责的是一个行业的具体业务。入职没多久便遇到了命名问题:很多业务相关的名词都是用中文表述的,翻译成对应的英文相当困难。好不容易各种翻箱倒柜找到了对应的翻译命名,结果 review 同事的代码时直接晕倒:同一个中文名词在不同人手里有着 3 种完全不同的名字!

自此之后我便思考:业务代码说到底就是 CRUD,又不需要开源给老外看,为何不直接用中文命名呢?而目前大部分编程语言(如 Go, Python, JS 等)都是基于英文设计,直接使用中文命名必然会导致频繁地切换输入法,最终写出来的代码也不够协调;所以最后决定自己设计一门纯粹面向业务的编程语言吧!于是我就花了大约一年的时间去开发Zn

目前 Zn 的基本语法已经实现(见后面的图),但是距离一门真正可用的语言还有一段距离,所以目测会有些 bug,还请多多详解。

简介

Zn 是一门 面向业务 的编程语言。

所谓「面向业务」,即是为用户开发业务代码时提供便利,使得用户能够快速根据真实需求投射出简洁、稳定、可维护的代码。Zn 在设计之初即强调「以人为本」,希望程序能够适应真实世界的需求而不是让开发者去适应代码逻辑。

为此,Zn 拥有以下独特的特性:

  • 采用 中文关键词及标点符号。这样再也不用为「用英文命名变量」之事发愁了。

  • 默认使用 高精度小数 作为数值并参与运算,杜绝因浮点数计算所带来的计算误差。

    这一点对开发金融应用尤为关键。显然,诸如 0.1 + 0.2 = 0.30000000000000004 这样的结果在金融应用中是无法忍受的。

  • 贴近汉语本身语法,阅读代码可以像阅读文章一样自然。

  • 关键词之间不必用空格分隔。

Zn 语言采用 Go 开发。之所以选用它是因为它在开发效率以及运行效率间取得了平衡,而且里面内置的函数库也帮助省去了很多开发上的障碍(比如 高精度运算使用 math/big 库,里面直接使用 Go 自己的 GC 等);之后将 Zn 内嵌到已有的 Go 项目里也会变得十分简单。

详细见 GitHub

代码预览

Zn - 面向业务的编程语言

求解鸡兔同笼问题

Zn - 面向业务的编程语言
流程控制代码:循环、遍历、如果

Zn - 面向业务的编程语言

调用方法

Zn - 面向业务的编程语言

定义一个类,并调用其方法

xgfan:给你介绍 @xuanwu
你们俩可以好好交流下。

写文档比写代码难多了

heboy:最近计划开源一个项目,功能很简单总共就 3 个命令加一些扩展,结果文档写了两个月还是不满意,删了写写了删。真的比写代码还纠结wysnylc:文字的历史比代码可久多了 rimutuyuan:写文档还好,写解决方案才费劲,想起了被 800 字支配的恐惧

请问有没有什么开源的成就系统?

linvaux:事情是酱紫的 为了激励我们公司的测试小伙伴多学习写代码,我想搞一个成就系统,根据每个人在 gitlab 的代码量和代码质量,来颁发不同的成就奖章。 所以想请教下各位大佬,有没有现成的成就系统,最好是能接入 gitlab 的。 因为我发现 apple watch 的运动成就那一套挺好玩的,会激励我多运动,来获得各种各样的奖章,所以才萌生了这样的…

工作两个月,请问如何提高项目设计、代码架构方面的知识

abgnwl:rt,入职之后,可以在同事的指导下开展工作了。 但是一些代码的设计,每个模块具体做什么用,为什么要这么分模块,模块间交互传递什么变量什么信息,这种不知道如何了解。 感觉像软件工程的知识,可能还带有一点设计模式、领域驱动设计,这种知识怎么了解比较好呢?有没有推荐的书,谢谢各位大佬beyondye:先写好业务代码 frandy:多看开源项目的代码,…

求一个开源的产品介绍网站源码

hushiwei:hello,大家好。本人现在有一个简单的需求,就是将一些产品挂在网站上展示即可,包含图片和文字描述。不需要购买功能,支付功能。 所以我想找一套开源的代码,能实现这个功能即可,本人会 Python,应该也能自己买域名和服务器,将其部署起来。不知道大家有没有推荐的代码。 功能类似这个网站即可。 http://x-yaot.com/ 如果没有开源…

一键拷贝常用动画效果 CSS 代码

jeffjade:CSSFX,一个 CSS 动效相关的网站: https://cssfx.lovejade.cn/ 。她集合 Web 开发中常用的动画效果,如鼠标悬停、输入框获取焦点、加载、以及其他动画;不仅有展示效果,并提供一键拷贝至剪切板,以便您可以在自己的项目中使用。 备注:这个项目是基于 GitHub 的一个项目( CSSFX ?) fork 而来,…