This is Jiaozi :)


  • Home

  • Archives

NEW SKILLS 2019

Posted on 2019-12-25

2019年后端新技术3

Yii

Yii与Asp.net非常相似,也是PHP中非常出色的开源web开发框架之一。Yii框架最适合为需要执行重复任务的系统开发应用程序。这个web开发框架具有内置的基于组件的模型、数据库抽象层、事件驱动的编程特性和模块化应用程序体系结构。Yii编码器遵循快速应用开发(RAD)。

换句话说,Yii允许您在非常短的时间内启动和运行web应用程序。此外,使用Yii框架,您还可以方便地根据不断变化的业务需求定制应用程序。使用简单的数据迁移实用程序,您可以方便地在不同的安装上升级/降级应用程序版本。因此,您也可以考虑为您的web开发项目雇佣Yii开发人员。

NEW SKILLS 2019

Posted on 2019-12-23

2019年后端新技术2

ThinkPHP

ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,诞生于2006年初,原名FCS,2007年元旦正式更名为ThinkPHP,遵循Apache2开源协议发布,从Struts结构移植过来并做了改进和完善,同时也借鉴了国外很多优秀的框架和模式,使用面向对象的开发结构和MVC模式,融合了Struts的思想和TagLib(标签库)、RoR的ORM映射和ActiveRecord模式。

ThinkPHP可以支持windows/Unix/Linux等服务器环境,正式版需要PHP5.0以上版本支持,支持MySql、PgSQL、Sqlite多种数据库以及PDO扩展,ThinkPHP框架本身没有什么特别模块要求,具体的应用系统运行环境要求视开发所涉及的模块。

NEW SKILLS 2019

Posted on 2019-12-21

2019年后端新技术1

Laravel

当我们谈到后端web开发框架时,laravel会出现在前面。自2011年成立以来,Laravel为开发者展示了一条光明的道路。Laravel是一个免费的开源PHP web框架,旨在按照模型-视图-控制器(MVC)架构模式构建最先进的web应用程序。

Laravel的一些特性是具有专用依赖管理器的模块化打包系统、有助于应用程序部署和维护的实用工具、访问关系数据库的许多方法,以及它面向语法的方向。这就是为什么它被认为是最好的PHP框架,并促使企业为他们的下一个项目雇佣Laravel开发人员的原因。

NEW SKILLS 2019

Posted on 2019-12-18

2019年前端新技术4

WebAssembly

定义

WebAssembly 或者 wasm 是一个可移植、体积小、加载快并且兼容 Web 的全新格式

编译目标

WebAssembly是一个编译目标。什么是编译目标?当我们写TypeScript的时候,Webpack最后打包生成的JavaScript文件就是编译目标。WebAssembly与JavaScript很实际的一个性能对比。几乎稳定的是JavaScript的两倍。

什么时候使用WebAssembly?

我到底什么时候该使用它呢?总结下来,大部分情况分两个点。

对性能有很高要求的App/Module/游戏
在Web中使用C/C++/Rust/Go的库
举个简单的例子。如果你要实现的Web版本的Ins或者Facebook, 你想要提高效率。那么就可以把其中对图片进行压缩、解压缩、处理的工具,用C++实现,然后再编译回WebAssembly。

NEW SKILLS 2019

Posted on 2019-12-15

2019年前端新技术3

Serverless

概念

我们把 Serverless 拆解为 server 和 less 两个单词,从字面上推断词意即为“少服务器的,亦或是无服务器的”。当然这并非指应用架构中是没有服务器资源的,而是通过 Serverless 这种服务形态,用户在使用对应的服务时,不需要关心或较少关心服务器的硬件资源、软件资源、稳定性等等,这些通常已经由云计算厂商提供设施、服务和 SLA 保障,完全托管给云计算厂商。而用户只需要专注自己应用代码本身,上传执行函数到相应云计算平台,按照函数运行的时长按量付费即可。当前比较成熟的 Serverless 云产品主要有 Amazon Lambda、Google Cloud Function、Azure Function、AliCloud Function Compute。

架构

如上文的描述,Serverless 架构由两部分组成,即 Faas 和 BaaS。

FaaS(Function-as-a-Service)即为函数运行平台,用户无需搭建庞大的服务系统,只需要上传自己的逻辑函数如一些定时任务、数据处理任务等到云函数平台,配置执行条件触发器、路由等等,完成基础函数的注册。

BaaS(Backend-as-a-Service)包含了后端服务组件,它是基于 API 的第三方服务,用于实现应用程序中的核心功能,包含常用的数据库、对象存储、消息队列、日志服务等等。
Serverless 其实是通过事件驱动的,当一个任务被触发时,比如 HTTP 请求,API Gateway 接受请求、解析和认证,传递对应参数给云函数平台,平台中执行对应回调函数,配合 DB、MQ 等 BaaS 服务在特定容器中完成计算,最终将结果返回给用户。函数执行完成后,一般会被 FaaS 平台销毁,释放对应容器,等待下一个函数运行。

NEW SKILLS 2019

Posted on 2019-12-14

2019年前端新技术2

Flutter

简介

Flutter 是 Google 的移动应用 SDK,用于在极短时间内在 Android 和 iOS 平台上创建高质量的原生体验。Flutter 可以和既有代码相容,世界各地的很多开发者和组织都在使用它,并且它是免费和开源的。

用处

对于应用的用户来说,Flutter 可以让他们体验到美观灵活的 UI。
对于开发者来说,Flutter 降低了创建移动应用的门槛。它加速了移动应用的开发,降低了兼顾 Android 和 iOS 应用开发的成本和复杂性。
对于设计师而言,Flutter 可以确保精确地实现设计意图,而无需降低保真度或被迫进行妥协。在设计师的手里,Flutter 还可以作为一种高效的原型设计工具。

Flutter 针对在 Android 和 iOS 上运行的 2D 移动应用进行了优化。
如果您的应用强烈需要表达出品牌个性,Flutter 会非常适合。不过,即便您想要打造的应用看起来像是股票平台那样复杂,也可以使用 Flutter 来构建。
Flutter 可以构建功能齐全的应用,包括使用摄像头、地理位置、网络、存储、第三方 SDK 等。

对象人群

Flutter 适用于希望快速构建精美的移动应用,或者希望用一套代码库覆盖更多用户的开发者。
Flutter 也适用于需要领导移动开发团队的开发管理人员。Flutter 可以让开发管理人员打造一个统一的移动应用开发团队,以便更快地开发更多功能,同时将相同的功能部署到 Android 和 iOS 版本的应用中,并降低维护成本。
虽然设计师群体不是 Flutter 最初的目标受众,但 Flutter 也适用于那些希望将原始设计意图高保真地传递给所有移动用户的设计师。
说到底,如果您想要漂亮的应用,令人愉悦的动效和动画,以及富有个性和身份感的 UI,那您就是 Flutter 的目标用户。

NEW SKILLS 2019

Posted on 2019-12-12

2019年前端新技术1

Vue 3.0

在11月14日-16日于多伦多举办的 VueConf TO 2018 大会上,尤雨溪发表了名为 “ Vue 3.0 Updates ” 的主题演讲,对 Vue 3.0 的更新计划、方向进行了详细阐述。
可以看到,Vue 3.0 将会:

更快

Virtual DOM 完全重写,mounting & patching 提速 100% ;
更多编译时(compile-time)提醒以减少 runtime 开销;
基于 Proxy 观察者机制以满足全语言覆盖及更好的性能;
放弃 Object.defineProperty ,使用更快的原生 Proxy ;
组件实例初始化速度提高 100% ;
提速一倍/内存使用降低一半。

更小

Tree-shaking 更友好;
新的 core runtime: ~10kb gzipped

更易维护

Flow -> TypeScript
Decoupled Packages(解耦包)
编译器重写

更易于原生

自定义 Renderer API

让开发者更轻松

Exposed reactivity API
轻松识别组件重新渲染的原因
改进 TypeScript 以支持 w/TSX
改进警告追踪
Experimental Hooks API
Experimental Time Slicing Support
支持 IE11
PPT 地址:Vue 3.0 Updates

cloud

Posted on 2019-12-08

Cloud

Google Cloud(谷歌云)

Google Cloud,中文意思是”谷歌云”,听起来感觉像一个高深莫测的技术名词,可许多人也许并不清楚Google Cloud到底是什么。下面主机之旅结合自己的理解给大家做个简单介绍。

在谷歌的英文官网上,除了使用Google Cloud,也常使用Google Cloud Platform(GCP,谷歌云平台)来表达近似的概念。实际上,无论名字是什么,Google Cloud指的都是谷歌公司面向公众提供的一系列云计算服务,即:谷歌提供了一个庞大的计算能力资源池(CPU、内存、带宽、数据库、存储等),这个资源池正是谷歌搜索(Google Search)、YouTube视频等自有产品所使用的基础设施,其运算能力、健壮性、灵活性、可扩展性都可谓无与伦比,而用户则可以根据自己的需要“按需取用”这些计算资源。

具体来说,Google Cloud包括以下服务内容:Cloud Computing(云计算)、Analytics and machine learning(分析与机器学习)、Identity and security(身份与安全)、Collaboration and productivity(协同与效率)、Google maps platform(谷歌地图平台)、Browser, hardware and OS(浏览器、硬件及操作系统)等。

AWS

亚马逊AWS(Amazon Web Services (AWS) )是亚马逊提供的专业云计算服务,于2006年推出,以Web服务的形式向企业提供IT基础设施服务,通常称为云计算。其主要优势之一是能够以根据业务发展来扩展的较低可变成本来替代前期资本基础设施费用。
亚马逊网络服务所提供服务包括:亚马逊弹性计算网云(Amazon EC2)、亚马逊简单储存服务(Amazon S3)、亚马逊简单数据库(Amazon SimpleDB)、亚马逊简单队列服务(Amazon Simple Queue Service)以及Amazon CloudFront等。

Mock

Posted on 2019-12-07

Mock

Mock概念介绍

mock的定义(what):

mock是在测试过程中,对于一些不容易构造/获取的对象,创建一个mock对象来模拟对象的行为

为什么要使用mock(why):

  • 被测对象依赖的对象构造复杂

我们想对class A进行单元测试,需要构造大量的class B、C、D等依赖对象,他们的构造过程复杂(体现在构造步骤多、耗时较长),这时我们可以利用mock去构造虚拟的class B、C、D对象用于class A的测试,因为我们只是想测试class A的行为是否符合预期,我们并不需要测试依赖对象。

  • 被测单元依赖的模块尚未开发完成,而被测对象需要依赖模块的返回值进行测试:
    比如service层的代码中,包含对dao层的调用,但dao层代码尚未开发
    比如web的前端依赖后端接口获取数据进行联调测试,但后端接口并未开发完成

哪些时机和场合需要使用mock(when&where)

  • 单元测试/接口测试中测试对象依赖其他对象,这些对象的构造复杂、耗时或者根本无法构造(未交付)
  • 我们只测试对象内部逻辑的质量,不关心依赖对象的逻辑正确性和稳定性

是否应该在测试中使用mock,投入产出比如何(how much)

我们可以基于以下2个原则去做mock,这样的mock的投入产出比是最高的

  • 不需要对所有的依赖对象/服务进行mock,只对那些构造步骤复杂、构造耗时较长、不稳定的依赖对象/服务进行mock。
  • 如果做分层测试(比如分层自动化),高层的测试设计可以基于以下假设:低层的测试已保证低层对象的质量,高层对低层的依赖可以mock,无需关心所依赖的低层对象的质量。

Webpack2

Posted on 2019-12-04

WebPack 2

WebPack和Grunt以及Gulp相比有什么特性

其实Webpack和另外两个并没有太多的可比性,Gulp/Grunt是一种能够优化前端的开发流程的工具,而WebPack是一种模块化的解决方案,不过Webpack的优点使得Webpack在很多场景下可以替代Gulp/Grunt类的工具。

Grunt和Gulp的工作方式是:在一个配置文件中,指明对某些文件进行类似编译,组合,压缩等任务的具体步骤,工具之后可以自动替你完成这些任务。

Webpack的工作方式是:把你的项目当做一个整体,通过一个给定的主文件(如:index.js),Webpack将从这个文件开始找到你的项目的所有依赖文件,使用loaders处理它们,最后打包为一个(或多个)浏览器可识别的JavaScript文件。

如果实在要把二者进行比较,Webpack的处理速度更快更直接,能打包更多不同类型的文件。

1…345…8

Koshi Ryo

71 posts
© 2020 Koshi Ryo
Powered by Hexo
|
Theme — NexT.Muse v5.1.4