技术周总结 08.05-08.11周日

文章目录

一、08.06 周二

1.1) 问题01 mac安装 scala:

要在 macOS 上安装 Scala,您可以使用几种不同的方法。以下是两种常见的安装方式:

1. 使用 Homebrew

Homebrew 是 macOS 的一个非常流行的包管理器,可以用来安装各种软件。如果您还没有安装 Homebrew,可以按照以下步骤操作:

  1. 安装 Homebrew

    • 打开 Terminal。

    • 输入以下命令来安装 Homebrew:

      bash 复制代码
      /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  2. 安装 Scala

    • 使用 Homebrew 安装 Scala:

      bash 复制代码
      brew install scala
  3. 验证安装

    • 检查 Scala 是否已成功安装:

      bash 复制代码
      scala -version

2. 使用 SDKMAN!

SDKMAN! 是一个用于管理多个版本的 Java/JVM 工具的命令行工具。您可以使用它来安装和管理 Scala 的不同版本。

  1. 安装 SDKMAN!

    • 打开 Terminal。

    • 输入以下命令来安装 SDKMAN!:

      bash 复制代码
      curl -s "https://get.sdkman.io" | bash
  2. 安装 Scala

    • 安装完成后,加载 SDKMAN!:

      bash 复制代码
      source "$HOME/.sdkman/bin/sdkman-init.sh"
    • 使用 SDKMAN! 安装 Scala:

      bash 复制代码
      sdk install scala
  3. 验证安装

    • 检查 Scala 是否已成功安装:

      bash 复制代码
      scala -version

其他注意事项

  • 环境变量 :确保您的 PATH 环境变量包含了 Scala 的 bin 目录。通常情况下,Homebrew 和 SDKMAN! 会自动为您处理好环境变量的设置。
  • Scala 版本 :如果您需要特定版本的 Scala,可以使用 SDKMAN! 的 sdk install scala <version> 命令来安装所需版本。
  • 更新 Scala :如果您需要更新 Scala 到最新版本,可以使用 sdk update scala(对于 SDKMAN! 用户)或者重新运行 brew install scala(对于 Homebrew 用户)。

完成以上步骤后,您就可以开始使用 Scala 编写程序了。如果您在安装过程中遇到任何问题,请随时告诉我,我会帮助您解决。

如果您已经安装了 Scala,但是在终端中输入 scala -version 时出现了 "command not found" 的错误,这通常意味着 Scala 的可执行文件没有添加到系统的 PATH 环境变量中。下面是解决此问题的步骤:

1. 确认 Scala 安装位置

首先确认 Scala 安装的确切位置。使用 Homebrew 安装的 Scala 通常位于 /usr/local/Cellar/scala 路径下。您可以通过以下命令查看 Scala 的安装位置:

bash 复制代码
brew info scala

这将显示 Scala 的安装信息,包括其安装的前缀。

2. 设置 PATH 环境变量

接下来,您需要将 Scala 的 bin 目录添加到 PATH 环境变量中。通常情况下,Homebrew 会在安装时自动为您处理这个步骤。如果这一步没有自动完成,您可以手动添加。

对于 zsh (macOS Catalina 及更高版本默认使用 zsh):
  1. 打开 Terminal。

  2. 使用文本编辑器打开 .zshrc 文件(如果您没有 .zshrc 文件,可以创建一个)。例如,使用 nano 编辑器:

    bash 复制代码
    nano ~/.zshrc
  3. 在文件末尾添加以下行:

    bash 复制代码
    export PATH="/usr/local/opt/scala/bin:$PATH"

    如果您使用的是其他编辑器,如 vimemacs,请相应地修改命令。

  4. 保存文件并退出编辑器。对于 nano,可以使用 Ctrl+X,然后按 Y 键保存更改,最后按 Enter 键退出。

  5. 让更改生效:

    bash 复制代码
    source ~/.zshrc
对于 bash (如果您使用的是 bash shell):
  1. 使用文本编辑器打开 .bash_profile 文件。如果文件不存在,可以创建一个:

    bash 复制代码
    nano ~/.bash_profile
  2. 在文件末尾添加以下行:

    bash 复制代码
    export PATH="/usr/local/opt/scala/bin:$PATH"
  3. 保存文件并退出编辑器。对于 nano,可以使用 Ctrl+X,然后按 Y 键保存更改,最后按 Enter 键退出。

  4. 让更改生效:

    bash 复制代码
    source ~/.bash_profile

3. 验证安装

现在再次尝试运行 scala -version,看看是否能够正确显示 Scala 的版本信息。

如果仍然出现问题,您可以检查 Scala 的安装路径是否正确,并确保您添加的是正确的 bin 目录到 PATH 环境变量中。如果 Scala 的安装位置不是默认位置,您需要根据实际位置调整上面的路径。

二、08.09 周五

2.1)问题01: idea中回滚代码并提交到远端

  • idea中 git记录 "回滚到此处"(先备份下 master分支)
  • 命令行界面,git push会被拒绝,直接 git push -f

但是很多公司可能会触发给大家发邮件等,毕竟这个操作比较危险

2.2)问题02:mac 找不到JNA库

确实是这个问题,mac新款使用的 arm系列芯片就需要使用 ARM芯片匹配的java8安装包,否则虽然java本身能使用,但是在 idea中使用 scala语言时会有你说的这个报错,java8-arm下载地址:https://www.oracle.com/java/technologies/downloads/#java8-mac

2.3) 问题03: 介绍数据流图在分层细化过程中遵循的数据平衡原则,应该怎么理解?

数据流图(Data Flow Diagram, DFD)是一种图形化的表示方法,用于描述系统的数据流动和处理过程。它主要用于需求分析阶段来建模系统的逻辑流程。在构建数据流图的过程中,遵循一个重要的原则叫做"数据平衡原则"。

数据平衡原则

数据平衡原则指的是,在一个数据流图中,父图(更高层次的图)与子图(更低层次的细化图)之间必须保持数据流的一致性。具体来说:

  1. 输入输出一致性

    • 在高层次的数据流图(父图)中的每个输入数据流必须在低层次的数据流图(子图)中找到对应的输入数据流。
    • 同样地,父图中的每个输出数据流也必须在子图中有对应的输出数据流。
  2. 数据流守恒

    • 进入一个处理框的数据流应该能够从该处理框以某种形式流出。也就是说,不能有无端消失或突然出现的数据流。
  3. 细化一致性

    • 当对某个处理框进行细化时,细化后的子图中的处理应该能够反映原处理框的功能,并且输入和输出数据流要保持一致。

为了更好地理解这个原则,我们可以举个例子:

假设我们有一个简单的系统,它接收用户输入并生成一份报告。在高层次的数据流图中,我们可以看到一个处理框(Process),它接收一个数据流"用户输入"并产生一个数据流"报告"。如果我们对这个处理框进行细化,那么细化后的子图中应该包含能够实现同样功能的处理步骤,同时确保所有进入的"用户输入"数据流都经过处理后变成了"报告"数据流。

总结

  • 在创建和细化数据流图时,始终需要保证输入数据流和输出数据流的平衡,这有助于确保模型的完整性和准确性。
  • 数据流图的分层细化是通过逐步分解处理过程来实现的,而数据平衡原则则是保证这一过程正确性的关键。

通过这种方式,可以确保整个系统的逻辑结构清晰、准确,便于后续的设计和开发工作。

2.4) 问题04: 那有人说上边的数据流图的数据平衡原则如下: 层间平衡:数据流个数一致,方向一致。图内平衡:有输入无输出的黑洞,有输出无输入的奇迹,输入不足的灰洞

这些术语是对数据流图(DFD)中数据平衡原则的一种形象化描述。下面我将解释这些术语的具体含义:

层间平衡

  • 数据流个数一致:这意味着在一个高层次的数据流图(父图)和它的低层次细化图(子图)之间,对于任何给定的处理框,其输入和输出数据流的个数应该是相同的。
  • 方向一致:在父图和子图中,数据流的方向也应该是相同的。如果数据流是从外部实体流向处理框,在父图中是这样,在子图中也应该如此。

图内平衡

  • 有输入无输出的黑洞:如果一个处理框只有输入数据流而没有相应的输出数据流,则称为"黑洞"。这违反了数据流图中的数据平衡原则,因为数据似乎消失了。
  • 有输出无输入的奇迹:如果一个处理框只有输出数据流而没有相应的输入数据流,则称为"奇迹"。这也违反了数据平衡原则,因为数据似乎凭空产生。
  • 输入不足的灰洞:如果一个处理框的输入数据流不足以支持其输出数据流,则称为"灰洞"。例如,如果一个处理框需要两个输入才能产生一个输出,但只接收到一个输入,那么这就构成了一个"灰洞"。

示例

假设有一个高层次的数据流图,其中包含一个处理框 P1,它接收来自实体 E1 的数据流 I1 并向实体 E2 发送数据流 O1。当我们对处理框 P1 进行细化时,我们应该确保:

  • 子图中存在一个处理框,它接收数据流 I1 并发送数据流 O1。
  • 如果在子图中进一步细化 P1,那么对于任何内部处理框,输入和输出数据流的数量和方向都应该符合上述定义。

总结

  • 层间平衡确保了高层次和低层次之间的数据流数量和方向的一致性。
  • 图内平衡则关注单个处理框内的数据流是否符合逻辑,避免出现"黑洞"、"奇迹"或"灰洞"的情况。

通过遵循这些原则,可以确保数据流图的逻辑完整性和一致性,从而帮助开发者更准确地理解和设计系统的行为。

相关推荐
程序员在线炒粉8元1份顺丰包邮送可乐10 分钟前
Docker 部署生产环境可用的 MySQL 主从架构
mysql·docker·架构
麦聪聊数据1 小时前
如何使用 QuickAPI 快速连接 MySQL 数据库并发布 RESTful API
数据库·sql·mysql·restful·数据服务
Run Freely9372 小时前
MySQL 数据库_01
数据库·mysql
小朋友,你是否有很多问号?3 小时前
mac本地安装mysql
数据库·mysql
斯普信专业组3 小时前
MySQL主从同步参数调优案例
mysql·主从
一成码农5 小时前
MySQL问题8
数据库·mysql
深圳行云创新5 小时前
BizDevOps 是什么?如何建设企业 BizDevOps 体系
软件工程·devops·bizdevops
荣光波比9 小时前
MySQL数据库(一)—— 数据库基础与MySQL安装管理指南
运维·数据库·mysql·云计算
boonya11 小时前
MySQL与PostgreSQL核心区别对比
数据库·mysql·postgresql
书院门前细致的苹果12 小时前
MySQL 中的 B+树和 B树的区别详解
数据结构·数据库·mysql