首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏java工会

    深度思考编程的艺术

    如果你代码�多写了几行,这老顽童就会大笑,说:“当年我解决这个问题,只写了5行代码,你回去再想想吧……” 当然,有时候他只是夸张一下,故意刺激你的,其实没有人能只用5行代码完成。 有些人喜欢炫耀自己写了多少多少万行的代码,仿佛代码的数量是衡量编程水平的标准。然而,如果你总是匆匆写出代码,却从来不回头去推敲,修改和提炼,其实是不可能提高编程水平的。 如果你是这样思考的,你的代码里就会比较少出现只有一个分支的if语句,它看起来就会像这个样子: if (...) { if (...) { ... } else { ... } 有些人听说“函数式编程”是个好东西,也不理解它的真正含义,就在代码里大量使用嵌套的函数。 这样就可以保持完全的一致性,减少不必要的思考。 有人可能会说,全都打上花括号,只有一句话也打上,多碍眼啊?

    65980发布于 2018-06-15
  • 函数式编程思考

    对比可变数据:传统编程中,对象或变量的值可以随时被修改(如列表的append()、字典的update())。 编程语言中的不可变性很好实现,关键式思维的改变转变思维当使用函数式编程时,由于使用了数学抽象和不可变性的概念,我们可以引入时间的概念来帮助理解函数式编程。 这样就可以理解为函数式编程实际上就是做的思维时空的编程哲学思考:计算与物理时间的统一1. 符合相对论直觉每个状态可视为四维时空(三维空间 + 一维时间)中的一个切片。 总结:时间作为函数式编程的一等公民函数式编程通过不可变性将时间转化为可计算、可调试的维度。时间旅行调试和事件溯源的结合,使程序员能够像物理学家研究粒子轨迹一样分析程序状态变化。 随着大数据和实时系统的发展,这种将时间显性化的编程思维将变得愈发重要。

    20510编辑于 2025-07-06
  • 来自专栏颍川

    并发编程学习思考-如何学习并发编程?

    ) 什么是并发编程 并发编程领域可以抽象成三个核心问题:分工、同步和互斥 分工 从性能角度讲,我们为了提高执行一定计算机任务的效率,所以IO等待的时候不能让cpu闲着,所以我们把任务拆分交替执行,有了分时操作系统 ,也不难想到,锁是非常直接的方式(Monitor原理), 思考| 扩展 但是只用锁,势必会造成性能损耗,也违背了我们并发的本质[性能],所以如果一遇到并发问题,就直接上锁,倒也没有什么大问题,可是追求性能是人类的天性 计算机大师就在思考.能不不加锁也能实现并发.还不容易出错,于是就有了:CAS、copy-on-write等技术思想,这就是实现了「无锁」并发; 统一模型 通过思考我们发现 如果要实现一个好的并发编程, 我们需要思考和准备很多东西,如果以上这些个东西,都需要每个程序员自己去弄.然后自己保证正确性,那程序员真累死了,哪还有时间、精力创造这么多美好的应用! 于是,计算机大师又开始思考,能不能抽象出统一「模型」,可能这就有了类似于「Java内存模型」(JSR-133)这样的东西

    64710编辑于 2021-12-06
  • 来自专栏JMCui

    学习思考之《编程之美》.

    难怪之前人家说数学好的人编程起来事半功倍,写算法的过程中真是深有体会啊!感觉就像是在做大学的高数题......本博文仅用来记录自己学习算法的历程,不定时更新。参考自《编程之美》,加上些自己的理解。 /*问题一的解法二 *解题思路:Z=N/5 + N/5^2 + N/5^3……(不用担心这会是一个无穷的运算,因为总存在一个K,使得5^k>N,则 N/5^k=0) * 公式中,N/5表示不大于 N的数中5的倍数贡献一个5,N/5^2 表示不大于N的数中5^2的倍数再贡献一个5 * * 上面是《编程之美》的解释? 反正我没看懂,下面说一下个人见解: * 比如 一个数 26 那么 26 / 5= 5 表示26的阶乘里面有 5 10 15 20 25 五个数可以贡献 5 *

    65890发布于 2018-03-16
  • 来自专栏python3

    对python并发编程思考

    time.time() - start)) 执行结果如下: fetch(0) = 0 fetch(1) = 1 fetch(2) = 2 fetch(3) = 3 fetch(4) = 4 fetch(5) r = requests.get(URL.format(a)) return r.json()['args']['a'] start = time.time() # 使用线程池(使用5个线程 ) with ThreadPoolExecutor(max_workers=5) as executor: # 此处的map操作与原生的map函数功能一样 for num, result in time.time() - start)) 执行结果如下: fetch(0) = 0 fetch(1) = 1 fetch(2) = 2 fetch(3) = 3 fetch(4) = 4 fetch(5) 我们上面的并发请求数只有5个,但是如果同时有1万个并发操作,像淘宝这类的网站同时并发请求数可以达到千万级以上,服务器每次为一个请求开一个线程,还要进行上下文切换,这样的开销会很大,服务器压根承受不住。

    82410发布于 2020-01-06
  • 来自专栏互联网技术分享

    Java并发编程的总结和思考

    本文是对并发编程的一点总结和思考,同时也分享了Java 5以后的版本中如何编写并发代码的一点点经验。 Java 5以前的并发编程 Java的线程模型建立在抢占式线程调度的基础上,也就是说: 所有线程可以很容易的共享同一进程中的对象。 能够引用这些对象的任何线程都可以修改这些对象。 Java 5的并发编程 不管今后的Java向着何种方向发展或者灭忙,Java 5绝对是Java发展史中一个极其重要的版本,这个版本提供的各种语言特性我们不在这里讨论(有兴趣的可以阅读我的另一篇文章《Java 的第20年:从Java版本演进看编程技术的发展》),但是我们必须要感谢Doug Lea在Java 5中提供了他里程碑式的杰作java.util.concurrent包,它的出现让Java的并发编程有了更多的选择和更好的工作方式 哲学家的生活中有两种交替活动时段:即吃饭和思考。当一个哲学家觉得饿了时,他就试图分两次去取其左边和右边的叉子,每次拿一把,但不分次序。

    43800发布于 2021-04-03
  • 来自专栏方亮

    从0开始搭建编程框架——思考

    当一个东西火起来之后,人们就开始思考它是否“放之四海而皆准”。我们在网上看到很多关于golang好不好的争论,个人觉得“只有适不适合”,而不存在“好不好”的问题。         为了让此系列文章有继续写下去的意义,我假设当前的场景是: 团队成员只有PHP语言基础和经验 团队成员对C/C++了解仅限于大学教程,其他语言不会 团队成员对多线程编程不了解,对操作系统了解很少 项目需要在半个月内完成 很显然,希望突击培训成员的C/C++、多线程编程和操作系统基础是不太可能的。 这个时候可能就需要我们设计一套易于使用的编程框架。它应该 把各种复杂的问题封装起来,让使用者对其无感。 可以将复杂的问题化简为团队成员经常面对的问题。         让我们的成员熟悉多线程编程?不现实,很多写了很多年的老手也经常在线程同步上栽跟头。         编写一个线程池?不太好,虽然避开了线程管理的问题,但是还是保留了线程的概念。

    80110发布于 2019-01-16
  • 来自专栏微信公众号:Java团长

    关于Java并发编程的总结和思考

    本文是对并发编程的一点总结和思考,同时也分享了Java 5以后的版本中如何编写并发代码的一点点经验。 为什么需要并发 并发其实是一种解耦合的策略,它帮助我们把做什么(目标)和什么时候做(时机)分开。 Java 5以前的并发编程 Java的线程模型建立在抢占式线程调度的基础上,也就是说: 所有线程可以很容易的共享同一进程中的对象。 能够引用这些对象的任何线程都可以修改这些对象。 Java 5的并发编程 不管今后的Java向着何种方向发展或者灭亡,Java 5绝对是Java发展史中一个极其重要的版本,这个版本提供的各种语言特性我们不在这里讨论(有兴趣的可以阅读我的另一篇文章《Java 的第20年:从Java版本演进看编程技术的发展》),但是我们必须要感谢Doug Lea在Java 5中提供了他里程碑式的杰作java.util.concurrent包,它的出现让Java的并发编程有了更多的选择和更好的工作方式 哲学家的生活中有两种交替活动时段:即吃饭和思考。当一个哲学家觉得饿了时,他就试图分两次去取其左边和右边的叉子,每次拿一把,但不分次序。如果成功地得到了两把叉子,就开始吃饭,吃完后放下叉子继续思考

    66420发布于 2018-08-07
  • 来自专栏锅总

    思考如何学习一门编程语言?

    5. Go (Golang) 特点: 静态类型,简洁语法,高并发处理能力。 应用领域: 后端开发: 高并发服务器和微服务架构。 云计算: 开发云原生应用和容器化服务,使用Kubernetes。 例如,5、-42。 浮点数 (float): 存储带小数点的数字。例如,3.14、-0.001。 字符串 (str): 存储文本数据。例如,"Hello, World!"、'Python'。 5. 比较不同示例 对比基础与进阶示例:理解基础示例和进阶示例之间的区别。 查找最佳实践:注意官方文档中推荐的最佳实践和设计模式。 6. 5. 解决实际问题 创建解决方案:解决实际工作或生活中的问题,例如自动化重复任务或数据分析。 实现新功能:在现有项目中实现新的功能或改进,以提高代码的功能性和用户体验。 6. 5. 算法与数据结构 数据结构 基本数据结构: 数组:固定大小的元素集合,支持快速索引。 链表:动态大小的元素集合,支持插入和删除操作。

    52910编辑于 2024-07-04
  • 来自专栏二进制文集

    对 Kotlin 与 Java 编程语言的思考

    编程语言整体排名 TIOBE Index for November 2018 ? 从长远来看,排名前10的也基本上是Java、C、C++、Python、C#、VB、PHP、JavaScript。 至于Kotlin的排名,11月份在编程语言仅排41名,Ratings仅有0.216%。 ? 曾看到一个理论是说,看一个事物还能存在多久,首先要看看它已经存在了多久。 如果一门编程语言已经存在了20年,那么它在20年后也不会消失。像C、VB这样的语言,至今仍然能够在编程语言排行榜中占据非常重要的位置。 使用何种编程语言 总的来说,Java号称是C++ --,Kotlin就像是Java++。Kotlin没有像Java一样的历史包袱,设计之初就是为了解决Java的痛点。 如果单单是使用编程语言开发的话,充分利用好一门编程语言和IDE就足够了。

    1.1K40发布于 2018-12-14
  • 来自专栏扯编程的淡

    深度思考:到底什么是面向接口编程

    在以往的编程学习中,我们听说过很多编程概念,比如面向对象编程(OOP)、面向方面编程(AOP)、面向过程编程(POP),以及还有今天要进行深入思考的面向接口编程(IOP)。 计算机的发展已经足足七十多年,编程语言的发展也有了六七十年的历史,而近二三十年随着互联网和高级编程语言的不断崛起,整个程序设计行业发展的越来越快,沉淀的也越来越多,因而诞生了诸如以上的很多不同的编程思想 2 什么是面向接口编程? 什么是面向接口编程?为什么要面向接口编程? 简单的讲,面向接口编程是一种编程规范,一种设计规范,可以更好的进行需求的定义和业务的扩展,我们可以从以下三个方面来探讨为什么要面向接口编程: 开闭原则:对扩展开放,对修改关闭,接口正是如此,定义接口后不再修改 ProgrammerSys{Name: "zs"} sys.Coding("Java") db := ProgrammerDB{Name: "ls"} db.Coding("SQL") } 3 思考

    3K30编辑于 2022-10-31
  • 来自专栏程序员阿常

    日更写作 5 | 关于加班的思考

    日更写作 日更第 5/30 天 | 阿常 日更主题 : 关于加班的思考 大家好,我是乐天派阿常,一个外表文静,内心却想释放一亿热情的软件测试员。 想更多了解阿常,可看自我介绍篇 今天给大家分享的内容是 : 关于加班的思考。 今天这次加班,阿常发现我们的测试思路没有很好的被打开,导致定位问题的链路最大化了,没有从最小集的角度去思考解决方案。 今后如果想要避免加班,可以优化的方向,阿常给出自己的思考: 1、执行测试之前制定好测试策略。 今天加班最主要的原因是老板热切期盼着任务进展,担任鼓励师的角色,否则我们也先溜了,捂脸,哈哈~ 今天的加班对阿常来说也是一种新的体验,让我获得了一些新的思考,比如思考怎样才能不加班。

    37730编辑于 2022-07-01
  • 来自专栏python3

    python 编程实例 5

    #1.程序分析:我们想办法把最小的数放到 x 上,先将 x 与 y 进行比较,如果 x>y 则将 x 与 y 

    59720发布于 2020-01-13
  • 来自专栏老张的求知思考世界

    关于GPT-5,我的几点思考

    稍微值得一提的是,本次发布后GPT只提供两种模型,分别是:GPT-5旗舰模型,以及GPT-5 Thinking模型(深度思考和推理)。 2、更强的编程、写作能力(长期记忆体系的“上下文持久化”、更富有人情味的文本理解和生成)。 3、健康医疗领域的专业能力和安全机制革新(引入新一代安全训练机制“Safe-completion”)。 聊完了GPT-5的发布内容,下面是一些我个人近几个月对AI的一些思考。 1、大家对人工智能的能力预期一直是AGI,但没人能预测什么时候我们会迎来它。 内容创作者要做的事情,就是基于自己的独特视角,不断提出更新的、值得令人深入思考的观点。 5、人工智能领域的竞争,已经度过第一阶段的“百模大战”,开始了第二阶段的“工具产品落地”竞争。 AI时代蕴含着很多的机会,如果你决定投身于此开始创业,那你从一开始就需要思考该如何盈利的问题。 找到盈利模式的路径大致有三种:成本、市场、资源。

    34110编辑于 2025-08-12
  • 来自专栏dylanliu

    关于防御式编程的一点思考

    上周看了代码大全里面的防御式编程那一章,颇有感触,结合平日里的编程实践,对自己的一些编程方式与想法记录一下,也探讨一下如何写出更安全、更有可读性的代码。 防御式编程 定义 防御式编程这一概念来自防御式驾驶,即要建立起这样一种思维:你永远也不知道另一位司机将要做什么,时刻提高警惕,这样才能在其他司机做出危险动作时不受伤害。 防御式编程的主要思想是子程序应该不因传入错误数据而被破坏,哪怕是由其他子程序产生的错误。以怀疑的眼光看待任何外部数据,建立自己的准入机制,这样才能使自己的程序更加健壮。 对防御式编程保持防御姿态 不要过度防御,过多的检查会使得项目变得臃肿,主线处理逻辑不清晰。 对防御式编程的一点实践 对所有的输入参数进行合法性校验 对所有函数的返回值进行非空、错误码等校验 对函数的处理流程就行校验,比如说必须满足同一任务不能重复处理等等。

    1.4K30发布于 2019-07-01
  • 来自专栏闲谈

    关于对ai编程的一些思考

    最近在做ai全编程的软件开发,发现一些问题。对ai编程的理解对于我来说现在的ai更像是一个工具,而不是一个ai程序员。作为后段开发,我更多的是做界面的优化,而不是做ai的开发。 ,我需要ai去帮我生成文档.在制定开发文档阶段,所有的理解非常满意,制定的计划也是非常合理的,下面来展示一下,设计开发文档时需要注意的问题1、数据库设计2、前端界面设计3、后端代码设计4、前端代码设计5

    10920编辑于 2026-02-12
  • 来自专栏java_joseph

    吃透并发编程之—-Atomic原子类学习思考

    发生冲突的情况会大大增加 (也就是存在大量更新时去比较预期的值发生了变化,导致此次更新失效的情况),因此效率会大大降低

    44320编辑于 2023-09-07
  • 来自专栏边缘计算

    关于5G 的十点思考

    除中国外,目前已经开始5G商用的其他国家的运营商都基于非独立组网(NSA)方式起步,即沿用4G核心网,仅增加了5G 基站。5G终端从而可获得比4G更高的宽带能力。 (8)车联网是5G 全新的应用场景。为此,5G 专门在无线接入和核心网两个方面都考虑保证低时延的措施。 5G 将工业互联网应用视为己命,企业可以利用5G 作为企业内网或广域网的传输手段,5G 运营商可为企业提供网络切片,但运营商的5G 网络主要是面向公众用户而设计的。 另外,从管理和安全角度考虑,大企业希望建设5G 专网,频率主管部门需要为企业建设5G 专网划出专用频率。 综上所述,建设SA网络和开发SA应用可以说是5G新一轮创新的起点。 中国率先走SA之路会面临试错的风险,也有很多值得思考的问题。5G创新之路还很长。 参考文献 [1] 中华人民共和国工业和信息化部.

    64521发布于 2020-02-19
  • 来自专栏SDNLAB

    5G开放之路:理想、现实与思考

    近几年我的主要工作精力在SDN/NFV以及网络云化与智能化转型方面,在网络转型研究和实践中促使我一直在思考网络开放与通信行业发展相关问题。 本文中我将梳理一下自己对“开放”这一话题的思考,首先申明这些文字仅代表我作为一名研究人员的个人认识,不能代表我所供职单位的观点。 SDN的理想主义者是不会就此止步的,为推动转发平面的可编程,Nick Mckeown教授等SDN先驱们2015年又发明了用于数据平面的新一代编程语言P4,解决了OpenFlow编程能力不足和扩展性差等问题 05 5G开放之路的思考 5G的大幕已拉开,5G应该是一个开放的大舞台,下一步就看戏谁来演?戏如何演?5G不只是电信运营商的5G,而是全社会的5G,是信息社会开放创新的大平台。 如何集合社会创新力量共同推动5G发展,如何通过开放生态激活电信行业自身的改革动力和创新活力,值得思考。“开放”是一个很大的话题,从不同角度和维度有不同的理解,这里仅从如下几个方面谈谈个人的粗浅看法。

    84720发布于 2020-03-06
  • 来自专栏caidblog

    5. MySQL编程基础

    MySQL客户机1定义了会话变量,会话期间,该会话变量⼀直有效;MySQL客户机2不能访问ySQL客户 机1定义的会话变量;MySQL客户机1关闭或者MySQL客户机1与服务器断开连接后,MySQL客户机1定 义的所有会话变量将⾃动释放,以便节省MySQL服务器的内存空间。 定义变量

    3.1K10编辑于 2022-09-13
领券