研发效能可以度量么?

2021-01-21
阅读 3 分钟
2.3k
如果 Autonomy 的问题是高沟通成本,那么是否可以直接度量整个沟通成本。例如参与会议的时间,这是一个可能的指标。这样的指标会有什么问题呢? 有没有更好的指标?

业务逻辑拆分模式

2021-01-18
阅读 3 分钟
4.6k
我没有选择“架构”这样的词。因为“架构”代表了太多的含义,比如页面打开速度,处理吞吐,可用率,安全防御等。把这些东西都混在一起谈,一方面显然是超过了我的能力。另外一方面,我隐约感觉到造成打开速度的本质难题与造成安全防御难以做好的本质难题,可能是不一样的东西。业务逻辑拆分是“架构”的含义里非常狭小的一块...

为什么拖拽的 api 都很难用?

2020-07-29
阅读 2 分钟
6.1k
最终效果先来看达到了什么样的效果 [链接]undo 操作拖放到区域外自动回滚Framer Motion 的缺点拖拽和动画是由 Framer Motion 实现的。Framer Motion 在表达动画方面毫无疑问相当牛逼,一点点的代码,就可以实现非常丰富的效果。比 react-spring 还要强!Framer Motion 在拖拽方面要差点意思。这个是官方给的例子 [链接] ...

减少状态引起的代码复杂度

2019-07-22
阅读 15 分钟
2.2k
要解决的问题是什么? A problem well-stated is Half-solved "No Silver Bullet - Essence and Accident in Software Engineering" 以及另外一篇著名的 "Out of the Tar Pit" 都把 State 造成的复杂度放到了首要的位置。 其实要解决问题一直都是房间里的那头大象,Imperative Programming 的方式去管理 State 太复杂了...

这里有一个前端工程师改变软件开发行业的机会 - 3

2019-07-20
阅读 3 分钟
2.4k
在上一篇文章中,我们写了一个很简单的从前端直接提交改动到后端的例子。在复杂业务下,显然是不允许前端直接改数据库的数据,毕竟浏览器不是受信的执行环境。业务规则还是必须要在后端验证的。这篇里我们来看一下对于表单提交这个场景,乘法云是如何简化开发的。

这里有一个前端工程师改变软件开发行业的机会 - 2

2019-07-19
阅读 3 分钟
1.5k
在上一篇文章中,列了一张非常抽象,不明觉历的脑图。但其实我们的愿望很简单,大白话就是把代码写得漂亮好懂。这一篇里我们就具体来看一些 TypeScript 代码。

这里有一个前端工程师改变软件开发行业的机会 - 1

2019-07-18
阅读 1 分钟
1.9k
这个问题确实很难,也有很多先烈前辈尝试过了,但是失败了。但是现在的软件开发模式显然谈不上理想,而且也并没有感觉到一直在显著地改善。以前可能一个人能搞定的需求,现在前后端分离之后,上了react这些技术之后,甚至可能需要一个成建制的团队来做。某些时候,感觉技术越来越专业化之后,整体的开发成本是在上升的。...

零拷贝读取文件成go对象

2017-12-06
阅读 2 分钟
6.5k
我们观察到从文件读取到go对象,需要两次拷贝: 从文件拷贝到内存,成为[]byte 从[]byte,按照格式进行读取,拷贝到go对象上 怎么样优化这个读取速度呢? 利用mmap,把文件直接映射到内存,go允许把这片内存已经转化成[]byte来使用 直接在这个[]byte上“展开”go对象 所谓”展开“就是一个reinterpret cast,对一个指针的类...

http://how-to-be-agile.com 如何才能对遗留系统无风险重构和演进?

2017-10-12
阅读 1 分钟
1.1k
测试覆盖率为零,代码一改就挂!从前任手上接管过来的这团泥球一般的代码我再也推不动了。 而你写的每一行代码的宿命就是变成别人的遗留代码。 [链接] 如何才能对遗留系统无风险重构和演进?

Jsoniter 0.9.8 发布: JSON 性能对标 Protobuf

2017-02-09
阅读 1 分钟
6.6k
最近发布的 0.9.8 版本对性能对标 Jackson 和 Protobuf 进行了详细的评测: [链接] 。性能优化的原理会近期会发布于 infoq 中文站,尽请期待。

golang json 解析器哪家强?

2016-12-07
阅读 3 分钟
15k
目的不是推销 json-iterator 。而是证明 json-iterator 不比其他的库更慢,从而使得大家可以把吐槽点放到其他方面:比如特性是不是齐全, api 是不是友好。重新发明 json 解析器是因为经常需要处理奇怪格式的 json ,而又不想把数据转两遍。市面上没有 api 满足我的需求的,后面我会专门写一篇 api 介绍的文章来演示 jso...

Golang 流式解析 Json

2016-12-02
阅读 4 分钟
13.5k
现有的golang解析json的库都是push模式的,缺少一种基于pull api的库。另外就是看一下golang解析json的速度到底如何,还有多少的提高空间。

golang 调用 php7

2016-11-28
阅读 4 分钟
14k
使用 https://github.com/taowen/go-php7 基于 [链接] 修改而来,fork缘由([链接]) 执行php文件 {代码...} 其中 /tmp/index.php 的内容为 {代码...} Eval,返回值 {代码...} 返回的value的生命周期所有权是golang程序,所以我们要负责DestroyValue 设置全局变量来传参 {代码...} 传递进去的参数的生命周期是php控制的...

golang 调用 cgo coredump 获得方法

2016-11-05
阅读 1 分钟
12.8k
写一个错误的c程序 {代码...} {代码...} {代码...} 编译测试为可执行文件 {代码...} 这个是用于分析coredump的时候获得符号表使用的。 执行测试,获得coredump {代码...} 如果找不到coredump的位置,执行之前先设置好coredump的写出条件 {代码...} 用gdb分析coredump {代码...} 用 bt full 查看所有的frame 用 frame &lt...

PHP 混合 Go 协程并发

2016-10-27
阅读 10 分钟
17.5k
想法很简单。通过设置 runtime.GOMAXPROCS(1) 让 golang 的进程变成单线程执行的。类似python用gevent的效果。然后通过调度多个协程实现异步I/O并发。php作为一个子函数跑在go的进程内,php需要yield到其他协程时,通过回调到golang函数来实现。从php里调用go提供的子函数时,go保证保存php的当前上下文。当协程执行权让...

支持所有C++语法的IDE

2016-10-14
阅读 1 分钟
3.6k
绝大部分的IDE在打开复杂的C++工程时都会报各种各样的语法错误,但是实际上编译是可以通过的。这里面的问题是IDE使用的语法解析和编译器的不一样。为了彻底解决这个问题,需要让IDE使用编译器来做语法高亮和代码提示。目前qtcreator, vim等都有基于clang的解决方案。我发现做得最好的是kdevelop。

【1】 pythonic modern c++:字符串

2016-10-03
阅读 2 分钟
4.9k
致力于在现代C++中提供Python的编程体验。这个建立在两个关键的基础上 c++ 11/14/17 提供了从 auto 到 structure binding 的语法便利 [链接] 提供的 range 抽象 但是 python 体验是建立在语言内建的大量方便函数的基础之上的。而 Modern C++ 还缺少大量使用起来方便的库。 我们今天要来解决的第一个问题是如何在C++中表...

modern c++ 中何时使用值,引用,指针

2016-09-04
阅读 1 分钟
3.3k
学完了之后个人最大感受是一门支持value copy语义的语言太难了。c++这么多年才把坑终于填上(rvalue reference, move constructor, emplace_back)。但是如果不是value copy的语义,c++就不是c++了。精确控制内存layout,以及清晰的ownership,这些都是value copy带来的直接好处。

golang什么时候应该把方法绑定在struct的值上而不是指针上?

2016-09-02
阅读 1 分钟
10.1k
golang 支持 struct 也支持 struct 的指针。一个常见的困惑是既然struct 指针存在了,为什么不干脆只有struct的指针呢?两个原因:

2016/08/31 Amdahl to Zipf- The Physics of Software

2016-08-31
阅读 1 分钟
1.9k
每天推荐一个英文视频 [链接] 本日看点 用物理定律解释很多软件开发中的现象。完全没有任何ppt,纯口述。

2016/08/30 Business Logic a different perspective

2016-08-30
阅读 1 分钟
2k
每天推荐一个英文视频 [链接][链接] 本日看点

2016/08/29 Benchmarks, Performance, Scalability, and Capacity

2016-08-29
阅读 1 分钟
2.2k
每天推荐一个英文视频 [链接][链接] 本日看点

2016/08/28 Back to the Basics Essentials of Modern C++ Style

2016-08-28
阅读 1 分钟
1.8k
每天推荐一个英文视频 [链接][链接] 本日看点

2016/08/27 What I Learned About Going Fast at eBay and Google

2016-08-28
阅读 1 分钟
1.9k
每天推荐一个英文视频 [链接][链接] 本日看点

2016/08/26 Scott Meyers – The Most Important Design Guideline

2016-08-26
阅读 10 分钟
2.3k
API 是 library 的 interface,就像 GUI 是软件的界面一样。设计合理的 API 对于 library 的用户来说非常重要。请 library 的开发者都认真看一下这个视频吧。

2016/08/25 The Secret Assumption of Agile

2016-08-26
阅读 1 分钟
1.9k
每天推荐一个英文视频 [链接][链接] 本日看点 再次强调code that can change的重要性。Fred George,很牛很能吐槽的老爷子。

php decorator

2016-08-25
阅读 2 分钟
2.2k
在php里实现类似python的decorator,必须借助php extension。因为纯php的wrapper无法伪装所有的行为。比如$obj::const 这样的引用就是非法的。上面代码的执行结果

2016/08/24 CppCon 2015 Bjarne Stroustrup “Writing Good C++14"

2016-08-24
阅读 1 分钟
2.5k
C++ 14 加上 GSL 已经变成了一门新的语言。Compiler / IDE 支持了 static analysis 之后,指针的生命周期不再困难。比 rust 使用起来简单多了。

使用 shared_ptr 线程间共享配置

2016-08-23
阅读 5 分钟
4.5k
多个线程需要共享同一份配置,但是配置本身又需要更新,如何处理?比较理想的处理方式是 copy on write,每次更新在原有的数据上拷贝一份,加上更新,然后再替换全局的那份配置。这样做的好处是读取配置完全不会被后台更新block住。要是用加锁的方式,万一后台更新线程哪里不靠谱,前台读配置的地方就被block住了。但是...

2016/08/23 Adventures with concurrent programming in Java

2016-08-23
阅读 1 分钟
2k
Martin Thompson — Adventures with concurrent programming in Java A quest for predictable latency