Categories
Security
一分钟读论文:《开源软件供应链攻击分类》
SAP 安全研究机构、雷恩第一大学和上法兰西理工大学合著的论文《SoK: Taxonomy of Attacks on Open-Source Software Supply Chains》全面梳理了开源软件供应链攻击的方式,制作了涵盖 107 个独特向量的攻击树。并 17 位领域专家和 134 位软件开发人员一同总结了 33 个缓解措施。
In Security, 1 min read一分钟读论文:《移动设备上数据的加密保密性》
美国的约翰斯·霍普金斯大学的论文《SoK: Cryptographic Confidentiality of Data on Mobile Devices》基于对移动设备上数据加密的现有研究的分析和评估,介绍了可以用来评估不同方案在实现数据保密性方面的效果和开销的度量方法和指标,总结了移动设备加密方法和技术各自的优点和缺点,以及适用的场景。
In Security, 1 min read一分钟读论文:《人类解决验证码有多强?大规模评估》
斯坦福大学的论文《How Good are Humans at Solving CAPTCHAs? A Large Scale Evaluation》 从21种最流行的验证码方案(13种图像方案和8种音频方案)收集了318 000多个验证码样本,请亚马逊机械土耳其(Amazon’s Mechanical Turk)和一个地下验证码破解服务的工作者来解决这些验证码,并记录他们的正确率和解决时间,发现:
In Security, 1 min read一分钟读论文:《寻找失去的时间:浏览器中 JavaScript 定时器的综述》
法国的图卢兹大学、斯特拉斯堡大学和国家信息与自动化研究所(INRIA)合著的论文《SoK: In Search of Lost Time: A Review of JavaScript Timers in Browsers》 测试了不同的浏览器和操作系统下的 JavaScript 定时器的性能和精度,收集了来自Alexa Top 1M网站的数据,分析了它们使用 JavaScript 定时器的频率和目的。发现:JavaScript 定时器性能和精度在不同的浏览器和操作系统下有着显著的差异,存在着许多安全隐患,可以被用来实现一些高级的攻击。
In Security, FrontEnd, 1 min read一分钟读论文:《工程师如何遵循 NPM 包安全最佳实践?》
不遵循包依赖的最佳实践会导致严重的安全风险。例如,2021 年 3 月,安全专家在 NPM 包网络掩码中发现了一个漏洞可影响超过 278,000 个应用。美国布莱克斯堡弗吉尼亚理工大学和东北大学软件学院合著的论文《How Do Developers Follow Security-Relevant Best Practices When Using NPM Packages?》 分析了841个 JS 应用与 NPM TOP 1000 包发现工程师经常忽略安全的最佳实践。
In Security, 1 min read一分钟读论文:《不经意伪随机函数 (OPRF)》
不经意伪随机函数(Oblivious Pseudorandom Functions,简称 OPRF),是一种在密码学协议和隐私保护技术中广泛使用的基本原语。哈佛大学、波茨坦大学、IBM 欧洲研究院和哈索普拉特纳研究所合著的论文《SoK: Oblivious Pseudorandom Functions》基于数学证明和分析来比较不同类型的 OPRF 在安全性、效率、功能性等方面的优劣,全面概述如何利用 OPRF 来改善互联网用户的隐私,进一步展示了 OPRF 的理论和实践能力。
In Security, 1 min read一分钟读论文:《Bug 的隐秘生命周期:大规模实证研究》
你对自己的代码保持敬畏吗?意大利菲夏诺萨勒诺大学软件工程 (SeSa) 实验室的论文《The Secret Life of Software Vulnerabilities: A Large-Scale Empirical Study》对 GitHub 上 1,096 个开源项目,来自国家漏洞数据库的 3,663 个带有公共补丁的漏洞的生命周期进行的大规模实证研究。发现: 在创建新文件后不久就产生了漏洞; 开发者在维护源码的同时造成漏洞; 工作量较大的开发者导致了大多数安全漏洞; 漏洞在源码中停留的天数方面具有很高的存活率。
In Security, 1 min read一分钟读论文:《战争与和平:世界政治对软件生态系统的影响》
两国交战,平民是否有罪?国际人道法约定“战争时要尽可能限制对妇女和儿童以及其他平民的影响”。开源许可证明确规定“不歧视个⼈或群体。License 不得歧视任何⼈”。 俄乌冲突中开源如何影响开发者呢?我们来看看日本奈良科学技术大学和澳大利亚墨尔本大学合著的论文《In war and peace: the impact of world politics on software ecosystems》中研究的几个例子:当开源项目的维护者将他们的开源项目化为抗议软件(Protestware)。
In SoftwareEcosystem, Security, 1 min read一分钟读论文:《XSS 攻击22年:全面调查及系统综述》
作为前端工程师你真的了解 XSS 吗?越来越多超级应用基于 Web 构建,如何系统的攻防 XSS 尤为重要。微软安全工程师 1999 年底披露了 XSS,22年来 XSS 一直稳居 OWASP(开放 Web 应用程序安全 ) 报告的前 TOP10。阿尔及利亚的拉尔比特贝西大学、盖勒马大学和巴吉莫赫塔尔大学的 LRS 实验室的论文《Twenty-two years since revealing cross-site scripting attacks: a systematic mapping and a comprehensive survey》 调查了147份高质量研究,总结制定了一个全面的分类法,描述了用于预防、检测、保护和防御 XSS 攻击的不同技术。
In Security, 2 mins read一分钟读论文:《细孔沉千帆:小程序权限漏洞研究》
微信、抖音和支付宝的小程序的月活用户总数接近全球最受欢迎的社交网络 Facebook 28.9 亿 MAU。北京电子科技学院的论文《A SMALL LEAK WILL SINK MANY SHIPS: VULNERABILITIES RELATED TO MINI PROGRAMS PERMISSIONS》 对小程序权限进行研究。系统分析了9个流行的移动应用生态系统超过 700 万个小程序,测试了超过 2,580 个 API,发现6类潜在安全漏洞,银联、字节、微信、QQ、支付宝、百度、小米、华为纷纷中招,并总结了小程序保护用户隐私的系统性建议。
In Security, 1 min read一分钟读论文:《SMASH:通过 JavaScript 触发同步多边 Rowhammer 攻击》
Rowhammer 被归类为影响一些最新的 DRAM 设备的问题,其中重复访问一行内存可能导致相邻行中的位翻转,这意味着理论上攻击者可以改变内存中该位的值,从而获得对所有物理内存的读写访问权。确定性的 Rowhammer 攻击对数十亿移动用户构成了真正的威胁。
In Security, 1 min read一分钟读论文:《Montage:基于神经网络语言模型 (NNLM) 实现 JS 引擎模糊测试器》
基于神经网络语言模型 (NNLM) 实现 JS 引擎模糊测试器被证实有效。韩国科学技术院(KAIST)的一篇论文《Montage: A Neural Network Language Model-Guided JavaScript Engine Fuzzer》, 首次提出了基于神经网络语言模型 (NNLM) 实现 JS 引擎模糊测试器: Montage。 论文提出了一种将 JS 测试用例的层次结构和这些结构之间的关系建模为一系列片段的新算法。 将 AST 编码为片段序列使 Montage 能够使用 LSTM 模型学习片段之间的关系。 技术的关键方面是将 JS 抽象语法树 (AST) 转换为可以直接训练流行的 NNLM 的 AST 子树序列 试验用例结果表明 Montage 在最新的 JS 引擎中发现了37个真实 bug,有3个是公共漏洞和暴露(CVE),证明了它能有效发现 JS 引擎的 bug。
In Security, 1 min read一分钟读论文:《NPM 供应链的软肋是什么?》
微软和美国北卡罗莱纳州立大学合作的一篇论文《What are Weak Links in the npm Supply Chain?》,显然 NPM 供应链攻击形势非常严峻,论文结论建议 NPM 要求对依赖排名前 100 的包的维护者进行强制性 2FA 登录认证。有几个数据触目惊心: 93K里就有 3k 维护者的邮箱都已经失效甚至在网上被售卖,覆盖33个 TOP1 流行的包。 2.2%的包可以本身逻辑就支持安装脚本,2.4% TOP1 流行包依赖了它们。而市面上93%的恶意脚本都是通过安装脚本达到目的。 58%的包和44%的维护者都不活跃了,而流行包里有38%的包两者都不活跃了。 1% TOP1 的包包含30+维护者,60+贡献者,维护:贡献高达1:2。 NPM 52%的包被 5K 作者拥有。
In Security, 1 min readFrontEnd
一分钟读论文:《Chrome 〈!DOCTYPE aigc〉: 你的网页何必是 HTML》
前端开发即将成为历史,Google Gemini Team、Google Chrome Team、Google Cloud Team 和 Google Chromebook Team 合著的论文《Chrome <!DOCTYPE aigc>: Your next web page is not HTML》 提出了通过大模型零成本发布网页的设计方案。论文中提到 Chrome 在实验一个功能,你的网页内容只需使用人类语言编写提示词,当用户浏览你的网站时,Chrome 会根据大模型自动生成网页内容。
In AI, FrontEnd, 1 min read一分钟读论文:《寻找失去的时间:浏览器中 JavaScript 定时器的综述》
法国的图卢兹大学、斯特拉斯堡大学和国家信息与自动化研究所(INRIA)合著的论文《SoK: In Search of Lost Time: A Review of JavaScript Timers in Browsers》 测试了不同的浏览器和操作系统下的 JavaScript 定时器的性能和精度,收集了来自Alexa Top 1M网站的数据,分析了它们使用 JavaScript 定时器的频率和目的。发现:JavaScript 定时器性能和精度在不同的浏览器和操作系统下有着显著的差异,存在着许多安全隐患,可以被用来实现一些高级的攻击。
In Security, FrontEnd, 1 min read一分钟读论文:《GPT-minify: All JS bundle size 97% off》
OpenAI 在 2023 年 3 月发布了 GPT-4,随后悄悄开源了他们的 JS 压缩包 GPT-minify。相关论文提到 GPT-minify 利用 GPT-4 的强大的语言模型和编码能力,能识别 Bundle 中重复冗余的业务代码并深度重构,从而实现将现有的 JS Bundle 压缩到极致,最高可达 97% 的压缩比,吊打 Terser、 Uglify、babel-minify 等流行压缩工具。
In AI, FrontEnd, 1 min read一分钟读论文:《我们走了多远——WebAssembly 运行时的全面特征研究》
WebAssembly ⼆进制⽂件依赖 Web 浏览器的 JavaScript 引擎来执⾏,需要独⽴的 WebAssembly 运⾏时才能在⾮ Web 浏览器中运⾏ WebAssembly 代码。美国佐治亚大学的论文《How Far We’ve Come – A Characterization Study of Standalone WebAssembly Runtimes》构建了一个标准的 WABench 的基准套件,对独立的 WebAssembly 运行时进行了全面的表征研究,包含性能、内存开销和架构特征。分析了33 个独⽴ WebAssembly 运⾏时的TOP5,发现这些独立运⾏时在运⾏ WebAssembly ⼆进制⽂件时平均会降低 1.59 到 9.57 倍的性能。
In FrontEnd, 1 min read一分钟读论文:《评估消除 JS 死代码对移动网页性能的影响》
你的 WebApp 包含都少没用的代码?如何识别?删除掉收益如何?诺基亚贝尔实验室和美国纽约大学阿布扎比分校的论文《Muzeel: assessing the impact of JavaScript dead code elimination on mobile web performance》 基于他们联合开发的 Muzeel 针对 15,000 个流行的网站进行分析,发现:超过一半的 JS 文件至少 70% 代码是死代码(dead code),占文件大小的 55%。
In FrontEnd, Performance, 1 min read一分钟读论文:《重新思考移动客⼾端的网页缓存》
最高约49%的 JS 运算可以在网页上重用。美国密歇根⼤学和加州⼤学洛杉矶分校的论文《Rethinking Client-Side Caching for the Mobile Web》 提出了一个新的客户端缓存架构,该架构主张直接缓存运行时的 JS。
In FrontEnd, Performance, 1 min read一分钟读论文:《通过 JS 分类即时加速移动网页》
诺基亚⻉尔实验室和美国纽约大学、美国兰卡斯特大学管理学院合著的论文《To Block or Not to Block: Accelerating Mobile Web Pages On-The-Fly Through JavaScript Classification》 设计了一个服务 - SlimWeb 通过识别并删除网页的⾮关键 JS 以优化性能。通过机器学习(ML)加持的 JS 分类服务优化移动页面加载时间减少了 50%,用户体验提升 60% 以上,同时保持了大多数页面 90%-100% 的交互体验。
In Performance, FrontEnd, 1 min read一分钟读论文:《StackOverflow 上 JS 代码片段规则违规的挖掘》
还在复制粘贴 StackOverflow 的代码吗?巴西的巴西利亚大学和巴西贝伦联邦大学合著的论文《Mining Rule Violations in JavaScript Code Snippets》对 StackOverflow 的 336k 个代码片段进行分析,发现答案里 100% 的 JavaScript 代码都存在 ESLinter 不通过问题。
In FrontEnd, 1 min read一分钟读论文:《要不要上 TypeScript?GitHub 上 JS 和 TS 应用软件质量的系统比较》
你的团队是否还在纠结要不要将项目改成 TypeScript 呢?改成 TypeScript 应用的 bug 能得到收敛吗?德国斯图加特大学软件工程研究所的这篇新论文《To Type or Not to Type? A Systematic Comparison of the Software Quality of JavaScript and TypeScript Applications on GitHub》能给你答案。
In FrontEnd, 1 min read一分钟读论文:《关于(未)采用 JavaScript 前端框架的研究》
如果你的团队正在考虑迁移新的前端框架,建议你先读巴西南马托格罗索联邦大学计算机系的这篇论文《On the (Un-)Adoption of JavaScript FrontEnd Frameworks》。作者通过研究 Github 的 TOP-15000 项目,覆盖 Angular、React、VUE、Backbone, Ember 主流框架,对采用或不采用框架有了建设性的发现: 受欢迎程度 (39%) 和易学性 (35%) 是激励采用前端框架的主要因素。 20%的人计划在未来的项目中采用新的的框架。 迁移到新的框架很费时间,41%项目在执行迁移上花费的时间多于使用新旧框架的时间。 在迁移到新框架期间需要更多的开发人员数量。 大多数迁移直接发生在 Master 或 develop 分支中,意味着重写。
In FrontEnd, Architecture, 1 min readArchitecture
一分钟读论文:《技术债的普遍性、原因和影响:业界系统调查》
据研究,在软件开发组织中平均有25%的成本浪费于解决技术债遗留的问题。塞尔维亚诺维萨德大学、巴西里约热内卢联邦大学、巴伊亚联邦大学和巴西塞阿拉联邦研究所、洛斯安第斯大学、哥伦比亚大学、美国蒙大拿州立大学和爱达荷国家实验室、萨尔瓦多大学和巴西巴伊亚州立大学合著的论文《Prevalence, Common Causes and Effects of Technical Debt: Results from a Family of Surveys with the IT Industry》 调查了 12 个国家/地区的研究人员的反馈,研究各种软件开发活动与技术债(Technical Debt,简称 TD)之间的关系。发现:TD 的主要影响是交付延迟,可维护性低,和返工;导致 TD 的 8 大原因最大的是 Deadline;TD 类型占比 TOP5 是设计、测试、代码、架构和⽂档。
In Engineering, Architecture, 1 min read一分钟读论文:《利用 WebAssembly 运行时将 Serverless 部署到边缘设备》
边缘主机的 CPU 和内存限制会加剧 Serverless 启动延迟,对物联网服务并不友好。为了享受 Serverless 模型的弹性、灵活性和成本优势,同时利用对新兴物联网服务至关重要的边缘计算的潜力,需要解决 Serverless 平台的性能低下问题。奥地利维也纳工业大学的论文《Pushing Serverless to the Edge with WebAssembly Runtimes》 设计了基于 WASM 的 FaaS 平台的架构,用于 Serverless 边缘计算的基于 WebAssembly 的运行时环境的设计和实现。评估后发现优于 Docker。
In Architecture, 1 min read一分钟读论文:《Monorepo:多声体文献综述》
互联网大厂热衷于 Monorepo 的原因是什么,Monorepo 能否解决超级应用的代码管理通病?巴西米纳斯吉拉斯联邦大学和巴西拉夫拉斯联邦大学合著的论文《Monorepo: A Multivocal Literature Review》 论文通过对主要来源于20+灰色文献(如博客、演讲、视频等)的多声体文献综述,提供一个关于 Monorepo 的定义、特征、优势和挑战的概述。
In Architecture, Engineering, 1 min read一分钟读论文:《用 Rust 和 WebAssembly 补充 JS 实现高性能 Node、Web 应用程序》
希腊伯罗奔尼撒大学的论文《Complementing JavaScript in High-Performance Node.js and Web Applications with Rust and WebAssembly》描述了如何将 JavaScript 与 Rust 结合使用作为高级脚本语言来代替 C++ 的架构。发现:基于 Rust 的实现性能超过 JS 1.15到115 倍,超过 Node.js 的并发模型 14.5 倍或更多,证明 Rust 能够提供非阻塞操作和硬件访问所需的低级功能,同时保持与 JavaScript 的高级相似性,从而提高生产力。
In Architecture, Performance, 1 min read一分钟读论文:《软件架构对研发⽣产⼒的影响》
匈牙利塞格德⼤学科学与信息学院软件⼯程系的论文《The impact of the software architecture on the developer productivity》 基于一个 5,000 多个⼯时,⻓达 3 年的真实远程医疗应⽤研发的数据集,对四种不同的软件架构和框架组合进行了对比。
In Productivity, Architecture, 1 min read一分钟读论文:《关于(未)采用 JavaScript 前端框架的研究》
如果你的团队正在考虑迁移新的前端框架,建议你先读巴西南马托格罗索联邦大学计算机系的这篇论文《On the (Un-)Adoption of JavaScript FrontEnd Frameworks》。作者通过研究 Github 的 TOP-15000 项目,覆盖 Angular、React、VUE、Backbone, Ember 主流框架,对采用或不采用框架有了建设性的发现: 受欢迎程度 (39%) 和易学性 (35%) 是激励采用前端框架的主要因素。 20%的人计划在未来的项目中采用新的的框架。 迁移到新的框架很费时间,41%项目在执行迁移上花费的时间多于使用新旧框架的时间。 在迁移到新框架期间需要更多的开发人员数量。 大多数迁移直接发生在 Master 或 develop 分支中,意味着重写。
In FrontEnd, Architecture, 1 min readPerformance
一分钟读论文:《用 Rust 和 WebAssembly 补充 JS 实现高性能 Node、Web 应用程序》
希腊伯罗奔尼撒大学的论文《Complementing JavaScript in High-Performance Node.js and Web Applications with Rust and WebAssembly》描述了如何将 JavaScript 与 Rust 结合使用作为高级脚本语言来代替 C++ 的架构。发现:基于 Rust 的实现性能超过 JS 1.15到115 倍,超过 Node.js 的并发模型 14.5 倍或更多,证明 Rust 能够提供非阻塞操作和硬件访问所需的低级功能,同时保持与 JavaScript 的高级相似性,从而提高生产力。
In Architecture, Performance, 1 min read一分钟读论文:《Wasmachine:WebAssembly OS 可加速物联网和边缘计算》
物联网设备通常内存和性能很弱。新西兰奥克兰大学的论文《Wasmachine: Bring IoT up to Speed with A WebAssembly OS》 设计出在资源受限的物联网和边缘设备中高效安全地执行 WebAssembly 应用程序的操作系统:Wasmachine。Wasmachine 通过提前将 WebAssembly 编译为本机二进制文件并在内核模式下以零成本系统调来实现高效执行。Wasmachine 原型用 Rust 实现,性能评估结果表明,在 Wasmachine 中运行的 WebAssembly 应用程序比 Linux 中的原生应用程序快 21%。
In Performance, 1 min read一分钟读论文:《WebAssembly 与 JS 在移动设备上的能耗对比》
在真实应用中评估 WebAsssembly 更多关注的是 API 和性能,而移动设备显然也需要关注能耗。荷兰阿姆斯特丹自由大学的论文《Comparing the Energy Efficiency of WebAssembly and JavaScript in Web Applications on Android Mobile Devices》在 Android 上通过对 32 个 Web 应用程序基于 Firefox、Chrome 跑 WebAssembly 与 JavaScript 之间的能耗进行分析,结果发现 WebAssembly 的能耗显著低于 JavaScript。
In Performance, 1 min read一分钟读论文:《评估消除 JS 死代码对移动网页性能的影响》
你的 WebApp 包含都少没用的代码?如何识别?删除掉收益如何?诺基亚贝尔实验室和美国纽约大学阿布扎比分校的论文《Muzeel: assessing the impact of JavaScript dead code elimination on mobile web performance》 基于他们联合开发的 Muzeel 针对 15,000 个流行的网站进行分析,发现:超过一半的 JS 文件至少 70% 代码是死代码(dead code),占文件大小的 55%。
In FrontEnd, Performance, 1 min read一分钟读论文:《重新思考移动客⼾端的网页缓存》
最高约49%的 JS 运算可以在网页上重用。美国密歇根⼤学和加州⼤学洛杉矶分校的论文《Rethinking Client-Side Caching for the Mobile Web》 提出了一个新的客户端缓存架构,该架构主张直接缓存运行时的 JS。
In FrontEnd, Performance, 1 min read一分钟读论文:《通过 JS 分类即时加速移动网页》
诺基亚⻉尔实验室和美国纽约大学、美国兰卡斯特大学管理学院合著的论文《To Block or Not to Block: Accelerating Mobile Web Pages On-The-Fly Through JavaScript Classification》 设计了一个服务 - SlimWeb 通过识别并删除网页的⾮关键 JS 以优化性能。通过机器学习(ML)加持的 JS 分类服务优化移动页面加载时间减少了 50%,用户体验提升 60% 以上,同时保持了大多数页面 90%-100% 的交互体验。
In Performance, FrontEnd, 1 min readProductivity
一分钟读论文:《通过反思性目标设定培养工程师的好习惯》
吾日三省吾身:为人谋而不忠乎?与朋友交而不信乎?传不习乎?–《论语·学而》。加拿大不列颠哥伦比亚大学、瑞士苏黎世苏黎世大学和微软研究院合著的论文《Enabling Good Work Habits in Software Developers through Reflective Goal-Setting》研究中了52名专业软件工程师在两到三周内每天对他们的工作进行自我反思。发现,有目的的、持续的自我反思能提高工程师的工作效率和幸福感 (79.6%)。
In Engineer, Productivity, 1 min read一分钟读论文:《低代码作为制造业数字化转型的推动者》
Forrester Research 分析2022年全球低代码总支出达到212亿美元。西班牙⽡伦西亚理⼯⼤学⽣产管理和⼯程研究中⼼的论文《Low-Code as Enabler of Digital Transformation in Manufacturing Industry》研究了工业4.0下低代码平台与物联网设备之间的联系。发现低代码对于企业需要更快地开发新的数字解决方案以保持竞争力至关重要,而采用低代码范式的阻碍是:集成、互操作性、通信、实时数据处理、均质化、人体工程学和安全性等方面的问题未得到适当解决。
In Productivity, 1 min read一分钟读论文:《Low-code 开发的特点与挑战:从业者视角》
中国的武汉大学、美国的伊利诺伊大学和澳大利的亚莫纳什大学合著的论文《Characteristics and Challenges of Low-Code Development: The Practitioners’ Perspective》 分析了 Stack Overflow 和 Reddit 两大社区关于 Low-code development(LCD)的优势、局限性和挑战。结果表明:(1) LCD 可以提供图形用户界面供用户拖放,只需很少甚至不需要代码;(2) LCD 平台中开箱即用的单元(例如,API 和组件)的设备使其易于学习和使用并加快开发速度;(3) LCD 在需要自动化流程和工作流的领域尤其受到青睐;(4)从业者对 LCD 的优缺点看法不一。
In Productivity, 1 min read一分钟读论文:《影响大规模敏捷软件开发按时交付的因素》
荷兰代尔夫特理工大学与荷兰国际集团 (ING) 合著的论文《Factors Affecting On-Time Delivery in Large-Scale Agile Software Development》 对来自 ING 的 635 名工程师进行调查,分析了 185 个团队和 2,208 个 Epic 数据集。发现: 需求细化、任务依赖性、组织一致性、组织政治和团队的地理分布被认为对及时的软件交付有最大的影响。 项目规模、依赖项数量、历史交付绩效、团队熟悉度和开发人员经验是解释软件交付进度偏差的最重要变量。 因素按层次相互作用:组织因素被认为与人员因素相互作用,进而影响技术因素。技术因素被认为对及时的软件交付有直接影响。
In Productivity, 1 min read一分钟读论文:《被掏空的一天:软件工程师的日常》
作为团队的 Leader,如何通过改进流程和⼯具,并最终提⾼团队⽣产⼒呢?可以参考微软研究院和英国伦敦大学、瑞士苏黎世大学信息学系合著的论文《Today was a Good Day: The Daily Life of Software Developers》。该论文分析了微软工程师的5,971份问卷结果,发现工程师「良好」和「典型」的工作日是怎么样,并总结了使良好的工作日成为典型的建议:
In Productivity, Engineer, 1 min read一分钟读论文:《软件架构对研发⽣产⼒的影响》
匈牙利塞格德⼤学科学与信息学院软件⼯程系的论文《The impact of the software architecture on the developer productivity》 基于一个 5,000 多个⼯时,⻓达 3 年的真实远程医疗应⽤研发的数据集,对四种不同的软件架构和框架组合进行了对比。
In Productivity, Architecture, 1 min readEngineering
一分钟读论文:《线上系统事故解决时间(TTM)需要多久?》
事故从发现到解决有三个重要的衡量指标: TTD(Time To Detect,事故被发现的时间)、TTE(Time To Engage,相关责任人响应时间)、TTM(Time To Mitigate,事故缓解或解决时间)。TTM 是定位问题和制定解决方案并解决的时长。微软研究院的论文《How Long Will it Take to Mitigate this Incident for Online Service Systems》,从微软20个在线服务系统中收集了2018年至2020年的 2.7 万条事故数据,发现 TTM 与事故的严重性、影响范围、类型、来源、所属服务和所属团队有显著的相关性,信息不足、沟通不畅、协作不协调是影响 TTM 最大的因素,并提出了预测方法 TTMPred。
In Engineering, 1 min read一分钟读论文:《现代 Code Review 的系统文献综述》
Code Review 从结构化和严格的形式演变为灵活的、基于工具的异步过程,即 Modern Code Review (MCR)。巴西南里奥格兰德州联邦大学 (UFRGS)和阿雷格里港信息学研究所合著的论文《A Systematic Literature Review and Taxonomy of Modern Code Review》 系统分析了 139 篇论文和来自行业、开源项目的问卷,详尽的记录了十多个细节性发现,能帮助我们了全面了解采用 MCR 的动机、挑战和好处,以及哪些影响因素导致哪些结果,并总结了改进 MCR 流程的提案。
In Engineering, 1 min read一分钟读论文:《当代软件监控:系统的文献回顾》
荷兰代尔夫特理工大学和巴西圣保罗大学和著的论文《Contemporary Software Monitoring: A Systematic Literature Review》 对96篇发表在顶级同行评审会议和期刊上的论文进行了质量评估、分类和总结,以及对每个维度和分支下的研究现状、贡献和挑战进行了概述和比较,提出了当代日志框架(Contemporary Logging Framework)。
In Engineering, 1 min read一分钟读论文:《技术债的普遍性、原因和影响:业界系统调查》
据研究,在软件开发组织中平均有25%的成本浪费于解决技术债遗留的问题。塞尔维亚诺维萨德大学、巴西里约热内卢联邦大学、巴伊亚联邦大学和巴西塞阿拉联邦研究所、洛斯安第斯大学、哥伦比亚大学、美国蒙大拿州立大学和爱达荷国家实验室、萨尔瓦多大学和巴西巴伊亚州立大学合著的论文《Prevalence, Common Causes and Effects of Technical Debt: Results from a Family of Surveys with the IT Industry》 调查了 12 个国家/地区的研究人员的反馈,研究各种软件开发活动与技术债(Technical Debt,简称 TD)之间的关系。发现:TD 的主要影响是交付延迟,可维护性低,和返工;导致 TD 的 8 大原因最大的是 Deadline;TD 类型占比 TOP5 是设计、测试、代码、架构和⽂档。
In Engineering, Architecture, 1 min read一分钟读论文:《为什么要重新造轮子?库重用和重新实现的实证研究》
新加坡管理大学的论文《Why reinventing the wheels? An empirical study on library reuse and re-implementation》通过对 GitHub 上的项目进行静态分析和动态分析,收集了重用和重新实现的案例,并对其中的一部分进行了人工验证和调查问卷,研究了工程师在使用第三方库时,为什么会选择重用或者重新实现。发现:重新实现可能会降低代码质量。
In Engineering, 1 min read一分钟读论文:《ChatGPT for Robotics:设计原则和模型能力》
2023年初推出的 Loona Smart Petbot 集成了 ChatGPT,是具备优秀人格化的机器人。市面上有很多可编程的机器人都提供了丰富的传感器,如果你手头有一个这样的机器人(如 Anki Vector、大疆 RoboMaster EP、优必选悟空机器人教育版),通过 ChatGPT 你同样可以轻易使其人格化。微软自主系统和机器人研究院和 ChatGPT 合著的论文《ChatGPT for Robotics: Design Principles and Model Abilities》 提出了 ChatGPT 应用于机器人的设计原则、ChatGPT 应用于机器人的 Pipeline 和让用户可以协作地应用优秀提示方案的 PromptCraft,能指导你基于 ChatGPT 大幅提升机器人的可玩性。
In AI, Engineering, 1 min read一分钟读论文:《ChatGPT 提示模式:提高代码质量、重构、需求获取和软件设计》
前哈佛大学计算机科学教授、谷歌工程主管 Matt Welsh 在美国计算机协会(ACM)的一个虚拟会议上说“不要指望你的程序员职业生涯会一直持续下去,因为 AI 正在取代这个角色”。ChatGPT 近来让很多工程师感到很无力,仿佛任何努终将徒劳,但也有很多工程师看到了机会并尝试通过它成为 10X 工程师。美国田纳西州纳什维尔市范德堡大学的论文《ChatGPT Prompt Patterns for Improving Code Quality, Refactoring, Requirements Elicitation, and Software Design》 为软件工程提供了一个模式目录,全面总结了帮助工程师应用 ChatGPT 改进需求获取、快速原型制作、代码质量、重构和系统设计的提示模式的核心思想和100个提示要点。
In AI, Engineering, Engineer, 1 min read一分钟读论文:《Monorepo:多声体文献综述》
互联网大厂热衷于 Monorepo 的原因是什么,Monorepo 能否解决超级应用的代码管理通病?巴西米纳斯吉拉斯联邦大学和巴西拉夫拉斯联邦大学合著的论文《Monorepo: A Multivocal Literature Review》 论文通过对主要来源于20+灰色文献(如博客、演讲、视频等)的多声体文献综述,提供一个关于 Monorepo 的定义、特征、优势和挑战的概述。
In Architecture, Engineering, 1 min read一分钟读论文:《简洁代码能降低技术债吗?》
希腊马其顿大学应用信息学系和荷兰格罗宁根格罗宁根大学数学与计算机科学研究所的论文《Can Clean New Code Reduce Technical Debt Density?》对 Apache 软件基金会的 27 个开源软件项目进行了大规模案例研究,分析了 66,661 个类和 56,890 个 commit。结果表明,编写“简洁”(或至少“更简洁”)的新代码可以降低技术债(Technical Debt,简称 TD):
In Engineering, 1 min read一分钟读论文:《基于 ChatGPT、AR 和 Voicebots 的儿童外教软件设计框架》
ChatGPT 催生了很多教育领域的创业项目,欧盟大约有2600万4到8岁的儿童,美国大约有1700万4到8岁的儿童,外语软件将服务于数百万家庭。美国的佛罗里达理工大学与南佛罗里达大学合著的论文《Framework for A Foreign Language Teaching Software for Children Utilizing AR, Voicebots and ChatGPT (Large Language Models)》设计出一个框架,用于利用 AR+Voicebots+ChatGPT 技术开发语言学习软件,框架遵循了⼉童外语教学的设计原则:游戏化、社交互动、惊喜奖励。利用论文中提到的技术平台,开发人员、研究人员和企业家能够比以往更快地实现产品化,本设计框架和设计原则可以成为开发高效外语教学软件的蓝图。
In AI, Engineering, 1 min read一分钟读论文:《工程师如何设计测试用例:深入观察性研究》
先写测试还是先写代码?荷兰代尔夫特特理工大学和澳大利亚墨尔本大学的论文《How Developers Engineer Test Cases: An Observational Study》 观察了 13 位具有不同级别经验的工程师为真实世界的开源码编写测试用例,并调查了 72 位工程师之后,总结了一个框架和一组策略来解释工程师如何设计测试用例。
In Engineering, 1 min read一分钟读论文:《自动将 Legacy 项目重构为 ES6》
很多遗留的项目都是 ES5 代码,不能在 ES6 或 TypeScript 下很好的复用,特别是企业级大型前端工程,维护成本令人头疼。雅典经济与商业大学信息学系的论文《Automated Refactoring of Legacy JavaScript Code to ES6 Modules》实现了将遗留 ES5 代码自动重构为 ES6 模块,重点是将模块对象解构为多个可单独重用的模块来实现模块内容的细粒度重用,每个重构模块支持按需引入而不是引入整个模块对象,并自动重建依赖关系,最大限度减少耦合并提高了可维护性。
In Engineering, 1 min read一分钟读论文:《30年软件重构研究:系统性文献综述》
如何评估重构的收益?IEEE 软件工程期刊登的论文《30 Years of Software Refactoring Research: A Systematic Literature Review》分析了过去30年3183篇关于重构的研究论文,对现有重构研究的最具可扩展性和最全面的文献综述。
In Engineering, 1 min readEngineer
一分钟读论文:《玩转 GitHub 开源软件社区的必备技能树》
你的 GitHub Repo 为什么攒不到🌟?华盛顿大学和微软研究院合著的论文《Understanding skills for OSS communities on GitHub》基于对455名 OSS 贡献者的在线调查数据进行分析,开发了一个 OSS 技能模型,包含 9 类 45 种技能:技术技能、工作风格、问题解决、贡献类型、项目特定技能、人际技能、外部关系、管理和特征。能指导 OSS 贡献者显著提高技能,同时发现与他人分享技能有很多好处,比如可用于招聘。
In OpenSource, Engineer, 1 min read一分钟读论文:《ChatGPT 提示模式:提高代码质量、重构、需求获取和软件设计》
前哈佛大学计算机科学教授、谷歌工程主管 Matt Welsh 在美国计算机协会(ACM)的一个虚拟会议上说“不要指望你的程序员职业生涯会一直持续下去,因为 AI 正在取代这个角色”。ChatGPT 近来让很多工程师感到很无力,仿佛任何努终将徒劳,但也有很多工程师看到了机会并尝试通过它成为 10X 工程师。美国田纳西州纳什维尔市范德堡大学的论文《ChatGPT Prompt Patterns for Improving Code Quality, Refactoring, Requirements Elicitation, and Software Design》 为软件工程提供了一个模式目录,全面总结了帮助工程师应用 ChatGPT 改进需求获取、快速原型制作、代码质量、重构和系统设计的提示模式的核心思想和100个提示要点。
In AI, Engineering, Engineer, 1 min read一分钟读论文:《通过反思性目标设定培养工程师的好习惯》
吾日三省吾身:为人谋而不忠乎?与朋友交而不信乎?传不习乎?–《论语·学而》。加拿大不列颠哥伦比亚大学、瑞士苏黎世苏黎世大学和微软研究院合著的论文《Enabling Good Work Habits in Software Developers through Reflective Goal-Setting》研究中了52名专业软件工程师在两到三周内每天对他们的工作进行自我反思。发现,有目的的、持续的自我反思能提高工程师的工作效率和幸福感 (79.6%)。
In Engineer, Productivity, 1 min read一分钟读论文:《卓越的开源维护者是如何成就的?》
Google Go 工程师辞去工作转行成为全职开源维护者,同时为多个需要专业开源维护者的企业提供服务,报酬总额和 Google 工作相当。表明悄然兴起全职开源维护者薪酬竞争力完全不输职业软件工程师。美国瑙鲁大学和巴西联邦大学(UFPE、UNIFESP、UTFPR)的论文《What Makes a Great Maintainer of Open Source Projects?》 对 Linux、Debian 和 GitLab 经验丰富的维护人员进行了 33 次访谈,对 90 个 OSS(Open Source Software) 贡献者进行了评级调查。发现:沟通被认为是优秀维护者最重要的属性,其次是品质保障。
In OpenSource, Engineer, 1 min read一分钟读论文:《关于临时裁员的七个事实》
2023年,或许是每个互联网人都最不愿有的经历:裁员。斯德哥尔摩大学国际经济研究所 (IIES)、奥地利经济研究所(WIFO)、维也纳经济与商业大学、劳工研究所(IZA)、CESifo(经济研究中心和 Ifo 研究所)合著的论文《Seven Facts about Temporary Layoffs》 分析了在包括美国在内的许多国家/地区,涵盖了2004年至2013年期间3,882,584次失业样本。发现:当公司⾯临难以以相同⼯资替代⼯⼈的临时冲击时,使⽤临时裁员(Temporary layoffs,简称 TL)。并确定了关于 TL 和聘用召回的七个事实:
In Engineer, 1 min read一分钟读论文:《被掏空的一天:软件工程师的日常》
作为团队的 Leader,如何通过改进流程和⼯具,并最终提⾼团队⽣产⼒呢?可以参考微软研究院和英国伦敦大学、瑞士苏黎世大学信息学系合著的论文《Today was a Good Day: The Daily Life of Software Developers》。该论文分析了微软工程师的5,971份问卷结果,发现工程师「良好」和「典型」的工作日是怎么样,并总结了使良好的工作日成为典型的建议:
In Productivity, Engineer, 1 min readAI
一分钟读论文:《Chrome 〈!DOCTYPE aigc〉: 你的网页何必是 HTML》
前端开发即将成为历史,Google Gemini Team、Google Chrome Team、Google Cloud Team 和 Google Chromebook Team 合著的论文《Chrome <!DOCTYPE aigc>: Your next web page is not HTML》 提出了通过大模型零成本发布网页的设计方案。论文中提到 Chrome 在实验一个功能,你的网页内容只需使用人类语言编写提示词,当用户浏览你的网站时,Chrome 会根据大模型自动生成网页内容。
In AI, FrontEnd, 1 min read一分钟读论文:《ChatGPT for Robotics:设计原则和模型能力》
2023年初推出的 Loona Smart Petbot 集成了 ChatGPT,是具备优秀人格化的机器人。市面上有很多可编程的机器人都提供了丰富的传感器,如果你手头有一个这样的机器人(如 Anki Vector、大疆 RoboMaster EP、优必选悟空机器人教育版),通过 ChatGPT 你同样可以轻易使其人格化。微软自主系统和机器人研究院和 ChatGPT 合著的论文《ChatGPT for Robotics: Design Principles and Model Abilities》 提出了 ChatGPT 应用于机器人的设计原则、ChatGPT 应用于机器人的 Pipeline 和让用户可以协作地应用优秀提示方案的 PromptCraft,能指导你基于 ChatGPT 大幅提升机器人的可玩性。
In AI, Engineering, 1 min read一分钟读论文:《GPT-minify: All JS bundle size 97% off》
OpenAI 在 2023 年 3 月发布了 GPT-4,随后悄悄开源了他们的 JS 压缩包 GPT-minify。相关论文提到 GPT-minify 利用 GPT-4 的强大的语言模型和编码能力,能识别 Bundle 中重复冗余的业务代码并深度重构,从而实现将现有的 JS Bundle 压缩到极致,最高可达 97% 的压缩比,吊打 Terser、 Uglify、babel-minify 等流行压缩工具。
In AI, FrontEnd, 1 min read一分钟读论文:《ChatGPT 提示模式:提高代码质量、重构、需求获取和软件设计》
前哈佛大学计算机科学教授、谷歌工程主管 Matt Welsh 在美国计算机协会(ACM)的一个虚拟会议上说“不要指望你的程序员职业生涯会一直持续下去,因为 AI 正在取代这个角色”。ChatGPT 近来让很多工程师感到很无力,仿佛任何努终将徒劳,但也有很多工程师看到了机会并尝试通过它成为 10X 工程师。美国田纳西州纳什维尔市范德堡大学的论文《ChatGPT Prompt Patterns for Improving Code Quality, Refactoring, Requirements Elicitation, and Software Design》 为软件工程提供了一个模式目录,全面总结了帮助工程师应用 ChatGPT 改进需求获取、快速原型制作、代码质量、重构和系统设计的提示模式的核心思想和100个提示要点。
In AI, Engineering, Engineer, 1 min read一分钟读论文:《基于 ChatGPT、AR 和 Voicebots 的儿童外教软件设计框架》
ChatGPT 催生了很多教育领域的创业项目,欧盟大约有2600万4到8岁的儿童,美国大约有1700万4到8岁的儿童,外语软件将服务于数百万家庭。美国的佛罗里达理工大学与南佛罗里达大学合著的论文《Framework for A Foreign Language Teaching Software for Children Utilizing AR, Voicebots and ChatGPT (Large Language Models)》设计出一个框架,用于利用 AR+Voicebots+ChatGPT 技术开发语言学习软件,框架遵循了⼉童外语教学的设计原则:游戏化、社交互动、惊喜奖励。利用论文中提到的技术平台,开发人员、研究人员和企业家能够比以往更快地实现产品化,本设计框架和设计原则可以成为开发高效外语教学软件的蓝图。
In AI, Engineering, 1 min read一分钟读论文:《ChatGPT:在线考试诚信的终结?》
新西兰奥克兰梅西大学数学与计算科学学院的论文《ChatGPT: The End of Online Exam Integrity?》评估了 ChatGPT 执行高级认知任务和生成与人类生成的文本的能力。发现:ChatGPT 能够展现批判性思维能力。
In AI, 1 min readSoftwareEcosystem
一分钟读论文:《战争与和平:世界政治对软件生态系统的影响》
两国交战,平民是否有罪?国际人道法约定“战争时要尽可能限制对妇女和儿童以及其他平民的影响”。开源许可证明确规定“不歧视个⼈或群体。License 不得歧视任何⼈”。 俄乌冲突中开源如何影响开发者呢?我们来看看日本奈良科学技术大学和澳大利亚墨尔本大学合著的论文《In war and peace: the impact of world politics on software ecosystems》中研究的几个例子:当开源项目的维护者将他们的开源项目化为抗议软件(Protestware)。
In SoftwareEcosystem, Security, 1 min readOpenSource
一分钟读论文:《编写高可靠开源软件的十条简单规则》
美国加州大学伯克利分校伯克利数据科学研究所和巴卡尔计算健康科学研究所合著的论文《Ten simple rules on writing clean and reliable open-source scientific software》 为帮助提高开源软件代码的清晰度、健壮性、可用性和可维护性提出了 10 条规则:
In OpenSource, 1 min read一分钟读论文:《玩转 GitHub 开源软件社区的必备技能树》
你的 GitHub Repo 为什么攒不到🌟?华盛顿大学和微软研究院合著的论文《Understanding skills for OSS communities on GitHub》基于对455名 OSS 贡献者的在线调查数据进行分析,开发了一个 OSS 技能模型,包含 9 类 45 种技能:技术技能、工作风格、问题解决、贡献类型、项目特定技能、人际技能、外部关系、管理和特征。能指导 OSS 贡献者显著提高技能,同时发现与他人分享技能有很多好处,比如可用于招聘。
In OpenSource, Engineer, 1 min read一分钟读论文:《女性参与开源软件:文献调查》
国际妇女节,女性在开源软件(Open Source Software,简称 OSS) 中的参与非常不平衡似乎没什么提起。澳大利亚国立大学(ANU)、北亚利桑那大学(NAU)、巴西联邦技术大学(UTFPR)和俄勒冈州立大学(OSU)合著的论文《Women’s Participation in Open Source Software: A Survey of the Literature》基于51篇在2000年至2021年间发表的关于女性参与 OSS 的文章,总结了女性参与 OSS 的挑战和策略。论文发现:
In OpenSource, 1 min read一分钟读论文:《卓越的开源维护者是如何成就的?》
Google Go 工程师辞去工作转行成为全职开源维护者,同时为多个需要专业开源维护者的企业提供服务,报酬总额和 Google 工作相当。表明悄然兴起全职开源维护者薪酬竞争力完全不输职业软件工程师。美国瑙鲁大学和巴西联邦大学(UFPE、UNIFESP、UTFPR)的论文《What Makes a Great Maintainer of Open Source Projects?》 对 Linux、Debian 和 GitLab 经验丰富的维护人员进行了 33 次访谈,对 90 个 OSS(Open Source Software) 贡献者进行了评级调查。发现:沟通被认为是优秀维护者最重要的属性,其次是品质保障。
In OpenSource, Engineer, 1 min readSecturity
一分钟读论文:《软件工程管理密码有哪些最佳实践?》
硬编码凭证被 CWE 确定为最危险的 TOP25 软件弱点之一,而 GitHub 公开的 Repo 中有超过600万个公开的密码(数据库凭证、API 密钥和其他凭证)。美国北卡罗来纳州立大学的论文《What are the Practices for Secret Management in Software Artifacts?》确定了 24 种管理密码的最佳实践。发现:本地环境变量、外部密码管理服务、使用版本控制系统扫描工具和使用临时密码能有效避免意外提交密码和限制密码暴露。
In Secturity, 1 min readFeatured
-
一分钟读论文:《线上系统事故解决时间(TTM)需要多久?》
In Engineering, -
一分钟读论文:《软件工程管理密码有哪些最佳实践?》
In Secturity, -
一分钟读论文:《技术债的普遍性、原因和影响:业界系统调查》
In Engineering, Architecture, -
一分钟读论文:《玩转 GitHub 开源软件社区的必备技能树》
In OpenSource, Engineer, -
一分钟读论文:《ChatGPT 提示模式:提高代码质量、重构、需求获取和软件设计》
In AI, Engineering, Engineer, -
一分钟读论文:《用 Rust 和 WebAssembly 补充 JS 实现高性能 Node、Web 应用程序》
In Architecture, Performance, -
一分钟读论文:《通过反思性目标设定培养工程师的好习惯》
In Engineer, Productivity, -
一分钟读论文:《卓越的开源维护者是如何成就的?》
In OpenSource, Engineer, -
一分钟读论文:《我们走了多远——WebAssembly 运行时的全面特征研究》
In FrontEnd, -
一分钟读论文:《XSS 攻击22年:全面调查及系统综述》
In Security, -
一分钟读论文:《细孔沉千帆:小程序权限漏洞研究》
In Security, -
一分钟读论文:《影响大规模敏捷软件开发按时交付的因素》
In Productivity, -
一分钟读论文:《被掏空的一天:软件工程师的日常》
In Productivity, Engineer, -
一分钟读论文:《30年软件重构研究:系统性文献综述》
In Engineering, -
一分钟读论文:《要不要上 TypeScript?GitHub 上 JS 和 TS 应用软件质量的系统比较》
In FrontEnd, -
一分钟读论文:《关于(未)采用 JavaScript 前端框架的研究》
In FrontEnd, Architecture, -
一分钟读论文:《NPM 供应链的软肋是什么?》
In Security,