- 博客(18)
- 收藏
- 关注
原创 Cassandra学习笔记
Cassandra (https://en.wikipedia.org/wiki/Apache_Cassandra) 1. Data Model SQL Concept Cassandra Concept DB Keyspace Table Column Family Row (in table) Row (in Column F
2016-09-19 05:00:14 571
原创 java8快速入门
java8也推出很久了,我总是后知后觉,最近要用看了看,发现特性高度重合scala, 熟悉scala的应该很容易上手。读了个介绍,稍微整理了下: 1. lambda expression could be used to replace inner anonymous class, if the inner anonymous class only contains one met
2016-06-25 13:11:11 774
原创 网站架构演化 -- 我的笔记
读了《大型网站技术架构》一书,基本是科普的水平,没有太多的深入分析。但是读过后还是觉得对于平常在公司做的一些事情,有了一些高屋建瓴的理解。把我的一些笔记留在这里。网站的演化过程:LAMP或类似架构瓶颈: traffic增长,无法接受每次对DB的访问 使用缓存具体操作:local cache (如程序实现的cache), remote cache server(一些专用的缓存服务器,读速度快,容量有限
2016-01-03 01:23:49 462
原创 scala进阶:Future的理解及使用
看了下scala future的官方文档,融合了自己的理解整理在这里,例子全部来自官方文档:http://docs.scala-lang.org/overviews/core/futures.html future represents a result of an async method, would could due to long time-consuming operat
2015-06-20 16:11:54 12006 2
原创 python cralwer (爬虫)心得
最近用python做了个小crawler, 可以自动整理一些网站的内容,推送到当地文件中,做个小小的总结。 主要lib就是urllib 和 beautifulsoup. urllib和urllib2是很方便的网页提取库,核心就是发送各种自定义的url request,然后可以返回网页内容。 最简单的函数,判定一个网页是否存在: def isUrlExists(url):
2015-05-26 08:51:08 1423 1
原创 设计模式心得: 模板方法模式(template method pattern)
很容易理解,将一系列行为封装成一个模板, 这个模板可以被各种具体的行为调用。模板包含的行为可以是通用的, 也可以是根据具体应用有所不同的。当具体应用不同时,行为定义为抽象的,这样在子类中可以自由实现。 例子: 炒菠菜和炒芹菜, 步骤都是: 开火 -> 放油 -> 放菜(不同实现) ->加盐 于是我们有基类: public abstract class StirFry { publi
2015-02-22 16:52:17 513
原创 设计模式心得:适配器模式(adapter pattern)和外观模式(facade pattern)
适配器简单来说,就是一个插座转换头,将一套接口转换为另外一套接口。 interface A { void foo1(); void foo2()} Interface B { void foo1(); void foo3()} class BImpl implements B { //Do s } class BtoAAdapter implements A { B b; BtoAAda
2015-02-02 12:50:41 483
原创 设计模式心得:命令模式 (command pattern)
核心思想:将对对象的请求,或者说是命令,封装为对象。 这样可以解耦命令的实现以及命令的传达, 并且可以比较方便的将命令序列化,如队列化,等等 在这个封装的命令对象中,只暴露出execute()方法 (如果有需求, 也可以封装undo()方法)。 举例: 一个控制器,有若干个按钮,控制若干个元件。 首先,定义命令这个接口: public interface Command
2015-02-02 09:06:53 471
原创 设计模式心得:装饰模式 (decorator pattern)
装饰模式用于类功能很多需要进行大量继承或是多重继承的情况, 或是需要组合大量属性,难以维护的类。 例如各种菜系会加很多调料,各种调料的属性不同,若是直接用composition,必然难以维护,需要生成少辣或是清真等特殊情况是需要进行代码重写,若使用装饰模式,则可以直接动态生成所需。 (仍需具体代码理解) 总体图 (来源wikipedia): 具体来讲,父类是一个抽象类,
2015-01-26 11:13:39 632
原创 设计模式心得:观察者模式 (observer pattern)
应用很好理解:一个subject,希望在更新的时候 (更新的定义可以从setChanged方法获得,例如,小于5的更新不通知,见下),自动通知一个observer list。 每个观察者收到更新后的动作与subject无关,大家可以自由加入/离开observer list。 java.util自带Observer, 类图 (来源Head First Design Patterns):
2015-01-26 09:19:09 529
原创 设计模式心得:策略模式 (strategy pattern)
Strategy模式: stragegy可以是任意的方法,如shopping cart中算discount, 算sum的方法,或是汽车的启动方法,或是鸭子飞的方法。 最终要解决的问题是:在这些方法对于不同对象实现不一致时,应该如何设计类。 比如,算discount, category 1的discount是5%, category 2是10% + $5,等等。 具体实现,将方法抽离出
2015-01-26 07:39:35 562
原创 scala总结(4) -- 隐式转换以及隐式参数
隐式转换: implicit def intToString(i:Int) = i.toString implicit def可以对一种类型的参数自动做转换,在上面的隐式转换作用域中,所有Int 如果不符合编译要求,会先被转换为String 不可有多个隐式转换,如再加一个implicit def intToString2(i:Int) = i.toString + “2” 则编译报错
2015-01-21 11:25:07 537
原创 scala总结(3)-- scala中常用类型继承关系
上图: in Scala Nothing will be used for all null like use cases Option: either Some or None 典型应用: Map中get方法返回Option: scores.get(“Alice”) match { case Some(score) => println(“sco
2015-01-21 11:23:23 687
原创 scala总结(2)-- 集合类型
pattern matching 生成list 或是vector等的技巧: case class: a class that can use cases pattern e match { case p1 => exp1 case p2 => exp2 ... } a match exception will be thrown if no match w
2015-01-21 11:20:21 569
原创 intelij cheatsheet (慢慢補充)
alt + f7: find usage. ctl + N: find class ( ctrl + shift + N: find file name, ctrl (command) + shift + alt + N: find all symbols including methods) ctrl + B or ctrl + click: find declarat
2014-12-07 10:31:15 427
原创 scala总结(1) -- trait, object, class等相关概念
trait: Serve as interfaces in Scala, can only have def inside, not val trait implements: class A extends B with C1 with C2... Functions can also be defined as trait or object like
2014-12-03 14:10:22 874
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人