Java程序员的典型工作过程有哪些_Java程序员都要经历哪些阶段
原标题:Java程序员都要经历哪些阶段
程序员从菜鸟到优秀的过程是需要时间,经验,不断的进阶,小编和大家一起看看每个阶段都要经历哪些成长阵痛:
没有防卫
这个阶段很快就会过去,因为有无数的书本和”前辈”在提示防卫性编码的必要性。
疯狂防卫
无论是模块之间,还是模块内部,处处充满检查,首先是检查参数,其次是检查返回值和出参。最后,给自己写的函数通通加上指示成功失败的返回码。
如果有幸参加过代码评审会,对阶段二的代码应该不会陌生,看看到底哪里不对劲?
只管汇报,不管处理,不了了之
这些泛滥的防卫性代码有一个共同的特点–只管检查汇报,不管处理。所谓的处理就是一层一层的return错误码,典型的懒政行为,老子眼界不够高,做不了决定,把皮球丢给上级机关。上级机关面对来自不同下属的千奇百怪的错误码,他也没辙,只好再丢给上上级机关。这样层层上报,人手再多也搞不定,因为用来分析错误的上下文信息已经在层层汇报中丢失了。所以别看费了好大力气汇报错误码,最后除了一死了之或者睁只眼闭只眼也没有更好的办法。
内外不辨,亲疏不分
防卫是应该的,但不应该处处为营。国界线上要有边防军巡逻,但是省界呢?县界呢?设防是有成本的,在软件上就体现为交复杂度税。同一个模块内部,假设A调用B,如果B认为A传给它空指针是一个错误,那么A应该设计为永远不会把空指针传递给B,而不是在B处设防。模块内部设防,就好比两口子同床异梦,精力都内耗了。
人格分裂,自相矛盾
设计这种代码的人一方面认为自己思维缜密,步步设防,另一方面认为自己白痴到底,所以要步步设防,左手要防着右手。左右手互搏的代码散布得纷纷扬扬,几乎无法辨认有限的功能代码。
顾头不顾尾,屁股擦不干净
只要评审得足够仔细,总能发现这些防卫性代码的漏洞,要么是文件没关闭,要么是内存没释放。这是必然的,因为一个正常人根本没脑力搞定这么多细节。考虑到天量的路径组合和逻辑的自相矛盾,你也没办法设计测试用例来验证它。这就是为什么真的一不小心命中的话,结局总是很悲惨的原因。写到这里,我想起历史上重大的安全事故调查报告,事故之所以能发生,是因为多道安全闸门同时失效,而软件故障会更加可怕,因为后面的闸门本身就是炸弹。
说了这么多,那么阶段三到底又是什么样的呢?
边界清晰,御敌于国门之外
在模块的边界处,无论别人调用你还是你调用别人,一定要明确约定调用规范,一旦违反规范,立即启用错误处理流程,不要让错误在自己的模块内部流窜。
不给错误做二传手
如果发现错误,让错误到此为止,非必要,不接力传递错误码。
当断则断,早死早超生
所有程序的正确运行都是依赖于一定的前提条件的,如果你发现外部模块不工作了,遵从系统的错误处理策略,该报异常就报异常,该立即退出就退出,重要的是搜集好现场的证据。一味的容错处理既不能解决问题还会掩盖问题,导致错误扩散,变形,拖延定位问题的时机。
和谐社会,简单单纯
在模块内部,只有不言自明的约定,没有周伯通似的左右手互搏。好比乌龟,龟壳坚硬,但龟壳内部是一个柔软的世界。
这样的代码,模块内部几乎没有用于实现需求以外的代码,很容易阅读,仅通过黑盒测试就能实现代码覆盖。返回搜狐,查看更多
责任编辑:
Java程序员的典型工作过程有哪些_Java程序员都要经历哪些阶段相关推荐
- 程序员薪资怎么论高级还是初级_Java程序员的薪水取决于年龄还是技术?
1.薪资的高低与经验挂钩,但是经验的多少与从业年限没有必然的联系! 如果你工作以后,一直在别人设置的框架系统中编写代码,即使你工作再久,也依然知识一个初级程序员! 如果你工作以后,不断探索研究自己的框 ...
- java工作累不累_Java程序员的工作累不累?据说经常加班很辛苦?
我是刚花了2万培训java出来的,这里分享一下我和我的同学们现在的工作情况和待遇,希望这个视频能帮到你 {!-- PGC_VIDEO:{"thumb_height": 288, & ...
- java程序员从笨鸟到菜鸟之_Java程序员从笨鸟到菜鸟之(二)面向对象之封装,继承,多态(上)...
Java是一种面向对象的语言,这是大家都知道的,他与那些像c语言等面向过程语言不同的是它本身所具有的面向对象的特性--封装,继承,多态,这也就是传说中的面向对象三大特性 一:从类和对象开始说起: Oo ...
- java程序员从笨鸟到菜鸟之_Java程序员从笨鸟到菜鸟之(九十一)跟我学jquery(七)jquery动画大体验...
本文来自:曹胜欢博客专栏.转载请注明出处:http://blog..net/csh624366188 最近一直感觉自己好忙,每天都浑浑噩噩的过着,转眼间,好像有好长时间没有更新笨鸟到菜鸟了.现在想想, ...
- 程序员如何在工作后找到女朋友?
点击上方"程序IT圈",选择"置顶公众号" 关键时刻,第一时间送达! 本文来源于公众号:计算机与网络安全 https://mp.weixin.qq.com/s/ ...
- 橙子05-Mapreduce核心思想与工作过程
Mapreduce核心思想与工作过程 Mapreduce核心思想与核心函数 Mapreduce核心思想 Mapreduce核心函数 Mapreduce工作过程 本文有配套视频可以在B站观看 <M ...
- 过来人经验!工作五年以上的UI设计师都在干什么?
聊聊设计师的六大瓶颈期 http://www.mobileui.cn/talk-about-six-designer-bottleneck.html 0-2年,做交互设计,打基础,锻炼技能,积累经验 ...
- 工作五年以上的UI设计师都在干什么?
入行两三年,继续深造.转行还是回家乡?何去何从,不妨听前辈们聊聊他们的现状吧.今天这篇问答,既有奋战一线的华为.腾讯资深设计师,也有图安逸在三线城市工作的,既有设计科班生,也有26岁才入行的非科班生, ...
- 程序员找工作过程的注意事项及java web面试题
这篇文章呢,是写我在找工作过程中的一些事项,还有面试时遇到的面试题,以此总结,希望对以后的自己和看这篇文章的你有些许帮助哈哈. 在找工作过程中,我建议你先找到工作,再想着租房子的事情,不然在住大城市的 ...
最新文章
- Tomcat启动 java.lang.OutOfMemoryError
- 上传文件(Uploading Files)
- PAT_B_1055_Java(25分)
- 【Python】循环的拓展
- antd vue关闭模态对话框_详解打造 Vue.js 可复用组件
- javaweb图书管理系统源码
- 电脑命令教程计算机基础知识,电脑常用运行命令图文教程(DOS命令)
- Java 内部类与外部类的关系
- Windows系统下使用WCP搭建自己的本地知识库管理平台
- 基于MATLAB中的GUI设计的钢琴界面设计并能发声
- 虚拟存储器和cache的异同
- 业务流程管理,你准备好了吗?
- 【手把手教你如何从Tushare库下载股票数据,并保存在硬盘当中,第一篇数据过滤】
- 被Win10自带杀毒软件自动误删除的exe从这里找
- 抖音短视频直播电商企业号IP运营操盘商业计划书方案pdf
- 数字化转型定义及优秀案例
- JESD204标准概述
- 反射方程的分解、预计算BRDF
- 激活win7时报错,“很抱歉,程序无法在非MBR引导分区上进行激活”
- 新生儿不建议吃鱼肝油,这些你知道吗
热门文章
- Page directive: illegal to have multiple occurrences of contentType with different values
- stm32f407能跑linux吗_跑步能跑进医院?那我该做跑步运动吗?想健康一点太难了...
- mac 远程ftp服务器文件共享,mac 远程ftp服务器文件
- nvme通用驱动_对领域驱动设计的理解与实践
- c语言10个人 三向成绩,C语言入门学习精华:这样学习C语言最有效
- 【APICloud系列|14】xcode下载地址
- 异想维度 java_Java实现多字段(维度)复杂排序
- oracle修改某表中的顺序,oracle 数据库 , 表中字段顺序修改
- 怎么判断前轮左右的位置_新手开车技巧,确定前轮位置,准确判断与障碍物距离...
- Npm install failed with “cannot run in wd”