Giter Site home page Giter Site logo

duheng / mozi Goto Github PK

View Code? Open in Web Editor NEW
519.0 18.0 93.0 34.35 MB

此项目致力于构建一套最基础,最精简,可维护的react-native项目,支持ios,android 🌹

License: MIT License

JavaScript 86.26% Java 3.59% Objective-C 8.14% Starlark 2.01%
react-navigation react-native react-navigation-redux react-redux prettier-eslint eslint es6 react reactjs react-native-app

mozi's Introduction

Mozi 2.0-beta

npm CircleCI Codecov branch

此项目致力于构建一套可最基础,最精简,可维护的 react-native 项目,适用于团队合作开发 React Native 项目,我们知道 react-native init 出来的项目只是一个最简单的 demo,距离开发企业级项目还差很远,所以这套框架是我在开发中总结优化而来的,会提供群里关注度高的问题的解决方案以及 demo,此项目虽然还不够完善,但是以此为基础足可以搭建一个大型项目:

##升级 2.1-beta 说明:

  1- 增加auth分枝,包含登录功能,个人中心

##升级 2.0-beta 说明:

  1- 升级react-native到0.55.4;升级了react-navigation到2.5.5;这快改动比较大,如果你自己的项目有不会升级react-navigation的可以参考一下config.js
  2- 增加了消息推动和codepush,和jpush,目前安卓版本有效,ios因没有证书还没测试
  3- 删除了redux-saga,删除的原因并不是因为它不优秀,我个人觉得它很优秀,但是根据大多数工程师反馈不会用saga。而我个人觉得它是一个锦上添花的模块,并不是一个必须的,为了适应大多数工程师的使用习惯改回了原始版本。 注:(大家有喜欢用saga的也可以用 mozi1.0 的分枝)
  4-master分枝是2.0-beta版本,还没有完善,大家要用稳定版本的也可以用mozi1.0分枝
  5- 这个版本集成了codepush和jpush,因为我觉得这是每个成熟的产品都必须要有的功能,大家换成自己申请的key就可以了;如果觉得不需要某个我集成的功能可以直接 unlink就OK了;比如:react-native unlink react-native-code-push 这个模块

涉及主要技术

1.项目主架构:

  react-native,
  react-navigation,
  redux,
  redux-saga,

2.自动化工程部分

  eslint,
  prettier,
  editorconfig,
  pre-commit

项目初始化

请完全按照以下步骤启动项目,请完全按照以下步骤启动项目,请完全按照以下步骤启动项目,重要的事情说三遍

git clone https://github.com/duheng/Mozi.git

cd Mozi

yarn install

yarn start

yarn run ios (android)

windows用户请用 react-native run-android 命令启动

特别注意 目前 npm5 存在安装新库时会删除其他库的问题,导致项目无法正常运行。请尽量使用 yarn 代替 npm 操作;

项目演示



已经完善文档 & 已完善效果

一: 添加启动屏 API

二: 添加 icons

三: React Native 预设占位 placeholder

四:SectionList Demo & 下拉刷新

五:FlatList Demo

六:react-navigation 自定义可缩放头部

七:返回到指定页面(返回多级)

群号:397885169(有问题或者需求欢迎进群探讨 )

简书:http://www.jianshu.com/u/c971c7ffa27e

知乎:https://www.zhihu.com/people/duheng2011/activities

项目结构

├── README.md                   // help
├── src                         // Ract Native
│   ├── app                     // redux部分
│   │    ├── actions            // creat action
│   │    ├── constants          // constants
│   │    ├── reducers           // reducer
│   │    ├── sagas              // redux saga
│   │    ├── selectors          // 过滤以及准备view层需要的数据
│   │    └── store              // store
│   ├── commons                 // 共享基础模块
│   ├── components              // Ract Native 通用组件
│   ├── containers
│   │    └── page               // 具体业务模块
│   ├── routers                 // 路由部分
│   │    ├── index.js           // page模块聚合页
│   │    └── app.js             // 导航注册
│   ├── AppNavigationState.js   // Nvigation state 入口
│   ├── config.js               // 导航通用配置
│   └── root.js                 // Ract Native 入口页
│
├── ios                         // ios原生部分
├── index.js                    // 项目注册入口文件
├── android                     // android原生部分
├── node_modules                // 项目依赖包
├── __test__                    // 自动化测试
├── package.json                // 项目配置信息
├── pre-commit                  // 提交代码时按照.eslint的配置进行校验
├── .editorconfig               // 统一不同编辑器配置
├── .babelrc                    // 设置转码的规则,插件,文件地址映射
├── .eslintrc                   // 代码校验规则配置
└── yarn.lock                   // 依赖的版本信息管理

项目架构说明

  1. 在 redux 的集成方面采用了 es7 的 Decorator 的写法,这样写的优势是在不污染现有代码逻辑的前提下实现了链接 store(非侵入式编程**)
@connect(Selector筛选后符合渲染标准的数据, 当前页面需要的Actions)
export default class Zi extends Component {

}
  1. 采用了 redux-saga 来做扁平(描述性语言)化的数据组织方式,(优势是用同步的方式写异步码方便自动化测试,随意组织多个 action,代理 mock 数据,自由控制 loading)

  2. 在导航(react-navigation)的配置方面我封装了 config.js 的通用配置,默认会用通用配置,当你在业务页面配置了相应的字段会用你自己配置的覆盖默认的。实现了自由耦合。比如下面 demo 是 墨规范 页面我配置了 headerTitle 会用当前配置的:

  export default class Rule extends Component {
    static navigationOptions = {
      headerTitle: '墨规范',
    };
  }
  1. 待更新...

依赖库

1. react-navigation: 是官方主推的导航库,支持ios和安卓,如果你想很好的支持安卓用户最好用这个,
[导航器性能对比](http://reactnative.cn/docs/0.43/navigation.html)
2. redux:   a predictable state container
3. react-redux:  offical react binding for redux
4. redux-saga:  An alternative side effect model for Redux apps
5. redux-logger:    日志

组件库

 1.  MOUI: 是一套轻量的适用于react-native的ui组件库,待开发..
 2.  react-native-vector-icons: 是可以直接使用图片名就能加载图标的第三方库,类似于web的iconfont矢量图,使用很方便, 你不需要在工程文件夹里塞各种图片, 节省很多空间
 3. react-native-scrollable-tab-view:是一个很好用的可滑动的tab导航,(如果你的项目的tab没有超过一屏的话就用react-navigation的TabNavigator)

消息推送

1. jpush-react-native: 极光推送官方支持的 React Native 插件(Android & iOS)
2. react-native-code-push: 微软的热更新开源库

如何使用消息推送

全局搜索 896ea8641e9c62c38906de41 ,替换成自己的JPUSH_APPKEY就可以了

如何使用热更新

1. android部分:全局搜索 TyXCHztJx9rvb3Ogy5I4cVU-DHGH6a76e0de-a57f-4a89-b60d-01d72ab0675f ,替换成自己的安卓项目codepushkey就可以了;
2. ios部分: 全局搜索 5WgvzaDBLyL5zKjeLscIhfGKtJHb6a76e0de-a57f-4a89-b60d-01d72ab0675f ,替换成自己的ios项目codepushkey就可以了;

编程规范

编程规范我们使用的是airbnb,但是这还不够,我希望大部分的代码格式类的工作都能自动化帮我做,开发人员只需要注重业务代码就好。
为此我们用prettier+eslint+sublimelinter+airbnb,在保存代码的时候就对我们的代码进行格式化,提交代码之前再做一次严格的airbnb校验。基本就能保证团队代码的可维护性。

数据统计和错误分析

1. 项目基础数据由talkingdata收集并分析,7日内错误率达到0.5%时发相关报警短信邮件给开发人员处理。
2. 细粒度的数据收集用react-native-google-analytics-bridge来收集,主要用于产品部门,大数据,项目运营人员对用户行为以及数据的分析

mozi's People

Contributors

duheng avatar shuaixiaoqiang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mozi's Issues

你好mac下npm install项目报错

npm ERR! code ERR_STREAM_DESTROYED
npm ERR! Cannot call write after a stream was destroyed
npm ERR! code ERR_STREAM_DESTROYED
npm ERR! Cannot call write after a stream was destroyed
npm ERR! code ERR_STREAM_DESTROYED
npm ERR! Cannot call write after a stream was destroyed
npm ERR! code ERR_STREAM_DESTROYED
npm ERR! Cannot call write after a stream was destroyed
npm ERR! code ERR_STREAM_DESTROYED
npm ERR! Cannot call write after a stream was destroyed
npm ERR! code ERR_STREAM_DESTROYED
npm ERR! Cannot call write after a stream was destroyed
Unhandled rejection Error: ENOSPC: no space left on device, write

npm ERR! code ERR_STREAM_DESTROYED
npm ERR! Cannot call write after a stream was destroyed
Unhandled rejection Error: ENOSPC: no space left on device, write

Unhandled rejection Error: ENOSPC: no space left on device, write

npm WARN registry Unexpected warning for https://registry.npm.taobao.org/: Miscellaneous Warning ENOSPC: ENOSPC: no space left on device, write
npm WARN registry Using stale package data from https://registry.npm.taobao.org/ due to a request error during revalidation.
Unhandled rejection Error: ENOSPC: no space left on device, write

Unhandled rejection Error: ENOSPC: no space left on device, write

Unhandled rejection Error: ENOSPC: no space left on device, write

npm WARN deprecated [email protected]: If using 2.x branch, please upgrade to at least 2.1.6 to avoid a serious bug with socket data flow and an import issue introduced in 2.1.0

xcode 11.1启动不起来

第一,直接用xcode打开 ios文件夹下的Mozi.xcodeproj,编译不成功,卡住。
第二,通过改nodemodule下的文件,使 yarn run ios 成功,一直这样,挑一串乱码在终端。
所以ios是运行不成功,我的mac系统是10.14,xcode是11.1

xcode11启动报错 Unknown argument type '__attribute__' in method -[RCTAppState getCurrentAppState:error:]

xcode11打包后闪退,启动报错;xcode每次升级都会出幺蛾子,习惯就好
image

报错为

Unknown argument type 'attribute' in method -[RCTAppState getCurrentAppState:error:]. Extend RCTConvert to support this type.

这个BUG是Xcode.11引起的, 可以查看这个问题的提交记录,链接为:facebook/react-native#25138

我们只需要找到 RCTModuleMethod.mm 这个文件,大约在93行左右

文件是在node_modules/react-native/React/base/RCTModuleMethod.mm 这个位置,

在Xcode可以直接搜索 RCTModuleMethod. 这个文件,

修改

static BOOL RCTParseUnused(const char **input)

{

  return RCTReadString(input, "__unused") ||

         RCTReadString(input, "attribute((unused))") ||

         RCTReadString(input, "attribute((unused))");

}

这个函数插入    RCTReadString(input, "attribute((unused))") ||   这行代码重新运行就行了。

这样项目就能启动了,而且打包的app也不会闪退了。

bug收集

大家在使用的过程中如果遇到问题可以在这里反馈

reducer安装谷歌插件

const store = createStore(
   reducer, 
   window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__()
 );

卡在启动页

运行的时候直接卡在启动页无法操作, 也无法调试刷新

跑不起来

Unable to resolve module app/store/configure-store from /Users/zhming/work-dir/code/github/Mozi/src/root.js: Module does not exist in the module map\n\nThis might be related to https://github.com/facebook/react-native/issues/4968\nTo resolve try the following:\n 1. Clear watchman watches: watchman watch-del-all.\n 2. Delete the node_modules folder: rm -rf node_modules && npm install.\n 3. Reset packager cache: rm -fr $TMPDIR/react-* or npm start -- --reset-cache."

每次重新执行yarn start和yarn run android后都会报错 ,需要执行gradlew clean才会正常

报错内容如下
Error: EPERM: operation not permitted, lstat 'G:\MySource\noter\Mozi\android\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values'
Emitted 'error' event at:
at NodeWatcher. (G:\MySource\noter\Mozi\node_modules\sane\src\node_watcher.js:289:14)
at G:\MySource\noter\Mozi\node_modules\graceful-fs\polyfills.js:284:29
at FSReqWrap.oncomplete (fs.js:154:21)
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

然后执行 gradlew clean,重新yarn start和yarn run android就 正常了,不知道为什么会这样

安卓0.51.0编译bug

image
以上是升级rn到0.51.0后启动安卓报的错,解决办法是手动删除之前的安装包,重新编译

不能运行 windows+android

error: bundling failed: "Unable to resolve module app/store/configure-store from D:\\rn\\mozi\\src\\root.js: Module does not exist in the module map\n\nThis might be related to https://github.com/facebook/react-native/issues/4968\nTo resolve try the following:\n 1. Clear watchman watches: watchman watch-del-all.\n 2. Delete the node_modules folder: rm -rf node_modules && npm install.\n 3. Reset packager cache: rm -fr $TMPDIR/react-* or npm start -- --reset-cache."

关于Prettier与ESLint配合!

我刚刚看了eslintrc配置文件,想说一下一点误区。
想要Prettier格式化的代码与ESLint不冲突或者理想状态是偏向ESLint需要
eslint-config-prettier 来关闭所有可能引起冲突的规则
eslint-plugin-prettier 对比格式化前和用 Prettier 格式化后的代码,有不一致的地方就会报错
eslintrc 修改
extends: "prettier"
plugins: ["react", "jsx-a11y", "import", "prettier"]

yarn run android报错:Could not get unknown property 'mergeResourcesProvider' for object of type com.android.build.gradle.internal.api.ApplicationVariantImpl

D:\extra\Mozi>yarn android
yarn run v1.7.0
$ react-native run-android
info Starting JS server...
info Building and installing the app on the device (cd android && gradlew.bat app:installDebug)...

Configure project :
Repository https://jcenter.bintray.com/ replaced by http://maven.aliyun.com/nexus/content/repositories/jcenter.
Repository https://jcenter.bintray.com/ replaced by http://maven.aliyun.com/nexus/content/repositories/jcenter.
Repository https://jcenter.bintray.com/ replaced by http://maven.aliyun.com/nexus/content/repositories/jcenter.
Repository https://jcenter.bintray.com/ replaced by http://maven.aliyun.com/nexus/content/repositories/jcenter.
Repository https://jcenter.bintray.com/ replaced by http://maven.aliyun.com/nexus/content/repositories/jcenter.
Repository https://jcenter.bintray.com/ replaced by http://maven.aliyun.com/nexus/content/repositories/jcenter.
Repository https://jcenter.bintray.com/ replaced by http://maven.aliyun.com/nexus/content/repositories/jcenter.
Repository https://jcenter.bintray.com/ replaced by http://maven.aliyun.com/nexus/content/repositories/jcenter.
Repository https://jcenter.bintray.com/ replaced by http://maven.aliyun.com/nexus/content/repositories/jcenter.

Configure project :app
WARNING: Configuration 'compile' is obsolete and has been replaced with 'implementation' and 'api'.
It will be removed at the end of 2018. For more information see: http://d.android.com/r/tools/update-dependency-configurations.html

FAILURE: Build failed with an exception.

  • Where:
    Script 'D:\extra\Mozi\node_modules\react-native\react.gradle' line: 95

  • What went wrong:
    A problem occurred configuring project ':app'.

Could not get unknown property 'mergeResourcesProvider' for object of type com.android.build.gradle.internal.api.ApplicationVariantImpl.

  • Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

  • Get more help at https://help.gradle.org

BUILD FAILED in 37s
error Could not install the app on the device, read the error above for details.
Make sure you have an Android emulator running or a device connected and have
set up your Android development environment:
https://facebook.github.io/react-native/docs/getting-started.html
error Command failed: gradlew.bat app:installDebug. Run CLI with --verbose flag for more details.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

升级Xcode10+之后出现的两个bug

一. 缺少libfishhook.a文件,如下图

1543476813562

解决方案看下图

image
image
照上两个图操作后重新执行 yarn run ios就可以了

具体的可以看看兔子的文章 https://www.jianshu.com/p/cc0174b4a9c5

二:报错信息为 Print: Entry, ":CFBundleIdentifier", Does Not Exist;

出现这个报错的时候用xcode运行一下,运行结果如下图
1543462118956

如果跟上图一样的运行结果 请下载
boost_1_63_0.tar.gz
将其解压后替换node_modules/react-native/third-party/boost_1_63_0
然后重新执行 yarn run ios

resource fork, Finder information, or similar detritus not allowed Command CodeSign failed with a nonzero exit code

平台:mac pro
详细错误信息:
/usr/bin/codesign --force --sign - --entitlements /Users/liyunhua/Documents/work/react-native/ReactNamtiApp/ios/build/Build/Intermediates.noindex/Mozi.build/Debug-iphonesimulator/Mozi.build/Mozi.app.xcent --timestamp=none /Users/liyunhua/Documents/work/react-native/ReactNamtiApp/ios/build/Build/Products/Debug-iphonesimulator/Mozi.app
/Users/liyunhua/Documents/work/react-native/ReactNamtiApp/ios/build/Build/Products/Debug-iphonesimulator/Mozi.app: resource fork, Finder information, or similar detritus not allowed
Command CodeSign failed with a nonzero exit code

build failed

虽然只有这条错误信息,但是在在模拟器上可以成功运行。

error Failed to build iOS project. We ran "xcodebuild" command but it exited with error code 65.

error Failed to build iOS project. We ran "xcodebuild" command but it exited with error code 65. To debug build logs further, consider building your app with Xcode.app, by opening Mozi.xcodeproj

** BUILD FAILED **

The following build commands failed:
Analyze /Users/sunal/Documents/Projects/Mozi/node_modules/react-native/ReactCommon/jsi/JSIDynamic.cpp normal x86_64
(1 failure)
. Run CLI with --verbose flag for more details.

作者知道这个坑怎么填吗?

resource android:attr/xxx not found

拉的是最新的代码,项目启动报错。
以下是报错信息:

  • What went wrong:
    Execution failed for task ':app:processDebugResources'.

Android resource linking failed
Output: /Users/apple/Desktop/self_code/RN/Mozi/android/app/build/intermediates/incremental/mergeDebugResources/merged.dir/values-v28/values-v28.xml:7: error: resource android:attr/dialogCornerRadius not found.
/Users/apple/Desktop/self_code/RN/Mozi/android/app/build/intermediates/incremental/mergeDebugResources/merged.dir/values-v28/values-v28.xml:11: error: resource android:attr/dialogCornerRadius not found.
/Users/apple/Desktop/self_code/RN/Mozi/android/app/build/intermediates/incremental/mergeDebugResources/merged.dir/values/values.xml:830: error: resource android:attr/fontVariationSettings not found.
/Users/apple/Desktop/self_code/RN/Mozi/android/app/build/intermediates/incremental/mergeDebugResources/merged.dir/values/values.xml:831: error: resource android:attr/ttcIndex not found.
error: failed linking references.

Command: /Users/apple/.gradle/caches/transforms-1/files-1.1/aapt2-3.2.1-4818971-osx.jar/5bf1b2ff400c29cdc2f47b460c0c0567/aapt2-3.2.1-4818971-osx/aapt2 link -I
/Users/apple/Library/Android/sdk/platforms/android-27/android.jar
--manifest
/Users/apple/Desktop/self_code/RN/Mozi/android/app/build/intermediates/merged_manifests/debug/processDebugManifest/merged/AndroidManifest.xml
-o
/Users/apple/Desktop/self_code/RN/Mozi/android/app/build/intermediates/processed_res/debug/processDebugResources/out/resources-debug.ap_
-R
@/Users/apple/Desktop/self_code/RN/Mozi/android/app/build/intermediates/incremental/processDebugResources/resources-list-for-resources-debug.ap_.txt
--auto-add-overlay
--java
/Users/apple/Desktop/self_code/RN/Mozi/android/app/build/generated/not_namespaced_r_class_sources/debug/processDebugResources/r
--custom-package
com.mozi
-0
apk
--output-text-symbols
/Users/apple/Desktop/self_code/RN/Mozi/android/app/build/intermediates/symbols/debug/R.txt
--no-version-vectors
Daemon: AAPT2 aapt2-3.2.1-4818971-osx Daemon #0
Output: /Users/apple/Desktop/self_code/RN/Mozi/android/app/build/intermediates/incremental/mergeDebugResources/merged.dir/values-v28/values-v28.xml:7: error: resource android:attr/dialogCornerRadius not found.
/Users/apple/Desktop/self_code/RN/Mozi/android/app/build/intermediates/incremental/mergeDebugResources/merged.dir/values-v28/values-v28.xml:11: error: resource android:attr/dialogCornerRadius not found.
/Users/apple/.gradle/caches/transforms-1/files-1.1/appcompat-1.0.0-rc01.aar/13f68db763672360cd3278ac27df5ca8/res/values/values.xml: AAPT: error: resource android:attr/fontVariationSettings not found.

/Users/apple/.gradle/caches/transforms-1/files-1.1/appcompat-1.0.0-rc01.aar/13f68db763672360cd3278ac27df5ca8/res/values/values.xml: AAPT: error: resource android:attr/ttcIndex not found.

error: failed linking references.
Command: /Users/apple/.gradle/caches/transforms-1/files-1.1/aapt2-3.2.1-4818971-osx.jar/5bf1b2ff400c29cdc2f47b460c0c0567/aapt2-3.2.1-4818971-osx/aapt2 link -I
/Users/apple/Library/Android/sdk/platforms/android-27/android.jar
--manifest
/Users/apple/Desktop/self_code/RN/Mozi/android/app/build/intermediates/merged_manifests/debug/processDebugManifest/merged/AndroidManifest.xml
-o
/Users/apple/Desktop/self_code/RN/Mozi/android/app/build/intermediates/processed_res/debug/processDebugResources/out/resources-debug.ap_
-R
@/Users/apple/Desktop/self_code/RN/Mozi/android/app/build/intermediates/incremental/processDebugResources/resources-list-for-resources-debug.ap_.txt
--auto-add-overlay
--java
/Users/apple/Desktop/self_code/RN/Mozi/android/app/build/generated/not_namespaced_r_class_sources/debug/processDebugResources/r
--custom-package
com.mozi
-0
apk
--output-text-symbols
/Users/apple/Desktop/self_code/RN/Mozi/android/app/build/intermediates/symbols/debug/R.txt
--no-version-vectors
Daemon: AAPT2 aapt2-3.2.1-4818971-osx Daemon #0

  • Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

  • Get more help at https://help.gradle.org

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.