West2ers' Blog

To Be A Lean Developer!

我的网易面试经历

我的网易面试经历提早30分钟到达,签到后坐下来不到5分钟就叫号了… 一面:面试官一开始夸了我的简历,说竟然是彩色的,太高级了吧(哈哈哈,一面的内容都是基础的,计算机基础居多,印象中问了: 计算机基础: 画一下网络五层协议,分别说说各层都做了什么事情 tcp与udp的区别 在草稿纸上画一下tcp的建立连接和断开连接的过程,并说说标志位(ACK, ASN,FIN)的作用 http的全过程 htt......

Java并发编程艺术-并发机制的底层原理实现

Java并发编程艺术-并发机制的底层原理实现1.Volatile定义: Java编程语言允许线程访问共享变量,为了确保共享变量能被准确和一致的更新,线程应该确保通过排他锁单独获得这个变量。 volatile借助Java内存模型保证所有线程能够看到最新的值。(内存可见性) 实现原理:将带有volatile变量操作的Java代码转换成汇编代码后,可以看到多了个lock前缀指令(X86平台CPU......

Swift-可选值

可选值 Optional是Swift中的一种枚举类型,用来表达某个类型的可能值。 1234enum Optional<Wrapped> { case none case some(Wrapped)} 表示方式 可选值遵守了ExpressibleByNilLiteral协议,因此可以用nil来替代.none 而非可选值可以直接表示成可选值 return idx......

跨域与同源策略探究

背景跨域这个问题前端开发者都接触过,网上的文章也非常多,但是昨天的腾讯二面给我留了非常深刻的印象,原来跨域能问出那么多花样,难怪所有面试官都喜欢和面试者来探讨这个问题。 跨域一、什么是跨域简单的来说就是浏览器限制了向不同域发送ajax请求。 不同域体现在:域名、端口、协议不同 二、怎么解决跨域1.JSONPJSONP在CORS出现之前,是最常见的一种跨域方案,在IE10以下的版本,是不兼容......

Git WebHook简易自动部署笔记

一次git+webhook自动部署的尝试?

CYC有三台服务器分别位于腾讯云、阿里云、美国,最近在研究自动化部署。主要使用git+webhook方案。实现git push后服务器自动拉取并运行部署脚本。 CYC在写iOS的过程中,经常划水写一写Python的Flask Web项目。感觉本地修改调试然后部署到服务器有时有点麻烦=、= 趁前阵子工作不饱和的时候瞎折腾了一番。 部署git服务器为了搭建私有git 原先是简单使用 git ......

StatusLayout

显示不同状态的布局;在一个应用中,通常都会有数据为空、网络断开、正在加载等一系列状态;于是我做了一个控件来统一管理这些状态;一来方便使用,二来方便风格统一;

StatusLayout首先附上github项目地址;https://github.com/csming1995/statuslayout 之前看过很多网上已有的做法,大多都已经将状态都涵盖了;这样的做法,可能很难包裹所有的业务需求; 于是,突发奇想,是否能够提供给使用者更自由的使用方式;比如,提供给使用者自定义某状态布局,甚至自定义状态及布局的自由; 这是一个复杂度不太高,但是代码设计感......

Java设计模式

模式是在特定环境下人们解决某类重复出现问题的一套成功或有效的解决方案在软件开发生命周期的每一个阶段都存在着一些被认同的模式 什么是设计模式 设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结,使用设计模式是为了可重用代码、让代码更容易被他人理解并且保证代码可靠性。 设计模式一般包含模式名称、问题、目的、解决方案、效果等组成要素,其......

实现一个简单的 Virtual-dom

基本原理及相关步骤​ 由于操作 DOM 的代价较大,手动维护 DOM 又过于麻烦,那么就需要有一套东西去降低这方面的复杂度,只需要去维护状态,就能更新相应的视图。 ​ 而 Virtual-dom 就是一套解决方案,由于我们一般只在意一个 HTML 元素的 tag、attribute、children 等部分,所以我们可以把 HTML 元素用一个 interface(Typescrip......

使用CGBeginDisplayConfiguration切换 Mac 显示器排列

什么?没有需求?那就自己创造需求啊!

有遇到这种情况吗?当你有一台外借显示器和一台 Macbook,而且你的显示器是有支架可以移动的!有时候,我把笔记本放在显示器右边写代码,而有时候,我把显示器放在电脑正上方码字,而有时候,我还想把显示器竖起来??(喂,你怎么那么无聊啊!)感觉每次到设置-显示器排列里面拖太麻烦了?(其实并没有 QAQ)让我们用简单的几行 Swift 代码实现一个 Mac 程序剞劂他吧! 获取目前显示器信息 ......

视图控制器中的各种的方法

ViewController是每个iOS开发者都在打交道的东西,了解它的生命周期、它各种方法的正确使用和调用会对我们有很大的帮助 控制器的创建 控制器普通创建(与Xib关联或者是纯代码)会调用init:方法。 控制器从Storyboard创建,先调用该控制器的方法initWithCoder:对各个属性进行解码,接着awakeFromNib被调用,并不会调用自定的init:方法 编译过程......