首页 开发编程 正文

mac 怎么重启php

mac台式一体机怎样升级使用达芬奇软件?花屏了、闪退了、台子不认了、项目失踪了、LUT要重装了、人间不值得了....小编这段时间见证了无数由无脑升级带来的“如按照我的方法操作你的新软件都还搞不定。...

mac 怎么重启php,mac台式一体机怎样升级使用达芬奇软件?

伴随着达芬奇15正式版的发布,随之而来也出现了许多令人头疼的问题。花屏了、闪退了、台子不认了、项目失踪了、LUT要重装了、人间不值得了....小编这段时间见证了无数由无脑升级带来的“悲剧”。

为了防止悲剧重演,小编搬运了MIXINGLIGHT的调色师:Patrick Inhofer的一篇非常完整详尽的达芬奇升级防坑指南,并结合针对中文用户出现的一些问题,整理成了这篇文章。其实不只是针对达芬奇,对于软件升级本身这件事,文章列举了很多的“黄金法则”。可以说对于各种软件的升级操作,这篇文章都具有很好的指导意义。

原文地址:

https://mixinglight.com/color-tutorial/guide-upgrade-davinci-resolve-15/

高能预警,阅读此文需要15分钟。

有几点要说在前面:

1、如果有必要,你应该确保你能优雅(和迅速)的降级。换句话说:在升级前你需要100%确定,可以随时回到早期的软件版本。因为对于像DaVinci Resolve这类复杂而专业的软件,无脑的升级(或者降级)带来的花式问题,可以很轻易的毁掉你的一天。各种软件新版本的不稳定性也加剧了使用风险,因此,在你实在折腾不了的情况下,就先降回去吧。

2、针对一些刚发布的测试版本,不要随意进行升级,通常在新的正式版发布前的,前几个测试版,都会存在很多不稳定的因素,最好是等到一个相对稳定的版本再进行升级。

3、针对这些非正式版的升级,最好在英文界面下运行,因为开发者在对BUG进行测试时,都是基于英文的。在中文界面下,可能会出现一些未知的BUG。

第1部分:如何机智的升级到DaVinci Resolve 15

在我们开始防坑之前,一些注意事项我要提前说明:

也许有人会认为我的一些步骤有些过头了: 我要告诉大家,我有30年的软件使用和升级经验,从完全重装系统、灾难性崩溃、到各种小麻烦,我踩过的坑实在太多了。我为大家列举的这些步骤,已被证明是确保升级最可靠的方法,如按照我的方法操作你的新软件都还搞不定,那么很可能不是升级带来的错误,而是人品问题...

我写的一些步骤是专门针对DaVinci的: 因为DaVinci依赖于数据库体系结构,需要额外的一些操作,你不必担心来自其他开发人员的软件。

这个工作流程是为各种软件的更新而设计的: 也就是说除去针对达芬奇的特定步骤,它适用于任何软件的更新操作。

我写的内容只能作为参考,不负法律责任

下面是我工作流程的简要总结:

1、合理安排时间,有条不紊地做这件事

2、备份电脑

3、导出项目和数据库,准备升级

4、备份自定义和第三方的LUTs*

5、导出共享静帧集(Power Grades)

6、导出键盘快捷键预设

7、开始更新程序

①卸载达芬奇

②卸载桌面视频应用程序(如果你有Decklink或Ultrastudio采集卡)

③重新启动

④安装Desktop Video应用程序(如果有必要)

⑤重新启动

⑥安装达芬奇15

⑦重新启动

⑧打开达芬奇15

⑨创建一个新的数据库

⑩导入项目

8、重新安装自定义与第三方LUTs

9、导入共享静帧集(Power Grades)

10、重建(或重新导入)键盘快捷键预设

我的天啊,看起来步骤太多了! 是的,下面是我对每个步骤的基本原理,以及具体的注意事项说明。

1、合理安排时间,有条不紊的干

DaVinci Resolve 15是一次非常重要的版本更新。音频子系统在达芬奇14的基础上进行了显著的增强和改进(几乎是从12.5的版本基础上进行了完全重新的改写)。新增了Fusion工具,Fusion的整个工作流程也被注入到了达芬奇的图像处理系统中。可以说,这些新功能是对达芬奇这样一个非常成熟的软件的重大架构更改。

不要以为你的升级会顺利进行! 不要假设您的工作流程是通用的。不要假设你使用的每一个功能都能像以前版本的达芬奇一样有效。

很有可能,整个升级不会出现问题。但你需要假设出现问题,并预留出足够的时间来发现和解决这些问题。

因此,不要在客户到你工作室的前30分钟才开始升级! 让自己喘口气,你至少需要半天的时间。

2、制定备份计划

如果您没有备份计划,那么现在是设计和执行备份计划的时候了。这是没有商量余地的!

如果你没有一个完整的备份以及恢复电脑的计划,你的升级就是在作死!

不过,我要介绍的是升级流程,而不是如何为计算机创建备份的详细步骤(关于电脑数据的备份可以自己查找相关的资料,也可以访问MixingLight,我们关于如何备份计算机和数据库的文章)。

大致上,涉及到软件更新的电脑系统备份有两种方案:

使用备份软件: 也许你需要备份整个操作系统,而不仅仅是你的用户文件夹。达芬奇在安装过程中,可能会由于系统版本的不同出现兼容问题。(达芬奇14 beta版 在OS10.13版本中就曾出现过加密狗不支持的情况,许多人被迫降级系统到OS10.13以下)。由于这些问题,如果你想要降级达芬奇到旧版本,则可以从备份中重新安装os系统组件。这意味着,你需要备份整个启动驱动器。

使用一个辅助启动驱动器来更新软件:在这个工作流程中,你可以用两个硬盘驱动器,设置一个双启动(双系统)。但只在一个系统上升级最新的软件。如果要把达芬奇降级到更新前的版本,只需要简单的重新启动原来的系统就行。如果更新进展顺利,那么辅助启动驱动器将成为你的主驱动器。

3、安装前的程序

A.如何处理现有的项目和数据库:两条重要的法则

你打算升级当前项目或近期项目吗? 如果需要,那么在升级之前,你需要导出那些项目。然后永远不要升级原来的项目! 你只需要在新版本达芬奇中,导入该项目的导出版本。(有点绕,总之,一定要保证原始版本的完整)。

你打算升级现有的数据库吗? 如果需要,同样的,先导出该数据库,然后在新版本中导入新数据库,进行升级。永远不要直接升级原始数据库,保证原始数据库的完整。

如果你能够遵守这两条法则,那么你完全可以随时回到之前的软件版本继续你的项目。相反,如果你没有这样做,很有可能你的项目会因为升级,而被迫停止。

B.再次检查你的电脑硬件和操作系统是否符合官方的最低要求

打开“Read Me for DaVinci Resolve 15”(地址https://www.blackmagicdesign.com/support/readme/1829ad68e4894459916f432f418b1765)然后确认新版本对于硬件以及系统的要求,它在“Read Me”的底部。

网上很少有人会反复检查自己的系统和硬件是否符合需求,这令人震惊。更令人震惊的是,很多人人拒绝承认他们的系统不符合官方所述最低要求,然后抱怨。如果你的电脑没有达到最低规格,当软件崩掉时,没有人能帮助你。抱怨是没有意义的。要么赶紧花钱升级硬件,要么就停下来。

好吧,为了节省你的时间,这里是达芬奇15最新的硬件和系统要求

1、macOS的最低系统要求:

macOS 10.12.6 Sierra 系统

推荐使用16GB的系统内存,使用Fusion时建议最少32GB内存

Blackmagic Design Desktop Video version 10.4.1 或更高版本

CUDA 驱动版本 8.0.63

NVIDIA 驱动版本——根据您的GPU要求安装

RED Rocket-X 驱动 2.1.34.0 固件 1.4.22.18 或者更高

RED Rocket 驱动2.1.23.0 固件 1.1.18.0 或者更高

2、Windows的最低系统要求:

推荐使用16GB的系统内存,使用Fusion时建议最少32GB内存

Blackmagic Design Desktop Video version 10.4.1 或更高版本

NVIDIA/AMD/Intel GPU驱动程序版本-根据您的GPU要求安装

RED Rocket-X 驱动 2.1.34.0 固件 1.4.22.18 或者更高

RED Rocket 驱动2.1.23.0 固件 1.1.18.0 或者更高

第四步:备份自定义/第三方LUTs

如果不做任何操作,直接安装新版本达芬奇。很有可能你将失去所有添加到达芬奇中的自定义和第三方LUTs。正确的做法是打开LUTs文件夹,并将其进行备份。只需要复制你添加的自定义和第三方LUTs就行,对于预设的LUTs,新版本的达芬奇将会重新安装。

如果您不确定您的LUT文件夹在系统上的位置:可以在项目设置>色彩管理,然后点击“打开LUT文件夹”按钮,进入LUT文件夹进行复制。

第五步:创建共享静帧集(Power Grades)并导出

共享静帧集(Power Grades)是提高调色效率的一个有力工具。但是当你卸载当前版本的达芬奇或创建一个新数据库时,以前的Power Grades将无法再进行访问。

要在升级完成后重新获得原有的Power Grades,你应该完成以下的步骤:

1、创建一个新的项目,新建一个普通静帧集,可以命名为“MyPowerGrades”

2、把你希望保留的静帧从你的原有Power Grade文件夹,移到刚才新建的这个空的静帧集中。

3、打开项目管理器窗口

4、右键单击刚在新建的工程,选择“Export with Stills and LUTs”

在此步骤中创建的.drp文件,可以在软件升级后重新导入,进行恢复。

有人会说,我直接在PowerGrade静帧集中对静帧进行导出可以吗?

你当然可以这样做一个简单的静帧导出。但如果你对静帧都更改了名字,使用这种方法导出的静帧名会被去掉。按照刚才我说的这个步骤,你可以保留这些名称,为自己节省大量时间。

第六步:导出键盘快捷键预设

我总是建议每个用户都自定义你的键盘快捷键。把常用的命令重新映射,可以使我们更快、更高效的进行工作。但是如果你不小心,直接更新到新的达芬奇版本时,将会失去那些快捷键预设。

为了防止不必要的时间浪费,你可以先导出键盘快捷键,然后安装DaVinci Resolve 15再重新导入它们。

第七步:令人头大的安装程序

我将在这一段中说一些看似多余的步骤——以及我为什么要这样做。现在你需要确保你的电脑已经有过备份了,你的基本驱动程序和操作系统已经更新了,你的LUTs、Power Grade和键盘快捷键都被保存了下来。

A.使用达芬奇自带的卸载程序卸载现有的旧版本:

从技术上讲,这一步有点过头了。按理来说,DaVinci 自己的安装程序会自动卸载现有版本。但是在几年前,我从一个坏的安装程序中发现了一些bug,它们留下了旧的组件,导致升级后的软件崩溃。所以…我的建议是…不要相信安装程序。要获得最佳体验和最干净的升级,请使用现有版本的卸载程序进行卸载。

在Mac上:卸载程序位于DaVinci Resolve 应用程序> DaVinci Resolve的文件夹中

在PC上:进入Windows >应用程序和功能,选择DaVinci Resolve并选择卸载

我同时也会卸载Blackmagic Control Surface(调色台驱动程序)

还有非常重要的一点,在卸载完达芬奇后,需要进入:资源库→Application Support→Blackmagic Design→DaVinci Resolve,并将“DaVinci Resolve”文件夹手动删除。达芬奇自带的卸载程序,并不会将这个文件夹删除,特别是里面残留的数据库文件,会造成新版本安装时的数据库混乱。

B.卸载Blackmagic’s Desktop Video app(采集卡驱动程序)

这个很容易被忽略,你可能有一段时间没有更新它了。但如果你有Decklink或Ultrastudio 采集卡,现在是更新到新版本的好时机。在卸载Blackmagic’s Desktop Video app后,需要重新启动计算机。因为卸载后会残留低版本的组件。重启可以对它们进行清理。

C .重启电脑

为什么一定要重启?因为往往低版本的残留文件,会在内存中“卡住”,不会被新的安装程序覆盖——这会导致一些功能无法被重新创建的问题。我知道这个过程很烦人……但相对于重装系统等大麻烦,重启实在是一个微小的代价。

D. 安装Blackmagic’s Desktop Video app(采集卡驱动程序)并重新启动

我发现,如果在安装了Blackmagic Desktop Video app并重启计算机之后,再安装达芬奇,出错的几率会很小。这可能听起来比较玄学。如果你没有Decklink或Ultrastudio采集卡,可以跳过这一步。

E.安装 DaVinci Resolve 15

技巧1:只安装你需要的组件

在达芬奇15的安装过程中,你可以自由的选择安装的组件,包括SQL数据库管理程序、达芬奇15主程序,Blackmagic Control Surface(调色台驱动程序),以及Fairlight硬件加速器程序。

如果您没有Blackmagic的官方调色台,没有任何Fairlight硬件加速器,你完全可以跳过这些组件的安装程序。没有必要给自己一些不必要的风险。

当新版本的达芬奇可以运行后,你可以考虑在以后的更新中安装这些组件。

技巧2:不要同时运行两个版本的达芬奇

即使是Rohit(达芬奇主要的工程师)或Peter(达芬奇的产品经理)告诉你,在一个系统中可以同时运行达芬奇15和达芬奇14(当然,他们自己不会这样做)…也千万不要这样干,请忽略他们的建议。

如果安装程序出现问题,或者因为两个版本同时存在而导致冲突,你需要卸载这两个版本,并进行完全重新的安装。

好好学习使用你的新版本吧,不要因为老版本自己用的更加熟练就不肯卸载掉。如果你必须保留早期的DaVinci版本,建议使用刚开始提到了双系统方法。

记住,不要在一个系统中同时运行的两个版本的达芬奇,无论任何人告诉你 (即使是Robbie 或者 Dan)

F .重启你的电脑

安装Resolve 15后重启,同样这是一个看起来有些多余的步骤。但这个步骤已经成为了我的一种习惯,它可以有效减少外部Decklink采集卡带来的问题。

G、启达芬奇15,创建或恢复新数据库

不要在新版本第一次启动时,就直接更新现有连接的数据库,正确的做法是,你应该直接创建一个全新的数据库。

如果你需要在现有的数据库中工作,应该从“resolve.backup”(PostGres数据库),或者 “resolve.diskdb” (database数据库)中恢复它。然后你可以将该数据库更新为Davinci Resolve 15中的新格式。

再一次提醒:只能更新导入的数据库! 不要更新已经连接到Resolve的现有数据库。因为当您需要降级,并在早期版本中使用它时,更新后的数据库是无法使用的。升级原有数据库是不可逆的。原始数据库可以让您降级到旧版本使用变得更加容易。

H、将你的drp导入到新的数据库中

如果不是导出数据库,而是导出项目,那么现在应该将这些项目导入到DaVinci Resolve 15创建的新数据库中。

步骤8:添加你的自定义和第三方LUTs

打开项目设置>色彩管理,按下“打开LUT文件夹”按钮。将您的自定义LUTs放回此文件夹。

技巧1:不要覆盖达芬奇15中的默认预设LUTs。很有可能Blackmagic已经更新了它们。

技巧2:在达芬奇15中,LUT预览功能已经更新。你可以在调色页面上的LUT浏览器面板中直接打开LUT文件夹并进行应用。

步骤9:导入键盘快捷键

我对这一步犹豫不决。Resolve 15对键盘快捷键功能进行了比较大的更改,同时还更新了许多键盘快捷键以适应新的功能。

如果你的自定义快捷箭并不多,你可以到偏好设置中的键盘映射中进行手动的重新设置,在这个过程中你也能够了解到达芬奇15的一些新功能,和新的快捷键。

但是如果你对快键有过大范围的修改,不想花太多时间进行重新设定,我也支持你直接把预设进行导入。这个决定就留给你自己吧!

OK ,从这里,可以开始干活儿了!

第2部分:以后的更新怎么办?

当你升级到DaVinci Resolve 15后,厂商肯定还会陆续发布更高的软件版本。无论是什么版本,我通常遵循以下相同的原则。

不要随意地去升级

给自己留出充足的时间

备份重要的东西

手动卸载/安装软件

重新加载常用资源

唯一不同的是你如何处理备份数据库

我通常跳过导出数据库,除非新版本的达芬奇对数据库的架构有更新。在这种情况下,我遵循不直接在新版本中更新原始数据库的原则;我会先导出数据库,然后在新版本中重新导入,再升级数据库。

在安装新版本的达芬奇之前,一定要备份您的项目

通常情况下,达芬奇在打开项目文件之前不会更新它们。但是,一旦打开并保存,你就会将该项目完全提交给新版本的达芬奇。也就是说,这个项目很有可能无法在低于你当前版本的软件中工作(无法向下兼容)。因此,更新软件并打开项目之前,一定要做好备份!

你可以先打开达芬奇15新特性介绍的PDF,并寻找对你的工作可能有实际帮助的部分进行阅读。然后再开始工作。

最后:提交崩溃和bug报告

最后如果软件在使用过程中崩溃了,你应该提交错误报告。不要只是在朋友圈或者论坛上抱怨。联系Blackmagic,让他们去分析和解决你的问题。

如何提交达芬奇中的崩溃和bug报告?

很简单。在提交你的第一个bug之前,阅读这篇关于如何向Blackmagic提交bug的文章(https://forum.blackmagicdesign.com/viewtopic.php?f=32&t=71894)这是由达芬奇的产品经理写的。按照他的步骤去做,Blackmagic能够更好的解决你遇到的问题。(也许他还能够亲自来回复你)

在达芬奇15中可以直接在帮助菜单上,选择“在桌面上创建诊断日志”,生成诊断报告。

联系Blackmagic的主要方式是进入 DaVinci Resolve reports论坛提交报告(地址:https://forum.blackmagicdesign.com/viewforum.php?f=21)。它们的专业人士能够对你的bug进行快速、准确的回应。

有哪些相见恨晚的办公软件?

1.解决文件夹切换问题:clover

2.解决文件搜索问题:everything+filelocator pro

3.解决个人文件管理问题:xyplorer

3.解决个人文件标签和文件目录导出问题:taglyst

4.解决截图问题:专业截图王>Snipaste>Faststone capture

faststone capture太差,不再介绍。

5.解决思维导图问题:Xmind确实很好用,但缺点是正版太贵。

推荐一个替代方案:河蟹版或者迅捷思维导图

推荐一个思维导图的模板网站:

mindmaster也很用。

可以做出很漂亮的思维导图:

6.解决批量修改文件名问题:total commander

7.解决ppt模板问题:PPT之家(直接搜索全是广告,请输入52ppt)

还有一个全免费网站:叮当设计

最推荐的是下面这个:办公资源网

10大PPt模板网站:

8.解决办公软件切换问题:多个方案

方案1.excel+Office TAB=标签功能,适合不愿意用WPS的用户

方案2.直接用WPS替代office

方案3.可尝试使用永中office

9.办公日程问题:全球顶级日程管理essential PIM,惠普、三星、佳能等国际一流公司的选择

国产软件推荐:时光序或未来管家

最良心,且好用的时间管理国产软件,没有之一。

10.解决PDF有关的所有问题:迅捷PDF转换器+编辑器,或福昕PDF(土豪推荐)

11.解决会议记录问题,也就是文字转语音:笛云听写(免费)/录音宝(免费)/录音转文字助手(付费)/讯飞语记/讯飞听写/搜狗语音助手/百度/有道云笔记

12.解决手写文字转电子档以及图片转EXCEL电子表格:全能扫描君(注意不是全能扫描王)

13.解决办公文档批量处理:word批量处理大师

14.解决不会使用EXCEL的函数和公式:方方格子

15.解决写作难题:办公资源网文档模板下载+香当网

16.解决图片问题:isee(常用)+PS

其他请看下面的思维导图:

拉轰读书,持续更新优质软件+网站,记得收藏哦!!下次查看更方便。

神级程序员都在用什么工具?

摘要:在我认识的所有程序员里,每个人几乎都有专属于自己的常用工具和相关资源,今天给大家奉上数十个程序员硬核工具,我相信这里总有一款工具是属于你的!

程序员生产力工具大全如下:

1. Idea-Intellij IDEA (java 编程语言 开发的集成环境)

业界排名第一的java开发工具,非常非常好用,如果还在用eclipse的朋友,赶紧来体验一把,你一定会爱上她的。

2. SecureCRT (SSH终端仿真程序)

SecureCRT是一款终端仿真程序,支持SSH(SSH1和SSH2)以及Telnet和rlogin协议。SecureCRT用于连接运行包括Windows、UNIX和VMS在内的远程系统的理想工具。

3. Termius (全平台的远程终端)

termius是一款全平台的远程终端,Termius不仅涵盖了Windows、Linux、OSX,还变态得支持Android和iOS(以后在地铁、公交上都可以随时拿出手机来排查线上问题啦,还真是广大程序员的福音呢。

4. Google Chrome (谷歌浏览器)

Google Chrome是一款由Google公司开发的网页浏览器,该浏览器基于其他开源软件撰写,包括WebKit,目标是提升稳定性、速度和安全性,并创造出简单且有效率的使用者界面。

5. iTerm (为Mac OS X编写的终端仿真程序)

iTerm是一个为Mac OS X编写的,功能齐全的终端仿真程序;目标是在为用户提供OS X下最佳的命令行体验;字母i代表了本地苹果的外观和风格的程序界面,并把重点放在完整的国际支持; 它合并由两个项目, CTerminal和TerminalX ,而这两者都是基于JTerminal项目;该软件非常有实用和易用性。

6. Visual Studio Code (简称“VS Code”,编写现代Web和云应用的跨平台源代码编辑器)

重新定义和优化了代码编辑,以便生成和调试新式 Web 应用程序和云应用程序。也是著名的文本编辑器,它是轻量级的,vSCode的一大特点就是你可以通过多种方式来调整设置,而且Vim可以和VScode集成在一起,它还带有一个集成终端,可用的扩展太多,使开发人员的工作变得更加轻松。我最喜欢的一些扩展是AWS Toolkit, ESLint,Live Server, Live Share, Prettier-代码格式化程序,YAML,Live Sass编译器,Docker等。

7. VMware Fusion & VMware workstation (为计算机开发的虚拟机管理程序)

是在计算机上无缝运行 Windows 的最佳方式,可确保 Windows 应用程序在计算机上实现无缝运行可以在基于 Intel 的计算机上无缝运行 Windows、Linux 以及其他 PC等多个操作系统,进而构建、测试或演示软件。

8. Navicat Premium (数据库管理工具)

Navicat premium是一款数据库管理工具,是一个可多重连线资料库的管理工具,它可以让你以单一程式同时连线到 MySQL、SQLite、Oracle 及 PostgreSQL 资料库,让管理不同类型的资料库更加的方便。

9. Postman (api调试工具)

简单来说,四个词,简单、实用、大方、美观!postman这款网页调试工具的windows客户端,功能强大的HTTP调试与模拟插件。使用Postman可以进行API开发、请求、调试,除了它,还可以使用lnsomnia和Insomnia Designer作为API文档。

10. RedisDesktopManager (一款可视化 redis管理工具 )

Redis Desktop Manager是一款简单快速、跨平台的Redis桌面管理工具,也被称作Redis可视化工具,Redis Desktop Manager官方版是一款开源软件,支持通过SSH Tunnel连接,支持windows、mac等多平台。

11. Dash (基于MAC的 API文档浏览器和代码片段管理器)

“开发者不可或缺的杰作。”Dash 可让您的 Mac 即时离线访问 200 多个 API 文档集。立刻搜索离线文件集200层+的API ,100+备忘单和 href="">更多 功能。您甚至可以"">生成自己的文档集 或 href="">请求 包含href="">文档集 。

12. Fiddler & Wireshark (http抓包工具)

Fiddler和Wireshark都是进行抓包的工具:所谓抓包就是将网络传输发送与接收的数据包进行截获、重发、编辑、转存等操作,也用来检查网络安全。作为开发者,经常想调试一下http请求发送的数据的详情,那么可以使用这2款软件。用抓包工具wireshark的人相对来说更多一些。

13. HBuilder X (HTML5的Web开发工具)

当前最快的HTML开发工具,强大的代码助手帮你快速完成开发,最全的语法库和浏览器兼容性数据让浏览器碎片化不再头痛。作为HBuilder下一代的全新编辑器,HBuilderX被定位为ide和编辑器的完美结合,除了对某种语言的语法分析、提示、转到定义、调试,同时加强了对通用文本处理能力,界面更加清爽,拥有比上一代更加有效的快捷键体系。

14. MobaXterm (远程终端控制软件,集串口,SSH远程登录和FTP传输三合一的工具)

多功能终端MobaXterm Professional Edition 是一款豪华、全功能的终端软件。MobaXterm带来了所有必要的Unix命令到Windows桌面,在开箱单便携式exe文件。MobaXterm允许您启动远程会话。远程shell,MobaXterm远比Putty好用,您可以选择创建SSH,远程登录,Rlogin,RDP,VNC,XDMCP,FTP,SFTP或串行会话。

15. Sublime Text (跨平台代码编辑器)

http://www.sublimetext.cn/

Sublime Text 是一款用于代码、标记和散文的精致文本编辑器。Sublime Text 中文网致力于为广大国内开发者提供详尽的中文文档、使用说明等,助力开发者快速掌握这个编辑器。

16.webstorm (专业的HTML编辑工具)

web开发的必备的一款开发神器,比如写js、页面、css,那么这款软件用起来非常顺手。此软件和idea出自于同一家公司,这家公司做了很多异常好用的软件,基本上你需要的各种开发相关的IDE,这家公司都生产。可以说是“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”。新版对JavaScript,TypeScript和CSS支持更好,改进了Vue.js的体验,并为Jest集成增加了新功能。

17.Xshell (功能强大的终端模拟器)

linux原创控制软件,完全免费且非常稳定的 SSH 客户端 ,支持多种远程协议,提供了很多特色与高级功能,简体中文界面也让你轻松管理远程服务器。 Xshell 的 Screen 会话不闪屏,而且可以回滚;Script 的执行顺序可以调整;可以同时发送指令到多个 session;支持布局切换等。

18. SwitchHosts (修改Hosts文件的工具)

这是用于在多个HOSTS之间进行切换。可在公用hosts文件 、当前系统hosts、本地方案和在线方案间进行切换。作为一名开发人员,经常需要修改本地host,你还是通过修改host文件来操作的么?那样太慢了,这里建议大家使用switchhosts这款软件,可以快速修改本地host,非常好用。

其他工具:

1. CodeIf(智能命名) : https://unbug.github.io/codelf

大部分开发者都或多或少遇到过变量命名的烦恼,如果命名不规范,不仅会影响开发的效率,而且对后面维护的同学来说也是一个不小的挑战,因为他要去揣摩你这个变量的含义。随着项目越来越复杂,变量和函数数量越来越多,虽然每个编程语言都有各种命名规范,但是也不能解决所有的问题。

“计算机科学里两件最难的事:缓存失效和命名。” Codelf通过搜索在线开源平台Github, Bitbucket, Google Code, Codeplex, Sourceforge, Fedora Project的项目源码,帮开发者从中找出已有的匹配关键字的变量名,从而帮助为变量名苦恼的开发者命名。这个搜索服务支持直接搜索中文。

同时可以在自己用的编辑器里安装插件,支持 VS Code、Atom、Sublime Text 和 Chrome。

2. DocsChina-印记中文 : https://www.docschina.org

这是一个前端中文文档合集,进入网站可以看到开发中经常使用的前端中文文档。如果你的英文实在不怎么好,还在为找中文文档而烦恼,这里将是你非常好的选择。记得放到自己的浏览器收藏夹里哦!

3. any-rule(正则表达大全): http://github.com/any86/any-rule

any-rule 维护了一个常用正则表达式合集,并且本身是一个支持 Web/VS Code/idea/Alfred Workflow 多平台的正则表达式工具。

4. tool.lu(在线工具): https://tool.lu

程序员总是有很多小工具要使用,比如图片、Base64编码、Markdown编辑器时间戳转换,进制转换等,在线运行各种语言代码。这个网站包含了太多程序员需要用到的小工具了。比如你想运行点JAVA代码,又不想麻烦的在系统中安装JAVA环境,可以使用里边的在线运行代码工具,然后选择JAVA,写点JAVA代码就可以直接运行了。

5. Baomitu(前端静态源库): https://cdn.baomitu.com

这个静态资源库是支持HTTP/2的CDN服务,有了它,如果你是自己的小型项目或者是做测试就不用下载任何的代码库,直接粘贴地址过来用就可以,因为是国内的CDN库,速度还非常的快。

6. Typora-Markdown(编写工具):https://www.typora.io

一款实用的 Markdown 编写工具,所见即所得,用Markdown编写文章是一个程序员的标准配置,也就是标配。现在有很多在线工具都支持Markdown,什么有道云笔记、雀语,、印象笔记等。这种简单的界面,沉浸式的编写,清晰的大纲,它就像一件称手的兵器,让你一旦拥有就爱不释手。

7. Snipaste (简单便捷的截图软件):https://zh.snipaste.com/download.html

一款免费的桌面截图软件,功能强大,使用方便,支持任何屏幕位置截图,支持窗口截图,支持快捷方式截图。您可通过截取贴图,使两张图合并为一张图,还能调整截图文字图像等等,是一款非常强大的贴图软件,喜欢此款贴图软件的朋友不要错过。

8. Captura (最好用的开源录屏、gif动态图片制作工具)

官网:https://captura.updatestar.com/ github:https://github.com/MathewSachin/Captura

通过这款工具可以帮助你轻松录制各种视频。支持全屏录制、区域录制两种方式,全屏录制可以录制全部的电脑屏幕,将电脑屏幕上所有的动态都录制下来,该软件还拥有视频编解码器,可以对视频进行解码,支持mp4、avi、GIF、webm等格式,可以满足一般的解码需要。还支持屏幕截图、剪贴板,简单的图像编辑等功能,是一款非常好用的屏幕录像工具。

9. 向日葵 (远程控制软件): https://sunlogin.oray.com/

向日葵远程控制是一款提供远程控制服务的软件。向日葵远程控制支持主流操作系统Windows、Linux、Mac、Android、iOS跨平台协同操作,在任何可连入互联网的地点,都可以轻松访问和控制安装了向日葵远程控制客户端的设备。整个远控过程,可通过浏览器直接进行,无需再安装软件。

10. Everything (本地文件检索工具):http://www.voidtools.com/support/everything/

由voidef="">tools 开发的一款文件搜索工具,这款软件是基于名称实时定位文件和目录。Everthing功能强大,体积小巧,第一次安装使用时会建立一个索引数据库,将所有文件和文件夹的名称导入其中,后续使用能够以极快的速度快速搜索,查找到你所需要的文件。

11. StarUML (UML画图工具)

画uml图的一款神器,类图、时序图、流程图、状态图等等,都可以用这款工具轻松应对。

12. uTools (生产力工具集):https://u.tools/

一个极简、插件化、跨平台的现代化桌面软件。通过自由选配丰富的插件,打造你得心应手的工具集合。这个工具,我只能说他是一款神奇,太牛逼,这款工具中汇集了很多好用的工具,可以通过这款工具秒开电脑上的各种软件。

搜索资源网站工具:

1.Bing

Bing 国际版:https://cn.bing.com/ 感觉比某度要好用多了。

2.DuckDuckGo

DuckDuckGo:https://duckduckgo.com/ 从官网的介绍来看这个搜索引擎不收集用户信息,而且没有广告。

3.Stack Overflow

Stack Overflow:https://stackoverflow.com/ 我们如果常用 Google,很多技术问题的答案就在这个网站上,如果你无法使用 Google 可以在这个网站上直接检索就好了。

4.Gitlogs

Gitlogs:https://www.gitlogs.com/ Gitlogs 是专门针对 GitHub 项目的搜索引擎,我们通过他可以快速找到想要项目。

5.jiumo search

文档搜索引擎 jiumo search 鸠摩搜书:https://www.jiumodiary.com/ 可以用来找一些技术文档手册,很多在百度网盘里。

6.Ebooke

Ebooke:https://ebookee.org/ Ebookee 是一个基于互联网并提供免费电子图书下载的搜索引擎网站。

7.Iconfinder

图标搜索:https://www.iconfinder.com/ 用来查找 logo 图片。

8.TinEye

TinEye:https://www.tineye.com 用图片来检索图片,我们可以上传图片或输入图片的 URL 来检索。

9.SemanticScholar

SemanticScholar:https://www.semanticscholar.org/ SemanticScholar 是一个免费学术搜索引擎,其检索结果来自于期刊、学术会议资料或者是学术机构的文献。

10.LibreStock

LibreStock:https://librestock.com/ LibreStock 上可以检索一些优质的高清图片。

11.CC Search

CC Search:https://ccsearch.creativecommons.org/ CC Search 上搜索到的图片资源都是无版权的,我们可以免费的使用。

12.Pexels

Pexels:https://www.pexels.com/ 高质量的图片网站,可以免费使用。

13.Unsplash

Unsplash:https://unsplash.com/ 免费高清素材网站。

14.The App Store

The App Store:https://theappstore.org/ The App Store 是一个针对苹果手机、iPad、Mac 设备的应用搜索工具。

在线画图工具:

• 在线画图工具ProcessOn:https://www.processon.com/

• 在线画图工具draw.io:https://app.diagrams.net/

• 在线思维导图工具:http://www.mindline.cn/webapp

• PlantUML在线编辑器:http://haha98k.com/

在线开发辅助工具:

日常开发经常会用到一些辅助工具我总结为8大类,包括:编解码工具、转换工具、正则工具、编译工具、网络工具、格式化工具、可视化工具、在线生成器、以及其他工具等等。 具体列表如下:

在线编码工具:

• BASE64编解码工具:https://base64.supfree.net/

• MD5编码工具:https://www.zxgj.cn/g/md5

• AES/DES加解密:http://www.fly63.com/tool/cipher/

• JWT解码工具:http://jwt.calebb.net/

• ASCII编解码工具:https://www.matools.com/code-convert-ascii

• Unicode编解码工具:https://www.zxgj.cn/g/unicode

• UTF-8编解码工具:https://www.zxgj.cn/g/utf8

• 字符串编解码工具:https://www.zxgj.cn/g/enstring

• URL编解码工具:http://tool.chinaz.com/tools/urlencode.aspx?jdfwkey=lbixz1

在线转换工具:

•在线ASCII码对照表:http://www.fly63.com/tool/ascii/

• 通用进制转换工具:https://www.zxgj.cn/g/jinzhi

• 在线浮点数十进制转换:http://www.binaryconvert.com/

• RGB颜色转换:https://www.zxgj.cn/g/yansezhi

• 时间戳转换工具:https://www.zxgj.cn/g/unix

• 计量单位换算工具:http://www.fly63.com/tool/unitable/

• 在线JSON解析:http://www.json.cn/

• 在线JS代码格式化工具:https://prettier.io/playground/

• SQL压缩/格式化工具:https://www.zxgj.cn/g/sqlformat

• JSON和XML在线转换:https://www.zxgj.cn/g/jsonxml

• JSON/YAML在线转换:http://www.fly63.com/tool/jsonyaml/

• 人民币大小写转换工具:http://www.fly63.com/tool/renmingbi/

正则表达式工具:

• 正则表达式调试工具:https://regexr.com/

• 正则表达式可视化工具:https://jex.im/regulex/

网络工具:

• IP地址归属地查询:https://www.ip138.com/

• IP地址查询:https://www.ipip.net/ip.html

• HTTP在线接口测试工具:http://www.fly63.com/php/http/

在线编译运行工具:

• C#在线编译运行:https://rextester.com/

• C/C++在线编译调试:https://www.onlinegdb.com/

• 在线编译工具套装:https://c.runoob.com/

可视化/格式化工具:

• 在线前端编辑器: https://codepen.io/

• 在线数据可视化:https://flourish.studio/

• 在线JSON解析:http://www.json.cn/

• 在线CSS代码可视化工具:https://enjoycss.com/

• XML格式化工具:https://www.zxgj.cn/g/xmlformat

• 在线JS代码格式化工具:https://prettier.io/playground/

• SQL压缩/格式化工具:https://www.zxgj.cn/g/sqlformat

• JSON和XML在线转换:https://www.zxgj.cn/g/jsonxml

• JSON/YAML在线转换:http://www.fly63.com/tool/jsonyaml/

在线生成器:

UUID在线生成器:https://www.zxgj.cn/g/uuid 随机数生成器:https://www.zxgj.cn/g/suijishu

其他常用工具:

在线Nginx配置工具:https://nginxconfig.io/ 在线对比工具:http://www.fly63.com/tool/textdiff/ 在线Chrome浏览器插件:https://www.crx4chrome.com/ 在线接口文档管理工具:http://www.docway.net/

在线素材工具:

如果你写文章,或者做视频,那就一定少不了要找素材,包括各种图片、背景、emoji表情、表情包、壁纸、视频、gif图等等。

• 免费透明背景图片素材:http://pngimg.com/

• Emoji表情搜索:https://emoji.svend.cc/

• Emoji表情包下载:https://emojiisland.com/

• open source icons:https://feathericons.com/

• 表情包在线网站:https://fabiaoqing.com/

• 免费PNG图片库:https://pluspng.com/

• ICON图标在线下载:https://www.iconfinder.com/

• 极简壁纸:https://bz.zzzmh.cn/

• Wallpaper Abyss壁纸:https://wall.alphacoders.com

• Pixabay图片素材库:https://pixabay.com/zh/

• Unsplash图片素材库:https://unsplash.com

• Pexels图片素材库:http://www.pexels.com

• NASA图片视频素材库:https://images.nasa.gov

设计制作类工具:

对于那些文章创作者和视频创作者而言,设计封面,做海报,设计LOGO,图片美化等等基本也是刚需。

这样大概率日常会用到一些简易好上手的在线设计制作类工具,比如在线P图、音/视频轻量化剪辑、logo制作、海报设计制作、图片美化、在线图片转换或生成等等。

• 在线PS:https://www.uupoop.com/

• 在线音频剪辑:https://www.weixinsyt.com/

• 在线视频剪辑:https://www.kapwing.com/

• 免费logo在线制作:http://www.uugai.com/

• 艺术字体在线生成:https://www.qt86.com/

• 在线表格转换工具: https://tableconvert.com/

• 在线海报设计工具: https://www.designcap.com/

• 图片智能放大工具:https://bigjpg.com/

• 二维码美化器:https://mh.cli.im/

• 在线代码截图工具:https://carbon.now.sh/

• 在线抠图工具:https://www.remove.bg/zh

• ICO图标在线生成:http://www.fly63.com/php/ico/

• SVG转PNG工具:http://www.fly63.com/tool/svg2img/

• 视频转GIF工具:http://www.fly63.com/tool/giftxt/

• 二维码在线生成器:http://www.fly63.com/tool/ewm/

• 二维码在线解码:http://www.fly63.com/php/decoder/

写辅助工具:

写文章的过程中经常会用到和写作相关的辅助工具,比方说:字数统计工具、Markdown格式的文章排版工具、图床网站、代码截图工具等等,所以下面这些在线工具就能很好地满足我的需求。

• 在线字数统计:https://www.eteste.com/

• mdnice markdown排版工具:https://mdnice.com/

• md2all markdown排版工具:http://md.aclickall.com/

• 在线图床神器:https://picx.xpoet.cn/

• 在线免费图床:https://sm.ms/

• 图壳图床:https://imgkr.com/

• 在线代码截图工具:https://carbon.now.sh/

• 在线短链接工具:https://urlify.cn/

• 在线文本替换:http://www.fly63.com/tool/textreplace/

在线办公工具:

部分在线工具主要用来处理一些和文档以及文稿相关的事情,经常用到的比如:在线的全套pdf处理和转换工具、各种各样多媒体文件间的相互转换工具、在线识别工具、在线压缩工具等等。

• pdf在线处理工具1:https://smallpdf.com/cn/pdf-tools

• pdf在线处理工具2:https://tools.pdf24.org/zh/

• pdf转word在线工具:https://www.pdftoword.com/

• 在线多媒体转换器合集:https://cn.office-converter.com/

• 在线文字识别工具:https://ocr.wdku.net/

• 在线文件压缩工具:https://docsmall.com/

文档笔记工具:

好记性不如烂笔头,作为一个学习者,我觉得记笔记是必不可少的步骤。当然现在基本都做电子笔记和电子文档比较多。 现如今各式各样优秀的文档工具和笔记软件鳞次栉比,好用的也有很多,整理成如下列表,这东西各有长处,使用哪个最合意还得看个人习惯和需求了。

• 印象笔记:https://www.yinxiang.com/

• 有道笔记:https://note.youdao.com/

• OneNote:https://www.onenote.com/

• 幕布:https://mubu.com/

• 为知笔记:https://www.wiz.cn/

• 石墨文档:https://shimo.im/

• Simplenote:https://simplenote.com/

• 语雀:https://www.yuque.com/

编程学习网:

• 哔哩哔哩:https://www.bilibili.com/

• C语言网:https://www.dotcpp.com/

• cppreference:http://zh.cppreference.com/

• 中国大学MOOC:https://www.icourse163.org/

• 牛客网:www.nowcoder.com

• 网易公开课:open.163.com

• CodeGym:https://codegym.cc/

• BeginnersBook:https://beginnersbook.com/

• JavaSED:http://www.javased.com/

• codecademy:https://www.codecademy.com/

• Coursera:https://www.coursera.org/

• StackOverFlow:https://stackoverflow.com/

• LeetCode:https://leetcode-cn.com/

• LintCode:https://www.lintcode.com/

在线教程文档:

这部分主要集中了在做开发过程中随手参考所要用到的几乎所有在线教程和官方文档,有中文版文档的基本都优先列出来了,但更多时候是英文的官方文档。

• Git中文教程:https://git-scm.com/book/zh/v2

• SVN中文手册:http://svnbook.red-bean.com/nightly/zh/index.html

• jQuery API中文文档:https://jquery.cuishifeng.cn/

• Nginx中文文档:https://www.nginx.cn/doc/index.html

• Kafka中文文档:https://kafka.apachecn.org/

• Mybatis中文文档:https://mybatis.org/mybatis-3/zh/index.html

• 微信小程序官方文档:https://developers.weixin.qq.com/miniprogram/dev/framework/

• Nodejs中文教程文档:http://nodejs.cn/learn

• Apache Web Server文档:http://httpd.apache.org/docs/

• Spring文档中文版:https://www.springcloud.cc/spring-reference.html

• Golang标准库文档中文版:https://studygolang.com/pkgdoc

• Java 8官方文档:https://docs.oracle.com/javase/8/docs/api/index.html

• Maven官方文档:http://maven.apache.org/guides/

• Tomcat 8官方文档:http://tomcat.apache.org/tomcat-8.0-doc/index.html

• Spring Boot官方文档:https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/

• RabbitMQ官方文档:https://www.rabbitmq.com/documentation.html

• RocketMQ官方文档:http://rocketmq.apache.org/docs/quick-start/

• Dubbo中文文档:https://dubbo.apache.org/zh/docs/

• Netty官方文档:https://netty.io/wiki/index.html

• Elasticsearch官方文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html

• Spring Cloud官方文档:https://spring.io/projects/spring-cloud

• Docker官方文档:https://docs.docker.com/get-started/

• kubernetes中文文档:https://kubernetes.io/zh/docs/home/

• thymeleaf官方文档:https://www.thymeleaf.org/documentation.html

• Vue.js中文文档:https://cn.vuejs.org/v2/guide/

• React.js官方文档:https://reactjs.org/docs/getting-started.html

• Jenkins中文文档:https://www.jenkins.io/zh/doc/

华为云平台:

高效易用的低代码aPaaS平台-应用魔方AppCube:https://www.huaweicloud.com/product/appcube.html集华为研发实践、前沿研发理念、先进研发工具为一体的软件开发平台-软件开发平台 DevCloud:https://www.huaweicloud.com/devcloud/

以上内容分享自华为云社区《吐血整理:程序员都在用什么工具?》,作者: 考过IE励志当攻城狮 ,部分内容整理自互联网~

php如何获取客户端信息?

代码入下,只做参考

class userPCInfo{

//获取客户端浏览器

public static function get_client_browser(){

$sys = $_SERVER['HTTP_USER_AGENT']; //获取用户代理字符串

if (stripos($sys, "Firefox/") > 0) {

preg_match("/Firefox\/([^;)]+)+/i", $sys, $b);

$exp[0] = "Firefox";

$exp[1] = $b[1]; //获取火狐浏览器的版本号

} elseif (stripos($sys, "Maxthon") > 0) {

preg_match("/Maxthon\/([\d\.]+)/", $sys, $aoyou);

$exp[0] = "傲游";

$exp[1] = $aoyou[1];

} elseif (stripos($sys, "MSIE") > 0) {

preg_match("/MSIE\s+([^;)]+)+/i", $sys, $ie);

$exp[0] = "IE";

$exp[1] = $ie[1]; //获取IE的版本号

} elseif (stripos($sys, "OPR") > 0) {

preg_match("/OPR\/([\d\.]+)/", $sys, $opera);

$exp[0] = "Opera";

$exp[1] = $opera[1];

} elseif(stripos($sys, "Edge") > 0) {

//win10 Edge浏览器 添加了chrome内核标记 在判断Chrome之前匹配

preg_match("/Edge\/([\d\.]+)/", $sys, $Edge);

$exp[0] = "Edge";

$exp[1] = $Edge[1];

} elseif (stripos($sys, "Chrome") > 0) {

preg_match("/Chrome\/([\d\.]+)/", $sys, $google);

$exp[0] = "Chrome";

$exp[1] = $google[1]; //获取google chrome的版本号

} elseif(stripos($sys,'rv:')>0 && stripos($sys,'Gecko')>0){

preg_match("/rv:([\d\.]+)/", $sys, $IE);

$exp[0] = "IE";

$exp[1] = $IE[1];

}else {

$exp[0] = "未知浏览器";

$exp[1] = "";

}

return $exp;

}

//获取客户端操作系统

public static function get_client_os(){

$agent = $_SERVER['HTTP_USER_AGENT'];

$os = false;

if (preg_match('/win/i', $agent) && strpos($agent, '95')){

$os = 'Windows 95';

}else if (preg_match('/win 9x/i', $agent) && strpos($agent, '4.90')){

$os = 'Windows ME';

}else if (preg_match('/win/i', $agent) && preg_match('/98/i', $agent)){

$os = 'Windows 98';

}else if (preg_match('/win/i', $agent) && preg_match('/nt 6.0/i', $agent)){

$os = 'Windows Vista';

}else if (preg_match('/win/i', $agent) && preg_match('/nt 6.1/i', $agent)){

$os = 'Windows 7';

}else if (preg_match('/win/i', $agent) && preg_match('/nt 6.2/i', $agent)){

$os = 'Windows 8';

}else if(preg_match('/win/i', $agent) && preg_match('/nt 10.0/i', $agent)){

$os = 'Windows 10';#添加win10判断

}else if (preg_match('/win/i', $agent) && preg_match('/nt 5.1/i', $agent)){

$os = 'Windows XP';

}else if (preg_match('/win/i', $agent) && preg_match('/nt 5/i', $agent)){

$os = 'Windows 2000';

}else if (preg_match('/win/i', $agent) && preg_match('/nt/i', $agent)){

$os = 'Windows NT';

}else if (preg_match('/win/i', $agent) && preg_match('/32/i', $agent)){

$os = 'Windows 32';

}else if (preg_match('/linux/i', $agent)){

$os = 'Linux';

}else if (preg_match('/unix/i', $agent)){

$os = 'Unix';

}else if (preg_match('/sun/i', $agent) && preg_match('/os/i', $agent)){

$os = 'SunOS';

}else if (preg_match('/ibm/i', $agent) && preg_match('/os/i', $agent)){

$os = 'IBM OS/2';

}else if (preg_match('/Mac/i', $agent) && preg_match('/PC/i', $agent)){

$os = 'Macintosh';

}else if (preg_match('/PowerPC/i', $agent)){

$os = 'PowerPC';

}else if (preg_match('/AIX/i', $agent)){

$os = 'AIX';

}else if (preg_match('/HPUX/i', $agent)){

$os = 'HPUX';

}else if (preg_match('/NetBSD/i', $agent)){

$os = 'NetBSD';

}else if (preg_match('/BSD/i', $agent)){

$os = 'BSD';

}else if (preg_match('/OSF1/i', $agent)){

$os = 'OSF1';

}else if (preg_match('/IRIX/i', $agent)){

$os = 'IRIX';

}else if (preg_match('/FreeBSD/i', $agent)){

$os = 'FreeBSD';

}else if (preg_match('/teleport/i', $agent)){

$os = 'teleport';

}else if (preg_match('/flashget/i', $agent)){

$os = 'flashget';

}else if (preg_match('/webzip/i', $agent)){

$os = 'webzip';

}else if (preg_match('/offline/i', $agent)){

$os = 'offline';

}else{

$os = '未知操作系统';

}

return $os;

}

//获取ip地址

public static function get_ip() {

//判断服务器是否允许$_SERVER

if (isset($_SERVER)) {

if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {

$realip = $_SERVER['HTTP_X_FORWARDED_FOR'];

} elseif (isset($_SERVER['HTTP_CLIENT_IP'])) {

$realip = $_SERVER['HTTP_CLIENT_IP'];

} else {

$realip = $_SERVER['REMOTE_ADDR'];

}

} else {

//不允许就使用getenv获取

if (getenv("HTTP_X_FORWARDED_FOR")) {

$realip = getenv("HTTP_X_FORWARDED_FOR");

} elseif (getenv("HTTP_CLIENT_IP")) {

$realip = getenv("HTTP_CLIENT_IP");

} else {

$realip = getenv("REMOTE_ADDR");

}

}

return $realip;

}

//获取当前ip所在城市

public static function GetIpLookup($ip = ''){

if(empty($ip)){

return '请输入IP地址';

}

$test= 'http://ip.taobao.com/service/getIpInfo.php?ip='.$ip;

$res = @file_get_contents($test);

return $res;

}

}

有哪些你看了以后大呼过瘾的编程书?

本文从以下几个方面给大家分享几本高价值书单,并不一定全面,欢迎读者补充,希望能对你有帮助。

1 关于编码与重构

1.1 代码整洁之道

英文名《Clean code》,该书出自 Robert C Martin 之手,又被称为 Bob 大叔,是一位美国著名的软件工程师和作家,他已经写了有关敏捷软件开发的书籍。书中提到众多有名的编程原则:比如 SOLID 原则、 Law of Demeter(LoD,又被称为最少知识原则)。

推荐理由:

每个程序员都必须拥有本书并阅读它。这是一本非常著名的书,它将完全改变您的编程风格,书中介绍的规则均来自作者多年的实践经验,涵盖从命名、数据结构、面向对象的设计原理到重构的多个编程方面,虽为一“家”之言,然诚有可资借鉴的价值。或许,真正整洁的代码真能让同行读起来像诗一样。

任何傻瓜都可以编写计算机可以理解的代码。优秀的程序员编写人类可以理解的代码。— 马丁·福勒

如果只能读一本书,我就推荐这本。最后,基于本书,众多开发者还推出了各种语言的整洁之道:

• Javascript 整洁之道

• PHP 整洁之道

• ABAP 整洁之道

• Java 整洁之道

• .NET 整洁之道

还有各大科技公司的代码风格指南:

• Google 风格指南

• Uber Go 语言风格指南

Bob 大叔的《架构整洁之道》也值得推荐,这本书是在架构领域的登峰之作,围绕“架构整洁”这一重要导向,系统地剖析其缘起、内涵及应用场景,涵盖软件研发完整过程及所有核心架构模式。

还有《程序员的职业素养》,作者以自己以及身边的同事走过的弯路、犯过的错误为例,意在为后来人引路,助其职业生涯迈上更高台阶。

1.2 重构(第2版)

英文名: 《Refactoring: Improving the Design of Existing Code,2nd Edition》,作者 Joshua Kerievsky。本书是理论和实践最佳组合的罕见书籍之一。重构是一个使您的工作代码更加美丽的过程,这本书可以利用已经尝试和测试的软件开发世界的模式来为您提供帮助。

推荐理由:

重构一词经常在各种大会上被提及,那就是这本书带来的影响。重构也就是重写软件的过程,而无需更改其功能,以提高其可读性,可检验性或可维护性。重构是使工作代码美观的过程,重构有助于改进工作代码的设计。这也是优秀程序员的必备技巧之一,通常优秀的程序员也擅长重构。

本书将教你重构代码的艺术和科学。无论您是 Java 程序员、C++ 开发人员还是 Python 开发人员,每个程序员都可以从本书中受益。

与《重构》经常被提及的书就是大名鼎鼎的《代码大全》,书中解释的也是久经考验的技术和策略,能有效帮助程序员和软件开发人员。笔者也曾在大学的时候把这本书图书馆借出来,发现这本书太厚,啃不动,到期就立马归还了。

1.3 代码之美

英文名:《Beautiful Code: Leading Programmers Explain How They Think》,作者:Grey Wilson。

推荐理由:

大牛前辈的博客合集,同时也是提高编码技能的好书之一,因为它为您提供了一个机会,让您了解专业程序员如何处理问题、编写的代码以及他们如何解决问题,并且仍然能够保持他们的代码美观。

这本书是一系列案例研究的集合,揭示了 Emacs 到 Facebook 等大型网站架构秘密,讲述了那些专家程序员,包括布莱恩·克尼原,乔恩·本特利(Jon Bentley)(编程珠玑的作者),蒂姆·布雷(Tim Bray),卡尔·福格尔(Karl Fogel),迈克尔·菲瑟斯(Michael Feathers)(有效地使用旧版代码的作者),以及许多更多伟大的作者和程序员。关于二分查找,在书中数次被不同作者提及,了解不同作者的观点。无论您使用哪种编码语言,例如 Java,C#,Python 或 Ruby,都会在本书中找到有趣的东西。

代码之美调查了一项努力的人类发明和创造力的范围:计算机系统的开发。每章中的美观来自发现独特的解决方案,这是作者的力量超越界限,识别他人所忽略的需求,并找到令人惊讶的解决方案,以解决令人困扰的问题。

2 关于职业成长

2.1 程序员修炼之道(第2版)

英文名《Pragmatic programmer》,作者是 Andrew Hunt & David Thomas。中文版的译者是大名鼎鼎的云风,副标题是:通向务实的最高境界。

推荐理由:

本书是时隔 20 年的新版,覆盖哲学、方法、工具、设计、解耦、并发、重构、需求、团队等务实话题的最佳实践及重大陷阱,以及易于改造、复用的架构技术。

刚出来的时候博文出版社举办了一个推广活动,在云风和皓子叔联袂推荐下,毫不犹豫的入手了本书。程序员往往最难得就是务实主义,总想追求新技术,炒新概念。工作后才逐渐明白,编程的本质,均不依赖于特定语言、框架和方法,技术改变世界在于能够有效解决用户的真实需求。

本书本质上是程序员的自助指南。它探索了良好的软件开发实践,并为您提供了出色的建议、提示和技巧,以更有效地编程。正是对经典和现代轶事、引人入胜的类比和发人深省的例子的创造性使用,使每个部分的学习都变得有趣而有趣。如果说大学期间读的都是类似于 C 语言圣经和 Head First 系统书籍的话,工作后的人才会真正懂得为什么这本书籍不厚,读起来拍案叫好,这大概就是大道至简。

作者另一著作:《程序员修炼之道: 从小工到专家》也是值得推荐的

2.2 卓有成效的程序员

英文名:《The Productive Programmer》,作者:Neal Ford。

推荐理由:

本书就是讲述如何在开发软件的过程中变得更加高效。同时,《卓有成效的程序员》的讲述将会跨语言和操作系统:很多技巧的讲述都会伴随多种程序语言的例子,并且会跨越三种主要的操作系统,Windows(多个版本),Mac OS X 以及 *-nix (Unix 或者 Linux)。

贯穿全文的思想大概就是尽量让机器做机器该做的事情,让程序和程序打交道,发挥程序员在这方面的先天优势。学会善用工具,命令行、学会写脚本,学会宏。提供效率,不去做重复单调的工作。

最终的目的:成为一个“慵懒”的程序员。

2.3 软技能:代码之外的生存指南

英文名:《Soft Skills: The software developer's life manual》,作者:John Z. Sonmez

推荐理由:

研究生期间读过最受益的一本非技术书。程序员都知道编码很重要,这是我们吃饭的硬技能。

可是实际工作上才发现不止写代码,代码之外的软技能也很重要:比如面临着与客户沟通、与产品打交道的沟通问题;比如应该关注自身发展,书中也介绍了怎么做职业突围;还有更多章节介绍了作者如何学习、如何理财、健身、自我营销等等。

分享书中有趣让我印象深刻的点是作者去面试,面试官浏览过他的博客文章,两人因此相谈甚欢。 最后也想给阅读的朋友声明一下:这本书涉猎了很多方面,但是并不是没一点都是一套可以照抄的完美答案,毕竟作者也是从当时的环境和自己经历出发介绍这些内容,每个读者应该都有自己的选择,

综合而言,这本书挺适合各个阶段的人阅读的,尤其大学生和初入职场的朋友。

作者也出了《软技能2:软件开发者职业生涯指南》,如果说软技能关注于生活,那软技能 2 则更加关注于了软件开发职业。

3 关于黑客与开源

3.1 Unix 编程艺术

书籍英文名:《The Art of UNIX Programming》,作者:《Eric S. Raymond》从 1982 年开始就是 UNIX 开发者。

推荐理由:

本书涉及 Unix 系统领域中的设计和开发哲学、思想文化体系、原则与经验,由公认的 Unix 编程大师、开源运动领袖人物之一 Eric S.Raymond 倾力多年写作而成。

程序会过时,编程语言会更新,代码会跟随业务不断改动,但编程思想的生命力会长盛不衰,好的编程艺术也是具有穿透力的,尽管书中的案例已经偏老,但贯穿始终的 KISS 原则、思想文化体系、设计与开发哲学一定能够给你带来醍醐灌顶的感觉。

Keep it simple stupid,简称 KISS 原则。在做软件设计的工作中,很多时候都不要想得过于复杂,也不要过度设计和过早优化,用最简单且行之有效的方案也就避免了复杂方案带来的各种额外成本。这样既有利与后续的维护,也有利于进一步的扩展。

另外,本书还可以与“左耳朵耗子”ef="">皓子叔推荐 过的《UNIX传奇:历史与回忆》结合着一起看,了解 UNIX 的诞生记与发展史,贝尔实验室的幕后故事!本书不但书写 Unix 的历史,而且记录作者的回忆,一探 Unix 的起源,试图解释什么是 Unix,Unix 是如何产生的,以及 Unix 为何如此重要。

3.2 大教堂与集市

英文名:《The Cathedral & the Bazaar: Musings on Linux and Open Source by an Accidental Revolutionary》, 《Unix编程艺术》作者 Eric S. Raymond 的另一封神之作,副标题是《对 Linux 和开源革命的沉思》。

推荐理由:

大家都知道程序员热衷于开源文化,都在说不要重复造轮子。开源时代下的软件开发可能只需要三个键盘按钮:CTRL + C + V,开个玩笑。

说到开源文化,那么本书《大教堂与集市》是开源运动的《圣经》,颠覆了传统的软件开发思路,影响了整个软件开发领域。作者把软件开发思路类比于古代的大教堂文化和集市文化,讲述了集市如何变成大教堂,书中系统解释了开源软件是如何生产的,开源开发的优势在哪,开源软件的传承是如何做到的。

3.3 黑客与画家

英文名:《Hackers and Painters: Big Ideas from the Computer Age》,作者:Paul Graham,本书的译者是大名鼎鼎的阮一峰大佬。

推荐理由:

说到黑客文化,就不得不提到硅谷创业之父Paul Graham 的这本书,本书主要介绍黑客 Hacker,即优秀程序员的爱好和动机,讨论黑客成长、黑客对世界的贡献以及编程语言和黑客工作方法等所有对计算机时代感兴趣的人的一些话题。

本书是一本为黑客正名的技术散文集,看完书后第一次将我从电影中的黑客形象颠覆过来,才了解到并不是入侵系统、制作病毒、各种解密的人就是黑客,Hacker 是专家级程序员,是一群与画家有着极大的相似性,他们都是在创造,而不是完成某个任务,“黑客”象征着第一流的能力,以及求解问题过程中产生的精神愉悦或享受。他们崇尚分享、开放、民主、计算机的自由使用和进步。而那些恶意入侵计算机系统的人更应该被称为 cracker(骇客)。

4 关于算法与设计模式

4.1 算法设计手册

英文名:The Algorithm Design Manual (2nd Ed.),作者:Steven S Skiena

推荐理由:

关于算法的重要性大家都知道,大家肯定都知道另外两本著名的《算法导论》和《算法4》:《算法导论》侧重与算法的数学推导,适合研究,而《算法4》侧重于算法的代码实现,适合入门。

而这次推荐的《算法设计手册(第2版)》却没有那么有名气,但也不失为设计实用且高效算法的最全面指导书。该书揭密了算法的设计与分析,以简单易懂的写作风格,介绍了各种算法技术,着重强调了算法分析。

目前市场上算法书层出不穷,但是经典的算法却一直在那里,不曾走远。

4.2 Head First 设计模式

英文名:《Head first design patterns》,作者:Elisabeth Freeman / / Eric Freeman / Bert Bates / Kathy Sierra / Elisabeth Robson

推荐理由:

这本书完整地涵盖了 GoF 版本全部23个设计模式,毫不费力地解释了世界各地熟练的软件开发人员和程序员用来构建优雅、功能齐全、灵活和可重用的软件的几种软件设计模式。。图文并茂,配有大量说明性和启发性的示例,它们将使学习同时变得高效和有趣。与其他文本繁重的编程书籍不同,这本书具有引人深思、视觉丰富的格式。

Head First 系统书籍充满了幽默感,选题和编辑都很用心,值得一读。相信读完的读者逐步迈向对软件设计模式的深入了解。再来读 GoF 不失为一个不错的选择。

4.3 设计模式:可复用面向对象软件的基础

英文名:《 Design Patterns: Elements of Reusable Object-Oriented Software》,又被简称为计算机领域的 GoF ,因为本书的作者是四个人:Erich Gamma / Richard Helm / Ralph Johnson / John Vlissides。

推荐理由:

本书是任何使用面向对象代码的开发人员的必备入门读物。而且作者 Erich Gamma 是 jUnit、Eclipse、IBM Jazz 项目、Visual Studio、Azure 和 Office 365 的幕后推手。

如果您没有很好地掌握 UML,您可能会发现很难吸收编程书中汇编的一些信息和示例。然而,这不会阻止您欣赏设计模式书中叙述的美妙之处,它既简单又内容丰富。

《设计模式》一书详尽地解释了 23 种软件设计模式,可帮助软件开发人员和设计人员制作更好、更优雅、更灵活的软件。这本书讨论了针对常见软件设计问题的大量简洁明了的解决方案。

如果说 GoF 太难读下去,那么就推荐程杰的《大话设计模式》,这本书通过对话的形式带领大家入门设计模式,人人都可以是好学的小菜和经验丰富的大鸟。

4.4 编程珠玑(第2版•修订版)

英文名:《More Programming Pearls,Second Edition》,作者:John Bentley

推荐理由:

这是一本带你真正领略计算机科学之美,融深邃思想、实战技术与趣味轶事于一炉的奇书。与大多数其他编程书籍不同,这本书侧重于基本问题和一般问题。它讨论了可以提高性能或减少内存需求的各种算法和技术。

作者选取许多具有典型意义的复杂编程和算法问题,生动描绘了历史上众大师们在探索解决方案中发生的轶事、走过的弯路和不断精益求精的历程。

就如书名一样,大浪淘沙,计算机科学中的智慧正如自然界里珍珠出自细沙对牡蛎的磨砺,留下一个个编程“珠肌”。

题外话:

上面的书都是本人曾经阅读过,或者说在图书馆中有借阅翻过的书。也是计算机领域评分很高、有口皆碑的书籍。但计算机行业的经典书籍太多,本人能推荐的也只是其中一部分,想要推荐的内容也不想针对某个特定编程语言和领域,所以像《C++编程思想》和《On Java8》这类书籍没有进行推荐,推荐理由也不一定完全正确,欢迎大家批评指正。另外,看完上述的书并不能说自己就能在工作中就能运用到,看完就能成为一个顶尖的程序员。何况看书也不能完全接收前辈们的这些大智慧,但如果在某个瞬间(看书过程或者实践过程中)对自己有一种醍醐灌顶的感觉,就已足够。

参考链接:

• UNIX传奇(上篇)

• 假期好读书

• Top 5 Books to Improve Coding and Programming Skills

• http://www.osnews.com/images/comics/wtfm.jpg

本文分享自华为云社区《【云驻共创】对于编程思想和能力有重大提升的书有哪些》,作者:宇宙之一粟 。

本文转载自互联网,如有侵权,联系删除