How many of you know deep down that the team is working on something that no customer wants?
Most companies don't iterate directly with the customer, and so, the common practice is to depend heavily on product owners. However, line-level product owners aren’t usually industry leaders, they don’t typically do actual market research, and they occasionally aren’t even aware of pricing, packaging and operational considerations. Instead, they are usually focused on making sure the team is building what their boss thinks should be built. In my experience, this dynamic often results in the product owner focusing on getting an ‘agreed upon set of changes’ implemented by the team, by Date™ certain. In the end, just like with engineers, when the boss applies pressure, product owners will do whatever is needed to get the boss off their neck and maybe get a bonus.
对 aPaaS 的产品认知
从业以来,一直是在企业软件领域摸爬滚打,最开始接触的就是流程、表单引擎这些东西。行业应用领域对应用架构的诉求通常就是要充分支持扩展和可定制性,因为通常会把一个业务平台交付给几十甚至上百家需求各异的客户,基于成本考虑,必须在同一个基础版本上迭代出各客户的需求,如果做不到这块,交付给每家客户的版本毫无共性,或者共性过少,那就可能出很多问题。架构的不合理性会影响业务团队的组成方式,进而影响盈利水准。近年来,aPaaS 这样的概念逐渐火热,借此机会,正好把自己领悟的产品观简单总结一下。
Why AWS built a no-code tool
AWS today launched Amazon Honeycode, a no-code environment built around a spreadsheet-like interface that is a bit of a detour for Amazon’s cloud service. Typically, after all, AWS is all about giving developers all of the tools to build their applications — but they then have to put all of the pieces together. Honeycode, on the other hand, is meant to appeal to non-coders who want to build basic line-of-business applications. If you know how to work a spreadsheet and want to turn that into an app, Honeycode is all you need. To understand AWS’s motivation behind the service, I talked to AWS VP Larry Augustin and Meera Vaidyanathan, a general manager at AWS.
Automating safe, hands-off deployments
Amazon didn’t start out practicing continuous delivery, and developers here used to spend hours and days managing deployments of their code to production. We adopted continuous delivery across the company as a way to automate and standardize how we deployed software and to reduce the time it took for changes to reach production. Improvements to our release process built up incrementally over time. We identified deployment risks and found ways to mitigate those risks through new safety automation in pipelines. We continue to iterate on the release process by identifying new risks and new ways of improving deployment safety.
从三明治到六边形
在六边形架构风格中,应用程序的内部包含业务规则,基于业务规则的计算,领域对象,领域事件等。而外部的,也是我们平时最熟悉的诸如 REST,SOAP,NoSQL,SQL,Message Queue 等,都通过一个端口接入,然后在内外之间有一个适配器组成的层,它负责将不同端口来的数据进行转换,翻译成领域内部可以识别的概念(领域对象,领域事件等)。内部不关心数据从何而来,不关心数据如何存储,不关心输出时 JSON 还是 XML,事实上它对调用者一无所知,它可以处理的数据已经是经过适配器转换过的领域对象了。
insights.thoughtworks.cn/from-sandwi…
When frontend means full stack
Frontend development is at the intersection of art and logic, business and expression, left brain and right brain, design and nerdery. I love it. As a job title, “frontend developer” is fairly well-defined and understood. As long as the job is building websites, frontenders are focused on the browser. Even as the job has changed over the decades, we’ve remained browser people. But there’s a pile of new stuff we’re now expected to do, particularly if we’re building a site with a modern JavaScript framework like React, Angular, or Vue.
How to reevaluate your frontend architecture
As engineers, we often judge architectural decisions solely by their technical correctness. We can be quick to reach for metrics on performance, consistency, or availability because these are measurable and readily available. However, the most technically ideal solution isn’t always the one that creates the most value for your organization. This age-old temptation to mistake what you want for what you need means that evaluating technical architectures requires careful consideration.
如何挑选数据可视化框架及平台 - 前端篇
数据可视化是个很火的领域,如果在 Github 上搜索 chart 会发现有 7.6w 个结果,大量看起来功能类似的图表库,如何在这么多项目中选择适合自己的?因为做 BI 产品 Sugar 的缘故,我们曾经花费了大量时间了解各种可视化库,接下来将分享我们在这方面的经验,帮助你做出更好的选择。
zhuanlan.zhihu.com/p/149398216
Software should be designed to last
And why I am trying to minimize my dependence on external libraries (whenever possible).
adlrocha.substack.com/p/adlrocha-…
面向 Model 编程的前端架构设计
这篇文章将简略地介绍我们当前的无线前端架构设计及其演进之路。主要内容分成几个部分:1)当前的前端方案及其解决的问题;2)现在面对的新挑战;3)我们的前端方案设计和选择。希望我们的经验能带给大家一些启发。
zhuanlan.zhihu.com/p/144157268
A Visual Guide To React Mental Models, Part 2: UseState, UseEffect And Lifecycles
I love mental models. They’re crucial to understanding complex systems, allowing us to intuitively grasp and solve complex problems. This is the second of a three-part series of articles around React mental models. I’ll show you the exact mental models I use with complex React components by building them from the ground up and by using lots of visual explanations.
Snowpack 2.0
Snowpack 1.0 was designed for a simple mission: install npm packages to run directly in the browser. The theory was that JavaScript packages are the only thing still requiring the use of a bundler during development. Remove that requirement, remove the bundler, and speed up web development for everyone. Guess what? It worked! Thousands of developers started using Snowpack to install their dependencies and build websites with less tooling. A whole new type of faster, lighter-weight dev environment suddenly became possible. Snowpack 2.0 is a build system designed for this new era of web development. Snowpack removes the bundler from your dev environment, leveraging native ES Module (ESM) support to serve built files directly to the browser. This isn’t just a faster tool, it’s a new approach to web build systems.
The beauty of Unix pipelines
The Unix philosophy lays emphasis on building software that is simple and extensible. Each piece of software must do one thing and do it well. And that software should be able to work with other programs through a common interface – a text stream. This is one of the core philosophies of Unix which makes it so powerful and intuitive to use.
How Unix Works: Become a Better Software Engineer
Unix is beautiful. Allow me to paint some happy little trees for you. I’m not going to explain a bunch of commands – that’s boring, and there’s a million tutorials on the web doing that already. I’m going to leave you with the ability to reason about the system. Every fancy thing you want done is one google search away. But understanding why the solution does what you want is not the same. That’s what gives you real power, the power to not be afraid.
The Map Is Not the Territory
Maps are necessary, but flawed. (By maps, we mean any abstraction of reality, including descriptions, theories, models, etc.) The problem with a map is not simply that it is an abstraction; we need abstraction. A map with the scale of one mile to one mile would not have the problems that maps have, nor would it be helpful in any way. To solve this problem, the mind creates maps of reality in order to understand it, because the only way we can process the complexity of reality is through abstraction. But frequently, we don’t understand our maps or their limits. In fact, we are so reliant on abstraction that we will frequently use an incorrect model simply because we feel any model is preferable to no model.
A Framework for First Principles Thinking
The framework for First Principles Thinking depends on systems and the first principles for a system. A system can be any space in which you want to stay while thinking about a problem. It’s the boundary. The boundaries aren’t sharp, which can make it difficult to choose a system. Systems are stacked on top of other systems. Some systems live in other systems. This way, you can control exactly how deep you want to get into a problem. For example, there’s the Newtonian physics system — on top of which we have our daily life system — and below which is the quantum physics system. One heuristic I use to define systems is — resolution or the scope of the problem. How deep do you want to look, what all components does the question you’re trying to answer need.
Zoom 和 Slack 的第二曲线
“The tailwinds have outweighed the headwinds(顺胜于逆).” 这是 Slack CFO 在今年 Q1 财报电话会上的开场白,这句话同样适用于在上季度收获了软件上市公司历史上单季度营收最快增长(同比 169%)的 Zoom,其股价从年初的不到 60 美金飙至 240 美金,但这过程中也遭遇了由于安全问题引发的质疑和抨击。结合对两家公司的持续跟踪,让我体会最深刻的,不仅对发展中的SaaS公司还有所有处于上升通道的公司都有参考价值的是:哪怕在逆势中,也要坚持增长,寻找第二曲线——“出圈”。
What's Salesforce?
Salesforce is the most popular CRM in the industry. It’s worth $120B, owns 20% of the CRM market, and is used by 83% of Fortune 500s. The company employs over 30,000 people, and Salesforce Tower is the tallest skyscraper in the San Francisco skyline. An entire economy is built around Salesforce. For every dollar that Salesforce makes, its ecosystem generates $4. Millions of developers build apps for Salesforce’s platform, and Salesforce development is itself a lucrative niche within software engineering. The IDC estimates that by 2022, Salesforce will have created 3.3 million new jobs, as well as $800B in new business revenues. Today, enterprise software has a reputation for being clunky, boring, and slow. But Salesforce, the archetype of enterprise software, actually pioneered much of what we now take for granted in tech, including selling software as a service (=> SaaS), and hosting software in the cloud (=> AWS), all while creating a massively valuable company.