beyond coding

34
Beyond Coding [email protected]

Upload: stone-wang

Post on 14-Jul-2015

238 views

Category:

Technology


3 download

TRANSCRIPT

xueqiu.com

Define What We Say Coding Here

只为了实现功能

缺少优雅的追求

缺少工程化理念

缺少系统性思维

xueqiu.com

Agenda

Language and Code

Beyond coding

Far beyond that

And then ...

xueqiu.com

Language and Code

语言和工具决定思路

每年学习一門语言

xueqiu.com

COBOLIDENTIFICATION DIVISION.PROGRAM-ID.     HELLO-WORLD.ENVIRONMENT DIVISION.DATA DIVISION.PROCEDURE DIVISION.DISPLAY "Hello World!".STOP RUN.

xueqiu.com

Assembly.MODEL small.STACK 100h.DATA Hello DB \'Hello World!\',13,10,\'$\'.CODE mov  ax,@data mov  ds,ax                   mov  ah,9                   mov  dx,OFFSET Hello         int  21h                     mov  ah,4ch                 int  21h                   END

xueqiu.com

C

#include <stdio.h>int main() {    printf("Hello World!\n");    return 0;}

xueqiu.com

Objective-C  #import <Cocoa/Cocoa.h>  @interface hello : NSObject {  }  @end    @implementation hello    -(void)awakeFromNib {        NSRunAlertPanel(@"Message from your Computer", @"Hello, world!", @"Hi!", nil, nil);  }    @end

xueqiu.com

Java

class Hello {    public static void main(String ars[]) {        System.out.print("Hello World!\n");    }}

xueqiu.com

Scalaobject HelloWorld { def main(args: Array[String]) = { Console.println("Hello, world!"); }}

xueqiu.com

Common Lisp

(format t "Hello world!")

xueqiu.com

Scheme

(display "Hello, world!\n")

xueqiu.com

Haskell

module HelloWorld (main) wheremain = putStr "Hello World!\n"

xueqiu.com

Erlang

-module(hello).-export([hello_world/0]).hello_world() -> ifwrite("Hello World!\n").

xueqiu.com

Lua

print "Hello World!\n"

xueqiu.com

Python

print "Hello World!"

xueqiu.com

Ruby

print "Hello World!\n"

xueqiu.com

JavaScript

document.write('Hello World');

xueqiu.com

Beyond Coding代码结构

调试和日志

测试

开发过程

系统架构

xueqiu.com

代码结构

DRY (Don’t repeat yourself)

简单

优雅

避免过度设计

xueqiu.com

调试和日志

使用方便的调试工具

代码架构支持灵活方便的日志输出

统一的日志收集与分析 (Syslog / Scribe / Fluentd)

xueqiu.com

测试

不只是验证正确性

持续集成的一部分

持续的信心

单元测试

集成测试

界面测试

xueqiu.com

开发过程

开发周期与过程

代码管理

代码审查

持续集成

灰度发布

自动化部署

xueqiu.com

系统架构分布式

高可用

高并发

虚拟化

云计算?

xueqiu.com

Far Beyond That

运维

安全

全文搜索

推荐

数据挖掘

数据访问层

xueqiu.com

运维

新设备服务安装

补丁升级

监控报警

自动化

还是自动化

好多服务器的自动化

xueqiu.com

安全

代码安全

系统安全

传输安全

xueqiu.com

全文搜索更准确

更多因子

更大数据

更实时

更方便

xueqiu.com

推荐Social Graph

基于内容推荐 (推荐与其以前喜欢的产品相似的产品)

协同过滤推荐 (在用户群中找到指定用户的相似用户,综合这些相似用户对某一信息的评价,形成系统对该指定用户对此信息的喜好程度预

测)

社会化过滤

xueqiu.com

数据挖掘

股票交易数据

公司消息/新闻

UGC 内容

用户行为 (日志)

分类

聚类

相关性分析

实时处理

xueqiu.com

数据访问层

抽象统一的数据访问方式

关系数据库/NoSQL/Cache/Search

Auto Sharding

xueqiu.com

And Then ...

Be Curious

Be Proactive

Be Productivity

Be Professional

xueqiu.com

推荐书目Code Complete (代码大全)

The Pragmatic Programmer (程序员修炼之道)

Design Patterns (设计模式)

Extreme Programming Explained (解析极限编程)

Thanks2011.12.23