Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

开发日志 #2

Open
zuowenjian opened this issue Apr 17, 2018 · 11 comments
Open

开发日志 #2

zuowenjian opened this issue Apr 17, 2018 · 11 comments
Assignees
Labels
Milestone

Comments

@zuowenjian
Copy link
Contributor

zuowenjian commented Apr 17, 2018

因学习rust,以及工作需要,想到用rust 来完成rigger-ng的重写。开源不是简单的公开自己的代码,它是:

  • 获得更高质量实现的方法,
  • 追求更正确的软件开发方法
  • 面向协作的项目实施方式

在此开设 issues 来记录 rigger-nx的项目的历程。 
开源无疑是软件开发先进生产力的代表之一,希望有更多的同学学习或加入开源项目。

@zuowenjian
Copy link
Contributor Author

zuowenjian commented Apr 17, 2018

2018-4-17:
项目,需要设定目标、规划、核心设计,这需要一个核心人员来完成,通常有且只有一个人来完成这些工作。
需要完成此项工作 #3 #4

@zuowenjian zuowenjian self-assigned this Apr 17, 2018
@zuowenjian zuowenjian added this to the design milestone Apr 17, 2018
@zuowenjian
Copy link
Contributor Author

zuowenjian commented Apr 17, 2018

2018-4-17:
今天进行了一些设计,使用keynote 画了一些示意图。在此设计文档
视觉效果还可以。

在以代码进行设计验证时,发现解析rigger-ng yaml conf 文件是个前置问题。因此建立了 #6
找到yaml-rust 库,发现不支持 tag . 

- !env
   

还需练习阅读 英文的 issue!
今天先工作到这里。 @baoyachi 加入到此项目。it's Good!

@zuowenjian
Copy link
Contributor Author

zuowenjian commented Apr 19, 2018

2018-4-19:
在如何把yaml conf 还原为对象遇到问题。
1 yaml-rust 不支持 tag , 找了一其它的库,没有找合适的,想到是不是把yaml 换成toml , 但对于兼容rigger-ng 会有很大的问题。不能卡在此处,先把Yaml Tag 换成 _type 来表示。后续应会有办法解决。(如:sed替换)
2 “env,system,project, modul” 核心对象的从配置中生成,也没有清晰的方案,先设计、实现看下效果。在编写代码中寻求合理方案。 过程,如同在黑板画草图,一个不行,马上擦掉重新再画。

工作中任务挺重,写写开源算是放松下。

@zuowenjian
Copy link
Contributor Author

2018-4-21:
“env,system,project, modul” ,对象的生成结构有了初步的设计实现。不过遇到小的rust 测试的问题,就是测试用例,没有的bootstrap, 这样像 日志的初始化,得在每个test方法下重做,还会因多线程运行时出错。
为复现开发的过程,在重要阶段,会建立tag . 今天的tag是: dsn-2

@zuowenjian
Copy link
Contributor Author

zuowenjian commented Apr 22, 2018

2018-4-22:
周末的工作还是挺成效
1、Res 的实现设计,即trait 拆分达到较合理状态。 #11
2、Res 的构造器,已有初步实现。可以根据Parser,给出的数据来构造Res实例。

在设计的思考:
在白板或纸上完成大粒度设计;
在代码层面完成细节的设计,(可验证、但要反复重构)

添加以下的tag, 可以diff 出变化
dsn-3
dsn-4
dsn-5
dsn-6

关于学习:
对于新人来说,经验丰富的老司机,在项目过程的思考决策过程,是比代码结果更有价值的。这也是我写开发日志的目的,希望新同学可以获得启示。

@zuowenjian
Copy link
Contributor Author

zuowenjian commented Apr 22, 2018

谈点做开源的心态。

开源世界是个宝库,同一个领域存在多个方案多种实现。牛人也特别多,但这些能不能被你所用,这完全取决你自己,而非别人。 代码、讨论、文稿、专家都在那里,基本想拿就拿想问就问。
想做好开源,就得有主动的精神
开源驱动力来自于创造,创造是一个主动行为,是一个主动发现机会,创造价值的过程。 

学习一个关于Contributions 的要求: Rocket

Contributions are absolutely, positively welcome and encouraged! Contributions come in many forms. You could:

Submit a feature request or bug report as an issue.
Ask for improved documentation as an issue.
Comment on issues that require feedback.
Contribute code via pull requests.

We aim to keep Rocket's code quality at the highest level. This means that any code you contribute must be:

Commented: Public items must be commented.
Documented: Exposed items must have rustdoc comments with examples, if applicable.
Styled: Your code should be rustfmt'd when possible.
Simple: Your code should accomplish its task as simply and idiomatically as possible.
Tested: You must add (and pass) convincing tests for any functionality you add.
Focused: Your code should do what it's supposed to do and nothing more.

All pull requests are code reviewed and tested by the CI. Note that unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in Rocket by you shall be dual licensed under the MIT License and Apache License, Version 2.0, without any additional terms or conditions.

@zuowenjian
Copy link
Contributor Author

2018-4-23:
在 extends 库里实现 Link 的 Res  #9 但并没完成,又出了新问题,如何替换${HOME}  环境变量!

@baoyachi
Copy link
Contributor

baoyachi commented Apr 23, 2018

官网使用vuepress搭建,现在还有些小问题没解决,明天再试试
😴 🛌 💤
#13

@zuowenjian
Copy link
Contributor Author

zuowenjian commented Apr 26, 2018

2018-4-26:

确定了项目的目标:私有部署的程序分发平台
设计

确认: #23 #24 是后续需要解的工作。

@zuowenjian zuowenjian added the log label Apr 27, 2018
@zuowenjian
Copy link
Contributor Author

zuowenjian commented Apr 29, 2018

2018-4-29:

完成 #23 ,实现,cmd的注册、生成的功能,当前已完成 rigger-ng  80%设计性工作。 为什么设计会花之么久的时间? 主要看设计都包括那些工作。当前代码3000行左右

核心抽象
主要概念的使用接口

质量标准:

  • 抽象合理、自然;
  • 接口优雅
  • 整体运行良好。
  • 工程架构(测试驱动)可以推进项目的进展。

这些工作,都没有办法在图型设计(UML)层面来实现与验证。需要在code层面进行。

@zuowenjian
Copy link
Contributor Author

zuowenjian commented Apr 30, 2018

2018-4-30:

今天最大的进展 是项目与travis-ci服务进行集成,地址可见: https://travis-ci.org/xcodecraft/rigger
在进行PR的时,自动执行项目的单元测试,这真是非常爽的事情。 也开心在 README.md 上添加 build:passing 的logo.

在与朋友谈到做开源的时候,我说,我希望更多的技术同学应该拥抱开源,因为参与开源协作,就是与当今最先进的软件开发生态对接,学习最优秀的开发方式,优秀的文化,从而让自己可以打开眼界,改变思维。让自己更有目标、更主动、为世界交付你的创造价值。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants