想从事运维开发,有啥好的自学 CentOS 和 Python 学习方案

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了想从事运维开发,有啥好的自学 CentOS 和 Python 学习方案相关的知识,希望对你有一定的参考价值。

op,也就是运维,和python关系很深,我相信很多运维刚入门的朋友都觉得python高大上,然后就边学运维边学python,在这里我来梳理一下
运维 和 运维开发 是两个方向,运维是运维,运维开发,说白了就是开发,那运维为什么和python相关性大呢?因为运维在做到一定程度,开源工具肯定是满足不了公司需求的。这个时候就的运维需要python了,而很多时候,像那些小公司,也在招聘简历上面写着需要会python,我说的小公司是针对那种开源软件就能完全满足的公司,根本就不需要什么自动化运维平台,也不需要针对现有的开源产品做二次开发,招一个会python的运维过来,除了多帮你们公司写几个后面来的运维维护不了python脚本,其他的还能干啥呢?而对运维来说,先会运维,然后就是我blog里面介绍的那些技术,等我blog里面的知识都会了的时候,差不多也能算是一个中高级运维拉,这个时候才到面临开源软件实现不了的问题的时候。你一个初级运维,那么多开源软件你还不会,你学个python顶个毛用啊。当然我指的是运维路线,并不指运维开发路线。当你开源软件都会了,然后遇到了你解决不了的问题。这个时候才是需要你使用python解决的时候,其实如果拉开比喻就好了,如果你想做CEO。而你现在是普通员工,那么你现在需要做的不是看《CEO法制100条》(瞎扯的),而是《如何成为一个好员工》。如果这样你还不能理解,那很简单。等你明确知道你学了python的应用场景了(这个时候估计你也是一个中高运维了),那么你就可以着手学python了。
为什么要将运维和python学习分开呢?
1.初中级运维是用不到python的,也就是说你学了没经验拿,这个时候反倒不如钻研shell(当然shell包括awk,sed,grep等。),对于很多内行人来说,shell水平才是区分初中高运维的分水岭,python在中级阶段算锦上添花,在初级阶段......那我就不描叙了。
2.用全部精力去钻研一个点,运维这块的内容真的很多,单独只钻研运维爬到高级运维都不知道要多久,更不要说拿出很大部分精力去做对现阶段无用功的python了。
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
当然python(或者其他语言,py对数据在数据处理上面比较强大)对于高级运维来说是必须具备的能力,你做到了高级运维,如果在小公司,那妥妥的可以担任架构师或者运维总监(经理,管理,各种各样的头衔都有),但是你要是进入大公司,做运维总监就必须得把开发和运维结合起来就像蘑菇街运维经理分享的这个经验来看,其中大部分我都能看懂,但是还是有一些是必须有一定开发经验才能对其很熟悉的内容我是懵懵懂懂的。而且像自动化运维框架,自行开发的监控程序的监控点,性能指标等等。重要的东西用图来展示,虽然说这个图不是我画的。就像蘑菇街运维经理分享的这个经验来看,其中大部分我都能看懂,但是还是有一些是必须有一定开发经验才能对其很熟悉的内容我是懵懵懂懂的。而且像自动化运维框架,自行开发的监控程序的监控点,性能指标等等。重要的东西用图来展示,虽然说这个图不是我画的。
上面这幅图我就不做介绍了,我对其了解也不深。你认为你如果就会运维,没有深厚的开发经验,你能做到上面这幅图所展示的实现?上面这幅图我就不做介绍了,我对其了解也不深。你认为你如果就会运维,没有深厚的开发经验,你能做到上面这幅图所展示的实现?
参考技术A CentOS Linux 零点起跑课程
课程目标
掌握CentOS日常办公应用,系统配置和维护,常见网络服务的搭建和配置
适用人群
适合计划从事在Linux上进行工作、提供网络服务和网络管理的同学
课程简介
【CentOS Linux 零点起跑课程】
学习条件:

1、具有Windows应用初级知识
2、有无Linux使用经验均可
利用Python SOCKET多线程开发FTP
课程目标
学习Python运维系统开发
适用人群
计算机从业人员
课程简介
开发型运维是互联网运维的趋势,而Python是目前更适合国内运维做运维开发的语言之一,门户应用非常火爆。

有啥好的工具可以重构 Perl Web 代码吗? [关闭]

【中文标题】有啥好的工具可以重构 Perl Web 代码吗? [关闭]【英文标题】:Is there any good tool to refactor Perl web code? [closed]有什么好的工具可以重构 Perl Web 代码吗? [关闭] 【发布时间】:2010-10-04 21:31:53 【问题描述】:

我目前正在开发一种 perl 网络应用程序 LAMP 样式,最近偶然发现了一些以前的开发人员留下的代码死亡迷宫。他留下了这么多神奇的数字和奇怪的逻辑,每次我必须通过它都让我头疼。

我现在正在学习单元测试,所以我想找到一些有用的工具来重构代码并编写单元测试,以确保我不会意外破坏任何东西。

对于 LAMP perl 的任何好的重构工具有什么推荐吗? 最好是免费的:)

谢谢。

【问题讨论】:

【参考方案1】:

我认为Eclipse / EPIC 有“一些”Perl 重构工具...但不要引用我的话 ;-)

可能也值得一试Komodo。但是完整版不像 Eclipse / EPIC 那样免费。你可以试试他们的开源版本Komodo Edit,但我猜它不具备所有功能?

我没有使用上述或任何其他重构工具...我使用 vi/vim 和 TextMate 编辑器以及它们提供的内容(或者到目前为止我在这些编辑器中找到的内容!)。

进行单元测试是一个好的开始。还可以看看perltidy / Perl::Tidy 和Perl::Critic,这可能有助于通过混乱来寻找一些“代码气味”。

【讨论】:

EPIC 允许您将代码块转换为子例程,但据我所知,它不会让您重命名例程或变量。我等不及他们添加此功能...我已经厌倦了搜索和替换! 我认为 Padre:padre.perlide.org/howto.html 具有词法重构(在此页面中搜索“重构”)。我还没有尝试过这个工具,但我打算!它看起来仍处于早期(但至少目前是活跃的)开发阶段。 刚刚试用了 Padre,重构工作不正常。您要么收到“未知错误”,要么无法真正重命名所有出现的变量。【参考方案2】:

请参阅 Devel::Refactor - 重构 Perl 代码的 Perl 扩展。 https://metacpan.org/pod/Devel::Refactor

【讨论】:

【参考方案3】:

虽然它并没有真正进行深度重构,但 PerlMonks node 描述了几个 Vim 映射,用于使用 B::Deparse 对 perl 代码进行反混淆。

他们的例子:

在普通模式下,当您的光标在该行上时,您可以输入_d

--$|&&s|\n|-|;

...它将被替换为:

s/\n/-/ if --$|;

还有这一行:

$foo and $bar or $baz = 1;

... 将被替换为:

$baz = 1 unless $foo and $bar;

【讨论】:

【参考方案4】:

Padre 有一些重构工具。 重命名变量在一段时间内(两年左右)效果很好。

http://padre.perlide.org/

免责声明:我是 Padre 的贡献者。

【讨论】:

【参考方案5】:

带有 EPIC 插件的 Eclipse 确实有一些重构支持。不像 IntelliJ 对 Java 工具的重构那么复杂。不是 100% 确定它会帮助您解决问题。我使用它的方式是突出显示代码块并将它们移动到函数/方法中。在您的情况下,您可能需要对这些神奇数字进行大量搜索/替换...

我假设您将使用 Test::More 来编写单元测试。其他一些 EPIC 工具可以帮助解决这个问题(例如“todo”标签)。

您还可以使用 Test::WWW::Mechanize 和 Test::WWW::Selenium -- 在您的情况下定义 selenium 测试以确保您不会破坏任何最终用户功能会很有用。虽然 EPIC 没有任何特别的帮助,但它应该可以在调试时使用它来逐步执行代码。

祝你好运。 :-)

【讨论】:

【参考方案6】:

Perl 的动态特性意味着很难为其创建重构工具。

但是,在测试方面,您应该能够组合一些回归测试来帮助您顺利进行。这通过从现在的代码开始并捕获其当前输出来工作。这可能是从命令行运行 CGI 脚本并将生成的 HTML 保存到文件中。

捕捉到这一点后,您可以更改代码,并在检查时检查 HTML 是否未更改,这意味着代码没有损坏。当确实发生更改时,您可以找到错误,或者更改测试以接受新的 HTML 为正确的。

设置起来可能有点繁琐,但从长远来看会让您的生活更轻松。您应该尝试自动化这些测试以使其易于运行。 Checkout Test::WWW::Mechanize 和 Test::LongString 以及所有其他的。

【讨论】:

【参考方案7】:

vim! (或任何其他文本编辑器)

真的没有一个神奇的工具可以重构你的代码,有一些工具可以(例如)重命名变量/函数,但它无法神奇地修复可怕的代码结构或奇怪的逻辑。

【讨论】:

好吧,我一直在寻找可以帮助我识别用于重构的不良代码气味的工具等:)【参考方案8】:

Refactor :my => 'code' 上的志愿者可能会为您提供帮助。无论如何,请随意询问:)

【讨论】:

这看起来很有趣。 +1 提醒我们注意!

以上是关于想从事运维开发,有啥好的自学 CentOS 和 Python 学习方案的主要内容,如果未能解决你的问题,请参考以下文章

想学习HTML5,有啥好的书籍推荐吗?

web前端怎么自学,有啥好的网站,或者资料推荐吗?

有啥好的工具可以重构 Perl Web 代码吗? [关闭]

我想制作自己的源代码编辑器,有啥好的选择? [关闭]

.NET 有啥好的分布式代理/服务模型吗? [关闭]

我想学习spring boot,有啥好的学习网站吗?