Author: admin

重写、重构还是重新发明?6 个软件重写故事的经验教训

重写、重构还是重新发明?

6 个软件重写故事的经验教训

对这个古老问题的新看法:您应该从头开始重写您的应用程序,还是“任何软件公司都可能犯的最严重的战略错误”?事实证明,处理成熟的代码库有两种以上的选择。

大约二十年前,Joel Spolsky 在他具有里程碑意义的文章“你永远不应该做的事情”中斥责 Netscape 重写了他们的代码库。

他的结论是,一个功能正常的应用程序永远、永远都不应该从头开始重写。他的论点围绕两点展开:

  • 应用程序代码库中看起来很粗糙的部分通常嵌入了关于极端情况和奇怪错误的来之不易的知识。
  • 重写是一项漫长的工作,它使您无法改进现有产品,而在此期间竞争对您有利。

对于许多人来说,乔尔的结论成为了一种信仰。我知道这对我当时的想法影响很大。

在接下来的几年里,我读到一些反对意见,认为在某些情况下,从头开始重写很有意义。例如:

  • 有时,遗留代码库确实一团糟,无法修复,以至于即使是简单的更改也需要对代码的其他部分进行级联更改。
  • 最初的技术选择可能会阻止您进行必要的改进。
  • 或者,原始技术可能已经过时,导致很难(或昂贵)招募到优秀的开发人员。

当然,正确的答案是,这在很大程度上取决于具体情况。是的,有时逐步重构遗留代码更有意义。是的,有时候把它全部扔掉并重新开始是有意义的。

但这些并不是唯一的选择。让我们快速浏览一下六个故事,看看我们可以吸取哪些教训。

(奖励:每个故事的 ASCII 艺术摘要!)

1.网景

网景...  4.0  5.0 ☠ 6.0  

C 语言学习注意点

作者整理了自己学习 C 语言过程的一些笔记,相当于列出了 C 语言一些的学习难点。

学习C对我来说是相当困难的。语言本身的基础还不错,但是“用 C 编程”需要很多其他种类的知识,这些知识并不那么容易掌握:

  • C 没有消除平台或操作系统差异的环境;你也需要了解你的平台
  • 有许多 C 编译器选项和构建工具,即使运行一个简单的程序也需要做出很多决定
  • 通常有与 CPU、操作系统、编译代码相关的重要概念
  • 它的使用方式多种多样,以至于与其他语言相比,集中的“社区”或风格要少得多

如何在 Amazon Linux 2 上安装 MySQL 8

MySQL 是一种非常流行的开源关系数据库管理系统,可以在 Linux、Windows 和 Mac OS 上运行。它通常用作 Web 应用程序的后端数据库,但也可用于存储其他软件的数据。您可以使用 MySQL 来存储和组织数据,在需要时检索数据,并将其转换为不同的格式(例如,将其从文本转换为数字)。它通常被各种规模的公司用作其网站和应用程序的数据库.

本文将介绍在 Amazon Linux 2 上安装 MySQL 8 的过程。完成后,您将拥有一个功能齐全的 MySQL 数据库,您可以将其用于 AWS 控制台或您自己的应用程序。除了 MySQL,您还可以使用 Amazon RDS 配置其他数据库。

如何在 Amazon Linux 上安装 MySQL 8

MySQL官方团队提供了安装Amazon Linux系统的RPM包。按照下面的步骤一步步完成MySQL的安装。

1.配置 Yum 存储库

大多数包都需要其他第三方存储库中可用的依赖项。使用以下命令配置包安装所需的 EPEL …

        

如何使用 OpenSSL Centos 7 在 Nginx 中启用 TLS 1.3

在这里,我们将在我们的生产 CentOS 7 服务器上启用 TLS 1.3。

OpenSSL 是用于传输层安全性 (TLS) 和安全套接字层 (SSL) 协议的强大、商业级且功能齐全的工具包。OpenSSL 是一个软件库,用于保护计算机网络上的通信免受窃听或需要识别另一端方身份的应用程序。它是根据 Apache 样式许可获得许可的,这意味着您可以根据一些简单的许可条件免费获取和使用它用于商业和非商业目的。有关漏洞列表以及发现和修复漏洞的版本,请参阅 OpenSSL漏洞页面。

            

2023 年 WebAssembly 运行时的性能

自 2013 年以来,由于出色的 Emscripten 项目,在网络浏览器中使用 libsodium 成为可能。

从那时起,引入了 WebAssembly。在 Web 浏览器中运行最初不是用 JavaScript 编写的代码的更有效方法。

libsodium 在 2017 年增加了对 WebAssembly 的一流支持。在支持它的网络浏览器上,以及在允许它的允许上下文中,这带来了不错的速度提升。与 JavaScript 一样,相同的代码可以在多个平台上无缝运行。

Iptables 阻止 ip 段 – 如何轻松做到这一点?

你有没有想过如何使用 iptables 来阻止 IP 范围?

IP 封锁是一种改进的安全措施。我们可以使用 iptables 来阻止某个 IP 地址或恶意 IP 地址范围。

在 Bobcares,作为服务器管理服务的一部分,我们经常收到阻止 IP 地址的请求。

今天让我们看看如何使用 iptables 轻松阻止 IP 地址。

 

 

为什么要在范围内阻止 Iptables?

有时,我们的服务器会从一个 IP 地址或 IP 地址范围发生不需要的连接。

在这种情况下,我们通常会阻止这些 IP 地址以确保更好的安全性。在 Linux 服务器中,我们可以使用 iptables 来达到这个目的。

 …

Ubuntu18.04 boost动态库找不到 libboost_system.so.1.53.0

Ubuntu18.04 boost动态库找不到 libboost_system.so.1.53.0

问题

./hsr_arm_driver
error while loading shared libraries: libboost_system.so.1.53.0: cannot open shared object file: No such file or directory

在这里插入图片描述

lanni@lanni:~/catkin_ws/devel/lib/hsr_arm_driver$ ldd hsr_arm_driver 
    ……
    libboost_system.so.1.53.0 => not found
    libboost_thread.so.1.53.0 => not found
    ……

在这里插入图片描述

解决

1.首先确定电脑是否安装boost的链接库

locate libboost_system.so.1.5

在这里插入图片描述
因为需求,已经安装了1.53和1.58的libboost_system库,但是仍然报错。

2.向ld.so.conf文件中添加libboost_system.so.1.53.0所在的目录路径