程序、模型与表达 前端工程师的程序设计思考
大纲 什么是好代码? 为什么 jQuery 会流行? 语法?语义?语言? 表达形式(面向对象?面向过程?函数式?) 设计模式 道
程序员的喜好 程序员都喜欢好代码 那么现在问题来了—— 什么样的代码是好代码?
好代码的标准 结构 逻辑 格式 风格 思路 注释 文档
产生好代码 学习 积累 理解问题 熟悉语言 策略 积累 学习 领域经验 编码习惯
他山之石 Why jQuery?
语言的本质 语言是信息的载体 自然语言: 人 >信息> 人
语言的本质 语言是信息的载体 程序: 人 >信息> 计算机 >信息> 人
语言的特征 严谨 完备 效率
语言的基本特征 文法(约等同于语法) 文法的重要分类: 上下文无关文法 (绝大多数程序语言) 上下文相关文法 (自然语言) 上下文无关文法 (绝大多数程序语言) 上下文相关文法 (自然语言) 问题: 为什么程序设计语言喜好采用上下文无关文法?
语言的基本特征 语义 什么是语义? var a = 10; 包含了哪些语法、语义
jQuery 之成功 好的语法(文法) 链式调用 好的语义 多态(多义),如:$
jQuery 之成功 语法 信息传播效率 语义 Write less, do more
没有完美的选择 严谨 效率 易维护 易用 VS 可靠 优雅 简单 简洁
程序设计的层次 最终解决 模式与逻辑 抽象建模 重构语法和语义 jQuery
模型抽象方法 物质与能量 定义与过程 函数式 是什么(定义) 面向对象 怎么做(流程) 面向过程
函数式 定义 定义 原子 原子 原子 函数式不断拆分事物直到原子(质能统一)
函数式编程 http://baike.so.com/doc/6534519.html 快速排序(Erlang) Qwrap 设计中使用到了函数式编程的模型
面向对象 卖萌 猫 吃 睡
面向对象之复用 猫类 Tom 多啦A梦 Hello Kitty
面向对象之复用 猜拳接口 类继承模型 猫类 石头剪子布 石头 家猫 机器猫 Tom Hello Kitty 多啦A梦
面向对象之复用 原型继承模型 Tom 多啦A梦.__proto__ 多啦A梦 猜拳:[石头、剪刀、布] 猜拳:[石头]
原型继承与类继承 原型继承:儿童认知世界的方式 老虎像大花猫 花猫像小老虎 类继承:大人认知世界的 老虎和猫都是猫科动物
程序设计的层次 最终解决 模式与逻辑 面向对象 抽象建模 重构语法和语义 jQuery
设计模式 什么是设计模式? 有哪些设计模式? 设计模式有什么用?
程序设计的层次 最终解决 模式与逻辑 设计模式 抽象建模 面向对象 重构语法和语义 jQuery
道
谢谢 Q&A 广告一下:长沙前端qq群12130166 欢迎回湖南的朋友