16 yqj2065

尚未进行身份认证

ok

等级
TA的排名 3k+

编程语言应该学些什么

搞了一个GitChat,作为第0章基础-0.1三大抽象。人们常说:“编程语言只是工具,重要的是学会编程的思想”,那么,什么是编程的思想呢?更现实的说法,(一个合格的老师)在讲授一门语言时,应该介绍什么呢?本次活动,介绍在编程语言的共性方面的编程的思想,即编程语言对程序员的一般性需求的支持。不论命令范式、函数范式或面向对象范式语言,都需要对程序员的数据抽象、行为抽象加以支持,而面向对象范式语言...

2019-06-21 17:32:48

什么是依赖注入——板砖拍Martin Fowler

今天yqj2065用板砖,拍一下MartinFowler的《IoC容器和依赖注入模式》(InversionofControlContainersandtheDependencyInjectionpattern[1])。将我在其他博客中关于他这篇文章的吐槽,条理化。1.MartinFowler介绍MartinFowler(马丁·福勒),国际著名的OO专家,敏捷开发方法...

2018-08-11 11:55:09

拍到什么程度

写《OOD实战(Java8)》最难的地方,在于OOD领域存在大量错误认识,而我们又必须建立完整的逻辑体系。在讲解OOD的“正确”知识时,我就需要拍一下GoF、RobertC.Martin、MartinFowler。对于GoF,我是心怀敬意的,但是RobertC.Martin的DIP,就要把它拍到粪坑中去,因为DIP论文,夸张滴说,错误无处不在。但是写书时,应该拍到什么程度呢?拍多了,看起...

2018-07-13 08:56:25

2017-2018-2 OOD试卷AB

一、 编程论述题:框架设计者1.以SortTest和IntSort为例,说明什么是控制反转IoC(7分)2.什么是抽象依赖原则,它与应用程序、框架的关系(5分)3.有一个接口如下 packageutil;@FunctionalInterface publicinterface DoubleOP{   doubleop(doublem,doublen);}编写应用程序App...

2018-06-26 20:00:17

《OOD实战(Java8)》难产中

虽然yqj2065自认为不是一个很负责的老师,但是比起绝大多数老师,我算得上对得起我的学生。我讲课的内容,全世界独一无二。你们不会在任何其他人那里获得,除了我的博客中,零零散散。我也准备了大量例程、文字...但是将它们搞成一本书,还差得远。但是,我有更有趣的事情要做,身体也不宜久坐,写书挺无趣。最最重要的是,我对待出书,有洁癖般的要求。那就是当我死的时候,它应该有资格陪我进火葬场。我也不想写什么论...

2018-06-24 22:39:07

我是OO砖家

yqj2065是OO砖家.作为OO砖家,我都不屑拍国内的设计模式书籍的作者,都是垃圾书,有什么好拍的。要拍的是GoF、RobertC.Martin、MartinFowler这些装逼的货。   并且,要求学生一起拍。拍得不好,我挂你!...

2018-06-10 21:40:34

同学们写学习笔记——认识IoC、DI和DIP

【2018.8.3】我准备了一个Chat,介绍如下:面向对象设计/OOD领域充满混乱。当我们建立OOD的完整的逻辑体系时,需要澄清一些错误认识。特别是依赖倒置原则/DIP、控制反转/IoC和依赖注入/DI搅合在一起,成为“那些年搞不懂的高深术语”,本活动的出发点,旨在解释这些高深术语,以及为什么它们会“成为”高深术语。本活动通过实例,介绍OOD中的基本原则——针对接口编程,什么...

2018-05-25 14:13:46

OOD/设计模式学习环境

OOD/设计模式的主要使用语言为Java,开发环境为BlueJ;使用的其他语言环境:C语言:Pellesc Scheme语言:DrRacket

2018-05-17 13:28:16

什么是闭包?

对于吃,人们有一个基本理解——填肚子。正是因为有一个公认的基础,所以人们容易理解更复杂的说法,如吃饭/吃酒、吃苦/吃醋/吃亏、吃货、吃人。当我以Java作为通常的工作语言时,yqj2065一般不使用闭包这个术语——我不希望你从Java中知道了闭包概念,在别的语言中又要重新理解这个概念。由于在讲行为参数化时,需要讲到嵌套函数,所以,这里给大家一个比较完整的闭包(计算机科学)的定义,作为“公认”基...

2018-01-27 19:57:03

编程类课程的问题

本文已经纳入编程语言应该学些什么,作为引子。在讲授一门语言时,应该介绍什么呢?我认为,简单地说,三大抽象(如果是面向对象的语言)+其编程范式。我国绝大多数高校,是从C语言教学开始的。从数据抽象、行为抽象的角度看,C语言并不是合适的入门级编程语言(后面再解释)。现行教学体系中,编程类课程有一个存在很久的问题:语法派的教学。教学方式上,很多人不是在讲授如何编程,而是在讲一门语言的语法。以谭浩强...

2018-01-18 19:43:08

考前提示

 考试前请学生们注意:1.本课程开卷,不限制你带任何书籍和资料。我不知道教务处有没有限制你们不得使用手机,但是我不建议你们用手机,因为你肯定不懂才到处查资料,而你查到的网上的资料,大多数我会认为是错误的。2.不得大篇幅抄袭我的博客中的内容。你不会的,抄唐诗宋词比较好。抄我的,驴头不对马嘴,会让我心烦。3.考试前,我不会整合博客内容。和考试关联度高的博客,我可能会暂时隐藏。4.看...

2018-01-14 23:42:23

1.2 抛弃依赖倒置原则

1.2.2依赖倒置原则(DIP)的错误RobertC.Martin在1996提出DIP,并在几年后收入到他的著作《敏捷软件开发》中。随后,国内外有大量的基于DIP的文章、许多使用或介绍DIP的书籍。国内几乎所有都关于设计模式的书籍都介绍它。一个以其昏昏使人昭昭的东西,居然大行其道,简直令人匪夷所思。【所以,我对国内几乎所有设计模式的书,只会翻阅一下,说声垃圾。】1.可笑的第五...

2017-12-29 21:55:10

动态类型+面向对象 = shit

动态类型+面向对象=shit1.动态类型动态类型语言,属于看起来方便,用后麻烦的东西,我不喜欢它们。除非不需要考虑软件工程场合——如作为脚本语言。动态类型+高阶函数,使得Scheme定义的op非常强大,如同酒驾的司机,非常狂野。(define(opabhow-op)(how-opab))op可以对两个参数a,b进行“某种”how-op操作...

2017-12-26 18:30:54

为什么人们说Python容易?

在讲OOD时,我用了C、Java和Scheme的例子,对语言我比较了解。有学生说Python学习起来很容易。Python有动态类型、面向对象、lambda表达式,它会容易?

2017-12-24 12:16:59

实验3 累积函数

关键词:实验4求和方法的一般化,模板方法模式,通用函数,高阶函数

2017-12-24 10:06:56

依赖丈母娘原则

依赖丈母娘原则

2017-07-09 23:23:32

打包后的工具类 God+BlueJ+ClassLoader

工具类God为什么NetBeans环境可以但是BlueJ中不行?

2017-07-06 22:15:47

装饰模式-撤销装饰

接Java装饰模式(4.4)装饰模式可以灵活地为基本对象添加功能,也可以撤销功能装饰。假设需要撤销TSong装饰,则在IProfession中添加publicabstractIProfessionremoveSongTalent();IProfession的子类型给出实现:Teacher:@OverridepublicIProfessionre

2017-06-21 17:53:17

4.1.3 模板方法模式(5.10)

【2019.7.1】看一本关于设计模式的书,首先翻阅其模板方法模式。一方面,模板方法模式极为基础,也包含很多设计思考;另一方面,它反映作者对设计模式的理解程度,这一章写得不好,一定是水货师傅。我们通过设计累积函数,引入策略模式的扩展、模板方法模式(5.10)。-------------------------------------------第4章多重策略4.1.3模板方...

2017-06-17 16:42:29

IT界,不需要“下一个伟大的思想”

近期写《抛弃依赖倒置原则》,yqj2065不知道国内外有没有吃相似观点的,因为没有找到。突然间,我惊奇:如此稀烂地DIP,为什么没有人质疑呢?联想ERP.CRM...云计算、大数据...是不是IT咨询界也在复制管理界的《下一个伟大的思想》?这是令人毛骨悚然的猜测。如果理工科也流行文科的套路,软件工程专家们像卖减肥药一样吆喝,那真是悲剧。IT界,不需要“下一个伟大的思想”

2017-06-10 23:34:43

查看更多

勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!