整理 | 核子可乐、褚杏娟 为谋求生存,Grab 将其应用软件“瘦身”四分之一;而为了提升研发效率,Shopify 一年删除了超 300 万行代码。...400 万行代码怎么来的? 在盆景项目中,Grab 希望通过一切必要手段来量化、削减并控制其应用软件的大小。 Grab 首先开发了一款定制化工具,用以分析捆绑文件中的二进制文件。...进一步控制膨胀 在发现大文件时,盆景项目鼓励开发团队在确定不必要时将其删除,包括考虑将其转移至云服务器,或者转化为更加经济的文件格式。 Grab 甚至在字体上也做了简化。...但应用软件膨胀的问题恐怕很难快速得到遏制,特别是在东南亚地区,随着智能手机使用量的持续增长,消费者对产品价格的承受能力却没有同步提升。 应用到底“做小”还是“做大”? 做减法的不只 Grab。...2023 年,Shopify 删除了超 300 万行代码、归档了大约 6800 个未使用或者不必要的 GitHub 仓库、合并了 702 条由机器生成的用于清理僵尸代码的 PR,重要的是将一个用于在线购物网站的后台进程内存使用量从
当第一次在Shopify上推出自己的电子商务网站时,大多数电子商务卖家都会带着对产品价格、运输策略、本地企业和类似Shopify商店的评论的研究。然而,你真正的竞争可能比你想象的要大得多。...Shopify——生长于美国互联网电商生态的一站式电商SaaS公司 天眼查APP数据显示,Shopify是为中小企业设计的领先的基于云的多渠道商务平台。...经营现金流表现总体优于净利润,一方面SaaS服务现金流入与会计收入确认之间存在时间差,另一方面,公司有较大规模的股权激励费用为非付现成本。...Shopify 相对于国内的 SaaS 厂商来说,运营体系更加成熟,变现率更高,从导流到最后的财务,每个环节都有完整的体系模块,仓储和物流是 shopify 的一大亮点。...与另一大电商巨头Walmart 达成合作帮助中小电商卖家进驻Walmart,以对抗共同的敌人Amazon。
在多种互联网协议中,包括 HTML,CRLF 字符表示了行的末尾,通常表示为\r\n,编码后是%0D%0A。...在和 HTTP 请求或响应头组合时,这可以用于表示一行的结束,并且可能导致不同的漏洞,包括 HTTP 请求走私和 HTTP 响应分割。...对 HTTP 请求走私而言,它通常在 HTTP 请求传给服务器,服务器处理它并传给另一个服务器时发生,例如代理或者防火墙。...这是一个不错的信号,它可能存在 CRLF 注入漏洞。 总结 良好的攻击是观察和技巧的结合。了解如何使用编码字符串来发现漏洞是一个不错的技巧。...另一方面,如果服务器不响应%0D%0A,要考虑如何再次编码这些字符,并测试服务器,以便观察它是否解码双重编码的字符,就像@filedescriptor所做的那样。
在这篇文章中,我将跟大家交流一下如何利用开发人员所犯下的各种错误来窃取敏感的Token。...由于当时我并没有登录自己的账号,因此网站将我重定向到了登录页面,完成登录之后我又被重定向到了刚才那个应用的介绍页面。没错,一切貌似都很正常。...e.kitcrm.com的用户可以通过访问https://www.kitcrm.com/users/auth/shopify?...f.Kitcrm的Facebook认证应用的redirect_uri配置将允许重定向到下面这种形式的地址: https://www.kitcrm.com/ 现在将我刚才所说的东西串联起来...会将我们所要的数据从(微信)后台返回到我的服务器中,接下来我就可以用这些数据来登录目标用户的账号了。
、Logs、TaskRetries 等)的表中删除行。...其中一些资源冲突可以在 Airflow 内部处理,而另一些可能需要一些基础设施的改变。...我们编写了一个自定义的 DAG,通过一些简单的 ORM 查询,将我们环境中的池与 Kubernetes Configmao 中指定的状态同步。...我们的下一步是什么?我们目前正致力于在单一环境中应用 Airflow 的扩展原则,因为我们正在探索将我们的工作负载分割到多个环境。...软件架构如何“以不变应万变” 从维护性工作到软件开发革命,运维 15 年间的大逆转
Shopify 的系统编程 自成立以来,Shopify 的主要服务端应用程序编程语言一直是 Ruby。...希望我们的贡献不仅能使 Rust 在 Shopify 的使用中变得更加高效,而且还能为所有 Rust 开发人员带来改进。 这就是 Shopify 加入 Rust 基金会的原因。...我们希望支持 Rust 优秀的治理模式和“Rust 公地”的维护,并将我们的知识和观点带入到更大的 Rust 对话中。...在 Shopify,我们的 Rust 之旅才刚刚开始。我们需要开发教育资源和内部工具,并学习如何最好地参与 Rust 社区和生态系统。...了解我们是如何通过招聘来共同设计未来的——一个通过设计实现数字化的未来。
包括但不限于将研发效率提升了 20 倍,为简化系统复杂度删除了超过 300 万行僵尸代码,对系统性能进行的优化以提高系统响应速度及处理效率,以及在黑色星期五期间系统出色的性能表现等。...(图:使用 GitHub Copilot,每个工作日接收 23000 行代码;Shopify 管理后台搜索结果快了 7 倍;在 2023 年大约 300 万行代码被删除) 清理与减法 我们喜欢通过减法来做加法...杂乱会拖慢事情的进展,给我们的商家增加不必要的复杂性。因此,我们对我们的系统进行了精简。 以下是 2023 年的一些简化复杂性的亮点: 删除了近 300 万行代码。...这是一个极佳的例子,表明我们是如何专注在那些让整个技术栈表现更好的服务业务上。...我们预估每个工作日接受超过 20000 行代码 总共接受了 67 万 5 千次建议 总共接受了 97 万 5 千行代码 这些效率提升帮助 Shopify 完成了每周超过 2 万 5 千次提交,以及每天
然而,现实情况是,他们还需要了解订单的创建方式,我们如何处理付款等等,因为一切都是如此交织在一起。这对于一个人来说只是为了发布他们的第一个特征而必须坚持下去的知识太多了。...微服务架构是一种应用程序开发方法,其中大型应用程序构建为一套独立部署的小型服务。虽然微服务可以解决我们遇到的问题,但它们会带来另一整套问题。...我们在内部开发了一个名为Wedge的工具,它跟踪每个组件朝着隔离目标的进展。它突出显示任何违反域边界的行为(当通过除公共定义的API之外的任何组件访问另一个组件时)以及跨边界的数据耦合。...Dan Manges的这篇博客文章 提供了一个应用团队如何实现边界实施的详细示例。虽然我们仍在研究我们想要采用的方法,但高级计划是让每个组件仅加载其明确依赖的其他组件。...在本文所述的努力之前,将旧系统更换为新系统几乎是不可能完成的任务。但是,由于我们已经投入了大量精力来隔离依赖关系,我们能够将我们的税务引擎换成一个全新的税收计算系统。
这是一个漏洞,我实际上发现了他,并且和上面描述的 Shopify 的问题有些不同,所以我打算详细分享关于我如何发现他的任何事情。...我也想知道,黑客如何访问了 Shopify 的 Bucket。我了解到它是通过 Amazon 命令行工具来访问的。 现在,通常我会使自己停下,因为 HackerOne 这个时候不可能还拥有漏洞。...在 Rapid7 的文章中有一行关键字,“通过一个不同的列表来猜测名称,列表包含 1000 强公司的名称,以 .com, -backup, -media 排列。” 这就很有意思了。...我搜索了 Google 来看看我是否可以找到任何 Bucket 的引用。我没有找到什么东西。我离开了电脑,来理清头绪。我意识到,最坏的事情就是我得到了另一个无效报告,以及贡献 -5。...另一方面,我知道这至少值 500,基于 Shopify 的漏洞也可能是 1000。 我按下了提交,并去睡觉了。
1月18日,京东集团宣布与全球顶尖的互联网基础设施提供商Shopify达成战略合作,成为Shopify首个中国战略合作伙伴。...本文将对此次京东与Shopify的战略合作进行深入分析,一方面从第三方的视角帮助商家和消费者更好地理解此次战略合作的深层次内涵和逻辑;另一方面也希望帮助商家能够通过京东与Shopify拓展更广泛的全球市场...另一方面,结合同样是“自营+开放”的京东物流体系,从而搭建出完整的供应链体系,形成强大的“供应链中台”,不仅能够原生连接京东商城体系,还能够对接其它电商平台、线下零售,以及电商SaaS工具和产品。...海外商家如何在京东获益? 随着京东与Shopify战略合作的明确,京东国际将成为此次战略合作的协作组织,给海外商家提供更为全面的扶持。...除此之外,Shopify还提供高度可扩展的开放平台,京东上有技术开发能力的商家可以根据自己的需求使用Shopify提供的API接口开发各种功能,以及建立Shopify App Store允许第三方开发人员构建应用程序提供定制化的服务
于是,你接下来做了这些事: 你为了完成任务疯狂地敲了三周代码; 你将一个包含大约 1000 行新代码的 Pull Request 提交评审; 你收到两条关于 code style 的评论,以及一个关于评审人表示他看不懂这些代码用途的问题...目前,我们无法设置一个适用于所有编程语言和所有类型工作的通用标准。对于内部的数据工程项目,我们原则上是要将 PR 控制在 200-300 行代码。如果超过这个阈值,我们一般会将它拆分成更小的块。...One PR Per Concern 除了行数外,需要考虑的另一个维度是你的工作单元试图解决的问题数量。...下表列出了一些存在不足的评审反馈,以及如何按以上建议进行重写的建议。 归根结底,code review 给我们提供了互教互学的机会,我们应该对此持开放欢迎的态度。...4个人可以如何改进团队的代码审查流程? 如果你是团队主管,不妨开始尝试这些技巧,找出适合你所带团队的方法。
这会不会更混乱,因为一切都在一个方法中 乍一看可能很容易,但是实际上只需要花一点点时间来编写可重用的模块化代码。 让我们来看看如何做到这一点。...这意味着仅一项功能的代码可能会分散分布在数百行中,并分布在几个不同的位置,从而使其难以阅读或调试。 这只是Vue Composition API RFC中的一个示例,展示了现在如何按功能组织代码。...Composition API 中的另一个新变化是 this 引用的变化,这一变化意味着我们不能再以相同的方式使用 prop、attributes 或 events。...假设我们将我们的 useSearchArticles 方法移至名为 use-search-articles-logic.js 的文件中,如下所示 import { ref, onMounted } from...articles, searchParameters, searchArticles } } } 最后 希望本文能帮助你更好地了解 Composition API 将如何改变我们的编码方式
因此,我决定将我的研究范围缩窄在一个美妆巨头——总部在纽约的雅诗兰黛,而专营美妆产品的丝芙兰则是最适合的数据来源。雅诗兰黛有29个子品牌,其中19个在丝芙兰上架。于是我决定就研究这19个品牌。...而同时为了弄清楚这么多种类的产品究竟哪一种对雅诗兰黛带来最大的收益,我也手动爬取了雅诗兰黛的2017年财报,因为我需要的仅仅是11行数据。...接下来我研究了一下产品的成本,看看雅诗兰黛的哪个品牌消费者最能负担得起。格莱魅、倩碧等产品价格的中位数较低,Kilian、LaMer等更高。Kilian 的价格中位数最高,达到235美元。...这让我也想知道另一个问题的答案:所有雅诗兰黛的品牌都已经作为奢侈品在运营,但是更倾向这些产品而非连锁店产品的消费者是否仍然是对价格敏感的呢? 为此我研究了顾客参与度和价格之间的关系。...下面是各个不同品类的发现: 护肤品、香水:对评分影响不大。 化妆品:更高价格的品牌似乎有更高的评分,品牌存在感似乎并没有直接影响评分 另一个有趣的发现是关于点赞数和评分。
Next.js 和 Remix 有另一个共同点是它们的企业支持。Next.js 由风险投资支持的公司 Vercel 赞助,而 Remix 在 2022 年 10 月被 Shopify 收购。...Remix 如何在 Shopify 的技术栈中使用 Jackson 在我们的访谈中提到过几次,多年来许多“大型企业公司”都在 React Router 之上开发——其中之一就是 Shopify。...但是当 Remix 在 2022 年 10 月被收购时,它很快成为了 Shopify 的新默认框架。Jackson 告诉我,Shopify.com 使用 Remix 重建。...Shopify 当前的项目之一是重建所有电子商务客户使用的控制面板。Jackson 说这是该公司最大的软件项目(“数百万行代码”)。...Remix 不仅是我们向商户推荐的,也是我们向与 Shopify 集成的开发者推荐的。” Remix 如何应对 React 的复杂性 去年前端开发的一个主题是 React 生态系统日益复杂。
这是作者常会收到的另一个问题。 这二者光是在功能集上就相差很多,而其中最重要的架构差异在于 Remix 并不依赖 SSG 来提速。可以说,在任何一个应用中,你早晚都会遇到某个 SSG 并不支持的场景。...架构的不同 Next.js 在客户端中获取数据所牺牲的不仅仅是用户体验。这个应用程序其实是有两套与 Shopify 连接的抽象,一套是 SSG 在用,另一套则是给浏览器用的。...不同架构背后的代价 架构分歧不可避免,那么其背后的成本要如何量化呢?...而这近万行的代码几乎都传到了浏览器中。...再看用 Shopify 接口的 Remix 版应用: 一个文件 608 行代码 0 行代码被送到浏览器 以上就是 Remix 和 Next.js 架构间区别所带来的成本。
另一方面,TypeScript在更大的项目中发挥作用,在清晰性和可维护性变得至关重要时,确保复杂的Web应用今天仍然可扩展且无错误。...进入Swift的世界,苹果公司的创作,专门为发挥其一系列设备的最佳性能而设计。 优点: Swift不仅仅是另一种编程语言;它是对性能、安全性和用户体验的承诺。...深入了解Liquid,你就为自己装备好了创造这些愉快的数字购物体验的工具,一行代码接一行代码。...在应用开发领域,Dart搭配Flutter的魔法,就渴望成为这样一种通用语言,无论平台如何,都能创造出令人叹为观止的数字体验。...为何学习: 在我们的数字时代,界线正在模糊。Web与移动、iOS与Android之间的界限正变得透明。作为创造者,我们寻求的工具不是将我们束缚在一起,而是允许我们在更广阔的画布上作画。
对于那些正在启动业务的shopify卖家来说,Spark主题是很好的选择,它跨越了你的愿景和市场之间的差距,将美感和必要性结合在一起,这样你就可以用最小的触角将事情进行下去。...Spark还提供了一个高性能的基础主题,供任何想与开发人员合作,轻松实现自己的定制网站的人使用。 Shopify Spark主题特色 幻灯片 显示高清晰度的图像,可调节高度和自定义幻灯片之间的时间。...特色系列行 展示一个特殊系列或畅销产品的单行旋转木马。 收藏品列表 让您的客户在一个可调整的行中看到您所有的系列,以便他们能够发现您所有的产品。...带图片的文本栏 添加带有简洁描述的图像或图标,以讲述一个故事,捕捉你做什么和如何做,或在一眼之间表达你的立场。 博客文章 展示你的顶级博客文章,供客户浏览。...://deweycrush.com/ Shopify Spark主题是个不错的模板,但是想驾驭它不是很容易,需要合理搭配版块,有时可能需要自己创建一些新的功能模块。
这个漏洞用于钓鱼攻击,便于让用户无意中浏览恶意站点,滥用给定站点的信任并将用户引导到另一个站点,恶意站点作为重定向目的地,可以将其准备成合法站点的样子,并尝试收集个人或敏感信息。...Shopify 主题安装开放重定向 难度:低 URL:app.shopify.com/services/google/themes/preview/supply–blue?...domain_name=XX 链接:https://hackerone.com/reports/1019622 报告日期:2015.11.25 奖金:$500 描述: Shopify 的平台允许商店管理员自定义商店外观...checkout_url=.np 因此,当用户访问链接并登录,它会被重定向到: https://mystore.myshopify.com.np/ 它实际上完全不是 Shopify 的域。 3....所以,自然而然,它继续挖掘这个漏洞,看看如何才能利用。
要知道,早在3年前,有赞创始人白鸦就喊出要深度对标shopify的口号,并称有赞未来将全面超越shopify。 但口号喊了这么多年,今天的有赞距离比肩Shopify还有多大差距呢?...那么,在大洋彼岸的Shopify的发展背景又是什么样呢?...直至有人提出了新零售,希望通过线下门店进行线上信息化建设,促成线上+线下的联动模式,让用户一方面可以通过小程序将线上流量导入线下门店,另一方面,通过线下门店小程序扫码,获取潜在消费者。...如此一来,中国特色的电商模式加上线下市场的升级,都将成为中国电商SaaS获取新一轮增长的绝妙良机。 不过话说回来,对于电商SaaS来说看到金矿并不能意味着它就属于你,如何牢牢握在手中才是最重要的。...因此,对于当下的有赞来说,如何走出一条符合国情的SaaS创新之路,才是需要深度思考的问题,毕竟只有牢牢把握住、且挖掘国内巨大蓝海市场,才是对标shopify的前提。
导读:本文作者通过以几个APP作为实例,说明了几种如何实现海外销售额提升的办法。 近年来,中国企业越来越多的走出国门加入了海外商战,期望海外网上商店有更多的流量和销售吗?这当然是人之常情!...这是商品升级销售的一个例子,或者说是当您在考虑一个商品时,商家在努力向您推销一种稍微贵一点的产品的案例。 猜猜结果如何?它是非常有效的!...下面是一个有效的说服用户返回购物车的电邮示例: Black Milk Clothing的同事们用一只可爱的小狗和一行加粗了的电邮标题来让顾客重回购物车。 ?...这个App使用起来非常的简单智能:不需要任何手动驱动。 4 启动Facebook商店 既然讲到了Instagram,我们现在来谈谈社交媒体营销的另一巨头——Facebook。...又或者,准备一封电邮让您的顾客知道他的订单正在处理中,很快就会出货。得知他能很快收货一定会使他开心。 另一个例子:定期发送电邮,让订阅者知悉新的折扣优惠,产品信息,和有趣的公司新闻。
领取专属 10元无门槛券
手把手带您无忧上云