学徒期开源阶段的第二周,仍然是充满知识、良好经验和最重要挑战的一周。寻找可以贡献的项目对我来说是一个挑战,但最终我找到了另一个可以开始贡献的 JavaScript 项目。除此之外,我还继续获得不同的知识。接下来,我将写下我在一周内学到的东西。
我学会了如何收藏我ñ的Java使用泛型。这在使用任何实现 List 接口的类(例如 ArrayList 或 LinkedList)时提供了很大的好处,因为它们允许将任何类型的数据传递给列表,只要它们是一个对象。我还了解了 IntelliJ Idea 提供的一些工具,因此我学会了如何在 IntelliJ Idea 中为 Java 项目选择特定的 JDK 版本。
我了解了更多关于依赖注入是如何工作的以及使用这个原则的好处。依赖注入的原理是一组技术,其主要目标是减少软件中组件的耦合。它们主要使用接口而不是对类的直接引用,这样可以更轻松地替换组件。我还学习了 Angular 框架是如何实现依赖注入的。
我了解了一种促进测试驱动开发的工具,称为 Karma。该工具挂载了一个网络服务器,以便在客户端执行测试,从任何网络浏览器,测试结果将通过终端显示给用户,这使程序员更容易找到错误所在。为此,必须使用 NodeJS 运行服务器,因为客户端(浏览器)必须首先连接到服务器。
我学习了 Angular 中双向绑定的工作原理,它允许我们以双向方式修改属性的值,这样当我们在视图中修改属性的值时,该值也会在数据模型中更新。如果我们在视图中使用文本框更改属性的值,那么该值会在视图和组件中更改,这非常有用。
我了解了 Java 中的抽象类是什么,它实际上与常规类相同,抽象类可以具有属性、方法、构造函数等。常规类和抽象类之间的主要区别在于抽象类必须具有至少一种抽象方法。使用抽象类较少见,一般选择使用接口,因为类只能继承一个抽象类,但实现很多接口。
对开源的贡献
我在 GitHub 上搜索了主要用 JavaScript 开发的不同开源项目。我发现了一个引起我注意的叫 deltachat-desktop 的项目,这是一个开源项目,旨在成为基于电子邮件的桌面即时消息。
我设置了环境,并探索了项目的所有代码。该项目使用 Electron 技术,该技术用于使用 HTML、JavaScript 和 CSS 等 Web 技术制作桌面应用程序。在这个项目中,我们选择使用 TypeScript 而不是纯 JavaScript。TypeScript 是 JavaScript 的超集,它本质上添加了静态类型和基于类的对象。由于 Electron 需要 JavaScript 才能正常运行,因此在运行应用程序之前,所有用 TypeScript 编写的代码都会转换为 JavaScript 代码。
这是一个大项目,要完全理解它是很复杂的,因为我以前从未使用过 Electron 技术,但我逐渐对它的工作原理有了更好的了解。我希望接下来的一周能够解决引起我注意的两个问题。
这是项目的链接:https : //github.com/deltachat/deltachat-desktop
最后的想法
本周对我来说非常有成效,因为我正在研究开源项目的一些主题,所以我学到了很多东西。我还能够体验与 Encora 客户一起工作的面试,这是非常有益的,因为我能够衡量我迄今为止所掌握的知识以及我必须改进的要点。我希望下周继续学习很多东西,同时我继续为开源社区做出贡献。
七爪网7claw.com