react

有效的微服务:10 个最佳实践

流过昼夜 提交于 2020-02-27 08:17:06
推荐阅读: 架构设计原则 - 高并发 使用 Canal 实现数据异构 MySQL中一条SQL语句是如何执行的? 阿里开源的分布式事务框架 Seata ZooKeeper 并不适合做注册中心 1. 领域驱动设计 微服务开发的首要挑战: 把大的、复杂的应用拆分为小的、自治的、可独立部署的模块。 如果没有正确的拆分,那么结果就是一堆浆糊,有着单体结构的缺点,和微服务结构的复杂度,可以称之为 分布式单体 。 幸运的是,Eric Evans 为领域驱动设计提出了大量的最佳实践和经验技巧,有3个核心思维: 开发团队要和业务部门、业务领域专家紧密合作。 架构师、开发人员、领域专家应该先做出战略设计:找出边界上下文、核心域、子域、上下文映射关系。 架构师、开发人员根据战略设计梳理出一套核心构造块:实体、值对象、聚合等等。 把一个大型系统划分为核心域、子域,再把核心域、子域映射为微服务,这样我们就可以得到一个理想的松耦合微服务体系。 2. 每个微服务一个数据库 微服务模块结构设计好了,下面一个重要问题就是怎么处理数据库,各个微服务是否共享数据库呢? 如果共享,将导致微服务之间紧耦合,违背了微服务的松耦合原则。数据库中一个小小的变动就需要各个团队同步修改。 如果每个微服务都有自己的数据库,那么微服务之间的数据交换将非常麻烦,就像打开了潘多拉魔盒,跑出一堆问题,例如在多个服务中管理事务。 所以

React Navigation5.0系列一:StackNavigator的使用

蓝咒 提交于 2020-02-27 07:30:18
想必读者朋友们在 官宣:ReactNative导航库重大更新 这篇文章中了解到了,React Native官方推荐的路由导航库React Navigation更新到了第5版,也了解到了具体的提升和变化的地方,感兴趣的朋友可以仔细阅读这篇文章来了解一下新版和之前版本的差异。 新版本的React Navigation相比较之前的版本,无论是安装或者项目中集成的方法和步骤,都发生了很大的变化,接下来跟着这篇文章来一一了解一下。 @[toc] 安装 使用下面的命令添加react navigation的基础依赖 yarn add @react-navigation/native 使用如下命令添加其他的配置依赖项内容,比如: react-native-gesture-handler, react-native-reanimated 等 yarn add react-native-reanimated react-native-gesture-handler react-native-screens react-native-safe-area-context @react-native-community/masked-view 如果你的React Native项目的版本在0.60以上,那么安装依赖就完成,如果项目版本低于0.60,使用 react-native link

使用express, create-react-app, mongodb搭建react模拟数据开发环境

生来就可爱ヽ(ⅴ<●) 提交于 2020-02-27 05:06:18
提要 最近刚刚完成了一个vue的项目,其中涉及的用户数有6000多个以及其他数据也比较多,为了在前端能够真实的进行数据模拟,所有把全量数据拷贝下来放到了api.json中。这样导致整个api.json文件过大,每次进行修改的时候编辑器都会卡顿。 项目做完后就在想能不能把大量的模拟数据放在数据库中进行管理,用nodejs来操作数据库。顺便再熟练一下nodejs。 代码github地址: https://github.com/boychina/yarn-react-express.git 使用的技术栈 express 是nodejs当前最流行的后台框架。官网对express的描述,它是一个机遇Node.js平台,快 速、开放、极简的web开发框架。优点是易上手、高性能、扩展性强: 易上手:nodejs最初是为了开发高兴能web服务器而被设计出来的,然而相对底层的API会让不少新手望而却步。express对web开发相关的模块进行了适度的封装,屏蔽了大量复杂繁琐的技术细节,让开发这个只需要专注于业务逻辑的开发,极大的降低了入门和学习的成本。 高性能:express仅在web应用相关的nodejs模块上进行了适度的封装和扩展,较大程度避免了过度封装导致的性能损耗。 扩展性强:基于中间件的开发模式,使得express应用的扩展、模块拆分非常简单,既灵活,扩展性又强。 create-react

ReactJS实践(一)—— FrozenUI React化之Loading组件

跟風遠走 提交于 2020-02-27 04:19:47
在前面我们通过四篇文章入门了React的大部分主要API,现在则开始进入实践环节。 实践系列的开篇打算拿我司的FrozenUI来试验,将其部分UI组件进行React化,作为第一篇实践文章,将以较简单的 Loading组件 来入手,官网demo的效果如下图: 为了更好地开发,后续将以webpack工具来辅助,对其不了解的童鞋可以先查阅我的 《webpack 入门指南》 一文。 鉴于我们将复用 FrozenUI 的样式,所以在DOM结构、class命名上都应当尽量和原版的保持一致,在这个基础上来实现具有同样功能的React组件。 于是我们先下载好 frozen.css (方便示例所以直接用全局的样式) 和图片资源,并定义一个简单的 webpack.config.js: module.exports = { entry: { loading : './src/js/page/loading.js' }, output: { path: 'dist/js/page', filename: '[name].js' }, module: { loaders: [ { test: /\.css$/, loader: 'style-loader!css-loader' }, { test: /\.js$/, loader: 'jsx-loader?harmony' }, { test: /\

小程序开发比较

无人久伴 提交于 2020-02-26 17:16:25
mpvue,wepy跟不上节奏就不谈了。比较下原生,taro, uni-app 原生:效率低下,语法支持性差 ,框架就是用来节省时间的, taro:基于raect,本人react没有深入 后续有机会再实践 uni-app: 效率高,应用市场也丰富。 vue上手难度低,对于企业来讲更容易进行维护 。 vue流行主要是因为它可以简化开发者的代码、无需开发者手动做很多优化,就可以得到高性能的应用。 不比一般人原生写的性能差, 比如原生微信开发setdata,从逻辑层js传输数据到视图层,是有时间损耗的。而uni-app是自动diff差量更新数据。 来源: oschina 链接: https://my.oschina.net/u/560237/blog/3168839

为什么要学习Vue——前端框架角度

元气小坏坏 提交于 2020-02-26 16:45:39
什么是框架 框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;另一种定义认为,框架是可被应用开发者定制的应用骨架。前者是从应用方面而后者是从目的方面给出的定义。 可以说,一个框架是一个可复用的设计构件,它规定了应用的体系结构,阐明了整个设计、协作构件之间的依赖关系、责任分配和控制流程,表现为一组抽象类以及其实例之间协作的方法,它为构件复用提供了上下文(Context)关系。因此构件库的大规模重用也需要框架。 构件领域框架方法在很大程度上借鉴了硬件技术发展的成就,它是构件技术、软件体系结构研究和应用软件开发三者发展结合的产物。在很多情况下,框架通常以构件库的形式出现,但构件库只是框架的一个重要部分。框架的关键还在于框架内对象间的交互模式和控制流模式。 框架比构件可定制性强。在某种程度上,将构件和框架看成两个不同但彼此协作的技术或许更好。框架为构件提供重用的环境,为构件处理错误、交换数据及激活操作提供了标准的方法。 应用框架的概念也很简单。它并不是包含构件应用程序的小片程序,而是实现了某应用领域通用完备功能(除去特殊应用的部分)的底层服务。使用这种框架的编程人员可以在一个通用功能已经实现的基础上开始具体的系统开发。框架提供了所有应用期望的默认行为的类集合。具体的应用通过重写子类(该子类属于框架的默认行为)或组装对象来支持应用专用的行为。

自学前端不用慌张!零基础学习前端必备手册 ,学成月薪12K

蹲街弑〆低调 提交于 2020-02-26 16:44:11
随着互联网的深入发展,前端开发工程师一跃成为市场上非常抢手的人才。很多同学,包括以前做UI的、Java的、或者对于IT完全零基础的同学都想学习前端。下图是网上流传甚广的一张前端学习思维导图,很多初学者表示看到这些密密麻麻的知识点就已经晕了。确实,前端是一门涵盖面很广的学科。但是想学前端的你也不用慌张,内容虽多但有迹可循,只要循序渐进就不怕学不好前端! 那么对于零基础的一个学员该怎么学习前端呢? 工具篇 工欲善其事,必先利其器,所以在开始之前选择一个合适好用的编辑器是很重要的,工具不再多,在于好用就行,除了编辑器,我们也要掌握其他的一些工具,才能够让我们在学习的道路上更加的顺畅。 WebStorm 不必多说,前端最强大的编辑器,特别是那无敌的智能提示,但是它的缺点在于如果项目多于大时,出现的卡顿让很多人苦恼。 Google 在使用「Google」之前必须学会***,不然无法访问,学会使用搜索可以帮助我们解决很多问题,一个人的知识是有限的,掌握了搜索的技巧才能以不变应万变,很多时候百度出来的东西重复性很大,最重要的是垃圾信息很多,在百度找不到的答案,在这里很容易找到,Google 是我的必备搜索。 Github 全球最大的「同性」开源交流社区,没有账号的赶紧注册,在这有很多优秀的资源项目,各种大神。观摩优秀代码是我们学习的很好路径。另外在开发过程中,很多时候任务重、时间紧