为什么 Mac 适合编程?

2023-11-10

  1. 强劲的 GPU 和 CPU。我的家用电脑和笔记本都配了顶级的显示器和 GPU。Steam 上有 2000 +游戏,我和孩子玩了很多,并且我对 CUDA 和 深度学习很感兴趣。而 Mac 对此就无能为力了。对我来说,强大的 GPU 是非常重要的,所以我配了一台搭载 GTX980Ti 显卡、32 GB 内存、3440×1440分辨率的曲面屏、i7 WildDogPro 处理器的电脑。而价格跟 MBP Retina 的价格相差无几。

  2. 与服务器真正的兼容。我曾工作过的一家公司,半数脚本是用 Linux 脚本和 GNU 工具写的,另一半是 Bash 和 BSD 工具写的,因为这部分开发者坚持用 Mac 开发,并认为 Mac 和 Linux 相差无几。我只想说,这真的太乱了。后来,我花了几周时间重写了代码(为了兼容)。这些人一边说:“Mac OS X 是不同的”,但另一边又说:“Mac OS X 跟 Linux 相差无几”。但事实并不是,Mac OS X 与 Linux 差很多。

  3. Linux 使我更高效。几乎不需要切换环境,我可以使用相同的工具,专注编写脚本,与服务器无缝衔接。至今,我还没发现哪个 Mac 用户能展现出令我印象深刻的 脚本编写能力。我曾经管理过一个需要超过 100 台以上 Linux 服务器集群的软件,除了 Linux ,其它系统根本胜任不了这个任务。

  4. Linux 上一切允许正常(Everything just works)。相对那些用 Mac 的同事,我在 Linux 上碰到的问题更少。不需要安装 homebrew、fink、MacPorts,只要运行 suao apt-get update 和 sudo apt-get upgrade 这两个命令就可以了。团队里有少数人还在坚持使用 Mac,他们认为这是一种荣耀。编写脚本和程序设置电脑, Mac 大概要 2-3 天,而 Linux 只要一个小时,而且几乎是全自动化的。

  5. Linux 能做 Mac 不能做的事。有一天,我们需要超高清分辨率的屏幕截图,在 Linux 上只要输入: $ xrandr --output DP-2.8 -s 3440x2880 --panning 3440x2880 ,之后用 Chrome 把图片放大一倍,并用 Ksnapshot 获得所需图片,前后只需要几分钟。谁能在 Mac 或者 Windows 上实现?

  6. “Linux 上不能运行商业软件”这个争论是毫无意义的,尤其是在硅谷,这里早就不使用微软的 Office 软件了。我使用 Balsamiq 3、Slack、DropBox、Chrome、Hangout、Google 办公套件、GoToMeeting、WebStorm、Skype、Gimp、Insync等软件…对了,在休息时间我会在 Steam 上玩会游戏。所有程序都运行良好,几乎没有应用程序或者系统崩溃。Webstorm(JetBrains IDE)在 Linux 上更友好,同样,NodeJS、MongoDB、MySQL和其它一系列开发工具在 Linux 都比 Mac 友好。

那就来选一台Mac电脑吧,戳这里

Mac开发环境配置

环境变量
环境变量(environment variables)是所有操作系统中的一个通用概念,简单来说就是系统启动之后,会预设一些全局的变量信息供所有应用程序来使用。打个比方,如果我声明「接下来文章里说的 env 是表示 environment variables 的意思」,其实就是在这篇文章的环境下,定义了一个环境变量 $env = “environment variables” 。

在一个操作系统中,可以把一个目录名、命令行语句、数值或字符串定义成一个环境变量。以下截图展示了 Windows 操作系统中预设的一些环境变量:

其中有一个比较特殊的环境变量叫做 系统 path 变量,它的用途是定义一组全局目录路径。当在命令行终端下运行一个命令行时,若当前路径中不存在该命令,则会在系统 path 变量所定义的目录中按先后顺序一一查找,查找到则执行,如果遍历完 path 中所有目录都未查找到,则返回无法找到该命令。


Shell 终端
Shell 可以用来执行命令行,在 Mac 下打开 Terminal(终端)程序,会自动开启一个 Shell 命令行界面,而 Shell 每次在被打开(或执行)的时候会自动加载默认配置文件。Mac 和 Linux 默认的 shell 都是 bash,其中 Mac 的 bash 默认配置文件是 .bash_profile ,Linux 的是 .bashrc 。Mac 下通过修改 .bash_profile 文件可以进行一些环境变量的配置。

接下来实际操作演示如何使用 Terminal 在 .bash_profile 中配置 ll 快捷命令,其中我会顺带使用一些常用命令,它们含义如下:

cd 跳转至目录
ls 列出当前目录下的文件及文件夹
ls -l ls 命令加 -l 参数表示列出更多详细信息
mv 移动 / 重命名文件
touch 新建文件
rm -r 删除文件,-r 参数表示递归删除目录
pwd 显示当前目录
~ 波浪号表示当前用户根目录,一般用户的配置文件都放在这里
echo 打印字符串或变量

将结果输出至某文件中
cat 输出文件全文内容
source 执行某一个文件,通常 .bash_profile 修改之后需要执行下 source 命令(或者新开一个 shell)来保证配置生效


此外,管道命令 | 也是 Shell 中十分常用的命令,它用于将前一个命令的输出结果作为后一个命令的输入参数。

例如使用以下命令查看 7070 端口是否有进程占用:

netstat -an | grep 7070

Mac 下默认的 Terminal + bash 不够强大,推荐换成 iTerm2 + zsh ,以下是具体的配置方法:
1、安装 iTerm2
安装后打开 iTerm2,按下 ⌘, 进行以下配置用来提升逼格:

设置窗口透明度。如下图,Preferences -> Profiles -> Window -> Window Appearance 设置 Transparency

设置打开窗口快捷键。Preferences -> Keys -> Hotkey 推荐把快捷键设置成 control+反引号(数字1左边那个键)

iTerm2 支持窗口切分,使用 ⌘d 可横向切分成两个 shell。

2、安装 zsh
安装完成后还需要进行一定的配置,让 zsh 复用 bash 的环境变量配置,具体步骤如下:

在线自动安装 zsh 。在 iTerm2 中执行以下命令 sh -c “$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)”
使用 vim 编辑器打开用户 zsh 配置文件,vim ~/.zshrc ,vim 与普通编辑器有很大差异,使用方法可自行百度学习
文件打开后,先按字母键大写 G(跳至文件末尾),再按下字母键小写 o(新插入一行,同时进入编辑模式),输入以下字符 source ~/.bash_profile ,然后按下 Esc 键退出编辑模式,再依次按下 :wq 保存关闭文件

3、安装 brew
Mac 安装其他命令行,需要一个类似 Linux apt-get 这样的包管理工具,运行以下命令即可自动完成安装 brew 命令:

ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”

安装完成后,如想安装 wget 命令行(一款常用的爬虫下载工具),只需在 shell 中运行 brew install wget。大多数命令行都可以通过 brew 进行安装和管理。

SSH 远程连接
ssh 是 Mac/Linux 下一个远程连接主机的命令行工具,两台机器建立一个 ssh 连接之后可以进行一系列的加密指令和数据传输。ssh 十分重要,每个爱编程自由的人都应该掌握。

在开始学习 ssh 之前,我们需要有一台 Linux 的主机(或者另外一台 Mac 电脑)用来作为远程被访问的机器。由于国内的 阿里云、腾讯云 价格略高,建议可以买一个国外的 VPS(虚拟独立服务器),Linode / Vultr 加州机房在国内的访问速度不错,Vultr 最便宜的主机 30RMB/月,不过网速最快的还属 Google Compute Engine 。使用 Google 的云服务需要解决这样一个悖论:一方面你需要能打开 Google 的网站才能购买他的 VPS 服务,另外一方面你需要有了他的 VPS 主机才能通过 SSH 打开他的网站。(这是老大哥留给我们这代人的难题)。

假设你已经有了另外一台 Linux 主机,IP地址 为 1.2.3.4,用户名为 root ,使用以下命令可发起建立 ssh 连接:

ssh root@1.2.3.4

此时会要求输入 root 用户的密码,输入完成后即可登录至远程机器。如果不想每次都输入密码,则可以使用 ssh 密钥文件鉴权。在使用 git/scp/rsync 等命令时,配置 ssh 密钥文件能省去每次输入密码的麻烦,其配置方法只需三步:

安装 ssh-copy-id 命令行工具 brew install ssh-copy-id
生成本机密钥/公钥文件 ssh-keygen -t rsa
将本机公钥上传到远程服务器上 ssh-copy-id root@1.2.3.4

注:ssh 端口映射
ssh 协议默认使用 22 端口连接,通过 -D 参数可指定将该 ssh 连接通道映射到本机的某个端口,并且该加密通道支持 SOCKS 代理协议,这意味着本地应用程序通过此端口传输数据时,实际上是使用远程服务器的网络请求的数据。以下命令行演示了静默映射 ssh 连接至本地 7070 端口:

ssh -g -N -D 7070 -f root@1.2.3.4

接下来我们验证下是否映射成功。打开 System Preferences -> Network ,点击当前使用中的网卡 -> Advanced…(高级) 配置面板,进行以下设置:

设置完成后在百度搜索IP看看本地网络是否变成了远程机器的IP。使用 Vultr VPS 的同学可以尝试打开下 Google.com 透透气,学会使用 Google/Stackoverflow/Github 找到技术问题的解决方案,是高级程序员的基础素质。

HOMEBREW
Homebrew 是强大的终端工具,用来管理很多在终端下操作的程序以及软件包的依赖,对于经常需要使用终端应用的程序员来说,是必不可少的第一步!

打开终端,安装命令:
/usr/bin/ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”

上面命令,我希望大家不只是复制粘贴运行就完事,更希望大家能了解更多:

/usr/bin/ruby -e:使用ruby环境运行
curl -fsSL:使用curl命令下载
了解了这2点,那么ruby环境、curl命令和参数的作用,相信大家就可以自行搜索深入学习,而不是片面过一次复制粘贴运行,达到学以致用,这才是真学习!

brew 一些常用命令:
brew search
brew info
brew install
brew remove
brew update
brew upgrade

命令行工具
如果不是开发 iOS 或 macOS 可能就没有必要安装Xcode,但是可能需要安装一下Xcode 命令行工具,因为很多环境和软件都会使用到和依赖它(下面说到的Carthage、python3就依赖它)。

xcode-select --install

xcode-select 这个命令还可以切换 xcode build 的版本(目录),可以 xcode-select --help 查看更多。

这里提醒一下新手,终端的命令,如果记得命令名字,不记得用法,可以使用:
xxx --help

也可以用:
man xxx

–help 和 man 命令的区别,是man命令是详细全面的介绍

NODE/NPM
Node(Node.js) 是一个基于Chrome V8 引擎、能够在服务器端运行JavaScript的开放源代码、跨平台JavaScript 运行环境。Node.js 使用了一个事件驱动、非阻塞式I/O 的模型,使其轻量又高效。

brew install node

安装 Node 后,也会自动安装npm工具。npm 即 node package manager,用来搜索、下载、管理 Node.js 相关的套件。

npm 一些常用命令:
npm help //查看npm帮助
npm find //查找组件
npm install //安装组件
npm remove //删除组件
npm update //更新组件

Node 除了用于前端/后台开发外,react native、Hexo博客也是依赖 Node 环境,更多的 Node 知识,我也还在努力学习中,后续有新认识,再回来更新啊!就不误人子弟啦~

VI(VIM)
vi 是 visual interface 的缩写,vim 是 vi IMproved(增强版的vi)。vi(vim) 命令繁多,但是如果灵活使用之后将会大大提高效率!从此不用鼠标不是梦!

vi(vim)是 Unix/Linux 终端自带的,所以 macOS 也自带。那么 vi(vim) 要配置什么呢?

就是大家觉得 vi(vim) 好用,但是,还认为可以更好用,所以,有很多的插件(用更少的按键,实现更多更合理的功能),例如实现文件浏览(NERD Tree),代码补全(YouCompleteMe),语法检查(syntastic),文件模糊搜索(ctrlp),显示vim状态栏(Vim Powerline),主题颜色(Molokai),显示文件结构(tagbar)等多种功能

vi(vim) 操作的快捷键教程可以参考楼主之前的文章:vi(vim)快捷键小记

vim 设置编辑文本语法高亮:

vim ~/.vimrc

syntax on

GIT
git的作用就不多说了,如果是刚毕业的新手入门,建议自行学习,对你的开发帮助一定非常大~

git 安装:
brew install git

git基本配置:
git config --global user.name “iHTCboy”
git config --global user.email "ihetiancong@gmail.com"
git config --global color.ui true
git config --global alias.co checkout # 别名
git config --global alias.ci commit
git config --global alias.st status
git config --global alias.br branch
git config --global core.editor “vim” # 设置Editor使用vim
git config --global core.quotepath false # 设置显示中文文件名

用户的git配置文件目录: ~/.gitconfig

tig 高亮美化, 让 git 命令行可视化
git 更多命令教程,大家自行搜索,如果要达到熟悉,还是要多实践练习啊~ 当然,原理也是必不可少的一步!

PYTHON3
python3 是未来,所以还是要安装使用和开发的!
brew install python3

查看 python3的版本:
python3 --version

python 能做的事件就不多说了,人工智能,机器学习,大数据分析,爬虫,web,可以说python已经渗透到各个地方~

COCOAPODS
CocoaPods 是iOS的包管理工具之一,类似于 java 的Maven、Node.js 的 npm、Python 的 pip、PHP 的 Composer、Ruby 的 gem。

CocoaPods 基于Ruby开发的,因此安装CocoaPods前需要先安装Ruby环境。而前面提到macOS系统默认自带Ruby环境! 所以,直接用 Ruby 的 gem 环境安装吧~

1.安装命令:
sudo gem install cocoapods

2.配置CocoaPods环境,安装Specs库,由于库很大(几百MB),需要一些时间和网速:
pod setup

pod 一些常用命令:
pod --version //pod版本
pod init //创建Podfile文件
pod install //项目pod安装
pod update //项目pod更新
pod search //搜索库

CARTHAGE
我们使用包管理,就是为了集成第三方库的时候更加方便,迅速。有时候iOS包管理工具 CocoaPods 处理因包管理而导致的错误又浪费了我们很多时间。而 Carthage 使用的是一种非侵入性的哲学,Carthage 不会对我们的项目结构进行任何修改,更不多创建 workspace。它只是根据我们描述文件中配置的第三方库,将它们下载到本地,然后使用 xcodebuild 构建成 framework 文件。

另外 Carthage 除了非侵入性,它还是去中心化的,它的包管理不像 CocoaPods 那样,有一个中心服务器(cocoapods.org),来管理各个包的元信息,而是依赖于每个第三方库自己的源地址,比如 Github。

安装:
brew install carthage

carthage 一些常用命令:
carthage version //查看版本
brew upgrade carthage //升级carthage
carthage update //安装或更新项目的库

FINDER 访达
很多人可能跟我一样,不喜欢用第三方的文件管理应用,一般苹果自带能用的,我都不会使用第三方,一方便迁移成本高,另一方面系统自带的稳定性和内存占用都是做的较好。

对我来说,经常的痛点是,没有绝对路径显示!!!在 macOS 系统,可以通过 option + command + P 在Finder底部显示完整的当前路径和跳转。其它,还有一个骚操作,就是显示在标题栏:

在 Finder 标题栏显示完整路径
defaults write com.apple.finder _FXShowPosixPathInTitle -bool YES;killall Finder

还原
defaults delete com.apple.finder _FXShowPosixPathInTitle;killall Finder

精选Mac App

Xcode
Xcode是Mac,iPhone,iPad,Apple TV和Apple Watch等应用的开发集成工具。

Android Studio
Android Studio是一个为Android平台开发程序的集成开发环境。

PyCharm
PyCharm是一个用于计算机编程的集成开发环境,主要用于Python的语言开发,由捷克公司JetBrains公司开发,提供代码分析,图形化调试器,集成测试器,集成版本控制系统,并支持使用Django的进行网页开发.CyCharm一个跨平台开发环境,拥有Windows,macOS和Linux版本。

WebStorm
WebStorm是jetbrains公司旗下一款JavaScript开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”,“最强大的HTML5编辑器”,“最智能的JavaScript IDE”等

AppCode
jetbrains公司旗下的 Objective-C/Swift 集成开发环境,用于帮助开发 Mac、iPhone 和 iPad 的应用程序。

IntelliJ IDEA
java编程语言开发的集成环境。IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE支持、各类版本工具(git、svn等)、JUnit、CVS整合、代码分析、 创新的GUI设计等方面的功能可以说是超常的。

PhpStorm
PhpStorm 是 JetBrains 公司开发的一款商业的 PHP 集成开发工具,旨在提高用户效率,可深刻理解用户的编码,提供智能代码补全,快速导航以及即时错误检查。

CLion
CLion是一款专为开发C及C++所设计的跨平台IDE。它是以IntelliJ为基础设计的,包含了许多智能功能来提高开发人员的生产力,提高开发人员的工作效率。

GoLand
GoLand是一款专为开发Go语言所设计的跨平台IDE。

CodeRunner
CodeRunner 是 Mac 上一款功能强大但使用简单代码工具,官方介绍支持几乎所有语言(20种语言),同时支持语法高亮、代码提示和多种界面主题,在学习新的语言或编写简单测试代码时非常实用。

wechatwebdevtools
为了帮助开发者简单和高效地开发和调试微信小程序,微信在原有的公众号网页调试工具的基础上,推出了全新的 微信开发者工具,集成了公众号网页调试和小程序调试两种开发模式。

CocosCreator
Cocos Creator是以内容创作为核心的游戏开发工具,在Cocos2d-x基础上实现了彻底脚本化、组件化和数据驱动等特点。 Cocos Creator基于开源框架Cocos2d-x,实现了一体化、可扩展、可自定义工作流的编辑器,并在Cocos系列产品中第一次引入了组件化编程思想和数据驱动的架构设计,这极大地简化了Cocos2d-x开发工作流中的场景编辑、UI设计、资源管理、游戏调试和预览、多平台发布等工作,是使用Cocos2d-x进行团队协作开发的最佳选择。

Unity
Unity 是一套跨平台的游戏引擎,可用于开发Windows、MacOS、Linux 平台的单机游戏,或是iOS、Android 移动设备的游戏。Unity 也可开发支持WebGL 技术的网页游戏,或 PlayStation、XBox、Wii 主机上的游戏。

Unreal Engine 4
虚幻引擎是一款由Epic Games开发的游戏引擎,多用于开发第一人称射击游戏。

Visual Studio Code
Visual Studio Code是一个由微软开发的,同时支持Windows、Linux和macOS操作系统且开放源代码的文本编辑器。它支持调试,并内置了Git 版本控制功能,同时也具有开发环境功能,例如代码补全、代码片段、代码重构等。

Atom
Atom是由GitHub开发的自由及开放源代码的文字与代码编辑器,支持macOS、Windows和Linux操作系统,支持Node.js所写的插件,并内置由Github提供的Git版本控制系统。多数的延伸包皆为开放源代码授权,并由社区建置与维护。

Sublime Text
Sublime Text是一套跨平台的文本编辑器,支持基于Python的插件。Sublime Text是专有软件,可通过包扩展。大多数的包使用自由软件授权发布,并由社区建置维护。

iTerm
iTerm 是一款完全免费的,专为 masOS 用户打造的命令行应用。有很多能够提升效率的实用功能,比如说窗口分割、热键窗口、智能搜索、自动完成、快速复制等

Navicat Premium
Navicat Premium 是一套数据库开发工具,让你从单一应用程序中同时连接 MySQL、MariaDB、SQL Server、Oracle、PostgreSQL 和 SQLite 数据库。它与 Amazon RDS、Amazon Aurora、Amazon Redshift、Microsoft Azure、Oracle Cloud、阿里云和腾讯云等云数据库兼容。你可以快速轻松地创建、管理和维护数据库。

SourceTree
SourceTree 是Windows 和Mac OS X 下免费的Git 和Hg 客户端,拥有可视化界面,容易上手操作。

GitHub Desktop
程序员都知道的工具

Easy APNs Provider
一个推送服务提供商(Apns Provider)方能发送推送来测试iOS程序。

Parallels Desktop
Parallels Desktop是一款运行在Mac 电脑上的极为优秀的虚拟机软件。 用户可以在Mac OS X 下非常方便运行Windows、Linux 等操作系统及应用。 用户不必繁琐重复地重启电脑即可在Win 与Mac 之间切换甚至同时使用它们。

Reveal
Reveal是iOS开发工具中的神器之一,它能够在应用程序运行过程中调试应用程序界面。

Prepo
Prepo可以帮助设计师快速生成各种尺寸的图标,只需你将最大分辨率的图标拖拽进来,其他的尺寸交给Prepo做就好了。

PaintCode
随心所欲的将界面设计转换成代码。

QuartzCode
QuartzCode是一款专门用来创作iOS/macOS动画的软件,基本上把整个Core Animation框架的内容都搬到了软件里面,比如各种Layer、Mask、可以用来动画的属性,基本上跟代码是一致的,完全可以当成“可视化动画编程”工具,而且制作以后可以导出代码+资源文件,直接就可以在代码里面调用,方便自定义修改。

Core Animator
Core Animator 是一款动画制作软件,可以自动生成 Objective-C 和 Swift 代码,让开发者快速在 App 中制作动画效果甚至是游戏。

Hopper Disassembler
Hopper Disassembler是一款是32位和64位的二进制反汇编器,反编译和调试。你可以使用此工具拆开你想要的任何二进制。

IDA Pro
IDA Pro,为Interactive Disassembler公司的反组译与除错工具的产品。常用于逆向工程。

Moom
Moom 是一款专为Mac准备的窗口管理工具,它能够让您移动和缩放窗口。

The Unarchiver
The Unarchiver是一款免费实用的解压缩应用程序,用户可以使用它解压多达30种不同的压缩格式文件。

Jietu截图
截图(Jietu)是一款免费应用,精美界面设计,操作简单,功能强大。截图功能包括区域截图/窗口截图/全屏截图/倒计时截图/录制屏幕,保存可自定义选择图片和视频质量。

iText
iText是一个OCR图像转成文字的工具,在macOS上非常方便和准确的识别。

TripMode
TripMode,每当你的笔记本接入手机热点后,都会自动开启流量管控状态。

Mate Translate
非常棒的应用,翻译很精确

CleanMyMac
如果电脑空间小,清空电脑还有很有作用。比对苹果x删除,用CleanMyMac卸载更干净。

iSmartPhoto
iSmartPhoto是一个快速的图像浏览器和强大的图像管理器。不像 iPhoto,iSmartPhoto for mac不需要你手动导入照片–它自动拉取你的照片从任何文件夹或驱动器。通过只是双单击查找器的单个图像或拖动文件夹,iSmartPhoto会自动显示每个图像从所选的文件夹及其子文件夹。

Kantu
Kantu (看图)是腾讯在 macOS 平台出品的优质看图工具,轻轻松松从万张照片中找到你想要的。

GIF Brewery
GIF Brewery 制作GIF 动图。

Downie
易用的在线视频下载工具

Waltr 2
非常方便的同步iOS设备,拖拽就可以输送音乐、视频、电子书。

iExplorer
iExplorer 是一个非常优秀的一个免 iTunes 同步文件的资源管理器。

iMazing
让备受信赖的软件为您传输和保存音乐、消息、文件和数据。安全备份任何 iPhone、iPad 或 iPod touch。iMazing 功能强大、易于使用,称得上是 Mac 和 PC 上最好的 iOS 设备管理器。

HandShaker
HandShaker Mac 版(原名 SmartFinder),使你在 Mac 电脑上也可以方便自如地管理你在 Android 手机中的内容。

QuickTime Player
QuickTime Player作为macOS默认的播放器,完美的iOS屏幕投影,完美的屏幕录像。

MindNode 6
很漂亮和简洁的思维导图制作软件。

StarUML
StarUML是一种生成类图和其他类型的统一建模语言(UML)图表的工具。

Sketch
Sketch 是一款矢量绘图工具,设计神器

ColorSnapper2
这个取色软件很棒,取色能转成代码最突出,CSS/Swift/OC/Java/Android/.Net/OpenG/…等代码。

xScope 4
xScope 是一款Mac上的设计开发辅助工具,尤其是移动应用的设计,帮助每个设计者快速,精确的完成工作,度量距离,角度的标尺,放大镜,精确垂直,水平标记辅助线,精确阔度,找画面上符合位置测交叉点。

Pixelmator
Mac OS X 专有的图像处理软件。Pixelmator 界面清爽,布局灵活,熟悉 Photoshop 的人可迅速上手。软件建立在一些开源和 Mac OS X 图形技术之上,可调用 Mac 图形加速。使用起来在界面交互和流畅感上均优于 Photoshop,且与 Mac 自带程序整合不错。

Final Cut Pro
后期制作,前景更广阔

Compressor
强大的编码,传输,完成。Compressor 与 Final Cut Pro 紧密整合,带来了自定义输出设置、分布式编码和丰富的传输功能。它支持 360° 全景视频、HDR、HEVC 和 MXF 输出,让你能以强大、灵活的方式导出 Final Cut Pro 项目。

MainStage
MainStage 3 舞台音效,媲美录音室效果。现在,将你的 Mac 变身现场演出装备。凭借不计其数的各种插件和音效选择,你可以让键盘、吉他或演唱表现令观众耳目一新,难以忘怀。

Telegram
Telegram是一个跨平台的即时通信软件,它的客户端是自由及开放源代码软件,但是它的服务器是专有软件。用户可以相互交换加密与自析构的消息,以及照片、视频、文件,支持所有的文件类型。

TeamViewer
TeamViewer 基于最广泛的平台和技术,连接全世界的人、地区和事物。

Apple Remote Desktop
Apple Remote Desktop 是管理你网络上的 Mac 电脑的最佳方式。分发软件,为终端用户提供实时在线帮助,创建详细的软硬件报告,自动执行常规的管理任务。

Things3
一款优秀的GTD任务管理工具。

WWDC
开源免费的看WWDC视频的应用!

Reeder 4
一款很好的RSS订阅应用

IINA
macOS 上好的现代视频播放器。免费开源!

程序员选购Mac电脑,戳这里

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 Mac 适合编程? 的相关文章

  • 十分钟带你看懂——Python测试框架之pytest最全讲

    pytest特短 pytest是一个非常成熟的全功能的Python测试框架 主要有以下几个特点 简单灵活 容易上手 支持参数化 能够支持简单的单元测试和复杂的功能测试 还可以用来做selenium appnium等自动化测试 接口自动化测试
  • selenium 做 Web 自动化,鼠标当然也要自动化!

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读1 9k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 开源AI云测试平台,Hydra Lab

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读1 8k次 点赞82次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 数据可视化产品的测试策略

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客文章浏览阅读1 5k次 点赞70次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自动
  • 干货 | Sqlmap常用手册(收藏)

    sqlmap常用手册 目录 sqlmap常用手册 一 sqlmap介绍 二 常用命令 二 进阶命令 technique BEUST prefix与 suffix level 三 注入https网站
  • 要想用好linux,先把shell 搞明白

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客文章浏览阅读1 9k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自动
  • HTTP JSON接口模拟工具Interfake快速入门教程

    一 简介 Interfake能简便地创建虚假的HTTP API 只需简单几行代码就可以创建模拟JSON接口 使用命令行方式也可以不写代码 不需要安装web服务器 Interfake是NodeJs开发的 是一款开源Mock Server工具
  • 总结 BurpSuite 插件 HaE 与 Authz 用法!!!

    HaE与Authz均为BurpSuite插件生态的一员 两者搭配可以避免 越权 未授权 两类漏洞的重复测试行为 适用于业务繁杂 系统模块功能多的场景 两个插件都可以在store里安装 安装完后 点击Filter Settings勾选Show
  • 干货:教你如何在JMeter中调用Python代码N种方法!

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读1 9k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 一文详解Python中PO模式的设计与实现

    在使用 Python 进行编码的时候 会使用自身自带的编码设计格式 比如说最常见的单例模式 稍微抽象一些的抽象工厂模式等等 在利用 Python 做自动化测试的时候 是不是也有自己的设计模式呢 所以在今天这个小章节里 需要续了解的就是 py
  • 大厂测试员为了不加班,降薪去事业单位,半年后:还不如当测试员?!

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读1 9k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 300万的人才缺口,为什么网络安全成为2024中职春招最热门的专业

    前言 随着互联网的普及和信息技术的飞速发展 网络安全问题日益凸显 网络安全产业也因此迎来了前所未有的发展机遇 根据 2023年中国网络安全产业人才发展报告 显示 我国网络安全产业人才市场供需失衡 实战型人才短缺尤为突出 在这样的背景下 中职
  • Python selenium模块的安装和配置教程

    一 selenium的安装以及简单应用 我们以谷歌浏览器的chromedriver为例 1 在Python虚拟环境中安装selenium模块 pip pip3 install selenium 2 下载版本符合的webdriver 以chr
  • Python selenium实现断言3种方法解析

    1 if else 判断进行断言 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
  • Python接口自动化测试处理不同接口间参数依赖

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 2k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • Jmeter 压测-性能调优5大注意

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 2k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • #私密朋友圈被吐槽有bug?官方致歉!网友:尴尬了......

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 2k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 盲猜你不懂H5架构和原生架构的区别

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • Python自动化测试 | 如何使用Robot Framework进行自动化测试?

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • Jmeter 性能-阶梯式性能指标监听

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自

随机推荐

  • MNIST数据集转换为图片数据集的样例程序

    一 编写背景 因为需要对接一个官方的编程API 本人需要自己按其要求搭建一个神经网络 以尝试调用某模块的工作 我参考了Tensorflow的参考书了解了MNIST数据集 然后我准备把MNIST数据集转换为图片格式 以适应API的要求 同样
  • 单片机笔记八:华大单片机报错(未定义__WEAKDEF)

    最近开始用华大的单片机 按照官方的例程做了一个工程模板 结果直接编译不过 而且一口气有30个错误 提示内容如下 WEAK void I2c0 IRQHandler void mcu common interrupts hc32l13x c
  • JavaSE——StringBuffer与StringBuilder拼接字符串详细解释

    目录 一 基本了解 1 1使用字符串频繁拼接会出现什么问题 1 2 了解StringBuffer 1 3 了解StringBuilder 1 4 StringBuffer与StringBuilder的区别 二 StringBuffer的使用
  • 额外函数_强化学习奖励函数塑形简介(The reward shaping of RL)

    RL背景 强化学习解决定义在马尔科夫过程 Makov Decision Processing MDP 下的连续决策问题 其中经典算法Q learning使用如下方程更新 值 策略 在状态s下采取行为a后的累计回报数学期望 Cumulated
  • C/C++使用libcurl库发送http请求(get和post可以用于请求html信息,也可以请求xml和json等串)

    C C 使用libcurl库发送http请求 get和post可以用于请求html信息 也可以请求xml和json等串 C 要实现http网络连接 需要借助第三方库 libcurl使用起来还是很方便的 环境 win32 vs2015 如果要
  • python基础(1)--对象、类、方法、库、函数

    几个概念的简单辨析 对象与类 一个独立的事物称为一个对象 对象具有一定的属性和功能 对象 属性 特征 方法 行为 类是对象的抽样化 类是对象的实例化 方法与函数 函数 通过 函数名 的方式进行调用 内置函数 匿名函数 递归函数 自定义函数等
  • R语言的排列组合函数:排列函数(permutations)和组合函数(combinations)

    R语言的排列组合函数 排列函数 permutations 和组合函数 combinations 排列函数 permutations 和组合函数 combinations 是R语言中用于处理排列和组合问题的常用函数 它们可以帮助我们生成和计算
  • 微信小程序开发(九):使用扩展组件库

    前端开发中离不开各种组件库 我最先接触的组件库还是Bootstrap 后来工作中又陆续使用了inoic ng zorro等各种不同的库 在微信小程序开发中也有多种组件库 这里记录其中几种不同组件库的使用方法 WeUI 这是微信官方推出的一款
  • 2023版golang面试题100道(合集)

    我已经从事后端开发很多年 近期花了大量时间整理了一份 golang面试题100道 涵盖了go开发需要掌握的基础知识 核心要点 题目的答案尽量做到简洁 条理性 golang面试题100道 最新完整合集目录 欢迎关注 回复 面试 即可随时阅读
  • MATLAB 判断字符串中是否含有特定的字符

    这个程序的目的是 逐行读取file txt文件中的字符串 并判断字符串中是否含有特定的字符 如果含有 再对字符串进行处理 然后写入到新的TXT文档中new file txt fid fopen D new file txt wt phns
  • 【好文鉴赏】初创公司到底值不值得去?从以下几点考虑

    关键词 初创公司 职业发展 就业 原文链接 https tech sina cn csj 2018 09 10 doc ihiixyeu5565677 d html https www zhihu com question 31272586
  • Unlit Shader下的Texture切换

    今天要实现一个贴图切换过渡的一个效果 Unlit的性能比较好 所以参考了网上一些Texture的shader之后 写了一下 具体内容 MixValue 来完成渐变效果 MixValue 1时为下面的Texture MixValue 0时为上
  • 巧用replit搭建免费的个人云服务器

    初识replit 被它的免费托管和域名服务所吸引 replit是个啥 在经过一番尝试后 发现这玩意儿挺有意思 佩服老外的想象力和创新力真强 竟还能搭建个人的云服务器 连域名都有了 这可真香 对个人开发者来说连云服务器都省了 想搭建个人网站或
  • 2021年PHP会被淘汰吗

    首先我可以确定的是 PHP肯定不会被淘汰 但是市场占有率肯定回不去以前的状态 以前PHP可以做网页的任何事 包括前端和接口 但是近几年前端的发展非常迅猛 angular vue和react三大前端框架的相继出现 使得前后端已经彻底分离了 所
  • 名人博客VS 博客名人

    不知从什么时候开始 似乎人人都成了blogger 有用的 没用的 快乐的 悲伤的 都会在自己的博客上贴出来 而那些曾经让我们感觉遥不可及的明星们也开始通过博客传递最新动态甚至爆料隐情 由此便催生了一系列跟博客相关的网络词汇 celeblog
  • Python :删除链表中重复的节点

    牛客网上的剑指 offer的在线编程 题目描述 在一个排序的链表中 存在重复的结点 请删除该链表中重复的结点 重复的结点不保留 返回链表头指针 例如 链表1 gt 2 gt 3 gt 3 gt 4 gt 4 gt 5 处理后为 1 gt 2
  • 前端搭建砸地鼠游戏(内附源码)

    The sand accumulates to form a pagoda 写在前面 功能介绍 页面搭建 样式设置 逻辑部分 完整代码 写在前面 上周我们实通过前端基础实现了打字通 当然很多伙伴再评论区提出了想法 后续我们会考虑实现的 今天
  • Vue+ElementUI中表格嵌套的使用方法

    需求 在开发中会遇到很多表格嵌套表格的使用 一个父级表格通过展开行要打开子级的表格 如果利用官网中的展开行的方式去实现其实是有点困难的 首先实现行展开 这个是用到了elementUI中的一个属性通过设置 type expand 和 Scop
  • WebSocket 协议简介

    一 什么是WebSocket WebSocket是一种在单个TCP连接上进行全双工通讯的协议 WebSocket通信协议于2011年被IETF定为标准RFC 6455 并由RFC7936补充规范 WebSocket API也被W3C定为标准
  • 为什么 Mac 适合编程?

    强劲的 GPU 和 CPU 我的家用电脑和笔记本都配了顶级的显示器和 GPU Steam 上有 2000 游戏 我和孩子玩了很多 并且我对 CUDA 和 深度学习很感兴趣 而 Mac 对此就无能为力了 对我来说 强大的 GPU 是非常重要的