首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

编程的思想性——议编程与“武功”的一致性

二、缘生        其几十篇博客详细讲解了scala语言以及函数式编程。用了一周多时间将其概略读完,颠覆了我对scala以及函数式编程乃至编程的认识。...正像其在博客中说的,大部分人都是在像使用java那样使用scala,而我之前主要在使用C#,也学习过java,所以我是彻彻底底的在像使用C#那样使用scala,当然现在来看C#的“用”也是最低级的“用”...学习了王宏江的博客之后更加明白了自己的无知,感到自己才在编程的海洋中朝着彼岸游了几米,确实有一种醍醐灌顶、顿悟的感觉,以前看待编程语言就是一个个的特性加一个个功能函数,所以真的是在“用”语言编程,进行的是功能语句的堆积...当然还有近代的李小龙,李小龙对武术的贡献也绝非其满身肌肉以及漂亮的招式,其与同时代武术大师的不同就在于将哲学融入到武术当中,创立了截拳道,使得咏春拳不仅仅是那简简单单的招式,有了背后的哲学逻辑。...再比如以前老听到大牛这个词,当时觉得大牛就是那些能把语言的所有方法都记住所有特性都清楚以及精通各种框架等等的这类人,现在想来完全不是,所谓大牛应该是那些具有思想性的人,不局限于一招一式一个函数,而是能够将这些一招一式融会贯通

72450

编程之魂之C# – 与C#之父Anders的访谈

13.4 计算机科学的未来 与Anders谈C# 《编程之魂》一书第13章 第13章 C# 当微软刚刚处理完来自 Sun Microsystems公司关于Java编程语言修改的诉讼官司,他们就转而求助于经验丰富的语言设计者...以托管代码与非托管代码的互操作性;为例。它会遇到各种各样的挑战。但是,这样远比在每一个不同的编程环境来努力解决它要好得多。...我的确在尽力密切关注与C#和LINQ相关的很多博客。 这些是我最喜欢的一些关键字,当我去博客闲逛时,只是去那儿看看发生了什么。...Anders:它的确可以应用在那方面,不过,在更适合使用.NET或Java等语言的可控执行环境中,C#也有很多应用。 我拿C#与Java做了一下对比,结果发现,C#的发展动力似乎更为强大。...现在,我们看到大量的动态编程语言层出不穷,不过我认为它的兴盛大多是因为 (1)是以元编程的角度看待的; (2)在很多方面,这只不过是对于复杂的J2EE环境的一种反应。

83920
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    高性能网络编程6–reactor反应堆与定时器管理

    本篇将介绍反应堆模型的特点和用法。 首先我们要谈谈,网络编程界为什么需要反应堆?有了IO复用,有了epoll,我们已经可以使服务器并发几十万连接的同时,维持高TPS了,难道这还不够吗?...这种思维下,编程容易出错。 形象的说,传统编程方法就好像是到了银行营业厅里,每个窗口前排了长队,业务员们在窗口后一个个的解决客户们的请求。...当没有反应堆时,我们可能的设计方法是这样的:大师把每个客户的提问都记录下来,当客户A提问时,首先查阅A之前问过什么做过什么,这叫联系上下文,然后再根据上下文和当前提问查阅有关的银行规章制度,有针对性的回答...反应堆是解决上述软件工程问题的一种途径,它也许并不优雅,开发效率上也不是最高的,但其执行效率与面向过程的使用IO复用却几乎是等价的,所以,无论是nginx、memcached、redis等等这些高性能组件的代名词...2、定时器的管理,它与网络、IO复用无关,虽然它们在业务上可能有相关性。定时器里的事件需要及时的触发执行,不能因为其他原因,例如阻塞在epoll_wait上时耽误了定时事件的处理。

    63840

    战术性编程与战略性编程:软件开发领域的两种哲学

    战术性编程:解决眼前问题的高效方法 定义与特点 战术性编程(Tactical Programming)强调的是“立即行动”,主要关注短期目标和快速解决问题。...优点与适用场景 快速响应:当项目需要迅速反应时,战术性编程能快速提供解决方案。 灵活性:在不断变化的需求面前,战术性编程能够灵活适应。 适用场景:适合于初创企业、小型项目或有着紧急截止时间的任务。...战略性编程:长远视角下的编程艺术 定义与特点 战略性编程(Strategic Programming)着眼于长远规划和持续发展。它强调代码的质量、可维护性和扩展性。...如何在项目中平衡战术性与战略性编程 在实际的软件开发过程中,战术性编程和战略性编程并非相互排斥,而是需要根据项目的具体情况灵活应用。...持续重构:在战术性编程之后,适时进行代码重构,以提升代码质量。 团队沟通与协作:确保团队成员理解当前的编程策略,并在必要时作出调整。 结论 战术性编程和战略性编程是软件开发过程中的两种重要方法论。

    19910

    多线程编程学习十二(原子性、可见性与有序性)

    原子性 原子(atom)指化学反应不可再分的基本微粒,原子在化学反应中不可分割。原子操作指的是不可分割的整体,多线程的原子性指的是没有其他线程能够中断或检查正在原子操作中的变量。...从内存模型来看,直接保证的原子性变量操作包括 read、load、assign、use、store 和 write,我们大致可以认为基本数据类型的访问读写是具备原子性的。...从应用场景来看,JVM 保证原子性操作的主要有以下方式: synchronized 关键字。...修饰变量,轻量锁机制,仅能保证对单个变量的操作具有原子性,复合操作不具备原子性。 可见性 可见性是指当一个线程修改了共享变量的值,其他线程能够立即得知这个修改。...前半句是指“线程内表现为串行的语义(as is serial)”,后半句是指“指令重排序”现象和“工作内存与主内存同步延迟”现象。

    44930

    Python3 与 C# 并发编程之~ 上篇

    Python了,20%才是Net,也不确定是否一直在Net界干下去,所以只能尽可能的在说新知识的同时,尽量把脑子里面Net相关的内容教给大家,万一跨行业也算对得起大家的厚爱了(这个我从来不强求,反正什么编程语言都一样...,顺其自然~) NetCore并发编程 示例代码:https://github.com/lotapp/BaseCode/tree/master/netcore/4_Concurrency 先简单说下概念...(其实之前也有说,所以简说下): 并发:同时做多件事情 多线程:并发的一种形式 并行处理:多线程的一种(线程池产生的一种并发类型,eg:异步编程) 响应式编程:一种编程模式,对事件进行响应(有点类似于JQ...NetCore里面不可变类型(列表、字典、集合、队列、栈、线程安全字典等等)以及限流、任务调度等,这些关键词我提一下,也方便你去搜索自己学习拓展 先到这吧,其他的自己探索一下吧,最后贴一些Nuget库,你可以针对性的使用...: 数据流: Microsoft.Tpl.Dataflow响应编程(Linq的Rx操作): Rx-Main不可变类型: Microsoft.Bcl.Immutable

    60640

    高性能网络编程6--reactor反应堆与定时器管理

    本篇将介绍反应堆模型的特点和用法。 首先我们要谈谈,网络编程界为什么需要反应堆?有了IO复用,有了epoll,我们已经可以使服务器并发几十万连接的同时,维持高TPS了,难道这还不够吗?...这种思维下,编程容易出错。 形象的说,传统编程方法就好像是到了银行营业厅里,每个窗口前排了长队,业务员们在窗口后一个个的解决客户们的请求。...当没有反应堆时,我们可能的设计方法是这样的:大师把每个客户的提问都记录下来,当客户A提问时,首先查阅A之前问过什么做过什么,这叫联系上下文,然后再根据上下文和当前提问查阅有关的银行规章制度,有针对性的回答...反应堆是解决上述软件工程问题的一种途径,它也许并不优雅,开发效率上也不是最高的,但其执行效率与面向过程的使用IO复用却几乎是等价的,所以,无论是nginx、memcached、redis等等这些高性能组件的代名词...2、定时器的管理,它与网络、IO复用无关,虽然它们在业务上可能有相关性。定时器里的事件需要及时的触发执行,不能因为其他原因,例如阻塞在epoll_wait上时耽误了定时事件的处理。

    98910

    腾讯云TVP李智慧:如何用反应式编程提升系统性能与可用性?

    导语 | 没有人能够预言未来,也没有人能够断言未来的编程是什么样,但是我们可以通过过往的编程经验去探寻未来的编程趋势,本文是腾讯云TVP李智慧教你如何用反应式编程提升系统性能与可用性。...前言 反应式编程这两年愈来愈热,很多人都知道著名的反应式宣言: 即时响应:只要有可能,系统就会及时地做出响应。 弹性:系统在出现失败时依然保持即时响应性。...如何开发一个反应式程序呢? 在最近的一年时间,我们在同程艺龙开发了一个反应式编程框架并应用于一些典型的应用场景,在这些场景中,系统性能和可用性都得到较大提升。 程序是如何运行又是如何崩溃的?...反应式编程性能和可用性改善效果 我们在同程艺龙的一些典型产品中进行了Flower应用落地,实践表明,Flower在提升系统性能和可用性方面都有非常大的改进。...编程语言的进步,从汇编语言到面向过程的编程语言,再到面向对象的编程语言,在编程语言层面就使得程序的耦合性越来越低。

    3K51

    面向对象编程:多态性的理论与实践

    多态的问题与解决 5. 多态的意义 在面向对象编程中,多态是一个重要的概念,它允许不同的对象以不同的方式响应相同的消息。本文将深入探讨多态的概念及其应用,以及在Java中如何实现多态性。 1....多态的概念 多态是面向对象编程中的一个重要特性,它表现为多种形态的存在。在现实生活中,我们也可以找到许多多态性的例子,比如人可以是学生、员工、孩子、大哥等多种形态。...多态的问题与解决 使用多态存在的问题是无法访问子类特有的成员。如果我们想要访问子类特有的成员,可以进行向下造型(也称为强制转换)。...在面向对象的编程中,多态是一种非常重要的特性,它让我们的代码变得更加灵活、易于维护和扩展。同时,多态的应用也体现了面向对象编程的核心思想——封装、继承和多态的结合使用,使代码更具有可读性和可维护性。...希望本文的解析能够帮助你更好地理解和运用多态性在Java中的实现。

    28110

    Java并发编程与高并发之线程安全性(原子性、可见性、有序性)

    3、并发编程与线程安全:线程安全就是代码所在的进程有多个线程在同时执行,而这些线程k可能会运行同一段代码,如果每次运行结果和单线程运行结果一致,而且其他变量的值也和预期是一样的,我们就认为这是线程安全的...6、线程安全性主要体现在三个方面原子性、可见性、有序性。   a、原子性,提供了互斥访问,同一时刻只能有一个线程来对它进行操作。   ...左侧的图展示的最简单的高速缓存的配置,数据的读取和存储都经过高速缓存的,CPU核心与高速缓存之间是有一条特殊的快速通道,在这个简化的图里面,主存与告诉缓存都连接在系统总线上,这条总线同时也用于其他组件的通信...3)、CPU高速缓存,CPU Cache Memory,由于计算机的存储设备与处理器的预算速度之间有几个数量级的差距,现在的计算机都加入了读写速度尽可能接近处理器运算速度的高级缓存,来作为内存与处理器之间的缓冲...25、Java内存模型与硬件内存架构之间的一些关联。   Java内存模型与硬件内存架构是存在一些差异的,硬件内存架构是没有区分线程栈、堆、堆。

    91011
    领券