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

    深度思考编程的艺术

    有些人喜欢炫耀自己写了多少多少万行的代码,仿佛代码的数量是衡量编程水平的标准。然而,如果你总是匆匆写出代码,却从来不回头去推敲,修改和提炼,其实是不可能提高编程水平的。 如果你是这样思考的,你的代码里就会比较少出现只有一个分支的if语句,它看起来就会像这个样子: if (...) { if (...) { ... } else { ... } 有些人听说“函数式编程”是个好东西,也不理解它的真正含义,就在代码里大量使用嵌套的函数。 )) { ... } 由于someLongCondition4()超过了行宽限制,被编辑器自动换到了下面一行。 这样就可以保持完全的一致性,减少不必要的思考。 有人可能会说,全都打上花括号,只有一句话也打上,多碍眼啊?

    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

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

    难怪之前人家说数学好的人编程起来事半功倍,写算法的过程中真是深有体会啊!感觉就像是在做大学的高数题......本博文仅用来记录自己学习算法的历程,不定时更新。参考自《编程之美》,加上些自己的理解。 * * 上面是《编程之美》的解释? tangos[1]=tango; tangos[2]=tango; tangos[3]=tango2; tangos[4] 统计结果说明,有三个发帖很多的ID,他们的发帖数目 * 都超过了帖子宗数目的N的1/4。你能从发帖ID列表中快速找出他们的ID吗?

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

    对python并发编程思考

    {}'.format(time.time() - start)) 执行结果如下: fetch(0) = 0 fetch(1) = 1 fetch(2) = 2 fetch(3) = 3 fetch(4) = 4 fetch(5) = 5 fetch(6) = 6 fetch(7) = 7 fetch(8) = 8 fetch(9) = 9 fetch(10) = 10 fetch(11) = 11 cost {}'.format(time.time() - start)) 执行结果如下: fetch(0) = 0 fetch(1) = 1 fetch(2) = 2 fetch(3) = 3 fetch(4) = 4 fetch(5) = 5 fetch(6) = 6 fetch(7) = 7 fetch(8) = 8 fetch(9) = 9 fetch(10) = 10 fetch(11) = 11 cost }'.format(time.time() - start)) 执行结果: fetch(0) = () fetch(1) = () fetch(2) = () fetch(3) = () fetch(4)

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

    Java并发编程的总结和思考

    Java语言从第一版本开始内置了对多线程的支持,这一点在当年是非常了不起的,但是当我们对并发编程有了更深刻的认识和更多的实践后,实现并发编程就有了更多的方案和更好的选择。 本文是对并发编程的一点总结和思考,同时也分享了Java 5以后的版本中如何编写并发代码的一点点经验。 的第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
  • 来自专栏全栈程序员必看

    mt4编程语言 c语言,MT4编程之MQL4编程语言介绍

    语言介绍 MetaQuotes Language 4 (MQL4) 是一种新的内置型程序用来编写交易策略。 这种语言可以创建你自己的智能交易,使自己的交易策略能够完全自动地执行。 MetaEditor 4集合了编写MQL4程序代码的各种语句,它能帮助使用者方便地写出规范的代码。 编程特点 MetaQuotes Language 4(MQL4) 可以编写不同作用的程序代码: 智能交易 是一种连接到特定图表的自动交易系统。 语法简介 MetaQuotes Language 4(MQL4)的语法和C语言比较类似并且是一款面向过程语言。如果你C语言基础非常好很快就能上手。 = (不等于) 编程工具 MT4采用自带集成MetaEditor作为代码编译器。简单讲,编译器就是将“高级语言(MQL4)”翻译为“机器语言(低级语言)”的程序。

    7.2K20编辑于 2022-08-28
  • 来自专栏Golang语言社区

    实效go编程--4

    (s int) { for _, v := range a { s += v } return } request := &Request{[]int{3, 4, const NCPU = 4 // CPU核心数 func (v Vector) DoAll(u Vector) { c := make(chan int, NCPU) // 缓冲区是可选的 可能泄露的缓冲区 并发编程的工具甚至能很容易地表达非并发的思想。这里有个提取自RPC包的例子。 客户端Go程从某些来源,可能是网络中循环接收数据。 服务条款 | 隐私政策 本文来自:开源中国博客 感谢作者:四明狂客 查看原文:实效go编程

    988150发布于 2018-03-26
  • 来自专栏Android开发指南

    4.网络编程

    HTTP网络编程 网络接口文档 用来描述客户端和服务端的数据交互 Http的格式规范 请求部分 请求消息行:定义请求类型,请求的地址,http的版本号 请求消息头:定义请求的消息头 请求消息内容实体:消息的内容实体 issp=1&f=8&rsv_bp=0&rsv_idx=2&ie=utf-8&tn=baiduhome_pg&rsv_enter=0&rsv_pq=9ee40013000089f5&rsv_t=0ac4SWMebVX5TjRmjHHyNHdDixuCh %2FcpmFz8tPkwfArEbHonfYesWFV64Rr4%2F7VNDDnn&inputT=16437 Accept-Encoding: gzip, deflate Accept-Language : zh-CN,zh;q=0.8 Cookie: BAIDUID=BECE0B98C5D5A8EA4C5A93221901CC58:FG=1; BAIDUPSID=BECE0B98C5D5A8EA4C5A93221901CC58 ; BDUSS=l1MmM3MEVEclRYR1RZc1ZJTnBDb2RBUTY1YktTUFc0a2pBYVlHNkxOZDk4N0JVQVFBQUFBJCQAAAAAAAAAAAEAAABoRLMjd2FuZ2Rha2U4ODgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH1miVR9ZolUVm

    753100发布于 2018-05-14
  • 来自专栏铭毅天下

    ChatGPT-4: 半年的深度使用思考

    几个月的时间一直在使用 ChatGpt-4,以口述语音转文字的形式说一下自己的体会。 1、选择版本 大前提:我使用的都是 GPT4 的版本。也就是说至少每个月要付费20$。 2、效率提升 GPT4 的确能极大的提高我们的编码,文字撰写等的效率。这是毋庸置疑的事实。 当然,个人认为国内的大模型至少短期内是很难达到 GPT4 的能力。 一种说法这是情绪不稳定,深层次的原因应该是对gpt4形成的过度依赖。 4、如何平衡依赖关系? 我个人那个做法就是我在自己的办公桌前会放一个纸和笔。 这个也是我在反复验证或思考以后得到的本质答案。当然,或许这也是咱们很多同学提前就已经知道的答案。 7、提高问题准确性的策略 对于发散性的问题如何提高准确性?我甚至专门听了b站上的一门儿外国大佬的课。 8、不要期望GPT4能解决一切问题。 如果遇到新的技术点,遇到新的挑战点,就寄希望于GPT4。这其实是自我愚昧的一种方式。 我们更多的如前所述,应该把 GPT4 当成工具。

    59020编辑于 2023-09-09
  • 来自专栏Android开发指南

    4.网络编程

    HTTP网络编程 网络接口文档 用来描述客户端和服务端的数据交互 Http的格式规范 请求部分 请求消息行:定义请求类型,请求的地址,http的版本号 请求消息头:定义请求的消息头 请求消息内容实体:消息的内容实体 issp=1&f=8&rsv_bp=0&rsv_idx=2&ie=utf-8&tn=baiduhome_pg&rsv_enter=0&rsv_pq=9ee40013000089f5&rsv_t=0ac4SWMebVX5TjRmjHHyNHdDixuCh %2FcpmFz8tPkwfArEbHonfYesWFV64Rr4%2F7VNDDnn&inputT=16437 Accept-Encoding: gzip, deflate Accept-Language : zh-CN,zh;q=0.8 Cookie: BAIDUID=BECE0B98C5D5A8EA4C5A93221901CC58:FG=1; BAIDUPSID=BECE0B98C5D5A8EA4C5A93221901CC58 ; BDUSS=l1MmM3MEVEclRYR1RZc1ZJTnBDb2RBUTY1YktTUFc0a2pBYVlHNkxOZDk4N0JVQVFBQUFBJCQAAAAAAAAAAAEAAABoRLMjd2FuZ2Rha2U4ODgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH1miVR9ZolUVm

    47710编辑于 2022-01-12
  • 来自专栏微信公众号:Java团长

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

    Java语言从第一版本开始内置了对多线程的支持,这一点在当年是非常了不起的,但是当我们对并发编程有了更深刻的认识和更多的实践后,实现并发编程就有了更多的方案和更好的选择。 本文是对并发编程的一点总结和思考,同时也分享了Java 5以后的版本中如何编写并发代码的一点点经验。 为什么需要并发 并发其实是一种解耦合的策略,它帮助我们把做什么(目标)和什么时候做(时机)分开。 的第20年:从Java版本演进看编程技术的发展》),但是我们必须要感谢Doug Lea在Java 5中提供了他里程碑式的杰作java.util.concurrent包,它的出现让Java的并发编程有了更多的选择和更好的工作方式 实现中的并发编程模型很多都依赖队列来实现,因为它可以在线程之间传递工作单元。 哲学家的生活中有两种交替活动时段:即吃饭和思考。当一个哲学家觉得饿了时,他就试图分两次去取其左边和右边的叉子,每次拿一把,但不分次序。如果成功地得到了两把叉子,就开始吃饭,吃完后放下叉子继续思考

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

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

    4. JavaScript 特点: 动态类型,弱类型,广泛用于前端开发。 应用领域: 前端开发: 使用框架如React、Angular、Vue。 后端开发: 使用Node.js。 4. 运行和修改示例 复制示例代码:将示例代码复制到你的开发环境中运行,检查是否能正常工作。 修改示例代码:尝试修改示例中的参数或逻辑,观察结果的变化。这有助于你更深入地理解代码的行为。 5. 4. 学习和应用新技术 学习新语言或框架:扩展你的技术栈,学习新的编程语言或框架,了解其特点和应用场景。 图数据库:如Neo4j,用于处理图结构数据。 学习资源 书籍: 《数据库系统概念》 - Abraham Silberschatz, Henry Korth, S. 4. 计算机组成原理 基本概念 计算机体系结构: 处理器:CPU的结构和功能,包括算术逻辑单元(ALU)、控制单元(CU)、寄存器等。 指令集架构(ISA):处理器执行的指令集合,如x86、ARM。

    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
  • 来自专栏明明如月的技术专栏

    GPT-4 插件和插件化的思考

    一、前言 最近 ChatGPT 的 Plus 用户在 GPT-4 中新增了插件功能, GPT 在插件的加持下如虎添翼。 那么常用的插件是哪些?插件化是什么?插件化有什么好处? 五、总结 本文介绍了 GPT-4 一些好用的插件,介绍什么是插件化、插件化的好处插件化和设计模式的关系和 GPT 插件目前还存在的一些问题。

    1.2K40编辑于 2023-05-31
  • 关于使用国内镜像安装 MathlibLean4思考

    之前按照https://zhuanlan.zhihu.com/p/680690436文章安装lean4非常方便,但是现在发现这个文章已经失效了,而且那个glean看起来就是个鸡肋,怎么都是安装不了,里面安装方法还有个问题就是上海交大的那个源地址变了 elan-init.exe下载后会有个powershell脚本进行安装,如果选择default安装,可以看到在C:\Users\用户名\.elan生成一些文件,而且打开查看有部分文件明显是lean4里面的东西 不难想到这个就是为了安装lean4而已,其实你可以不用elan-init.exe安装 可见上面2个exe都是辅助工具,其实你懂背后安装原理只是为了照顾初学者让他们更快安装上lean4 可见其实都是可以手动下载文件进行解决 ,希望能帮到安装lean4的困扰的童鞋。

    33310编辑于 2025-07-22
  • 来自专栏生信补给站

    R编程之路(4

    runif(10,min=0,max=1)#产生10个最小值为0,最大值为1的随机数

    31920发布于 2020-08-06
  • 来自专栏dylanliu

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

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

    1.4K30发布于 2019-07-01
领券