程序员生存之道,谁开发谁运行谁监控

行业资讯
2019
05/20
13:21
江苏达内
分享

谁开发

开发很好理解,程序员的主要本质工作,通过代码的方式去实现业务需求。开发过程中也是很有讲究的,选用什么语言,java、python、还是go,需要根据实际的情况,选择一个最适合的。比如一个团队5个人,只有1个人会使用go,5个人都会java,如果go和java都能实现业务需求,这时候使用java开发会是一个比较好的选择,因为使用go,维护成本会比较高,需要其他成员去学习相关语言。

语言确定好之后,需要对业务分析和设计,又可以分为数据驱动设计和领域驱动设计,数据驱动设计是指,根据具体的功能,第一想到的是如何设计表结构,要存哪些数据,有哪些model类,每个model类中有很多的set、get方法,大多数程序员采用的是数据驱动的设计方式。另外一种领域驱动设计,需要划分领域,确定限界上下文、以及他们之间的关系,确定哪些是聚合根、哪些是值对象等等,也就是所谓的战略和战术的设计。

设计好之后,下一个步骤就是开发阶段了,开发阶段也面临着不同的选择,如何存储数据,mysql、redis、mongo等等。mysql一般适合存储结构性相对稳定的数据,redis适合那些经常被访问又不经常变化的数据,因为数据存放内存中,读取速度快,有助于性能的提升。mongo适合数据结构复杂,如商品属性,每个商品的属性个数是不一样的。写代码过程中,可能还需要使用一些设计模式,提高代码的复用性、扩展性。同时需要遵循一些原则,如开闭原则、单一职责原则等。代码编写过程中也需要遵循一些代码规范,包名小写,变量名使用名词,方法名使用动词等等,推荐使用阿里的一个代码规范插件。如果不符合规范会给出响应的提示,点击更多还给出了相应的示例。

开发过程中,经常涉及一个博弈的过程,一方面是项目进度,一方面是代码质量。以前我觉得项目进度的重要程度高于代码质量,随着时间的推移,系统越来越复杂,代码质量的问题越来越明显,可以通过代码review来改善这个问题,代码review有以下好处。杜绝不好的代码,将好的代码“发扬光大”,提高团队的整体水平,改善代码水平参差不齐的情况,最重要的是降低维护成本。当然也有不好的地方,code review比较耗时,但我相信磨刀不误砍柴工。

以上只是开发的一小部分,还有很多需要注意的地方,需要合理的做出取舍。

谁运行

大部分公司都有运维,开发人员开发完程序之后,就通过邮件或者钉钉等其他方式,通知运维,需要部署哪个应用服务,开发人员不需要关心发布部署的具体细节。其实作为开发人员有必要了解一下运维部署相关的工作,应用程序如何部署,是通过tomcat还是jar的方式启动,如果使用tomcat启动,如何设置参数。这些都是手动部署的方式,还有一些自动化的部署方式,通过jenkins + 脚本,jenkins提供了很多很棒的功能,比如jenkins可以配合git,只要有代码有push,通过webhook自动触发jenkins的部署。

kubenets和docker部署,让应用部署更便捷,但是相对来说比较复杂,需要安装相应的环境,还需要编写对应的docker file,门槛相对比较高。但这个肯定是趋势,随着技术的进步,不断的完善,以后可能会越来越简单,就像人工智能一样,现在也越来越多的机器学习相关的框架,对算法内部实现进行了封装,使用算法,就像方法调用一样简单,降低了门槛。

谁监控

程序开发完、部署好之后,还需要对应用进行监控,很大部分程序员会觉得监控是运维的工作,开发人员不需要关心监控。其实开发、部署只是开始,监控是至关重要的部分,监控能帮助我们发现问题,定位问题,改善问题。

监控的内容,主要分为机器的监控,调用链监控、jvm的监控、业务指标的监控。机器监控主要包括cpu、内存、磁盘等。调用链监控,在微服务的时代,调用链监控是非常重要的,通过分析调用链可以知道服务之间的调用关系,方便定位是否存在互相调用,或者调用不合理的情况,一般原则是下游依赖上游的接口,上游不能直接调用下游的方法。调用链还有一个最大的好处是能分析每个接口方法,调用了哪些方法,每个方法消耗了多长时间,方便对接口进行优化。接口优化的原则最好找那些经常调用,并且调用时间比较长的方法进行优化,这样的性价比最高。性能优化是一个长期的过程,不断的优化,给用户更好的体验。

程序员生存之道,谁开发谁运行谁监控

调用统计监控

程序员生存之道,谁开发谁运行谁监控

调用链监控

jvm监控,主要监控应用程序,堆栈、垃圾回收等情况,一个应用程序如果经常发生gc,因为“stop the world”导致性能的损耗,遇到这种情况需要排查定位问题,确定是YGC还是FGC,调整jvm参数,改善虚拟机的垃圾回收垃圾回收,提高应用的性能。

程序员生存之道,谁开发谁运行谁监控

jvm监控

程序员生存之道,谁开发谁运行谁监控

jvm监控

业务指标的监控,比如说接口请求次数,pv、uv等业务相关指标,可以通过相应的埋码,通过一些时间序列工具,如prometheus,进行收集和处理。关于prometheus的使用后续文章会做相应的讲解,这里先不做展开。

程序员生存之道,谁开发谁运行谁监控

业务指标统计

程序员生存之道,谁开发谁运行谁监控


【来源:江苏达内             作者:达内教育 】

THE END
免责声明:本文系转载,版权归原作者所有;旨在传递信息,不代表本网站的观点和立场。

相关热点

前端是个最近几年火起来的工种,而且持续火热中,有个词叫水涨船高,来的人多了,竞争多了,标准也就提高了。现在对前端工程师的要求跟当年前已经不能同日而语了。...
江苏达内
随着互联网行业的迅速发展,市场对于程序员的需求也在逐渐增大,越来越多的人开始转行到IT领域,程序员也不再是基于计算机学科或软件工程等个别专业的人。其他非计算机相关专业的,像物理、数学、英语、艺术甚至历史的,...
江苏达内
为什么大数据工程师比Java程序员工资高50%?...
江苏达内

相关推荐