最佳实践与经验分享

     

Java 17实现函数式错误处理 - softwaremill

1509 1 13K

在每个程序中,都会有出现问题并发生错误的情况。正因为如此,每种语言都有某种机制来帮助开发人员处理这种情况。在 Java 中,几乎所有代码和库都通过抛出异常来处理遇到的错误。抛出异常是一个非常强大的解决.

Java 最佳实践

974 2K

将多年的 Java 经验提炼成一组最佳实践,帮助开发人员构建高质量的 Java 应用程序和库,点击标题Java 已经存在了很长一段时间,并且继续得到全球开发人员和企业的大力支持。它在关键任务项目中可靠.

LinkedIn的Java 11迁移之旅

1527 1 4K

LinkedIn在2018年底开始研究Java 11,当时,Java 9、10和11在社区中还不是超级流行。作为一个轶事,在2019年底的Oracle Code One会议上,一些会议询问与会者他们的.

停止直接要求员工变得有弹性 - MITSloan

803 3K

最好和最成功的工作场所是那些确保人们在困难时期感到支持的工作场所。建立能够应对不确定性和变化的团队需要创建支持和对话系统。Liz Fosslien 是 Humu 的内容和传播主管,该公司致力于推动人们.

Java Spring中三个密码加密库包 - foojay

1127 8K

每当您需要在应用程序中实现密码哈希或散列时,您应该牢记一些最佳实践。永远不要自己实现密码哈希算法——改用经过严格审查的开发人员库!密码学是一个复杂的领域,如果你尝试自己实现一个流行的算法,就会出现很多.

任何前端应用都不可能被安全保护? - kuzzle

1222 1 3K

尝试使用低效技术保护前端应用程序可能很危险。我从不同的来源(Callstack、Jscrambler、Tabris、Nativescript、Reactnativecode)看到了许多文章,详细介绍了.

Twitter构建高度可靠的广告投放系统的经验教训

535

在设计、实施和运营起广告投放系统的两年中,我们学到了一些值得分享的东西:首先,不可能为所有故障设计服务并为耗尽而设计。在容错的复杂性和各种故障的可能性之间找到平衡是很重要的。例如,为了达到所需的 SL.

解决编程难题的实用方法指南 - praeclarum

880 1

我有时发现自己需要编写一些代码,但我不知道如何写。你有过这样的经历吗?以下是我在遇到困难时采取的步骤。这里没有巨大的启示,只是硬性规定的建议。在输入任何代码之前,认真思考这个问题几个星期。输入一个函数.

优步的紧急按钮及其背后的技术

675 2K

uber的紧急按钮的第一个版本于 2015 年在印度推出。原始系统允许乘客和司机在留在应用程序内的同时联系当地警察当局,并自动提醒区域支持团队主动联系用户。2018 年,该团队利用增强功能改进系统,例.

你见过一个有着11,000行的源代码文件吗? - Austin

625 2K

很久以前,在我的第一份软件工作中,我收到了一份关于一个内部产品的错误报告,我甚至不知道这个产品的存在。结果发现这是一个应用程序,基本上提供了公司内任何员工可能需要的所有表格。基本上是一个万能的资源。你.

DDD设计何时适可而止?

1872 6
无论是敏捷和瀑布,软件开发都有一个设计过程,实际也是了解知识准备过程,属于坐而论道,那么什么时候动手开干?1. 首先,动手开干的标志是什么?见这篇文章:按技术职责还是按领域职责来构建代码?文章里谈了代.

何时停止设计并启动实施编程? - Alter

803 2

我们希望有一个策略,能让我们决定何时停止设计,开始实施编程,同时优化成本函数。 启发式#1:有足够的 "已知的知识"。你是否有最小的知识来带来价值?你的项目可能是庞大的;因此,有许多需求,可能有些需求.

C++ 核心指南 - isocpp

1714 3K

这是由 Bjarne Stroustrup 和 Herb Sutter 撰写,包括一组关于 C++ 编码的久经考验的指南、规则和最佳实践。本文件是一套良好使用C++的指南。本文档的目的是帮助人们有效地.

Node之道:设计、架构和最佳实践 | Alex Kondov

856 9K

JavaScript的主要好处之一是它可以在浏览器和服务器上运行。作为一名工程师,你需要掌握一门语言,你的技能将有多种应用。这就是2015年吸引我加入Node的原因--我不必在语言和技术栈之间切换。N.

大多数数据分析只是启发式的吗? - Reddit

694

业务分析方面并不涉及到太多的数学/统计数据,与数学或统计数据(涉及证明、多步计算、复杂计算)相比,大多数分析都是与业务模型或结果更接近的临时启发式方法。是否可得出:大多数分析只是启发式的经验?大多数组.

编码时请将“单位”写入名词以突出明确 - Ruud

729 3K

有一个代码可读性陷阱,一旦你意识到它就很容易避免,但这个陷阱无处不在:人们喜欢省略“单位unit”。看看 Python、Java 和 Haskell 中的以下三个片段:time.sleep(300)T.

幽默:使用CSS中!important的原因只有一个

800

CSS的语法!important很容易被误用。来自CSS 联合设计师Steven Pemberton认为:添加 !important 仅出于一个原因:法律要求某些文本采用指定的字体大小。!import.

15个与语言无关的REST API设计技巧 - bluethl

1073 5K

在这篇文章中,我正在尽我最大的努力压缩我所知道的关于什么是好的 API 的一切。您的消费者会喜欢使用的 API。所有提示都与语言无关,因此它们适用于任何框架或技术。 1. 保持一致 对字段、资源和参数.

副作用是编程头号敌人!如何剥离它?- spin

1231 1

随着时间的推移,我注意到一种设计启发式方法,它极大地帮助了我完成无数项目。这种启发式的地方在于它在概念上易于理解和应用,但它自然会引导您更接近函数式编程。事实上,这与 Haskell 处理 IO 的方.

一步一步演进RESTful API版本 - frankel

912 3K

设计一个直观、用户友好的 RESTful API 是一项艰巨的工作。如果这是您的第一次尝试,这可能已经是一项艰巨的任务。规划 API 的生命周期管理可能是事后才想到的。但无论如何都是有可能的:在这篇文.

Apache Airflow十条最佳实践

2458 1 3K

Apache Airflow项目有点像“超级 cron”,因此运行作业的方式与框架本身高度耦合。今天,您必须克服的最大挑战仍然是调度和作业之间的耦合。您可以仅根据要运行的 dag 和任务的数量来扩展您.

Hive性能调优实践 - Vidhya

1318 5K

Apache Hive 是一个建立在 Hadoop 之上的数据仓库系统,它使用户能够灵活地以类似 SQL 的查询的形式编写复杂的 MapReduce 程序。性能调优是运行 Hive 查询的重要部分,因.

2022 年有意义的Java面试题 – Galovics

1569 2 3K

关于 2022 年或前几年的 Java 面试问题有很多内容。在本文中,我将向您展示我在 2022 年的几个 Java 面试问题以及我的观点。 从Cassandra迁移到PostgreSQL问题是这样的.

Salesforce构建可观察微服务的五种设计模式

860 3K

软件开发中的设计模式是解决常见问题的可重复解决方案和最佳实践。即使在服务监控的情况下,如果使用得当,设计模式也可以帮助团队接受服务所有权并解决生产中的服务故障。您可以将服务监控设计模式分为三类:健康检.

干净的代码: 编写可读的函数

785 2K

以下是 Clean Code 关于编写可读函数的建议的摘要。这个建议是针对用 OOP 语言编写的函数,尽管许多概念会延续到其他编程范式。 原则 1 - 小! 你的大部分功能应该少于15行,而且几乎不应.

从DoorDash安卓应用中学到的8个技巧

1486 2K
在移动应用程序中有效实施支付需要精确关注支付方式、用户体验和欺诈预防等因素。移动支付对企业至关重要,这意味着工程师应该采取深思熟虑的方法,预测所有可能发生的情况。在 DoorDash,我们发现了有助于.

五个容易错过的 PostgreSQL 查询性能瓶颈

1962 9K

PostgreSQL 查询计划器充满了惊喜,因此编写高性能查询的常识性方法有时会产生误导。在这篇博文中,我将描述借助 EXPLAIN ANALYZE 和 Postgres 元数据分析优化看似显而易见的.

业界使用的两种主要机器学习技术 -svpino

975

当今业界使用的两种主要机器学习技术: 1. 梯度提升树 2. 深度学习 将时间集中在学习 Scikit-Learn、XGBoost 和 Keras 或 PyTorch 等深度学习库,您将充分利用您的时.

这些情况会阻碍你学习Rust语言 - dystroy

1355 1 4K

我见过优秀的程序员努力学习 Rust,甚至放弃。我自己也遇到了一些困难。以下是我所看到的可能导致您无法学习 Rust 的错误。我希望这份清单能帮助你避免它们。 错误一:没有准备好迈出第一步学习 Rus.

分而治之 (D&C) 和动态编程 (DP) 是伟大的算法 - Franc0

1442 1

Divide and Conquer (D&C:分而治之) 和Dynamic Programming (DP:动态编程)是伟大的算法技术,两者都将给定的问题分解为子问题并解决子问题(banq注:还原论.