跨平台

上周热点回顾(3.30-4.5)

对着背影说爱祢 提交于 2020-04-06 09:44:44
热点随笔: · 你所不知道的 C# 中的细节 ( hez2010 ) · 2020年了,跨平台开发框架现在怎样了? ( 葡萄城技术团队 ) · 坚持写作快两年了,有些私藏工具跟你们分享 ( 楼下小黑哥 ) · 从入门到精通-Nginx,图文并茂、负载均衡、动静分离、虚拟主机 附案例源码 ( 陈彦斌 ) · 高效code review指南 ( xybaby ) · ASP.NET Core 奇淫技巧之伪属性注入 ( 晓晨Master ) · 采用vue编写的功能强大的swagger-ui页面 ( RegicideGod ) · 技术到底是否重要之我的见解 ( antain ) · ASP.NET MVC升级到ASP.NET Core MVC踩坑小结 ( 艾心❤ ) · 毕业后第一份工作去了很小的公司,是怎样的体验? ( 四猿外 ) · 给 EF Core 查询增加 With NoLock ( WeihanLi ) · [WPF]总结一些我在开发WPF时常用的工具 ( dino.c ) 热点新闻: · “司徒正美”不幸离世,刚入职OPPO,著有《JavaScript框架设计》 · 程序员的一次失误,在 45 分钟里搞垮了一家上市公司 · core-js 作者入狱 18 个月,2600 万次周下载的开源项目将如何? · 远程办公监控软件卖爆了:5分钟一拍照、10分钟一截屏 ·

JAVA学习 :Java程序设计环境

强颜欢笑 提交于 2020-04-06 03:43:21
JVM:Java虚拟机 保证了Java的跨平台性(Java是跨平台的,而JVM不是) JRE:Java程序运行环境(JVM+核心类库) JDK:Java开发工具箱(JRE+开发工具) 1.下载JDK 访问Oracle网址下载。 2.安装JDK A:在D盘建立一个目录,如 develop B:傻瓜式安装,修改安装的路径到d盘的develop C:路径如下 JDK: D:\develop\Java\jdk1.7.0_72\ JRE: D:\develop\Java\jre7\ 配置path环境变量 作用: 让Java命令可以任意目录下使用。 配置方法: 方式1   把JDK的bin目录配置到path中。   修改系统属性中的path环境变量:   D:\develop\Java\jdk1.7.0_72\bin;以前的path内容 b:方式2   创建新的变量名称:   变量名:JAVA_HOME   变量值:D:\develop\Java\jdk1.7.0_72 修改path变量:   用%%引用JAVA_HOME即可。   %JAVA_HOME%\bin;以前的path内容 等价于下面的内容:   D:\develop\Java\jdk1.7.0_72\bin;以前的path内容 来源: https://www.cnblogs.com/shaofanglazi/p/6672087

“微信支付”的架构到底有多牛逼?看完这篇你就明白了!

徘徊边缘 提交于 2020-04-06 03:05:23
点点这个链接免费获取: 【推荐】2020年最新Java电子书集合.pdf(吐血整理) >>> 背景 作为一个重要业务,微信支付在客户端上面临着各种问题。其中最核心问题就是分平台实现导致的问题: iOS 和安卓实现不一致 容易出 Bug 通过沟通保证不了质量 扩展性差,无法快速响应业务需求 需求变更迭代周期长 数据上报不全面 质量保障体系不完善 缺少业务及设计知识沉淀 协议管理松散 缺少统一的自动化测试 用户体验不一致比如下图就是之前安卓和 iOS 没有统一前的收银台。 为了解决分平台实现这个核心问题,并解决以往的技术债务。我们建立起了一整套基于 C++ 的跨平台框架,并对核心支付流程进行了重构。 微信支付跨平台从 iOS 7.0.4 版本起, 安卓从 7.0.7 版本起全面覆盖。 线上效果指标 以 iOS 上线情况为例: Crash 率上线前后 Crash 率保持平稳,没有影响微信稳定性,跨平台支付无必现 Crash,做到了用户无感知切换。举个例子,大家可以用微信发一笔红包,拉起的收银台和支付流程就是由基于C++编写的跨平台代码所驱动的。 效能提升以核心支付流程代码为例,跨平台需要 3512 行,iOS 原生需要 6328 行。减少了近 45% 的代码。以新需求开发为例:7.0.4 版本需求一:收银台改版7.0.4 版本需求二:简化版本收银台 跨平台实现:iOS + 安卓 共计 3

“微信支付”的架构到底有多牛逼?看完这篇你就明白了!

戏子无情 提交于 2020-03-31 21:06:30
点点这个链接免费获取:本人免费整理了Java高级资料,涵盖了Java、Redis、MongoDB、MySQL、Zookeeper、Spring Cloud、Dubbo高并发分布式等教程,一共30G,需要自己领取。 传送门: https://mp.weixin.qq.com/s/osB-BOl6W-ZLTSttTkqMPQ 背景 作为一个重要业务,微信支付在客户端上面临着各种问题。其中最核心问题就是分平台实现导致的问题: iOS 和安卓实现不一致 容易出 Bug 通过沟通保证不了质量 扩展性差,无法快速响应业务需求 需求变更迭代周期长 数据上报不全面 质量保障体系不完善 缺少业务及设计知识沉淀 协议管理松散 缺少统一的自动化测试 用户体验不一致比如下图就是之前安卓和 iOS 没有统一前的收银台。 为了解决分平台实现这个核心问题,并解决以往的技术债务。我们建立起了一整套基于 C++ 的跨平台框架,并对核心支付流程进行了重构。 微信支付跨平台从 iOS 7.0.4 版本起, 安卓从 7.0.7 版本起全面覆盖。 线上效果指标 以 iOS 上线情况为例: Crash 率上线前后 Crash 率保持平稳,没有影响微信稳定性,跨平台支付无必现 Crash,做到了用户无感知切换。举个例子,大家可以用微信发一笔红包,拉起的收银台和支付流程就是由基于C++编写的跨平台代码所驱动的。

微信团队分享:微信支付代码重构带来的移动端软件架构上的思考

你说的曾经没有我的故事 提交于 2020-03-25 20:37:34
3 月,跳不动了?>>> 本文原文由微信客户端高级工程师方秋枋原创发表于WeMobileDev公众号,收录时有修订和加工,感谢作者的无私分享。 1、引言 作为一个重要业务,微信支付在客户端上面临着各种问题。 其中最核心问题就是分平台实现导致的问题: 1)iOS 和安卓实现不一致:容易出 Bug、通过沟通保证不了质量; 2)扩展性差且无法快速响应业务需求:需求变更迭代周期长、数据上报不全面; 3)质量保障体系不完善:缺少业务及设计知识沉淀、协议管理松散、缺少统一的自动化测试; 4)用户体验不一致:比如下图就是之前安卓和 iOS 没有统一前的收银台。 ▲ 微信安卓片和iOS版,没有统一用户体验前的收银台功能 为了解决分平台实现这个核心问题,并解决以往的技术债务。我们建立起了一整套基于 C++ 的跨平台框架,并对核心支付流程进行了重构。微信支付跨平台从 iOS 7.0.4 版本起, 安卓从 7.0.7 版本起全面覆盖。 重构后的软件架构原理如下图所示: 本文分享了微信团队基于 C++ 的移动端跨平台技术在重构整个微信支付功能的过程中,对于移动端软件架构设计方面的思考和实践总结。 术语约定: 本文中的名词 CGI 可以理解为一个网络请求,类似HTTP请求。 2、关于作者 方秋枋: 毕业于华中科技大学,现为微信客户端高级工程师。目前主要负责微信支付的跨平台开发框架与相关业务开发。 是开源项目

使用 Vagrant 打造跨平台开发环境

我们两清 提交于 2020-03-24 02:34:39
Vagrant 是一款用来构建虚拟开发环境的工具,非常适合 php/python/ruby/java 这类语言开发 web 应用,“代码在我机子上运行没有问题”这种说辞将成为历史。 我们可以通过 Vagrant 封装一个 Linux 的开发环境,分发给团队成员。成员可以在自己喜欢的桌面系统(Mac/Windows/Linux)上开发程序,代码却能统一在封装好的环境里运行,非常霸气。 安装步骤 1. 安装 VirtualBox 虚拟机还是得依靠 VirtualBox 来搭建,免费小巧。 下载地址: https://www.virtualbox.org/wiki/Downloads * 虽然 Vagrant 也支持 VMware,不过 VMware 是收费的,对应的 Vagrant 版本也是收费的 2. 安装 Vagrant 下载地址: http://downloads.vagrantup.com/ 根据提示一步步安装。 此外,还得下载官方封装好的基础镜像: Ubuntu precise 32 VirtualBox http://files.vagrantup.com/precise32.box Ubuntu precise 64 VirtualBox http://files.vagrantup.com/precise64.box 如果你要其他系统的镜像,可以来这里下载: http:

值得推荐的C/C++开源框架和库

旧巷老猫 提交于 2020-03-21 07:32:36
原文链接: http://coolshell.info/c/c++/2014/12/13/c-open-project.htm 留档备查,非常强大的C/C++开源项目总结文档~ 值得学习的C语言开源项目 - 1. Webbench Linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL, 测试 网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用 C语言 编写, 代码实在太简洁,源码加起来不到600行。 http://home.tiscali.cz/~cz210552/webbench.html - 2. Tinyhttpd 下载链接: http://sourceforge.net/projects/tinyhttpd/ - 3. cJSON cJSON也存在几个弱点,虽然功能不是非常强大,但cJSON的小身板和速度是最值得赞赏的。其代码被非常好地维护着,结构也简单易懂,可以作为一个非常好的C语言项目进行学习。 http://sourceforge.net/projects/cjson/ - 4. CMockery 主要特点: 免费且开源,google提供技术支持; 轻量级的框架,使测试更加快速简单; 避免使用复杂的编译器特性,对老版本的编译器来讲,兼容性好; 并不强制要求待测代码必须依赖C99标准

值得推荐的开源C/C++框架和库

限于喜欢 提交于 2020-03-18 06:03:14
值得学习的C语言开源项目 - 1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写, 代码实在太简洁,源码加起来不到600行。 下载链接: http://home.tiscali.cz/~cz210552/webbench.html - 2. Tinyhttpd tinyhttpd是一个超轻量型Http Server,使用C语言开发,全部代码只有502行(包括注释),附带一个简单的Client,可以通过阅读这段代码理解一个 Http Server 的本质。 下载链接: http://sourceforge.net/projects/tinyhttpd/ - 3. cJSON cJSON是C语言中的一个JSON编解码器,非常轻量级,C文件只有500多行,速度也非常理想。 cJSON也存在几个弱点,虽然功能不是非常强大,但cJSON的小身板和速度是最值得赞赏的。其代码被非常好地维护着,结构也简单易懂,可以作为一个非常好的C语言项目进行学习。 项目主页: http://sourceforge.net/projects/cjson/ - 4. CMockery

Xamarin.Android使用教程之简介和安装

帅比萌擦擦* 提交于 2020-03-16 14:22:13
某厂面试归来,发现自己落伍了!>>> 简介 目前,有超过1亿的Android设备被激活,因此大约有十亿人开发Android应用程序。那么接下来,小编将为大家介绍一系列的Xamarin.Android使用教程,希望能对大家的Android开发有所帮助,欢迎品鉴! 传统上,当团队使用多个代码库和不同工具集多次开发应用程序时,我们更多地使用"silo"方法来开发应用程序。通常这会耗费更多的时间去构建和维护,更不要说在一个功能集中单个更改需要被复制到多个代码库和团队中。 Xamarin 可直接开发出原生App,开发人员可以用C#开发iOS、Android和Windows Phone原生应用程序,一次开发,多平台交付,所以与其他跨平台方案相比,Xamarin更能发挥出各平台的功能与特性,且具有最佳的执行效能。 使用Xamarin,您能得到100%覆盖率的iOS或Android的本地API。Xamarin 提供了Visual Studio的 插件,让原本就熟悉Visual Studio的开发者不用再熟悉其他的开发工具。在建立项目时,可直接建立iOS及Android的项目模板。 安装 Mac: 要在Mac上安装Xamarin,首先需要从网站上下载DMG文件,然后按照安装步骤执行。 试用版下载地址>> 当所有的安装都完成之后,你会发现在你的机器上有一个名为"Xamarin Studio