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

    【人月神话】01 人月神话

    二、人月神话 乐观主义 所有的编程人员都是乐观主义者。你总能看到无论是什么样的程序,结果在年轻人(因为程序员更加年轻)看来都是毋庸置疑的:“这次它肯定会运行”或者“我刚刚找出了最后一个错误。” 如图,如果你认为人员数量的增加可以替代时间的减少,那么这将是一种危险和带有欺骗性的神话。 当任务由于次序上的限制不能分解时,人力的添加对进度没有帮助。就如一位母亲,孕育一个生命需要10个月。

    42540编辑于 2023-10-07
  • 来自专栏浮躁的喧嚣

    swift 内存安全

    Swift 会阻止你代码里不安全的行为。 例如,Swift 会保证变量在使用之前就完成初始化,在内存被回收之后就无法被访问,并且数组的索引会做越界检查 Swift 保证同时访问同一块内存时不会冲突,因为 Swift 自动管理内存,所以大部分时候你完全不需要考虑内存访问的事情 而如果你的代码确实存在冲突,那在编译时或者运行时就会得到错误 内存访问冲突 当你有两个访问符合下列的情况: 至少有一个是写访问 它们访问的是同一个存储地址 它们的访问在时间线上部分重叠

    28810编辑于 2023-11-22
  • 来自专栏Swift社区

    Swift | 内存安全

    简介 一般来说,Swift 会阻止代码中的不安全行为。例如,Swift 会保证变量在被使用前已经初始化,在释放某变量后其内存也会变得不可访问,以及检查数组索引是否存在越界错误。 编译器可以证明这样是内存安全的,这两个存储的属性不会以任何方式交互。 在保护内存安全时,限制结构体属性的重复访问并非是必须的。 内存安全是理想的保证,但是独占访问是一个比内存安全更严格的要求--这意味着即使有一些代码违反了独占访问的要求,它也可以是符合内存安全的要求的。 如果编译器可以证明对内存的非独占访问仍然是安全的,则 Swift 允许使用这种仅做到了内存安全的代码。 如果编译器无法证明这个访问是安全的,则它是不被允许进行访问的。

    97020发布于 2021-11-26
  • 来自专栏pandacode_cn

    Swift基础 内存安全

    Swift基础 - 内存安全 翻译自:https://docs.swift.org/swift-book/LanguageGuide/MemorySafety.html 默认情况下,Swift 可以防止代码中出现不安全行为 ) ​ balance(&oscar.health, &oscar.energy) // OK } 在上面的示例中,奥斯卡的健康和能量作为两个内外参数来balance(_:_:)编译器可以证明内存安全得到保留 限制重叠访问结构属性并不总是必要的,以保持内存安全内存安全是理想的保证,但独家访问是比内存安全更严格的要求——这意味着一些代码保留了内存安全,即使它违反了对内存的独家访问。 如果编译器能够证明对内存的非排他性访问仍然是安全的,Swift允许此内存安全代码。 如果编译器无法证明访问是安全的,则不允许访问。

    72300编辑于 2023-07-17
  • 来自专栏开发笔记

    线程安全&Java内存模型

    Java内存模型 Java内存模型(JMM)主要目标是定义多线程的情况下线程访问变量的规则。 JMM规定线程之间的共享变量存储在主内存中,每个线程都有一个本地内存(工作内存),本地内存存储了共享变量的副本。 ? 关于线程安全 什么是线程安全问题? (数据一致性问题) 如何解决线程安全问题? 核心思想:在同一时刻,只能有一个线程执行。 通过加锁使线程更加安全,也使程序的执行效率更低。 当一个线程对volatile修饰的变量进行读操作时,该线程直接读取主内存的变量。 volatile能否保证线程安全? 不能,保证线程安全需要同时具备原子性,可见性和有序性。 比较主内存的值和本地内存修改前的值是否一致,若一致,将修改后的值刷新到主内存,若不一致,当前线程放弃更新,将主内存数据刷新到本地内存,再次重试。

    74620发布于 2020-08-11
  • 来自专栏企鹅号快讯

    2017——科技的神话之年

    宇宙沙盘今天就给大家盘点一下2017年那些刷爆眼球的科技神话。 ” AI的强势崛起 人工智能(AI)在2017年是家喻户晓,无论你平时是不是关注这些,都阻止不了它们进入自己的视野中。

    86060发布于 2018-01-29
  • 来自专栏PM吃瓜(公众号)

    人月神话不是神

    用人月来衡量一项工作的规模是一个危险和带有欺骗性的神话,因为它暗示了人员数量和时间是可以相互替换的。 当软件产品的规模增加的时候,复杂度成倍增长,从而导致这些要素之间不是单纯的线性关系,这是人月神话的启示之一;同时由于软件项目本身的生命周期模型和工序任务限制,导致对于一定规模的软件产品研发,无论投入多少的资源 乐观主义者喜欢假设我们开发的是零缺陷的系统,但对复杂的软件系统而言这仅仅是个神话。 进度落后根源 对于进度落后的问题根源,我们可以做如下考虑。

    1K10发布于 2020-07-20
  • 来自专栏c++与qt学习

    Java内存模型和线程安全

    Java内存模型和线程安全 Java内存模型 引言 volatile关键字 synchronized关键字 Java线程 Java线程安全 synchronized锁优化 锁优化技巧列举 自旋锁 锁消除 高速缓存的出现主要是为了解决CPU运算速度和主内存速度不匹配而引入的缓冲模块 ---- 上图是java的内存模型,Java线程的数据读写都只能从工作内存获取,不同线程的工作内存是隔离的、 此处的工作内存主要对应线程私有的虚拟机栈部分 指令重排序只会在多线程情况下存在并发问题 ---- volatile修饰的变量一定是并发安全的吗? volatile修饰符提供的两个作用并没有体现出其一定是并发安全的,上面的例子也证明了,那么为什么呢? 状态转换: ---- Java线程安全 不可变对象一定是线程安全的,如: String,Integer等 synchronized关键字实现互斥同步: 通过monitorEnter和monitorExit

    77660编辑于 2023-02-10
  • 来自专栏FreeBuf

    同态加密:神话和误解

    如此就可以在数据不暴露的情况下进行使用,提供了新的安全性和隐私支持级别。 同态加密常常被誉为加密的“圣杯”,因为它具有范式转换的潜力,可以彻底改变组织如何以及在何处安全地、隐秘地利用数据资源和资产。 误解3:为了使用同态加密进行协作,需要把所有数据汇集到一起 同态加密的重要用例之一是在安全数据共享和协作领域。通过允许第三方安全地私下合作,为公私合作以及整个私营行业提供了前所未有的机会。

    82920发布于 2021-03-09
  • 来自专栏IT大咖说

    物联网神话破灭?

    利益相关方需要解决安全和隐私问题,并协作实施开放标准,使物联网安全、可靠、可互操作,并尽可能无缝地提供安全服务。 物联网(IoT)是一个描述完全互联世界的概念。 这是一个科技使得生活更丰富、更便利、更安全、更舒适的世界。 思科预计,未来几年该行业的总收入将超过19万亿美元。然而问题在于,物联网中充斥着许多神话,其中某些神话影响着组织如何开发应用来支持它们。 或者他家的安全设施中断了呢?又或者他家断电了呢? 但这里的神话是,数据中心是魔法发生的地方。那么网络呢?毕竟,如果没有互联网的实际支持,物联网就什么都不是。 物联网和安全隐私 安全和隐私是主要问题,而解决这些问题也是当务之急。这些担忧都是合情合理的。新技术往往存在误用和危害的可能性,在它阻碍个人隐私和安全、创新或经济增长之前,解决这个问题至关重要。

    61520发布于 2019-08-06
  • 来自专栏SeanCheney的专栏

    《人月神话》要点总结

    《人月神话》是本神奇的书,竟然还用一章把前面各章的要点做了总结。看前面章节的时候,就觉得作者的输出观点能力很强,很容易就忘了,最后作者竟然给了总结,实属惊喜。摘录在这里,常看常新。 任何创造性活动都伴随着枯燥艰苦的劳动,编程也不例外 人们通常期望项目在接近结束时,(bug、工作时间)能收敛得快一些,然而软件项目的情况却是越接近完成,收敛得越慢 产品在即将完成时总面临着陈旧过时的威胁 第 2 章 人月神话 人月是危险和带有欺骗性的神话,因为它暗示人员数量和时间是可以相互替换的。 2.7 在若干人员中分解任务会引发额外的沟通工作量——培训和相互沟通。 第 9 章 削足适履 9.1 除了运行时间以外,所占据的内存空间也是主要开销。特别是对于操作系统,它的很多程序是永久驻留在内存中。 [这个整体决策已显得过时——起初是由于虚拟内存,后来则是成本低廉的内存。现在的用户通常会购买能容纳主要应用程序所有代码的内存。]

    4K20编辑于 2022-05-31
  • 来自专栏智能大石头

    MF干活——C#点灯神话

        如同学习每一门编程语言的Hello World!一样,点灯自然成了单片机入门的HelloWorld。因为单片机上的HelloWorld实在是太难了!     在电子上只有电压电流之类的概念,而对于单片机来说,我们可以认为0代表低电压(低电平、接地),1代表高电压(高电平)。在我们学习的STM32单片机上,高电平其实就是3.3伏!今天我们要点亮的小灯,就是发光二极管,让3.3V和0V分别接在发光二极管的正负(长短)两端,就可以让其发光!     我们采用的单片机有很多针脚(ZET6是144脚,VET6

    1.2K100发布于 2018-01-09
  • 来自专栏链圈小姐姐

    区块链真的是神话吗?

    写在最后: 由此看来“透明、合约、不可篡改”并不是“区块链神话”,企业必须要了解自己的业务实际情况,搞清楚区块链技术可以做什么,不可以做什么。

    2.5K60发布于 2018-07-03
  • 来自专栏编程思考

    什么是内存安全的编程语言

    软件安全一直是软件开发和互联网行业中的一个必先要考虑的问题,而编程语言的内存安全则是软件安全的一个重要分支。 在编程语言中,内存安全的重要性体现在多个方面,对于程序的稳定性、可靠性以及安全性都具有至关重要的影响。什么是内存安全的编程语言? 内存安全的编程语言是指那些能够自动管理内存,向编程人员隐藏内存布局,防止内存损坏错误的编程语言。内存安全有助于防止程序崩溃和错误。 当编程语言能够自动管理内存,避免内存泄漏、野指针等内存安全问题时,程序更有可能稳定运行。其次,内存安全能够提高软件的质量和可靠性。 与此相对,C和C++等语言则被认为是内存安全的,因为它们允许直接操作内存地址,并且缺乏边界检查,因此在内存安全性方面常常陷入困境。内存安全时可能会发生什么?

    1.2K30编辑于 2024-04-16
  • 来自专栏Android 开发者

    使用内存安全工具提升应用质量和安全

    Android 内存安全工具是一个可帮助您提升应用质量和安全性的综合工具包。通过本文您可以了解到我们推出的各种内存安全工具及其使用场景,以及了解如何通过这些工具来找到并修复问题。 什么是内存安全错误 内存错误是指在使用 C 或 C++ 等原生语言处理内存时发生的错误。 使用内存安全工具可帮助您减少此类错误,从而改进用户体验。 使用内存安全工具 我们的任务是帮助开发者确保内存安全,帮助您避免在使用原生代码处理内存时造成错误和漏洞。 总结 Android 内存安全工具可以检测代码库中的内存错误,修复此类错误可帮助提高质量和安全性。确保内存安全的诀窍是使用内存安全工具运行代码找到错误,然后修复这些错误。

    1.1K20编辑于 2022-03-24
  • 来自专栏浮躁的喧嚣

    内存管理--32:编写“异常安全代码”时留意内存管理问题

    首先要明确的一点是:不管try是否抛出异常,finally语句块都会执行。 小心注意6!!

    27310编辑于 2023-11-22
  • 来自专栏Rust 编程

    安全设计白皮书 | 谷歌对内存安全的洞察

    这份白皮书中深入探讨了数据、解决内存安全性的挑战,并讨论了实现内存安全的可能方法及其权衡。 相关定义 内存安全漏洞 内存安全漏洞是指当程序在内存访问构成未定义行为的状态下允许执行读取或写入内存的语句时产生的。 谷歌内部的漏洞研究反复证明,缺乏内存安全会削弱重要的安全边界。 内存安全漏洞的类别 空间安全漏洞(例如“缓冲区溢出”,“越界访问”)发生在内存访问引用超出被访问对象分配区域之外的内存时。 解决内存安全漏洞的途径 安全编码 解决内存安全问题需要采取多管齐下的方法,包括: 通过安全编码来防止内存安全漏洞。 通过增加攻击的成本来减轻内存安全漏洞。 尽早在开发生命周期中检测内存安全漏洞。 这预防了数百个内存安全漏洞的发生:“随着进入 Android 的新的不安全内存代码的减少,内存安全漏洞的数量也相应减少。2022 年是 Android 的内存安全漏洞不再占大多数的第一年。

    1.6K10编辑于 2024-03-12
  • 来自专栏学院君的专栏

    安全地使用 Redis(上):端口安全、指令安全内存使用限制

    Redis 的安全隐患 线上运行的 Redis 服务主要有哪些安全隐患呢? 以上这些都是一些最基本最常见的 Redis 安全隐患,要规避这些问题,我们该怎么做呢? 端口安全 首先,我们可以通过配置 Redis 来确保服务端的端口安全,阻止恶意用户建立连接。 关于端口安全问题造成的线上事故案例,可以阅读学院君之前发布的这篇教程:Laravel 学院今天凌晨四点到上午十点不能访问问题定位及修复细节通报。 指令安全 前面我们介绍 Redis 安全隐患的时候提到恶意用户建立连接后可能执行 flushdb 之类的指令清空 Redis 内存数据库,现在,我们已经通过配置 bind 或者 requirepass "" 内存使用与写入频率限制 接下来,我们来看如何避免大量高频的写入导致 Redis 内存耗尽的问题。

    1.7K20编辑于 2023-03-03
  • 来自专栏c/c++

    【C++】探索C++内存管理:机制揭秘与内存安全

    内存映射段是高效的I/O映射方式,用于装载一个共享的动态内存库。用户可使用系统接口创建共享共享内存,做进程间通信。 堆用于程序运行时动态内存分配,堆是可以上增长的。 数据段–存储全局数据和静态数据。 ,内存泄漏的危害 ✨什么是内存泄漏: 内存泄漏指因为疏忽或错误造成程序未能释放已经不再使用的内存的情况。 内存泄漏并不是指内存在物理上的消失,而是应用程序分配某段内存后,因为设计错误,失去了对该段内存的控制,因而造成了内存的浪费。 异常安全问题 int* p3 = new int[10]; Func(); // 这里Func函数抛异常导致 delete[] p3未执行,p3没被释放. delete[] p3; } ☑️ 内存泄漏分类 由于C++是一种底层语言,在开发过程中需要手动分配和释放内存,这就要求程序员负责管理动态分配的内存,确保内存的正确分配和释放,避免内存泄漏和悬挂指针等问题。

    43310编辑于 2024-05-03
  • 来自专栏CDA数据分析师

    “揭秘”大数据的10个神话

    本文整合自恒信国通 也许对大数据更好的一个类比是它就像一匹意气风发的冠军赛马: 通过适当的训练和天赋的骑师,良种赛马可以创造马场记录–但没有训练和骑手,这个强大的动物根本连起跑门都进不了。 为了确保你组织的大数据计划保持正轨,你需要消除以下10种常见的误解。 1. 大数据就是‘很多数据’ 大数据从其核心来讲,它描述了结构化或非结构化数据如何结合社交媒体分析,物联网的数据和其他外部来源,来讲述一个”更大的故事”。该故事可能是一个组织运营的宏观描述,或者是无法用传统的分析方法捕获的大局观。从情报收集的角度来看,

    94382发布于 2018-02-08
领券