当我们谈论到应用程序的架构的时候,经常会问到一个经典的问题,那就是"这段代码应该放在哪里比较好". 因为 Laravel 是一个相当灵活的框架,所以要回答这个问题其实没那么容易.我应该把我的业务逻辑写在 Model 层,还是 Controller 层,或者是其他地方? 当你的应用程序仅有一个接入点,把业务逻辑写在 Controller 层是可以的.但是现在更普遍的的情形是,有很多接入点去调用相同的功能模块. 比如说,太多数的应用程序都有用户注册的功能,它的流程是调用一个控制器然后返回一…
使用微信小程序开发已经很长时间了,对小程序开发已经相当熟练了:但是作为一名对技术有追求的前端开发,仅仅熟练掌握小程序的开发感觉还是不够的,我们应该更进一步的去理解其背后实现的原理以及对应的考量,这可能会解释我们在开发过程中遇到的一些疑惑,比如为啥小程序不能操作dom.小程序是web技术渲染还是native技术渲染等等,另一方面对于我们个人成长也是有帮组的. 首先声明下,文章查看小程序开发者工具源码的方法仅限学习使用. 本文将从以下几个方面来说一下小程序的实现原理 如何查看小程序开发者工具源码 小…
关于Hybrid模式开发app的好处,网络上已有很多文章阐述了,这里不展开. 本文将从以下几个方面阐述Hybrid app架构设计的一些经验和思考. 原文及讨论请到 github issue 通讯 作为一种跨语言开发模式,通讯层是Hybrid架构首先应该考虑和设计的,往后所有的逻辑都是基于通讯层展开. Native(以Android为例)和H5通讯,基本原理: Android调用H5:通过webview类的loadUrl方法可以直接执行js代码,类似浏览器地址栏输入一段js一样的效果 webvi…
​导读:涛思数据8月3日将TDengine 的集群功能开源,TDengine具有超强的性能和功能,为什么能做到?它到底有哪些技术创新?今将TDengine的整体设计文档分享出来. 1: 数据模型 物联网典型场景 在典型的物联网.车联网.运维监测场景中,往往有多种不同类型的数据采集设备,采集一个到多个不同的物理量.而同一种采集设备类型,往往又有多个具体的采集设备分布在不同的地点.大数据处理系统就是要将各种采集的数据汇总,然后进行计算和分析.对于同一类设备,其采集的数据都是很规则的.以智能电表为例,…
通讯 作为一种跨语言开发模式,通讯层是Hybrid架构首先应该考虑和设计的,往后所有的逻辑都是基于通讯层展开. Native(以Android为例)和H5通讯,基本原理: Android调用H5:通过webview类的loadUrl方法可以直接执行js代码,类似浏览器地址栏输入一段js一样的效果 webview.loadUrl("javascript: alert('hello world')"); H5调用Android:webview可以拦截H5发起的任意url请求,webview…
Uber的Greenlight Hubs(GLH)在全球拥有超过700个分支机构,为合作车主提供从账户和支付到车辆检查和车主注册等各方面的人工支持.为了给合作车主创造更好的体验并提高客户满意度,Uber的客户优先工程团队开发的内部客户支持系统,是一个通过GLH实现了更加简化和快速的支持申请的解决方案. 客户支持系统包含两个主要功能:为我们的服务专家提供的登记队列系统,以跟踪合作车主进入GLH的情况; 和一个预约系统,让合作车主可以通过Uber合作车主APP安排人工支持的预约. 这些工具自从201…
目标:客户端程序在启动时,自动联网检查服务端是否有新的版本,有则提示用户更新客户端. 思路: 1.打开Visual Studio,在主体程序的解决方案下再新建一个叫自动更新程序的项目.主体程序的目录是D:\workspace\MyProject\Client\,自动更新程序的目录是D:\workspace\MyProject\UpdateTool\. 2.最后打包出来时将两个项目合并在一个Debug文件中.只需把自更程序exe和它依赖的dll文件一并拷到主体程序打包出来的Debug文件夹下即可.…
开发WINDOWS应用程序一般都会有一个自动更新的功能,这就需要提供一个单独的更新程序来更新主程序,那么主程序怎么检测是否有更新,以及更新程序怎么去更新主程序呢?下面将分开研究分析. 用VS发布向导发布的都是安装程序,每次更细都是将整个安装程序下载下来重新安装,有时候安装程序过大而更新又比较平凡(比如我们ERP系统中经常有模块需要升级),为了升级一个单独的模块而升级整个应用程序,这将严重影响用户体验.于是我们采用下载远程模块DLL的方式,客户端用XML文件来保存版本信息,服务器的版本信息保存在数…
在我前面有很多篇随笔介绍了Web API 接口层的架构设计,以及对微信公众号.企业号.小程序等模块的分类划分.例如在<C#开发微信门户及应用(43)--微信各个项目模块的定义和相互关系>介绍了相关模块的划分,在<基于微信小程序的系统开发准备工作>介绍了Web API的架构设计思路.本篇随笔对之前介绍的架构内容进行统一的调整更新,以便更加方便实际项目的应用开发,以期达到统一.重用.清晰的目的. 1.公众号.企业号.小程序模块的划分 我们知道,目前微信企业应用,分为公众号.企业号(企业…
目录 <ATD> 游戏简介 <ATD> 整体结构 <ATD> 游戏机制 Buff机制 Skill机制(技能机制) 仇恨机制 <ATD> 游戏模型 策划案部分摘取 继承实现游戏模型 组合实现游戏模型 组合实现设计结构 结语 <ATD> 游戏简介 游戏类型:塔防+RPG的3D游戏 游戏要素:3D 塔防 英雄 建筑树 搭配 主体玩法:游戏里将会有一波波怪物进攻基地.玩家可以建造塔来防御敌人,同时也可以控制单独的个体英雄角色来攻击敌人. 游戏模式: 第三…