Dojo
话题
新佳
订阅
极道
元认知
元逻辑
元设计
元编程
元语言
OOP教程指南
柏拉图和面向对象编程
面向对象编程代表了自计算机出现以来普遍存在的传统编程方法的范式转变。虽然今天的计算机科学家是很聪明的人,但从柏拉图的留下的对话著作中我们不难发现,实际上支持面向对象编程的内在概念已有近2500年的历史了!现在,面向对象编程(OOP)的架构师是否意识到这些先前的概念还不能肯定,然而,柏
范畴类别思维
这篇文章的灵感来自斯坦福大学教授罗伯特·萨波尔斯基(Robert Sapolsky)的讲座,该讲座略过了一些分类思维的观点。我发现了解
一篇有关函数式编程的形象生动教程
函数式编程(FP)与面向对象编程(OOP)的诞生的时间差不多,但它最近才最受欢迎,特别是在JavaScript社区中,为什么? 我在00年代早期就学麻省理工学院。计算机程序的体系结构和解释(SICP)是我的教科书。所以我的第一个正式学习的编程语言是
OOP和FP的区别
首先确定什么是OOP和什么是FP? 什么是OOP?为了真正掌握这一理念,我强烈建议您关注
重用和单一职责可能是对立的
单一职责是让一段代码只做一件事,实现一个功能,软件复杂性来自于让一段代码做两件事: "So much complexity in software comes from trying to make one thing do two things." –
停止使用Dry原则!替代以WET原则
Dry是Don't Repeat Yourself简写,我们经常会听到像“不要重复自己”这样的陈词滥调。我们采取这
十大Java程序员书籍
推荐一些针对Java程序员的最佳书籍,从核心Java到最佳实践,再到单元测试再到Spring框架。、在本文中,我将分享一些有史以来最好的Java书籍。这些书经受住了时间的考验,随着岁月的流逝变得越来越有意义。这是每个Java开发人员应该阅读的10本最好的Java书籍。即使某些知识已经
错误的抽象
重复是比错误的抽象更便宜。看到重复事物,我们总是试图从重复中抽象出共同点,这其实属于过度设计,反而给代码带来更高的维护拓展成本。 duplication is far cheaper than the wrong abstraction
你忘掉OOP的速度越快,你和你的软件就越好
也许这只是我的经验,但面向对象编程似乎是一种默认的,最常见的软件工程范例。我花了好几年才打破它的咒语,并清楚地了解它是多么可怕和为什么。由于这种观点,我坚信人们必须了解OOP的错误,以及他们应该做些什么。 数据比代码更重要<
继承可能是有益的,Class不能是final!
任何优雅对象的类必须是抽象的或final的,我相信,这条规则背后的意图是消除继承。继承的缺点和子类型的缺点是相当清楚的,所以我不会在这里强调,然而,在我的实践中,我很快意识到这条规则出了问题。 比如下面案例来自
编写像桔子一样的代码
该文以桔子和苹果做比较,桔子是一瓣瓣的,而苹果是一整块,桔子的表面积比苹果大,因为桔子每瓣表面与每瓣之间的膜筋累积起来肯定比苹果大,他提出表面积与体积比。编码的方法是将方法里面内容包装起来,如同桔子瓣膜皮或者瓣膜筋,原来代码是如同苹果,有100行,如果提取到用五个方法中,每个方法大概20行,这样就从
对象应该只构建一次
规则:创建一个对象时,它应该是一次性完整的、一致的且有效的创建好。 说白了,对于Java来说,一个类只应该有一个构造函数,这样才能保证一次性完整一致地创建它的对象。看看Matthias Noback有关DDD这篇文章怎么说,下面是一半翻译一半掺杂我个人观点
Lambdas不意味着函数式编程
Java世界中没有人正在进行函数式编程,如果因为你使用Lambda表达式,但不意味着你正在进行函数式编程。Java的Lambda表达式只是一种不那么冗长的创建对象的方式,因此在没有很好地理解核心函数概念的情况下,冒然采用Lambda的最可能的结果是粗糙、扭曲,难以理解。
人们误解了OOP
OOP死了吗?函数编程是未来吗?有些文章似乎暗示了这一点。我倾向于不同意。来!我们讨论一下!每隔几个月我就会看到一篇博客文章,宣称它已成为过去,我们都应该转向函数式编程。为什么这些文章的作者对OOP有如此多的意见?为什么FP似乎是如此明显的选择呢?
类型是软件设计的基本工具
本文来自tedinski,类型与函数哪个是设计基础?数据结构和算法是设计基础吗?函数与类型的关系,打个比喻,有点像建筑师想要进行室内设计。并不是说房间的内部并不重要 - 一个糟糕的建筑师绝对可以创造人类无用的房间 - 但那不是重要的部分。家具可以重新布置,承重墙不能。我们可以
面向对象编程入门 - Janos Pasztor
你已经编程了一段时间,你仍然难以接受面向对象编程的实际情况?那么这可能是你的指南。我们将偏离传统的解释,并寻找一种解释OOP的新方法。我们马上就会从一些代码开始。请记住,本文中的示例是用Java-esque表示法编写的,但是所有内容都可以轻松应用于任何OOP编程语言,无论是PHP,P
消极架构和关于代码的假设 - Matthias Noback - 博客
在Michael Feathers的消极架构中,他列举了Haskell(函数式编程)中提到IO Monad作为一个例子,在面向对象编程中也有类似的例子,通过使用分层和依
让代码具有可读性的10种最佳实践
这是一组编写代码的10个实践,重点是提高可读性和降低复杂性。 我已经编写了20多年的代码。我与17个编写不同语言的团队合作,共建了数百个项目。这些内容包括从简单的博客站点到支持3,000个请求/秒的API,以及畅销应用程序。
上页
下页
关闭