ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

告别996 实现高效编程 减少开发压力

2019-11-16 16:02:46  阅读:940  来源: 互联网

标签:脚本 996 採用 虚拟机 编程 自己 hadoop 告别 主动


软件工业的目标就是把人类的生产活动流程化。自己主动化和智能化。

作为一个程序开发者,我们没有什么理由不把自己的工作自己主动化和流程化。

虽然这个过程不是一日之功,也不一定会达到尽善尽美,可是各种开发类库、框架、工具的出现。是以这个为终极目标的。

比如java web开发。SSO,Spring,WebFlow,Struts,iBatis。Hibernate,jQuery...。各种框架都是为了降低反复劳动,提高效率。提高安全可用为目标。

 

这方面样例不胜枚举:比如做html。javascript前端开发。採用jslint等工具对css,js脚本自己主动分析检查压缩打包等。部署hadoop及相关apache产品,採用一套自己主动化的脚本来自己主动化配置和部署集群。

自己主动创建KVM虚拟机。用于软件部署运维的測试。

 

假设你将反复地面临同一项工作,那就全然有必要将之自己主动化。阻碍自己主动化的目标实现的客观原因有非常多。以结果为导向的管理模式。仅仅重视你产出了什么。而忽视整个过程是多数项目经理常常採用的习惯性思维。这是一种仅仅顾眼前。不管将来的。仅仅考虑自己KPI的自私的行为。

作为程序猿,其最大乐趣来自于设计一个流程,然后能够预见性地观察整个流程正确无误地自己主动执行,其根源来自于人类的控制欲。

自己主动化的终于结果不是降低了生产率,而是大大提升了生产效率。然而自己主动化的过程是艰辛的,是常常得不到别人的理解甚至被误解。怎样在结果和过程中折衷?

 

我相信敏捷开发方法论的观点,不管做什么,首先就是产生一个结果。然后在这个结果上持续迭代。

事实上这就是爱因斯坦的小板凳的故事。

有就比没有进步,有了再去完好它。而不是上来就搞一个大而全的设计,投入一堆人开发。

甚至设计都是不必要的。不须要产品说明书,不须要需求文档。公司搞一堆产品经理是相当无意义的。开发者本身就应该负责设计和产品。

 

有了想法,马上付诸行动。当然这个想法并不等于异想天开。不等于胡思乱想。几个志趣相投的程序在一起最easy开发出产品。实际中我们常常看到,产品先设计,然后UIUE,最后开发拼命加班赶工,产品闲着上网玩游戏。

然后就是产品不符合预期,继续改产品,继续赶工。逐步陷入相似程序死循环的怪圈。

最后就是全然没有自己主动化,脱离流程,仅仅剩下一群天天加班的人。

编程工作本来应该是美好的生活的一部分,最后搞成了一锅粥里的死苍蝇。

 

 

高效编程的核心就是最大限度降低反复编码的工作。使用类库。框架,语法检查,构建工具等等,还仅仅是高效编程里最低端的方法论。有没有想过。全部的电商平台都具有同质化?全部的在hadoop平台上的大数据处理。做法基本雷同。

不同的地方在于參数。

一类的事情,最后的差异仅仅在于參数的不同。

比如当当网和卓越亚马逊都卖书,从程序的观点有什么差别吗?京东和苏宁有差别吗?大家都是在做相同的事情而已。为什么这些地方不能自己主动化?

 

如今这个世界,仅仅要你能想到的,仅仅要存在合理内核的,就一定有人已经做了。做的好坏是还有一方面。

我不但想了,并且也在做了。

可能有些东西有反复建车轮子的嫌疑,可是总有我的收获。

比如我採用自己主动化的脚本创建基于KVM的虚拟机,包含虚拟机网络配置。监控等动作,那么使我了解了OpenStack的原理。创建一个虚拟机并非从头開始的工作,而是通过模板——事先建好的各种类型的虚拟机——复制来的。再包含自己主动化安装一些软件:python,java,slatstack,daemontools等,把这些过程固定化,把安装过程脚本化。

把脚本框架化。又比如python程序通常都是要读输入參数,彩色输出。异常处理,循环日志。那么这些过程都能够规范和定型。

比如安装CDH版本号的hadoop集群和其它apache的开源软件(kafka,storm等),就全然能够通过脚本配置之后自己主动安装。由于hadoop及其周边产品太多,没有一个工具去安装和运维,肯定是受不了的繁琐和疲惫。因此能够採用一个二维表去直观配置主机和软件,比如我採用yaml来做配置,每一列代表一直软件名称,每一行代表主机名。例如以下 hacl-config.yaml(部分):

 

 

pkgids: ' hadn | hahis | hajn | halib | halibd | halzo | hamr | hanm | hann | hares | hazk | hbma | hbreg | hbrst | hbthr | hvbas | hvhb | hvms | hvsvr | imcat | imsh | imss | imsvr | kbc | kbs | sphis | spma | spwkr | zkbas | zksvr |'

 

config:

 

n1: ' + | + | + | - | - | + | + | + | + | + | + | + | + | - | - | - | - | + | + | + | + | + | + | - | - | - | - | - | + | - |'

 

n2: ' + | - | + | - | - | + | + | + | + | + | + | + | + | - | - | - | - | - | - | - | - | - | + | - | - | - | - | - | - | - |'

 

n3: ' + | - | + | - | - | + | + | + | - | - | - | - | + | - | - | - | - | - | - | - | - | - | + | - | - | - | - | - | - | + |'

 

n4: ' + | - | - | - | - | + | + | + | - | - | - | - | + | - | - | - | - | - | - | - | - | - | + | - | - | - | - | - | - | + |'

 

n5: ' + | - | - | - | - | + | + | + | - | - | - | - | + | - | - | - | - | - | - | - | - | - | + | - | - | - | - | - | - | + |'

 

n6: ' + | - | - | - | - | + | + | + | - | - | - | - | + | - | - | - | - | - | - | - | - | - | + | - | - | - | - | - | - | - |'

例注:hadn表示hadoop datanode。n1: 表示主机集群中的某台主机ID。

 

而这个配置文件hacl-config.yaml也不须要手写。利用一个web前端和数据库,就自己主动生成了这样的配置文件。然后后台python脚本就依照这个配置文件去自己主动配置、部署、启动和关闭主机集群上面的各种服务。

 

虽然我做的大部分工作是服务端开发,可是也要写web前端脚本。一个自我感觉非常受用的经验就是,写javascript也要像写java一样来写。接口。类。库这些概念和方法全然适用于js。而利用闭包的特性和json,能够构建出类库,类库之间存在包含关系。比如通过以下的一个调用,就能够解决js文件之间的引用问题:

 

 

 

标签:脚本,996,採用,虚拟机,编程,自己,hadoop,告别,主动
来源: https://www.cnblogs.com/itpy/p/11872076.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有