我已经编写了一个cli工具,但尚未投放市场,它在第一周的安装量仍为1000 npm

虽然我宁愿安装yearn

七天前(今天是2018年,4月12日),我在npm上发布了Hubi的概念证明,只是为了提醒自己如何做(一年前,我草拟了另一个软件包)。

由于该程序包还不够成熟,无法吸引读者,因此我没有进行市场推广,但是它在首日仍获得41次下载,而今天它的下载量为1,042,与大型项目相比虽然不算多,但我仍然很自豪,因为我已经从来没有想过,没有市场营销的项目可以吸引到那么多人—哦,我多么热爱互联网,这个奇妙的地方!

抱歉,如果上口的短语使您认为我知道该重复的话。 该死的,与一个软件包的平均初始阶段相比,我什至不知道这个数字在哪里。 这是Hubi的第一个营销方式,也是求助的呼声。


埃里克·埃文斯(Eric Evans)向我介绍了一种工具,该工具可以在谈论开发人员和领域专家之间的鸿沟时弥合他们的专长。

问题在于,使用像他提出的那样的语言是域驱动设计[DDD]的基本要素,因此人们经常认为,如果他们还使用DDD附带的其他部分,则只能从说出它的好处中获益。 。

老实说,如果您遵循本书中的DDD,您将拥有一个过于复杂的架构,不适合市场​​上的大多数项目。 我认为,选择DDD的优点比较有用,对我来说,这包括将无处不在的语言编码为代码库的一部分,为可以标识的对象提供实体,为不能标识的对象提供不可变的对象,并使用工厂允许上下文指控。

但是你只能选一个!

如果我只选择一种语言,那么可以肯定的是,它将和所有其他利益相关方一样讲相同的语言。 与非技术人员交流时,生活变得更轻松。

我在编码领域知识时遇到了一些问题。 我发现自己一遍又一遍地在不同文件中写有关某个域的特定部分的文章。 我什至用书签标记了一个拉取请求,其中包含我应该在给定项目中更改的所有文件的样本。

后端存储库中的强制文件为8:grapgQL类型,我们的域模型及其测试,内部框架及其测试所需的映射文件,序列化模型,夹具工厂和序列化迁移。

为了使用另一端的更改,在同等的前端中至少有3个:域模型,查询组件和夹具工厂。 但是根据更改,我们可能至少要接触3个以上的文件:react组件及其故事书和测试,或者(可能是“和”)redux有效负载及其mapToWhatever和测试。

大约有14个文件,我可能会忘记一些文件,因为我无法再访问该书签。 更不用说我什至不知道的其他团队的仓库中的相关文件了。

那是很多不必要和重复的工作

由于重复的原因,违反DRY原则很无聊,当您没有一个系统来帮助您记住它们时(例如作为我的书签),它会忘记一些需要更改的文件。

当时,我以为原理是重复相同的代码不超过三次(我的个人规则开始重构),但是最近我了解到DRYing代替了重复领域知识

等待。

如果无所不在的语言是关于领域知识的,而DRY也是关于它的,那么是否有可能创建一个工具以编程方式为我编写所有这些文件更改?

其实是。 我已经创建了一个名为hubi的npm库,它是无声的“ h”,应该可以做到这一点。


今天(2018年4月12日),hubi的第三个版本已经有一个星期的历史了。 使用〜1040 npm安装和〜130 github克隆。

除了将您所有的普遍知识记录到一个html页面中,感兴趣的各方可以了解或记住您项目的普遍语言之外,它目前并没有做太多事情。 Hubi的网站由Hubi本身生成!

它生成的网站在视觉上还是很吸引人的,但就目前而言,它仍然是吸引人的。 尽管有所改进,但仍在规划中。

尽管该项目还不够成熟,无法像我预期的那样使用,但是仅仅为了记录您的语言而使用它可能已经是您想要的东西。

请帮我

但我的意思是,这将是一个开放式的cli工具,人们可以在其中使用自己的Translators进行贡献-该对象以给定的语言生成相关的源文件。

目前,我正在研究一种生成使用joi的js文件的方法,但是我也希望其他人可以从事生成graphQL类型的工作。

我还要感谢您对自述文件,路线图和贡献文件的反馈。 当我写它们时,我可能对它们的质量视而不见。

到目前为止,我对结果非常满意,这已经是一所学校。 特别是在一些我工作量不大的领域:

  • 配置CI:尝试自动执行大部分产品部署是一个挑战
  • 产品发布:显然与发布git版本完全不同

PS:我想我终于学会了如何拼写u̶b̶i̶q̶u̶o̶t̶u̶无处不在的😂


请分享并鼓掌以进一步帮助我。 有提及您可以随心所欲拍拍吗?