开源周报

经过近一个月筹备,开源周报终于昂扬铿锵地上路了,参与开源越久,越能体会到开源带给这个时代和这个时代的我们的益处,本身开源就是一个开放协作的分享友谊,无数的程序员们将自己的项目和代码,大方骄傲地分享出来,然后有更多的程序员加入使用、共同开发中来,可以不客气地说,开源可能已经是推动IT领域发展最重要的一种形式和力量了。我们一直期待做一件事情,把开源领域好的东西遴选出来,新鲜的资讯,优秀的项目,发展的趋势,给老朋友和新朋友,给在校的学生,给已经奔跑在路上的程序员战友。今天这是开源周报的第0期,是我们这个尝试的开始。

开源周报的目标是:荟萃最新开源项目资讯,揽胜前瞻IT技术趋势。更新频率会是一周一期,每周一更新,同时会精选介绍一些开源周报提到的优秀开源项目。

时代走得很快,技术迭代和更新发展也很快,关注音乐的朋友一定知道,早先有Billboard、叱咤乐坛流行榜、华语音乐榜中榜、音乐风云榜等介绍一周或一月、一年最流行的音乐歌曲,在不晓得听什么歌的年代,关注这些音乐排行榜就对了,大多数是当时流行的红极一时的歌曲。而在我们IT领域,GitHub 是全球最大的代码托管平台,它也有一个 GitHub Trending 来介绍最近流行的开源项目,流行的判断标准主要是被 star 的数量,同时也会兼具参考被 fork 的数量。可以很容易通过 GitHub Trending 和我们的开源周报来了解最新的开源项目以及技术趋势,对于苟日新、日日新、瞬息万变的信息时代,这一点又格外重要和有意义。

如果你是一名学生,可以挑选最新的项目来关注、了解、参与、学习。
如果你已经在工作,可以关注到好的项目,站在巨人肩膀上,参与开放协作,不用重复造轮子,同时了解行业里最新的发展趋势和技术潮流。

Open Source Weekly 开源周报的固定网址为  https://openingsource.org/weekly/

本周开源趋势 Top 10

1.Google / boardgame.io

boardgame.io该框架可以让游戏开发者轻松的改变规则来应对某些特定动作,比如当一个特定动作触发的时候,通过几个简单的函数就能描述游戏状态的如何改变,其余的事情就有框架来做。方便对游戏做出修改。

特点:

  • 状态管理:游戏状态在浏览器,服务器和存储器之间自动进行无缝管理。
  • 原型:调试界面甚至在渲染游戏之前模拟移动。
  • 多人游戏:连接到同一游戏的所有浏览器都实时同步,不需要刷新。
  • 日志:具有时间旅行能力的游戏日志(以较早的状态查看棋盘)。
  • UI工具包:React组件用于常见的游戏元素(卡片等)。

编辑评论 : 就个人而言,这使得游戏维护以及调试变得简单(维护之前没有的bug的时候)。会极大地提高生产效率。针对游戏里面的一些小范围改动,比游戏开发者自己去写代码修改更快,更直接。可以减少代码量,使用现成的框架,可以实现丰富的功能。

2. parcel-bundler/parcel

parcel:非常快,不需要配置的网络应用打包机

特点:

非常快——打包时间,多核编译,一个文件系统的存储器的重建甚至只需要花费一次重启的时间就能完成。创造性的支持JS, CSS, HTML, file assets,而且不需要安装插件。在使用Babel, PostCSS, PostHTML甚至no_module时可以在需要时自动转变模块。在使用动态import()声明时没有配置代码的分离。建立时支持热插拔。友好的记录错误的方式——语法会自动高亮代码框架帮助找出问题

使用parcel的优点:

在使用其他打包机时都会有配置文件和插件,配置文件会占用很多时间,它们不仅复杂而难以调配,而且在每个应用打包时都要再配置一次,而parcel的零配置可以让你只要给它一个入口文件,就可以让它做正确的事。

parcel运用多核处理器去平行编译你的代码,这会在开始打包时带来巨大的速度提升,而且它会用自己的文件系统存储编译后的代码,使得随后的运行更为迅速。

现存的打包机一般都会在运行时在一个文件内进行大量的代码转换与生成,这会导致效率的下降,相反parcel使用抽象语法树AST来进行转换,保证每个文件只需要一种语法解析,许多转换,一条代码生成。

 

parcel的工作原理:

许多打包机都是基于JS文件与一种其他格式的,但是parcel不会知道文件的格式,它将不需要配置的对你期望的任何文件展开工作。有许多格式的文件会在parcel中有特别的定义——如何将他们转变成特殊的文件类型。

parcel会将一个资源树转化为一个打包树,在资源树完成时,资源将会被放入打包树中,一个包将会创建给入口文件,而子包会按照动态输入来创建,这导致了代码的分离,子包在文件以不同格式输入时也会被创建。如果一个资源需要更多的包,它将被运到打包树中最近的资源来源,保证一个文件只有一个包。

在包树生成后,每个包将被依照文件格式决定的打包机写入文件,这些打包机知道如何联合这些文件代码为最终在浏览器上读取的文件。

3.Lidanger/LiteDB.wiki_translation_zh-cn

LiteDB 是一个单数据文件.NET NoSQL的文档存储。它是一个小型的,轻量,快速的NoSQL嵌入式数据库,可以方便的存储和搜索文档。

特点 :

  • Serverless NoSQL 文档存储
  • 类似于 MongoDB 的简单 API
  • 100% C# 代码,支持.NET 3.5 / .NET 4.0 / NETStandard 1.3 / NETStandard 2.0,单 DLL (小于 300kb)
  • 支持线程和进程安全
  • 支持文档/操作级别的 ACID
  • 支持写失败后的数据还原 (日志模式)
  • 可使用 DES (AES) 加密算法进行数据文件加密
  • 可使用特性或 fluent 映射 API 将你的 POCO类映射为 BsonDocument
  • 可存储文件与流数据 (类似 MongoDB 的 GridFS)
  • 单数据文件存储 (类似 SQLite)
  • 支持基于文档字段索引的快速搜索 (每个集合支持多达16个索引)
  • 支持 LINQ 查询
  • Shell 命令行
  • 与 SQLite对比相当快
  • 开源,对所有人免费 - 包括商业应用
  • 可以从 NuGet 安装:Install-Package LiteDB

在线测试:

相关资源:

 

一个GUI(图形用户界面)查看工具 https://github.com/falahati/LiteDBViewer

一个GUI(图形用户界面)编辑工具 https://github.com/JosefNemec/LiteDbExplorer

Lucene.NET目录 https://github.com/sheryever/LiteDBDirectory

支持LINQPad https://github.com/adospace/litedbpad

支持F# https://github.com/Zaid-Ajaj/LiteDB.FSharp

4.Facebook/Docusaurus

Docusaurus是一个轻松构建,部署和维护开源项目网站的项目。

特点 :

  • 启动简单 Docusaurus被构建在尽可能短的时间内容易地启动和运行。我们已经构建了Docusaurus来处理网站构建过程,以便您可以专注于您的项目。
  • 本地化的 Docusaurus 通过CrowdIn 提供本地化支持。通过翻译文档来增强您的国际社区的地位。
  • 可自定义 虽然Docusaurus带有您需要开始的关键页面和部分,包括主页,文档部分,博客和其他支持页面,但它也是可自定义的,以确保您拥有一个独一无二的网站。

5.30 seconds of code

“30 seconds of code”意为30秒内可以理解的优秀JavaScript代码。这个项目收录了许多优秀的JavaScript的代码片段,这些代码依据ES6标准并通过Babel编写,确保了代码的向后兼容性,值得收藏并掌握。作者们已将代码分类并编写了目录,我们能够轻松地从中找到我们所需的知识。

6.math as code

这是一个用JavaScript的代码来解释数学符号的指南。程序员可以借此更容易的理解数学符号。数学家也可以借此使用程序来进行数学工作。该项目使用如下方式把数学符号和代码段一一对应:

7.popmotion

一个用来开发网页的js库,兼容众多浏览器,具有补间动画等快捷功能,能快速,简单的达到许多不错的网页效果,同时支持CSS,SVG等诸多风格。

安装:

npm install popmotipn --save

导入:

import { tween } from 'popmotion'

 

示例:

tween({
    from: {x:24, y: 200},
    to: 0, //Both x and y will tween to 0
    ease: { x:easing.easeOut, y: easing.easeIn }
})

 

8.Coding interview university

教你一步步成为合格软件工程师的学习指南,目前已有包括中文在内的多国语言版本。

项目片段 :

9.RectDec

基于LLVM的解码器,支持众多格式和架构。目前也提供网页服务,可以输出c python代码文件。

目前支持Win7(及以上),Linux,unofficially macOS

 

10.Git Flight Rules

飞行指南(错误指南),以如下的形式详细阐述了各种问题情形下你应采取的措施。

好了,本期第0期开源周报到此就结束了,今年还能再见一面,先祝大家给自己的女朋友买好了元旦礼物!下次周报再提醒你就来不及了老铁!