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 (解析极限编程)