Go在工程实践的错误处理Golang在工程实践中的错误处理 彭友顺 石墨文档 产研负责人 目 录 为什么我们处理错误会这么慢 01 如何完善错误信息 02 优雅处理错误信息 03 分布式错误处理 04 错误信息手册的必要性 05 为什么我们处理错误 会这么慢 第一部分 错误信息不够完善 why 原因 出现 错误 定位 慢 恢复 慢 效率低 为什么我们处理错误会这么慢 错误处理不够优雅0 码力 | 30 页 | 3.11 MB | 1 年前3
降级预案在同程艺龙的工程实践-王俊翔降级预案在同程艺⻰龙的⼯工程实践 演讲者 / 王俊翔 同程艺龙 ⾃自我介绍 搜索故障 微信⼩小程序 API⽹网关 资源1 搜索引擎 统⼀一资源⽹网关 资源2 资源3 资源4 …… 资源4 ⼤大量量超时 统⼀一资源⽹网关 搜索引擎 API⽹网关 ⼤大量量请求超时 缺乏熔断设计 交易易故障 第三⽅方⽀支付 ⽀支付中⼼心 ⽀支付回写 消息队列列 ⽀支付通知 交易易中台 ,并做好降级预防措施 • 参数修正,及时调整流控、降级策略略,优化告警、超时参数设置 • 模拟线上故障,进⾏行行故障复现,验证故障后续的处理理措施是否⾏行行之有效 • 以战养兵,历练团队,让⼯工程师有更更多机会积累经验,提升应对故障的能⼒力力 常态化的故障演练对系统进⾏行行反复验证 系统设计 Agent Core Custom Code Model Burn CPU Servlet 治 理理保障系统的可⽤用性 • 通过反复的故障演练,发现系统中的薄弱点,并进⾏行行有效的预防 • 配合降级预案,让系统的可靠性更更易易验证,让演练更更加常态化 • 历练团队、积累经验,促进⼯工程师的进步,提⾼高应对故障的能⼒力力 ⾃自我介绍0 码力 | 26 页 | 18.67 MB | 1 年前3
PyConChina2022-杭州-Pants:Python工程化必备构建工具-沈达Pants: Python工程化 必备构建工具 主讲人: 沈达 – 比图科技数据工程师 Pants 2 https://www.pantsbuild.org 面向任意规模代码仓库的高性能、可扩展、用户友好的构建系统。 由 主要实现 用 定义构建 对 支持最好 Pants 1 诞生于推特 Pants 2 涅槃重生 由Toolchain赞助 人生苦短,我用Python 用户 JupyterLab 个人:JupyterLab最佳实践 用户 JupyterLab 痛点:如何快速启动 痛点:如何分享、协作 痛点:如何管理依赖 模版工程 https://github.com/da-tubi/jupyterlab-best-practice 企业项目:多个子项目的Python代码仓库 模版工程 https://github.com/da-tubi/pants-pyspark-subprojects • 可扩展 智能依赖 • 新建子项目简单 • 开发环境和生产环境一致 • 本地缓存(SaaS支持:远程缓存) • 只要没有import,就会智能排除 业余项目:如何分发用Python实现的插件 示例工程 https://github.com/texmacs/plugins-in-python JAR • Executable • Assembly PEX • Executable • Assembly0 码力 | 9 页 | 975.41 KB | 1 年前3
Object Pascal 参考手册(Ver 0.1) Borland 公司的开发工具,如 Delphi 和 Kylix。 绝大多数使用 Borland 开发工具的开发者是在 IDE(集成开发环境)环境下编写代码并进行编译。 Borland 开发工具帮助我们设置工程和源文件的许多细节,比如维护单元的依赖信息。并且,使用这些工 具在程序的组织上还有一些限制,严格说来,这不是 Object Pascal 语言规范的一部分。比如,Borland 开发工具遵循某些文件和程序的命名约定,若你在 语言)。每当一个 工程调入 IDE 时,Project Manager 创建一个 makefile,但只有在包含多个工程的工程组中才保存这些文 件。 关于程序结构和依赖关系的更多内容,请参考程序和单元。 Pascal source files(Pascal 源文件) 编译器期望在以下三种文件中取得 Pascal 源代码: • 单元源文件 (文件扩展名为 .pas) • 工程文件 (文件扩展名为 包含一个工程文件和多个单元文件。工程文件相当 Overview - 2 - 于传统 Pascal 语言的‘主’程序文件,它把各单元文件组织成一个程序。Borland 开发工具自动为每一 个应用程序维护一个工程文件。 如果从命令行编译一个程序,你可以把所有源代码放在单元文件(.pas)中,但如果用 IDE 创建程 序,则必须有一个工程文件(.dpr)。 包源文件类似于工程文件,但它0 码力 | 168 页 | 868.25 KB | 1 年前3
C++高性能并行编程与优化 - 课件 - 01 学 C++ 从 CMake 学起9.并行算法实战: reduce , scan ,矩阵乘法等 10.存储大规模三维数据的关键:稀疏数据结构 11.物理仿真实战:邻居搜索表实现 pbf 流体求解 12.C++ 在 ZENO 中的工程实践:从 primitive 说起 13.结业典礼:总结所学知识与优秀作业点评 I 硬件要求: 64 位( 32 位时代过去了) 至少 2 核 4 线程(并行课…) 英伟达家显卡( GPU 专题) g++ gfortran LLVM clang clang++ flang 多文件编译与链接 • 单文件编译虽然方便,但也有如下缺点: 1. 所有的代码都堆在一起,不利于模块化和理解。 2. 工程变大时,编译时间变得很长,改动一个地方就得全部重新编译。 • 因此,我们提出多文件编译的概念,文件之间通过符号声明相互引用。 • > g++ -c hello.cpp -o hello.o • 这样当预处理器第二次读到同一个文件时,就会自动跳过 • 通常头文件都不想被重复导入,因此建议在每个头文件前加上这句话 头文件进阶 - 递归地使用头文件(再续) (自动跳过) CMake 中的子模块 • 复杂的工程中,我们需要划分子模块,通常一个库一个目录,比如: • 这里我们把 hellolib 库的东西移到 hellolib 文件夹下了,里面的 CMakeLists.txt 定义了 hellolib0 码力 | 32 页 | 11.40 MB | 1 年前3
《Java 应用与开发》课程讲义 - 王晓东《Java 应用与开发》课程讲义 中国海洋大学信息科学与工程学院 王晓东 2018 年 9 月 目 录 1 Java 技术概述及开发环境 3 1.1 Java 技术概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.1.1 Java 发展简史 . . . . . . . . . . . 11.1.5 Panel 类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 11.1.6 布局管理器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 11.1.7 容器的嵌套使用 . . . . . . . . 128 11.2 组件定位参照系 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 11.3 容器默认布局管理器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 11.4 事件处理机制示例 . . . . . . . . . .0 码力 | 330 页 | 6.54 MB | 1 年前3
跟我学Shiro - 张开涛.......................................................................................... 91 会话管理器................................................................................................... Subject 的所有交互都会委托给 SecurityManager;可以把 Subject 认 为是一个门面;SecurityManager 才是实际的执行者; SecurityManager:安全管理器;即所有与安全有关的操作都会与 SecurityManager 交互; 且它管理着所有 Subject;可以看出它是 Shiro 的核心,它负责与后边介绍的其他组件进行 交互,如果学习过 SpringMVC,你可以把它看成 色而不是权 限,即这样用户可以拥有一组权限,赋予权限时比较方便。典型的如:项目经理、技术总 监、CTO、开发工程师等都是角色,不同的角色拥有一组不同的权限。 隐式角色:即直接通过角色来验证用户有没有操作权限,如在应用中 CTO、技术总监、开 发工程师可以使用打印机,假设某天不允许开发工程师使用打印机,此时需要从应用中删 除相应代码;再如在应用中 CTO、技术总监可以查看用户、查看权限;突然有一天不允许0 码力 | 219 页 | 4.16 MB | 10 月前3
百度超级链 XuperChain stable 中文文档包中封装了一层 密码学插件管理器,支持创建指定类型的密码学对象,或者通过公私钥自动识 别需要加载的插件类型。通过密码学插件管理器,可以支持隔绝框架对密码学 插件的感知,对上层框架提供一种无缝的使用体验。 XuperChain 中默认密码学插件使用的是Nist P256 + ECDSA,在不额外指 定的情况下, XuperChain 启动后会加载默认密码学插件。 之前说过,通过密码学插件管理器可以按照公私钥自动识别需要加载的插件类 用一个c++合约为例来展示如何编译、部署、调用合约。 2.3.1. 创建合约工程 xdev工具是随xuperchain发布的一个合约编译和测试工具,在编译完xuperchain之后生成在 output目录。 xdev提供了一个默认的c++合约工程模板 1 $ xdev init hello-cpp 这个命令创建了一个hello-cpp的合约工程 2.3.2. 编译合约 第一次编译的时间会长一点,因为xdev需要下载编译器镜像,以及编译 3 enable: true 以counter合约为例来看如何编写一个java合约。 2.4.4.1. 编译环境准备 编译Java sdk:Java版本不低于Java1.8版本 包管理器:maven,mvn版本3.6+ # 编译java sdk cd contractsdk/java mvn install -f pom.xml # 产出二进制文件target/java-contract-sdk-00 码力 | 325 页 | 26.31 MB | 1 年前3
python3学习手册anaconda是一个包含180+的科学包及其依赖项的发行版本,其包含的 科学包包括:conda, numpy, scipy, ipython notebook等 conda包和环境管理器包含于Anaconda的所有版本当中 pip是 用于安装和管理软件包的 包管理器,维护多个环境难度较大。 virtualenv是 用于创建一个独立的Python环境 的工具。 不同的py程序需要不同的python版本及不同版本的依赖包,在共享主 ★第15章、常用非自带模块 常用的非自带模块,需要使用pip安装 ★paramiko(SSH远程登录) # pip3 install paramiko # 在pycharm里,打开工程所在目录,进入venv\Scripts\子目录下 按下Shi�键同时点击鼠标右键,在此处打开PowerShell窗口 cmd> pip3 install paramiko ★使用密码认证 import 项目的 site-packages目录下即可 使用 #使用: ★requests(HTTPS请求) # pip3 install requests # 在pycharm里,打开工程所在目录,进入venv\Scripts\子目录下 按下Shi�键同时点击鼠标右键,在此处打开PowerShell窗口 cmd> pip3 install requests #使用 import0 码力 | 213 页 | 3.53 MB | 1 年前3
用 Node.js 滚「雪球」http://xueqiu.com 聪明的投资者都在这里 「雪球」是什么 管理你的投资信息 与行业专家在线交流 信息复盘 选择Node.js之前的思考 前端工程师的知识结构 HTML/CSS/JS HTTP 前端工程师做什么 ● 面向用户的工程师 ● 浏览器/服务器不是分界线 ● web/mobile 当时项目的状态 ● 全JAVA堆栈 ● 页面用jsp渲染 Single Page App maxSockets 全面部署 pm (https://github.com/aleafs/pm) ● 多进程管理器 ● 基于master+worker模式 ● 平滑退出和不退出前提下的进程重载 statsd (https://github.com/etsy/statsd) 对前端工程师的挑战 ● 保证服务可靠 ● 靠谱的错误处理 ● 代码被并发执行带来的问题 谢谢0 码力 | 33 页 | 791.85 KB | 1 年前3
共 320 条
- 1
- 2
- 3
- 4
- 5
- 6
- 32













