回顾 上篇文章大概展示了kmdjs0.1.x时期的编程范式: 如下面所示,可以直接依赖注入到function里, kmdjs.define('main',['util.bom','app.Ball','util.dom.test'], function(bom,Ball,test) { var ball = new Ball(0, 0, 28, 1, -2, 'kmdjs'); var vp = bom.getViewport(); }); 也可以直接在代码里把full namespace加上来…
“以用户为中心”的时代,电商们致力于打造极致的用户体验,想尽各式新颖营销办法,但难免还是会出现营销断层,以至于和用户间无法达到完整的交互. 本次Focussend以邮件营销为例,聚焦用户从浏览到支付等一系列流程,列举电商行业邮件营销中的六大事务性邮件类型,解析如何通过邮件营销在每个触点拉近与用户的距离. ①    新账户开通确认,权益优势一步引导 当访客浏览网页后,一旦产生网页注册行为,及账户的开通,便可立即采取邮件营销的方式,及时触发一封新账户开通确认邮件. 除了表达对用户的感谢,对账号使用细…
很久之前开发了一个名为Dora.Interception的开源AOP框架(github地址:https://github.com/jiangjinnan/Dora,如果你觉得这个这框架还有那么一点价值,请不吝多点一颗星),最近对它作了一些改进(包括编程模式和性能,目前最新版本2.1.4).一直以来我对软件设计秉承的一个理念就是:好的设计应该是简单的设计.和其他AOP框架相比,虽然Dora.Interception提供的编程模式已经显得足够简单,但是我觉得还应该再简单点,再简单点.这个新版本对拦截…
传送门 observejs:https://github.com/kmdjs/observejs 本文演示:http://kmdjs.github.io/observejs/list/ 本文代码:https://github.com/kmdjs/observejs/tree/master/example/list 写在前面 javascript的编程体验一直被改善,从未停止过.从最早的Jscex(现在的windjs),改善异步编程体验.如今ES6的Generator改善异步编程体验.还有类似的s…
毫不夸张地说,整个ASP.NET Core框架是建立在一个依赖注入框架之上的,它在应用启动时构建请求处理管道过程中,以及利用该管道处理每个请求过程中使用到的服务对象均来源于DI容器.该DI容器不仅为ASP.NET Core框架提供必要的服务,同时作为了应用的服务提供者,依赖注入已经成为了ASP.NET Core应用基本的编程模式.在前面一系列的文章中,我们主要从理论层面讲述了依赖注入这种设计模式,补充必要的理论基础是为了能够理解与ASP.NET Core框架无缝集成的依赖注入框架的设计原理.我们…
CHENYILONG Blog Socket编程体验 Socket编程体验  技术博客http://www.cnblogs.com/ChenYilong/新浪微博http://weibo.com/luohanchenyilong  网络编程 .0转化为电流强弱来进行传 输,到达目的地后再转化为1.0,也就是常说的数模与模数转换).这一 层的数据叫做比特(bit),主要设备:集线器 .2. 数据链路层:主要将从物理层接收的数据进行MAC地址的封装与解封装. 常把这一层的数据叫做帧,主要设备:交换机…
.NET Core正式发布之后,我为.NET Core度身定制的AOP框架Dora.Interception也升级到3.0.这个版本除了升级底层类库(.NET Standard 2.1)之外,我还对它进行大范围的重构甚至重新设计.这次重构大部分是在做减法,其目的在于使设计和使用更加简单和灵活,接下来我们就来体验一下在一个ASP.NET Core应用程序下如何使用Dora.Interception. 源代码下载实例1(Console)实例2(ASP.NET Core MVC + 注册可拦截服务)实…
多年之前利用IL Emit写了一个名为Dora.Interception(github地址,觉得不错不妨给一颗星)的AOP框架.前几天利用Roslyn的Source Generator对自己为公司写的一个GraphQL框架进行改造,性能得到显著的提高,觉得类似的机制同样可以用在AOP框架上,实验证明这样的实现方式不仅仅极大地改善性能(包括执行耗时和GC内存分配),而且让很多的功能特性变得简单了很多.这并不是说IL Emit性能不好(其实恰好相反),而是因为这样的实现太复杂,面向IL编程比写汇编差…
原文https://www.cnblogs.com/artech/p/net-core-di-06.html 毫不夸张地说,整个ASP.NET Core框架是建立在一个依赖注入框架之上的,它在应用启动时构建请求处理管道过程中,以及利用该管道处理每个请求过程中使用到的服务对象均来源于DI容器.该DI容器不仅为ASP.NET Core框架提供必要的服务,同时作为了应用的服务提供者,依赖注入已经成为了ASP.NET Core应用基本的编程模式.在前面一系列的文章中,我们主要从理论层面讲述了依赖注入这种…
更新 不zuo,[A/C]MD就不会死,所以kmdjs赢来来其伟大的版本0.0.6,该版本主要的更新有: 移除去了kmdjs.get(..).then的支持,只支持kmdjs.get(-,function(){ }) 作此更改有三点目的: 1.让build之后js文件尽量小,因为可以省去promise库 2.让require.async的用户平滑过渡到kmdjs.get 3.kmdjs.get(....).then经过AST之后,其中的(....)部分居然丢失?! 4.kmdjs.get(..)…
个人理解:Github 热度超凡的一个项目Atom,electron是整个atom的核心,对于electron可以理解成 electron =io.js + Chromium    通过 Electron 可以方便的打造基于Web,跨平台的Desktop应用.基于Web的native的接口,得益于io.js的封装,让本来没有本地权限的web能有原生native的权限,Chromium是呈现Web的跨平台基础,这样的完美结合,我们可以将HTML5 CSS JavaScript(AngularJS,…
首先这篇博客并不是ssr建议教程,需要ssr入门的我建议也不要搜索博客了,因为官网给出了详细的入门步骤,只需要step by step就可以了,这篇博客的意义是如何使用ssr,可能不同的人有不同的意见,我舍弃了ssr中的vuex和vue-router增加了redis,serverfetch等等实现了适合自己公司的业务,个人认为并不是所有的东西都值得吸收,对我来说我能用到的只是ssr将vue生成一个html和对应的js. 虾面我们来看看什么是服务端渲染? 官网给出的解释: Vue.js 是构建客户…
引言: 软件开发的目标是要对世界的部分元素或者信息流建立模型,实现软件系统的工程需要将系统分解成可以创建和管理的模块.于是出现了以系统模块化特性的面向对象程序设计技术.模块化的面向对象编程极度地提高了软件系统的可读性.复用性和可扩展性.向对象方法的焦点在于选择对象作为模块的主要单元,并将对象与系统的所有行为联系起来.对象成为问题领域和计算过程的主要元素.但面向对象技术并没有从本质上解决软件系统的可复用性.创建软件系统时,现实问题中存在着许多横切关注点,比如安全性检查.日志记录.性能监控,异常处理…
移动互联网时代,用户注意力的持续时间越来越短,他们追求便捷与高效.从账号密码登录.短信验证,到第三方登录甚至人脸识别登录,APP的注册/登录方式在逐步变化,开发者希望在这重要的交互端口提升用户的体验,并减少用户的流失.与此同时,面对层出不穷的密码破解术和薅羊毛方式,如何提升账户的安全,减少APP拉新.营销活动中的无用注册越来越被重视. 在这一背景之下,个推开发者服务新增“一键认证”产品,帮助APP解决登录流程冗长.虚假注册等问题.APP只需集成小巧灵活的一键认证SDK,就可以实现免密登录功能.基…
随着元宇宙的兴起,3D虚拟现实广泛引用,让数字化信息和现实世界融合,目前大家的目光主要聚焦于视觉交互层面,为了在虚拟环境中更好的再现真实世界的三维空间体验,引入听觉层面必不可少,空间音频孕育而生. 空间音频是一种音频体验,会让用户更容易体验到声音的立体感和深度,将环绕声更准确地定位在合适的方位,让用户在生理上获得更身临其境的环绕效果.目前主要应用在AR.VR.语音视频聊天室.在线会议.在线游戏.虚拟演唱会等,以及对象音频制作等场景. 针对开发者的需求,华为HMS CoreAR Engine XR…
一.简介 直到现在,仍然不存在一项旨在网页上显示视频的标准. 今天,大多数视频是通过插件(比如 Flash)来显示的.然而,并非所有浏览器都拥有同样的插件. HTML5 规定了一种通过 video 元素来包含视频的标准方法.如: 1 2 <video src="movie.ogg" controls="controls"> </video> 二.Canvas+Video HTML5中引入新的元素canvas,其drawImage 方法允许在…
文章目录 一.Springfox 与 Swagger 简介 1.1 Springfox 1.2 Swagger 1.3 OpenApi.Swagger.Springfox的关系 二.spring boot 集成 swagger 2.0 2.1 导入项目相关依赖 2.2 进行swagger个性化配置.并用@EnableSwagger2开启Swagger支持 2.3 swagger注解的使用和说明 2.4 swagger-ui 可视化接口文档 2.5 利用swagger-ui进行接口测试 源码Git…
借助于有效的自动化垃圾回收机制,.NET让开发人员不在关心对象的生命周期,但实际上很多性能问题都来源于GC.并不说.NET的GC有什么问题,而是对象生命周期的跟踪和管理本身是需要成本的,不论交给应用还是框架来做,都会对性能造成影响.在一些对性能比较敏感的应用中,我们可以通过对象复用的方式避免垃圾对象的产生,进而避免GC因对象回收导致的性能损失.对象池是对象复用的一种常用的方式. .NET提供了一个简单高效的对象池框架,并使用在ASP.NET自身框架中.这个对象池狂框架由"Microsoft.Ex…
如何在弱网环境下让用户享受无中断沉浸体验? 如何在全场景互联中让多设备交互如丝般顺滑? 如何在无网区域让移动终端发出紧急求助信息? 连接无处不在,连接与体验息息相关!流畅的网络体验已成为应用开发的关键竞争力之一.10月23日,华为开发者大会HMS Core 6.0:连接与通信论坛,将系统介绍华为在连接与通信领域的多个解决方案,并邀请来自抖音.西山居.北斗应用研究院.爱联科技等合作伙伴,为开发者分享移动应用开发实践经验和解决方案,期待与开发者共同探索连接的价值. 演讲议程 线下参与 线下参与HDC…
项目中可能会多次修改某些*.js文件,但是引用的是*.min.js, 所以需要再改完源码后生成压缩的min.js uglifyjs是个不错的工具,但是单独用略显麻烦,如果能整合到idea就好了.正好idea有这个功能. 1. 安装nodejs https://nodejs.org/dist/v8.9.3/node-v8.9.3-x64.msi 下载后安装即可. 2. 通过nodejs安装uglifyjs npm install uglify-js -g 3. idea安装nodejs,file…
一.安装python3     ubuntu自身是安装python2的,例如在ubuntu 16.04中安装的就是python2.7.但我想在python3的环境下进行开发所以就要安装python3.但由于ubuntu很多底层采用python2因此在安装python3是不能卸载python2.执行以下命令行:      sudo cp /usr/bin/python /usr/bin/python_bak      sudo rm /usr/bin/python      sudo ln -s…
背景说明 华为云分布式数据库中间件(Distributed Database Middleware,简称DDM),专注于解决数据库分布式扩展问题,突破了传统数据库的容量和性能瓶颈,实现海量数据高并发访问. DDM使用华为关系型数据库(RDS)作为存储引擎,具备自动部署.分库分表.弹性伸缩.高可用等全生命周期运维管控能力. 上边几句话是从华为云官网的帮助手册摘录出来的[1],简单介绍了DDM服务.从我这个使用者的角度看来,DDM主要优点有:高性能[2].海量数据支持.数据平滑扩容和业务无感知的读写…
数字经济时代,银行如何进行数字化转型?业务模式转型与科技转型如何协同并进? 2019年1月4日,在上海蚂蚁金服ATEC城市峰会上,浙江稠州商业银行(以下简称“稠州银行”)副行长兼首席信息官程杰分享了稠州银行的数字化建设实践之旅.我们可以看到,一家立足小微金融服务的银行机构,如何构筑全新的数字化基因,以科技创新快速进入数字化时代. 对于未来金融科技.数字银行的发展,程杰认为,银行数字化转型的关键是盘活数据资产打造核心能力,践行数据驱动的应用场景建设,广泛运用金融科技手段,提供极致体验的智能化金融服…
ylbtech-开发框架-移动开发平台: mPaaS 移动开发平台 mPaaSmPaaS(Mobile PaaS)为 App 开发.测试.运营及运维提供云到端的一站式解决方案,能有效降低技术门槛.减少研发成本.提升开发效率,协助企业快速搭建稳定高质量的移动应用. 1.返回顶部 1. 产品优势 动态灵活的客户端能力 作为开发者,您可以借助客户的端动态灵活的能力,有效提升开发效率,打造极致的 App 体验: 3 大研发框架:Native 开发框架.Kylin H5 开发框架.小程序开发框架. 20…
关于vue.js vue.js是一套构建用户界面的 轻型的渐进式前端框架.它的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件.使用vue可以给你的开发带来极致的编程体验. 关于vue-cli Vue-cli是vue官方提供的一个命令行工具(vue-cli),可用于快速搭建大型单页应用.该工具提供开箱即用的构建工具配置,带来现代化的前端开发流程.只需一分钟即可启动带热重载.保存时静态检查以及可用于生产环境的构建配置的项目. 疑问 vue-cli主要是用于构建单页应用的脚手架,但…
vue-cli + webpack 关于vue.js vue.js是一套构建用户界面的 轻型的渐进式前端框架.它的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件.使用vue可以给你的开发带来极致的编程体验. 关于vue-cli Vue-cli是vue官方提供的一个命令行工具(vue-cli),可用于快速搭建大型单页应用.该工具提供开箱即用的构建工具配置,带来现代化的前端开发流程.只需一分钟即可启动带热重载.保存时静态检查以及可用于生产环境的构建配置的项目. 疑问 vue-cl…
作者 | Jackson 编辑 | 尾尾 不论是 PC 还是移动端,图片一直占据着页面流量的大头,在图片的大小和质量之间如何权衡,成为了长期困扰开发者们的问题.而 WebP 技术的出现,为解决该问题提供了好的方案.本文将为大家详细介绍 WebP 技术,同时也会分享该技术在 MIP 项目中的实践. 一.什么是 WebP ? WebP 是由 Google 收购 On2 Technologies 后发展出来的图片格式,以 BSD 授权条款发布.目前已经在不同厂商之间进行了尝试,如 Google.Fac…
vue入门|ElementUI使用指南 1.开发前务必熟悉的文档: vue.js2.0中文,项目所使用的js框架 vue-router,vue.js配套路由 vuex 状态管理 Element UI框架 2.构建项目框架 全局安装脚手架环境 npm install -g vue-cli 创建一个基于webpack模板项目my-project vue init webpack my-project 进入项目 cd my-project 安装依赖 npm install 启动项目 npm run d…
作者:陈希章 重写于 2017年5月24日 前言 这篇文章最早写于2017年5月2日,当时的想法是从最简单的方式来写如何在一个ASP.NET MVC应用程序中集成Microsoft Graph,但实际上还真不是那么简单,至少我是不满意的,加上这一两周都比较忙,所以这一篇就一直搁置.直到上周的一个契机,让我看到了一个全新的方式,而且可以极大地改变我们在Web应用程序中集成Microsoft Graph,所以抓紧做了实践,写出来给大家参考. 在今年3月份Visual Studio 2017进行发布的…
Dora.Interception最初的定位就是专门针对.NET Core的AOP框架,所以在整个迭代过程中我大部分是在做减法.对于.NET Core程序开发来说,依赖注入已经成为无处不在并且“深入骨髓”的东西,不论是在进行业务应用的开发,还是进行基础组件的开发,依赖注入是实现“松耦合”最为理想的方式(没有之一).对于绝大部分AOP框架来说,它们最终都会体现为创建一个能够拦截的“代理对象”来实现对方法调用的拦截,但是.NET Core中针对服务实例的提供完全由通过IServiceProvider…