很多人说 Redux 代码多,开发效率低.其实 Redux 是可以灵活使用以及拓展的,经过充分定制的 Redux 其实写不了几行代码.今天先介绍一个很好用的 Redux 拓展-- redux-amrc.它可以帮助我们使用更少的样板代码发起异步 action. 低效的过去 一般情况下,为了清楚地记录异步的过程,我们需要使用 三个 action 来记录状态变化.通常,我们的代码会是这样: const LOAD = 'redux-example/auth/LOAD'; const LOAD_SUCCE…
Commons-configuration   Commons-FileUpload   Commons DbUtils   Commons BeanUtils  Commons CLI  Commons Codec   Commons Collections Commons DBCP    Commons HttpClient  Commons IO  Commons JXPath   Commons Lang   Commons Math   Commons Net   Commons Va…
      如何编写更少bug的程序?  尽可能避免常见的程序错误.              沟通设计先行 + 编写可复用代码 + 做得更多 + 做的更少 + 创造“编程心流”+ 严格的程序测试            一. 沟通设计先行        为避免需求或业务逻辑理解的不完全或偏差,  或者设计上存在较大的缺陷, 导致后期不必要的返工, 耗费宝贵的时间和精力, 编程开发遵循的首要准则是沟通设计先行: 与需求方.业务方和工作伙伴多多沟通交流, 进行设计评审, 能够有效地减少因为需求.业务…
在上一篇中我们了解到,更新Redux中状态的流程是这种:action -> reducer -> new state. 文中也讲到.action是一个普通的javascript对象.reducer是一个普通的方法.在reducer中依据当前的state.接收到的action来生成一个新的state以达到更新状态的目的. 那么问题来了.每次action被触发(dispatch).reducer就会同步地对store进行更新,在实际开发项目的时候,有非常多需求都是须要通过接口等形式获取异步数据后再…
近期准备开发一个数据分析 SDK,定位是作为数据中台向外输出数据分析能力的载体,前端的功能表现类似低代码平台的各种拖拉拽.作为中台能力的载体,SDK 未来很大概率会需要支持多种视图层框架,比如Vue2/Vue3/React等.所以在技术架构上对视图层框架的依赖性越轻,迭代的成本越低.基于这样的目标,本文对前端状态管理工具进行调研,在技术选型上应当尽量减轻与视图框架的绑定程度,理想的目标是构建与视图框架无关的数据/状态管理层. 调研对象包括以下: 调研对象 说明 Redux 最早的基于Flux架构…
Jaina .NET 事件总线,简化项目.类库.线程.服务等之间的通信,代码更少,质量更好.‎ 安装 Package Manager Install-Package Jaina .NET CLI dotnet add package Jaina 快速入门 我们在主页上有不少例子,这是让您入门的第一个: 定义事件订阅者 ToDoEventSubscriber: // 实现 IEventSubscriber 接口 public class ToDoEventSubscriber : IEventSu…
睡眠机制 我们活着的时候,大脑会产生脑电波.脑电图仪器通过贴在人头上的一些电极读出脑电波的活动,然后把活动用图表显示出来. 睡眠过程可以分为5个过程,划分依据与大脑发出的脑电波类型. 当人清醒时,大脑发出β脑电波,人的意识高度活跃,思维敏锐. 1. 打瞌睡.做白日梦时.困乏时,大脑会发出α波,称为"醒态波",这个阶段,人的身体放松,呼吸和心率开始变慢,大脑变得放松,思维开始漫游 2. 人的脑波会经理"Sleep spindles"和"K-Complexes…
Quality Over Quantity: 更少一些,更好一些_第1页_福布斯中文网     Quality Over Quantity: 更少一些,更好一些    2013年04月09日     <福布斯生活>2013年度特刊     我要评论(2)         到腾讯微博     英国著名时装设计师Vivienne Westwood在最近接受采访时曾说过:"少买一些,更明智地选择商品.我本人会更看重品质,而不是数量(Quality Over Quantity).我试着把注意…
git 常用命令以及推荐git新建上传个人博客 $ git clone  //本地如果无远程代码,先做这步,不然就忽略 $ git status //查看本地自己修改了多少文件 $ git add . //添加远程不存在的git文件 $ git commit  -m "更新说明" //提交修改 $ git pull //提交代码前先更新线上代码 $ git push  //更新提交到到远程服务器上 $ git checkout master //进入master主分支,也可以拉去进入其…
  今天给大家带来的是 <剑指 Offer>习题:调整数组顺序使奇数位于偶数前面,纯 Java 实现希望大家多加思考. 面试题:输入一个整型数组,实现一个函数来调整该数组中的数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分,希望时间复杂度尽量小. 看到这道题,想必大多数人都是能一下就想到从头到尾扫描一遍数组,然后遇到奇数就移动到最前面,遇到偶数就移动到最后面的思路,于是便有了下面的代码. 注:<剑指 Offer>上面的 「遇到奇数移动到最前面,遇到偶数也移动到…
通过利用immutability的能力编写更安全和更整洁的代码 原文:Write safer and cleaner code by leveraging the power of "Immutability" 译者:neal1991 welcome to star my articles-translator, providing you advanced articles translation. Any suggestion, please issue or contact me…
如何让手游更省带宽,耗电量更少?渲染或是其中一个可突破的点.本文中,腾讯游戏学院专家Hailong将从为大家解析TBR渲染架构的特点. 什么是TBR? 全称是Tile Based Rendering,主要用在移动设备(手机.平板)上的一种渲染架构,渲染时将屏幕分割成小块,分别渲染.每块大小为16×16 或32×32等(不同产品各不相同),特点是省带宽,耗电小. 与之对应的是IMR(Immediate Mode Rendering),提交的每个渲染要求都会立即开始,这是一种简单而又粗暴的思路,优点…
前言 代码都是由 CPU 跑起来的,我们代码写的好与坏就决定了 CPU 的执行效率,特别是在编写计算密集型的程序,更要注重 CPU 的执行效率,否则将会大大影响系统性能. CPU 内部嵌入了 CPU Cache(高速缓存),它的存储容量很小,但是离 CPU 核心很近,所以缓存的读写速度是极快的,那么如果 CPU 运算时,直接从 CPU Cache 读取数据,而不是从内存的话,运算速度就会很快. 但是,大多数人不知道 CPU Cache 的运行机制,以至于不知道如何才能够写出能够配合 CPU Ca…
大家好,欢迎来到 9 月版的 Visual Studio Code Java 更新.在这篇文章中,我们将分享我们最新的Gradle插件,更加方便的代码操作(Getter/Setter等等),以及最近的1.0 Language Server发布. Language Server for Java 1.0 正式发布 最近,Language Server for Java 的1.0版本在 Visual Studio Code上正式发布了! 这是一个Visual Studio Code上Java支持上重…
redux-promise-utils What redux-promise-utils 是一个基于 redux-thunk 和 redux-actions 的工具,符合 FSA 规范,方便开发者处理异步 Action,减少大量冗余的 template 代码. Why redux 一开始的设计就是用于处理同步的 Action.通过调用 Action 函数后 dispatch 返回的 type 和 payload ,最终交由 reducer 处理.reducer 匹配到相应的 type 并进行处理…
异步Action 之前介绍的都是同步操作,Redux通过分发action处理state,所有的数据流都是同步的,如果需要一步的话怎么办? 最简单的方式就是使用同步的方式来异步,将原来同步时一个action拆分成多个异步的action的,在异步开始前.异步请求中.异步正常返回(异常)操作分别使用同步的操作,从而模拟出一个异步操作了. 当然,这样的方式是比较麻烦的,现在已经有redux-saga等插件来解决这些问题了.. Middleware Middleware提供的是位于 action 被发起之…
当我们在执行某个动作的时候,会直接dispatch(action),此时state会立即更新,但是如果这个动作是个异步的呢,我们要等结果出来了才能知道要更新什么样的state(比如ajax请求),那就没办法了,所以此时要用异步action. 这里一定要引入redux-thunk这个库,通过使用中间件Middleware来把从action到reducer这个过程给拆分成很多个小过程,这样我们就能在中间随时查找此刻的状态以及执行一些其他动作了.具体的Middleware和redux-thunk以后再…
异步请求逻辑注入 工作中我们需要对异步请求的请求信息打印日志,但是又不能耦合在业务代码中打印.请设计一个方法injectBeforeAsyncSend,能够实现如下功能:在发起异步请求之前打印出请求的类型.URL.method.body.timestamp 等信息. /** injectBeforeAsyncSend.js @param {function(asynConfig)} beforeSend */ const injectBeforeAsyncSend = function(befo…
怎样使用 async & await 一步步将同步代码转换为异步编程 [博主]反骨仔 [出处]http://www.cnblogs.com/liqingwen/p/6079707.html  序 上次,博主通过<利用 async & await 的异步编程>该篇点睛之作介绍了 async & await 的基本用法及异步的控制流和一些其它的东西. 今天,博主打算从创建一个普通的 WPF 应用程序开始,看看如何将它逐步转换成一个异步的解决方案. 目录 介绍 添加引用 先创…
1.Ajax: AJAX:Asynchronous Javascript And Xml,异步的JS和XML: 同步请求:地址栏输入URL.链接跳转.表单提交-- 异步请求:使用Ajax发起,底层使用XMLHttpRequest对象:2.XHR的创建: var xhr=null; if(window.XMLHttpRequest){xhr=new XMLHttpRequest();//新IE及其它} else{xhr=new ActiveXObject('Microsoft.XMLHTTP');…
标签:HTML+CSS 盒模型代码简写 还记得在讲盒模型时外边距(margin).内边距(padding)和边框(border)设置上下左右四个方向的边距是按照顺时针方向设置的:上右下左.具体应用在margin和padding的例子如下: margin:10px 15px 12px 14px;/*上设置为10px.右设置为15px.下设置为12px.左设置为14px*/ 通常有下面三种缩写方法: 1.如果top.right.bottom.left的值相同,如下面代码: margin:10px 1…
一.盒模型代码简写 <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>relative样式</title> <style type="text/css"> p{ padding:13px 13px 13px…
前言 最近在做代码重构,发现了很多代码的烂味道.其他的不多说,今天主要说说那些又臭又长的if...else要如何重构. 在介绍更更优雅的编程之前,让我们一起回顾一下,不好的if...else代码 一.又臭又长的if...else 废话不多说,先看看下面的代码. public interface IPay { void pay(); } @Service public class AliaPay implements IPay { @Override public void pay() { Sys…
Go1.7的开发周期正在接近它的下一个里程碑,Go的提交者Dave Cheney报告了子即将发布的版本中,团队成员在语言工具链上的努力. Cheney称,基于当前的开发状态,Go1.7将会很容易就成为最好的Go发布版本.提升工具链的努力主要聚焦在如下两个方面: 编译和链接的时间; 代码生成. 当谈到编译时间,Go编译器自从C转到了Go的影响而一直以来的较慢的性能.这个问题已经被讨论很多次并且最近的完成的工作目标就是减少编译器内存使用来改善链接时间.这项改进和Go1.5.3相比大约减少了20-30…
转:http://www.cnblogs.com/dannyli/archive/2011/08/02/2125285.html 使用C#代码,发起一个K2的流程,其形式和链接SQL Server数据库的代码差不多,都是通过连接字符串,然后OPEN,然后....你懂的. 下面是K2流程发起的代码,仅供参考.同时,如果有K2方面的高手,还请多多指教小弟. protected void ProcessSubmit_Click(object sender, EventArgs e) { //创建连接对…
使用Ibatis.Net做项目半年了,甚是喜欢,感觉确实是个简单.轻巧的O/R Mapping框架,特别是将Sql配置在Xml文件中,相当于直接将Dao层抽离了出来. 本文假定读者对Ibatis.Net有一定的了解. 最近试用了一下Ibatis.Net的亲兄弟--Java的Mybatis,一对比发现: 执行一个查询,Ibatis.Net是这么写的:IList<UserEntity> list = SqlMapper.QueryForList<UserEntity>(prefix+…
首先声明,不是要消除if 而是,减少一些不必要的if判断,使得代码更优雅,更重要的是提高可维护性 most easy use Ternary: var result = condiction? trueResult : falseResult; 缺点:case 超过2个就不容易了 use switch in static type language use heritance usage (c++): SonClasss son = new FatherClass() son.doSomethi…
一直以为php的数组更节省内存,从来没有测试过,今天因为要读取一个大配置文件作为pool.做了一次测试: 得出结论是 使用对象保存数据更好,花费的内存是数组array的1/4. 测试代码 class obj { public $name; public $id; public function __construct($id,$name) { $this->name = $name; $this->id = $id; } } $max = 10000; $old = memory_get_us…
Redux是一种JavaScript的状态管理容器,是一个独立的状态管理库,可配合其它框架使用,比如React.引入Redux主要为了使JavaScript中数据管理的方便,易追踪,避免在大型的JavaScript应用中数据状态的使用混乱情况.Redux 试图让 state 的变化变得可预测,为此做了一些行为限制约定,这些限制条件反映在 Redux 的三大原则中. 本文会介绍Redux的几个基本概念和坚持的三大原则,以及完整的回路一下Redux中的数据流.在了解以上这些概念之后,用自己的代码来实…
大家好,我是小富~ 技术交流,公众号:程序员小富 又是做好人好事的一天,有个小可爱私下问我有没有好用的springboot文件上传工具,这不巧了嘛,正好我私藏了一个好东西,顺便给小伙伴们也分享一下,demo地址放在文末了. 文件上传在平常不过的一个功能,做后端开发的基本都会接触到,虽然不难可着实有点繁琐.数据流的开闭.读取还容易出错,尤其是在对接一些OSS对象存储平台,一个平台一堆SDK代码看起来乱糟糟的. 下边给我大家推荐一个工具Spring File Storage,上传文件只要些许配置一行…