Python 的类型系统

Thumbnail

image from pixabay.com 静态类型正在逐渐成为潮流, 2010 年之后诞生的几门语言 Go、Rust、TypeScript 等都走了静态类型路线。 过往流行的一些动态语言(Python、PHP、JavaScript)也在积极引入语言新特性(Type Hint、TypeScript)对静态类型增强。 我曾使用 Python 开发规模较大的项目,感受过动态语言在工程规模变大时候带来的困难: 在重构阶段代码回归成本异常之高,很多历史代码不敢动。 后来技术栈转到...

2020-06-23 · alswl

浅谈 Code Review 之事前准备

Thumbnail

随着业务规模扩大、团队组成变复杂,如何降低项目实施风险,降低软件复杂度变得尤为关键。 我从 Martin Flower、Joel Spolsky(软件随想录 作者) 等巨匠智慧中寻找解决复杂工程之道,其中 Code Review 是行之有效手段。 我认同 Code Review 价值也是忠实执行者。 加入蚂蚁以后,我在所接触项目中都大力推广 Code Review。 感谢团队信任和支持,目前 CR 协作进展顺利, 项目 CR 从最早不主动,到现在形成基于模块 Owner 制度 CR 和 Peer Review。 我也曾经...

2020-03-31 · alswl

从 SQL Server 到 MySQL(三):愚公移山 - 开源力量

Thumbnail

该系列三篇文章已经全部完成: 从 SQL Server 到 MySQL(一):异构数据库迁移 - Log4D 从 SQL Server 到 MySQL(二):在线迁移,空中换发动机 - Log4D 从 SQL Server 到 MySQL(三):愚公移山 - 开源力量 - Log4D 我们用了两章文章 从 SQL Server 到 MySQL(一):异构数据库迁移 / 从 SQL Server 到 MySQL(二):在线迁移,空中换发动机 介绍我们遇到问题和解决方案。 不管是离线全量迁移还是在线无缝迁移, 核心 ETL 工具就是 yugong。 Yugong 是一个成熟工具, 在阿里巴巴去...

2018-06-20 · alswl

从 SQL Server 到 MySQL(二):在线迁移,空中换发动机

Thumbnail

该系列三篇文章已经全部完成: 从 SQL Server 到 MySQL(一):异构数据库迁移 - Log4D 从 SQL Server 到 MySQL(二):在线迁移,空中换发动机 - Log4D 从 SQL Server 到 MySQL(三):愚公移山 - 开源力量 - Log4D (image via https://pixabay.com/en/military-stealth-bomber-refueling-602729/ ) 在上篇文章 从 SQL Server 到 MySQL (一):异构数据库迁移 - Log4D 中,我们给大家介绍了从 SQL Server 到 MySQL 异构数据库迁移的基本问题和全量解决方案。 全量方案可以满足一部分场景的需求,但是这个方案仍然是有缺陷的: 迁移过程中需要停机,停机的时长和...

2018-05-21 · alswl

从 SQL Server 到 MySQL(一):异构数据库迁移

Thumbnail

该系列三篇文章已经全部完成: 从 SQL Server 到 MySQL(一):异构数据库迁移 - Log4D 从 SQL Server 到 MySQL(二):在线迁移,空中换发动机 - Log4D 从 SQL Server 到 MySQL(三):愚公移山 - 开源力量 - Log4D 背景 沪江成立于 2001 年,作为较早期的教育学习网站, 当时技术选型范围并不大: Java 的版本是 1.2,C# 尚未诞生,MySQL 还没有被 Sun 收购, 版本号是 3.23。 工程师们选择了当时最合适的微软体系,并在日后的岁月里, 逐步从 ASP 过度到 .net,数据...

2018-03-12 · alswl

服务性能监控:USE 方法(The USE Method)

Thumbnail

本文首发在沪江技术学院公众号,小莞翻译,我做了校对。 由于微信公众号的封闭性,我担心未来文章不容易被发现。 为了避免沧海遗珠,特意转到这里。 英文原文:The USE Method。 USE 方法是一种能分析任何系统性能的方法论。 我们可以根据能帮助系统分析的结构化清单,来迅速的定位资源的瓶颈和错误所在。 它通常会先以列出问题为开始,然后再寻找适合的指标,而不是给你制定一些固定的指标, 然后让你按部就班的执行下去。 本页左侧下...

2017-11-12 · 小莞

Stack Overflow 的 HTTPS 化:漫漫长路的终点

Thumbnail

原文作者:Nick Craver 翻译作者:罗晟 @luosheng & @alswl 原文地址:Nick Craver - HTTPS on Stack Overflow: The End of a Long Road 本文为原创翻译文章,已经获得原作者授权,转载请注明作者及出处。 本文首发在「沪江技术学院」公众号 今天,我们默认在 Stack Overflow 上部署了 HTTPS。目前所有的流量都将跳转到 https:// 上。与此同时,Google 链接也会在接下去的几周内更改。启用的过程本身只是举手之劳,但在此之前我们却花了好几年的时间。到目前为止,HTTPS 在我们所有的 Q&A 网站...

2017-09-27 · 罗晟, alswl

一个关于 nolock 的故事:深入理解数据库隔离级别

Thumbnail

加入沪江不久,我就被扔到一个将集团 SQL Sever 的数据库迁移到 MySQL 的项目里, 同时伴随进行的还有 .net 系统迁移到 Java 系统。 在这个过程中我发现了一个很有趣的现象:历史遗留的 .net 项目中, 几乎所有的 SQL 中都会使用一个关键字:nolock。 这让我很困惑,nolock 的字面意思是对当前技术不使用锁技术,为什么要这样用呢? 我找了一个范例如下: SELECT [id] FROM [dbo].[foos] WITH(nolock) WHERE aField = 42 AND bField = 1 作为横向支持工程师,开发工程师会问我:「数据库即将从 SQL Server 迁移到 My...

2017-09-19 · alswl

当我们在聊监控,我们在聊什么?

Thumbnail

最近在团队中给大家做了一个分享,泛泛地聊了一些有关「监控」的话题。 其实做分享对分享者的作用往往大于参与者。 这是一次将自己知识的梳理的过程,于是我将这次分享整理成这篇文章。 目的 🎯 我们先来聊聊,什么是「监控」,以及我们期望通过「监控」完成哪些目的? 传统意义上的监控,是指: 通过一些手段和工具,关注运行中的硬件、软件、用户体验的关键数据,将其暴露出来。 当关键数据出现异常时候发出警告,进行人工或者自动的响应...

2017-06-08 · alswl

XSS 攻击的处理

Thumbnail

这是一年前写的项目笔记,一直在我的待办事项里等待做总结,今天偶然翻到,就整理成文章发出来。 谨以此文怀念 乌云。 事情缘由 春节前的某一天,收到一封来自乌云(国内知名白帽子团队)的邮件, 告知我厂网站上出现一例 XSS 漏洞。 因为以前对 XSS 输入做过防御,还以为是某个前端 DOM 上的 XSS 漏洞, 后来仔细一看,不妙,是个影响甚大的存储型 XSS 漏洞。 这里简单科普一下 XSS 跨网站脚本 -维基百科,自由的百科全书 中介绍到: 跨网站脚本(Cross-...

2017-05-31 · alswl