West2ers' Blog

To Be A Lean Developer!

基于koa实现一个装饰器风格的框架

了解装饰器装饰器(Decorator)是用来修改类行为的一个函数(语法糖),在许多面向对象语言中都有这个东西。 语法装饰器是一个函数,接受3个参数target name descriptor target是被修饰的目标对象 name是被修饰的属性名 descriptor是属性的描述 定义一个装饰器函数 123456789function setName(target, name, des......

理解 Java 中的 Synchronized

阅读本文至少要知道 synchronized 用来是干什么的… 需要的前置知识还有 Java 对象头和 Java 字节码的部分知识,相关知识读者可以在《深入理解 Java 虚拟机》中找到。 synchronized 的使用synchronized 有三种使用方式,三种方式锁住的对象是不相同的。 锁分为实例对象锁和 class 对象锁 和 类对象锁,注意这三种锁是不一样的。 修饰实例方法......

理解 Java 中的 volatile

标题 neta 自《计算机网络自顶向下》 思维导图 volatile 在 Java 中被称为轻量级 synchronized。很多并发专家引导用户远离 volatile 变量,因为使用它们要比使用锁更加容易出错。但是如果理解了 volatile 能帮助你写出更好的程序。 当读比写更多时会获得比锁好相当多的性能 比锁更好的伸缩性 比锁使用方便,只需要声明变量即可,代码量小 内存语义vol......

深入 Spring DispatcherServlet

深入 Spring DispatcherServletDispatcherServletSpring MVC 与其他 Web 框架一样,围绕前端控制器模式设计,其中中央Servlet DispatcherServlct 为接收到的请求处理提供了共享算法,实际工作则由配置的组件执行。 DispatcherServlet 与任何 Servlet 一样,需要使用 Java 配置或 Web.xml ......

Immutable 与 Immer

Immutable 与 ImmerMutable在前端中,对象是一个很重要的类型,为了优化以及尽量节省内存,所以对象保存的都是一个引用。比如: 1234const obj = {a: 1}const b = objb.a = 2obj.a === 2// true 这就是副作用,b = obj 是将obj的引用赋值给b 所以b和obj在内存中的地址是一样的,导致了b修改......

IDEA&Android Studio Plugin开发

如果敲代码时总是会有一些规律、重复和浪费时间的工作,那么你就可以好好考虑一下能否通过 脚本或插件 的方式提高工作效率。idea 本身自带众多实用代码插件,getter,setter,代码补全… 且其第三方插件采用集中发布模式,可以让开发者快速安装和发布插件,这点要优于 eclipse。开发插件之前,得看看idea平台给我提供了哪些接口给我们使用,使用接口前最好简单了解下背后的实现原理。 这篇......

Java开发规约

消防局最主要的工作不是灭火,而是防患于未然,做好安全保障工作。前车之鉴,后车之师,从开发的视角,结合正反例分析,避免在同一块石头上跌倒多次。好规约有利于提高程序的可读性、可维护性、可复用性,提高软件质量。众所周知,制订交通法规表面上是要限制行车权,实际上是保障公众的人身安全。试想如果没有限速,没有红绿灯,没有靠右行驶条款,谁还敢上路。同理,对软件来说,开发规约绝不是消灭代码内容的创造性、优雅......

我的网易面试经历

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

Swift-可选值

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

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

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