嗨玩手游网

编程中最难的就是命名?这几招教你快速上手

1000万云上开发者,全栈云产品0元试用:点击「链接」免费试用,即刻开启云上实践之旅!

本文通过案例的讲解强调了命名的重要性及养成良好的命名习惯一些建议。

作者 | 陈立(勤仁)

来源 | 阿里开发者公众号

你可不能像给狗狗取名字那样给类、方法、变量命名。仅仅因为它很可爱或者听上去不错。

在写代码的时候,你要经常想着,那个最终维护你代码的人可能将是一个有暴力倾向的疯子,并且他还知道你住在哪里。

一、为什么命名很重要?

在项目中,从项目的创建到方法的实现,每一步都以命名为起点,我们需要给变量、方法、参数、类命名,这些名字出现在代码的每个角落,随处可见,混乱或错误的命名不仅让我们对代码难以理解,更糟糕的是,会误导我们的思维,导致对代码的理解完全错误。如果整个项目始终贯穿着好的命名,就能给阅读者一个神清气爽的开始,也能给阅读者一个好的指引。

要知道,代码的阅读次数远远多于编写的次数。请确保你所取的名字更侧重于阅读方便而不是编写方便。

二、为什么很难正确命名?

有人称编程中最难的事情就是命名。我同样深以为然,中国有句古话叫做万事开头难。抛开环境搭建,真正到了编码阶段第一件事就是命名,而最常见的一种情况,就是毫无目的、仅凭个人的喜好的去决定了一个名字。但因为没有想清楚目标和具体实施步骤,所以进行过程中往往会面临无数次的小重构甚至是推倒重来。

1、缺乏意愿

害怕在选择名字上花时间,对做好命名的意愿不足,随心所欲,甚至无视团队对命名的基本规范,觉得编译器能编译通过,代码能正常运行就成。

其实对发现的命名问题进行重构和推倒重来并不可怕,最可怕的是当下程序员不具备发现问题后肯回过头来纠偏的意愿。这终将演变成为一场灾难。

2、缺乏思考

没想清楚被命名的事物是什么,事物应该承担什么职责,是否会对其他人造成误解。

新手程序员总会花很多时间学习一门编程语言、代码语法、技术和工具。他们觉得如果掌握了这些东西,就能成为一个好程序员。然而事实并不是这样,事实上,编程不仅仅关乎掌握技能和工具,更重要的是在特定范畴内解决问题的能力,还有和其他程序员合作的能力。因此,能在代码中准确的表达自己的想法就变得异常重要,代码中最直观的表达方式是命名,其次是注释。

3、缺乏技巧

选一个好的名字真很难,你可能得有较高的描述能力和共同的文化背景。并且知晓一些常见且应该避免的命名问题。

如果最终还是没法找到合适的名字,还请添加准确的注释辅助他人理解,等想到合适的名字后再进行替换,不过往往能够通过注释(母语)描述清楚的事物,命名应该问题不大,问题大的是连注释都无法准确表达,那说明可能当前类、函数、变量承担的职责太多太杂。

三、如何正确的命名?

这里不讨论具体语言的命名规则,原因是不同编程语言命名规则各不相同,甚至不同团队间相同语言的命名规则也有出入。这里主要从提高可读性出发,结合我所在的客户端团队日常开况,以Java作为演示语言,给一些关于命名的建议。

1、名副其实

无论是变量、方法、或者类,在看到他名称的时候应该以及答复了所有的大问题,它应该告诉你,它为什么会存在,他做什么事,应该怎么做。如果在看到名称时,还需要去查找注释来确认自己的理解,那就不算名副其实。而且在发现有更好的命名时,记得果断替换。

Case1:到底怎样算End?

代码示例:

public interface OnRequestListener {/** * 请求结束 只有成功点才认为是真正的结束 * @param ... */void onRequestEnd(....);/** * 请求开始 * @param ... */void onRequestStart(...);}

大脑活动:

onRequestEnd是请求的什么阶段?请求成功和失败任一情况都算 “end”吗?喔,原来注释有写:“只有成功点才认为是真正的结束”。

修改建议:

// 省略注释public interface OnRequestListener { void onStart(....); void onSuccess(....); void onFailure(...);}2、避免误导

在每种语言中都有内置的标识符,他们都有特定的含义,如果和他们没有关联就不要在命名中加上他们。

2.1 避免使用令人误解的名字Case1:命错名的集合

代码示例:

private List<SectionModel> dataSet;

大脑活动:

“dataSet” 在最初一定是为了元素去重选择了Set类型,肯定后来某一个历史时刻发现有bug被偷偷改成了List类型,但是变量名没变。

代码跟读:

跟踪提交记录,呃,在18年被刚定义时就是 List<***> dataSet;

修改建议:

private List<SectionModel> dataList;或者private List<SectionModel> sections;Case2:不是View的View类

代码示例:

/** 作者+日期 */public class RItemOverlayView {}

/** 作者+日期 */public class NRItemOverlayView {}

大脑活动:

“N”是啥意思?类名只有一个N的字母差别,难道是新旧的差别,新的和旧的有什么区别呢?

类名以View结尾,嗯,应该是一个视图,可是,视图为啥不用继承视图基类的?

代码跟读:

喔,N确实代表“New”的意思,NRItemOverlayView被首页推荐使用,RItemOverlayView被购后推荐使用。

这个类主要核心工作是构建浮层视图(职责并不单一),而类本身并不是一个真正的视图;

修改建议:

// 放在首页推荐场景的包下public class ItemOverlayViewCreator {}

// 放在购后推荐场景的包下public class ItemOverlayViewCreator {}Case3:整形变量为啥要用is开头

代码示例:

private int isFirstEnter = 0;

大脑活动:

为什么“is”开头的变量却声明成整形?到底是要计数还是判断真假呢?

代码跟读:

isFirstEnter < 1 做第一次进入的逻辑

修改建议:

private boolean isFirstEnter = true;Case4:开关作用反掉啦

代码示例:

....if (InfoFlowOrangeConfig.getBooleanValue(POST_DELAYED_HIDE_COVER_VIEW_ENABLE, true)) { hideCoverImageView();} else { delayedHideCoverImageView();}

大脑活动:

为什么开关名为“delay....”为“true”的时候,走的不是delay逻辑,那开关要怎么发?容我多看几遍,是不是最近没休息好所以看岔了。

代码跟读:

反复看了几遍,确实是开关命名和实际操作完全相反,开关名意为“延迟隐藏封面视图”,执行的却是“立即隐藏封面视图”。

修改建议:

....if (InfoFlowOrangeConfig.getBooleanValue(IMMEDIATELY_HIDE_COVER_VIEW_ENABLE, true)) { hideCoverImageView();} else { delayedHideCoverImageView();}

剩余60%,完整内容请点击下方链接查看:

编程中最难的就是命名?这几招教你快速上手

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

自学数控编程零基础90天学成UG:艺风云翳陌森亲授330集教程

热爱数控编程的小伙伴们,你们的福利来啦。数控编程最基础的就是机床程序的应用操作,只要你们熟练掌握UG,数控编程师的称号就会为你们冠名。

想想都兴奋,能够成为一名数控编程工程师,成为高收入的那一撮人群的其中一个,对外说出去多么有排面啊!

小编也知道,有好多小伙伴确实在学习。不过呢,在你们学习的过程中一定遇到过各种各样解决不了或者是你们认为步骤繁琐复杂的情况。

焦灼至极,急的那是抓耳挠腮也是半点办法想不到。“这个程序怎么回事?明明看别人用的那么简单啊~”别人是用小技巧解决的,如果没有老师告诉你们,你们永远也不知道。

小编也是心系各位宝宝们,特地为宝宝们整理准备了一套零基础学习UG的330集实用操作小技巧,专门为零基础的小白宝宝们量身打造,助你成功踏足编程工程师岗位。

今天这套330集UG数控编程实用技巧里面包含:UG界面丶基本操作丶草图设计丶曲线基本参数丶曲面指令丶曲面分析丶同步建模丶高级特征建模丶工程图丶零件设计丶造型与编程汇总等等。

还有我们常见的UG编程基础的参数命令:CAM用户界面丶通用参数丶加工模块和UG常用基本快捷键的指导说明。

330集UG实用小技巧还涵盖:UG后处理制制作丶UG外挂丶线割出图丶深孔钻基础的程序编写丶模架编程以及产品编程。

其中还为我们讲解到各种模具编程知识:手机精密出口模具丶小型家电模具丶大型家电模具丶大型汽车模具等实战精讲。

最重要的一点就是330集UG实用小技巧还特别向我们讲授了一套培训班老师也不一定会告诉学员的:多位老师的工厂实战编程经验。

你们不是也说自己在编程的时候难就难在这空刀跳刀的方面,恰好小编给你们整理出来的这套实用技巧里面有专门讲解的刀路优化参考范例。

剩下的就是一些UG拆电极方面的技巧了、UG拆电极的基本操作还有电极设计思路。应有尽有,只有你想不到的,没有小编整理不出来的。

当你想学UG编程,找不到学习的方法?

想是问题做才是答案,提供免费的视频资料 UG软件等各种一切免费资料

关注小编私信回复: UG

可以领取学习资料,祝大家学有所成!

全新数控车床编程加工和操作图解,在真实环境下一步步教你掌握技能!

第二版 特点介绍:

1.重点修订了固定循环指令G71和G72的内容,并根据数控加工的特性修订了部分插图表述。

2.基于最新标准GB/T24740-2009修改了数控加工常用定位支承与夹紧符号以及常见装置符号部分内容

3.所有涉及的操作画面均来自于数控系统的画面“截屏”,操作画面与数控车床的数控系统完全一致。

4.基于Mastercam X4版的内容更新为Mastercam X9版,并对其内容进行了修订,以更好地满足读者的需要。

示例:

以 FANUC 0i mate-TC数控车削系统为对象,以数控车削加工为目标,以图解形式为表现手法,介绍了数控车削加工的手工编程、加工工艺及自动编程等基本理论,并详细介绍了数控车床的操作方法。最后还提供了数控车削操作示例供实际练习与应用。

对于有一定基础的读者,可直接学习第 4章和第 5章的内容,迅速提高数控车削编程与操作水平。

本书适合从事数控工作的技术人员学习,也可作为应用型本科、高等职业技术院校数控技术专业学生参考。

经常内容鉴赏82-83页:

(1)内孔车刀的结构类型与特点:

(2)螺纹车刀的结构类型与特点

本书以图解手法表现数控车削加工编程与数控车床操作技术,全书共分5章。

第1章数控车床基础知识,介绍了学习数控车削加工必须的数控车床基础知识与数控车削编程指令的基础知识,重点修订了固定循环指令G71和G72的内容,并根据数控加工的特性修订了部分插图表述。这一章是学习数控车削加工的必备基础。

第2章数控车削的加工工艺,介绍了数控车削加工工艺与刀具方面的知识,基于最新标准GB/T24740-2009修改了数控加工常用定位支承与夹紧符号以及常见装置符号部分内容。

第3章数控车床的基本操作,详细介绍了FANUC 0i mate-TC数控系统及其数控车床的操作方法,所有涉及的操作画面均来自于数控系统的画面“截屏”,操作画面与数控车床的数控系统完全一致。本章主要修订了第1版中的不足与错误部分,并对部分插图进行了更新。

第4章计算机辅助编程(CAM)基础。学习数控加工技术的人都知道,手工编程是学习数控加工的基础,一定必须掌握,而自动编程是数控加工实际应用的主要手段,学好自动编程是解决设计问题的可靠保证。本章由原来基于Mastercam X4版的内容更新为Mastercam X9版,并对其内容进行了修订,以更好地满足读者的需要。

第5章数控车床的典型操作示例分析,以作者最近几年的学习与教学体会,更新了部分操作示例,供读者检查自身的学习水平。

《数控车床与加工编辑操作图解》第二版

最新标准,截屏式图片讲解

长按二维码 购买

拖动右侧滚动条可以查看全目录▼

前言

第1章 数控车床基础知识1

1.1 数控车床的结构、组成与工作原理1

1.1.1 数控车床的分类2

1.1.2 数控车床的结构与组成3

1.1.3 数控车床的工作原理7

1.2 数控车削刀具工作部分结构分析8

1.2.1 数控车削刀具工作部分的基本概念与结构8

1.2.2 典型车削刀具工作部分的标注角度及结构分析12

1.2.3 车削加工切削层参数13

1.3 数控车床的坐标轴与坐标系14

1.3.1 机床坐标系的标准规定14

1.3.2 坐标轴及其方向15

1.3.3 机床参考点与坐标系15

1.3.4 工件坐标系17

1.4 FANUC 0i mate-TC数控系统指令17

1.4.1 G指令18

1.4.2 M指令20

1.4.3 T指令21

1.4.4 S指令21

1.5 数控车削加工程序的结构图解与构成分析22

1.5.1 数控车削加工程序的格式分析22

1.5.2 数控车削加工程序段的一般格式22

1.6 数控车削基本编程指令图解与分析23

1.6.1 坐标系指令23

1.6.2 坐标值与尺寸26

1.6.3 插补功能指令27

1.6.4 进给功能33

1.6.5 主轴速度功能指令35

1.6.6 参考点指令36

1.6.7 刀具偏置(补偿)37

1.6.8 刀尖圆弧半径补偿指令(G41/G42/ G40)41

1.6.9 子程序及子程序调用指令(M98/M99)46

1.6.10 跳过任选程序段47

1.7 数控车削固定循环指令图解与分析48

1.7.1 简单固定循环指令48

1.7.2 复合固定循环指令54

第2章 数控车削的加工工艺66

2.1 加工顺序的分析与确定66

2.1.1 数控车削的特点66

2.1.2 加工方案的分析与确定66

2.1.3 工序划分的原则与方法67

2.1.4 工序划分的注意事项68

2.2 加工路线的分析与确定68

2.2.1 加工路径的划分原则68

2.2.2 加工路径的划分图例69

2.3 工件的装夹方式分析与确定72

2.4 数控车削刀具的结构分析与选择76

2.4.1 车床刀具的结构类型76

2.4.2 机夹可转位车刀77

2.4.3 可转位刀片型号表示规则80

2.4.4 机夹式车刀的结构类型和特点80

2.5 数控车削切削用量的选择84

第3章 数控车床的基本操作88

3.1 机床数控系统操作面板的组成88

3.2 CKA6150型卧式数控车床操作面板92

3.3 数控车床的基本操作96

3.3.1 开机与关机96

3.3.2 手动返回参考点96

3.3.3 手动进给、增量进给与手作97

3.3.4 机床的急停与超程处理100

3.3.5 数控车床的手动选刀与主轴手动起动101

3.4 数控车床的运行方式102

3.4.1 存储器运行102

3.4.2 MDI运行104

3.4.3 DNC运行105

3.4.4 存储卡(CF卡)DNC运行106

3.5 程序的试运行108

3.5.1 机床锁住运行108

3.5.2 机床空运行109

3.5.3 程序单段运行109

3.5.4 进给速度与快速移动速度倍率调整110

3.5.5 程序的跳选与选择停111

3.6 数控程序的输入与输出113

3.6.1 数控程序的输入与输出方法113

3.6.2 数控程序的检索、建立与删除114

3.6.3 数控程序的输入119

3.6.4 数控程序的编辑120

3.6.5 数控程序的编辑功能扩展128

3.6.6 程序的后台编辑140

3.6.7 RS232通信传输程序输入142

3.6.8 存储卡程序传输输入143

3.7 功能键POS显示的画面145

3.7.1 绝对坐标位置显示146

3.7.2 相对坐标位置显示148

3.7.3 综合位置坐标显示150

3.7.4 功能键POS显示画面的其他功能152

3.8 功能键PROG显示的画面153

3.8.1 程序内容显示画面153

3.8.2 程序检查画面154

3.8.3 当前程序段显示画面155

3.8.4 下一个程序段显示画面156

3.8.5 MDI操作的程序画面157

3.9 EDIT方式下按功能键PROG显示的画面157

3.9.1 显示使用的内存和程序清单157

3.9.2 显示指定组的程序清单158

3.10 功能键OFS/SET显示的画面160

3.10.1 刀具偏置量的显示与设定160

3.10.2 工件坐标系的显示与设定170

3.10.3 显示和输入设定数据174

3.10.4 顺序号的比较和停止176

3.11 功能键SYSTEM显示的画面177

3.11.1 系统参数的显示与设定177

3.11.2 显示和设定螺距误差补偿数据180

3.12 功能键MESSAGE显示的画面182

3.12.1 外部操作信息履历显示182

3.12.2 报警信息的显示183

3.12.3 报警履历的显示184

3.13 功能键CSTM/GR及图形显示功能185

3.13.1 图形显示的基本知识185

3.13.2 图形显示的操作步骤187

3.13.3 图形显示的缩放操作188

3.14 帮助键HELP及其显示画面189

3.14.1 概述及帮助功能组织结构189

3.14.2 报警的详细信息查询190

3.14.3 操作方法的查询192

3.14.4 参数表查询193

3.15 清屏功能194

第4章 计算机辅助编程(CAM)基础195

4.1 Mastercam功能简介195

4.2 Mastercam数控车削编程流程216

4.2.1 编程的一般流程216

4.2.2 编程举例217

4.3 Mastercam数控车削编程方法221

4.3.1 基本参数的设置与操作221

4.3.2 Mastercam数控车削编程——粗车编程227

4.3.3 Mastercam数控车削编程——精车编程230

4.3.4 Mastercam数控车削编程——沟槽车削编程232

4.3.5 Mastercam数控车削编程——车端面编程241

4.3.6 Mastercam数控车削编程——车螺纹编程243

4.3.7 Mastercam数控车削编程——切断编程250

4.3.8 Mastercam数控车削其他编程方法分析253

4.3.9 Mastercam数控车削编程——综合编程练习示例260

4.4 Mastercam软件自动生成程序的结构分析与修改261

第5章 数控车床的典型操作示例分析270

5.1 数控车削加工工件坐标系的设定方法270

5.1.1 工件坐标系设定方法回顾270

5.1.2 工件坐标系设定示例270

5.1.3 工件坐标系设定综合实训275

5.2 刀具指令及刀具偏置程序示例275

5.2.1 几何偏置对刀程序示例与分析276

5.2.2 标准刀对刀程序示例与分析283

5.2.3 刀尖圆弧半径补偿分析与数据设定291

5.2.4 刀具偏置功能对工件加工尺寸的调整与控制297

5.2.5 刀具偏置补偿使用时的注意事项306

5.2.6 多刀加工实训307

5.3 数控程序的手工输入与存储器运行310

5.3.1 程序的手工输入与存储器运行基础310

5.3.2 固定循环指令的程序示例313

5.4 数控车床的程序传输与DNC(计算机辅助编程及应用)325

5.4.1 RS232通信参数的设定325

5.4.2 RS232通信口数控程序传输与试运行328

5.4.3 存储卡通信参数的设定及其程序的传输和试运行330

5.4.4 CF卡的DNC加工示例332

5.5 计算机辅助编程与加工示例333

5.5.1 计算机辅助编程与程序修改333

5.5.2 计算机辅助编程与存储卡DNC

加工实训338

参考文献339

热门图书排行

☞金粉最爱图书排行☞机械加工排行☞生产管理排行☞设计软件排行☞最新上架

点击下方“阅读原文”进入首页

更多攻略
游戏推荐
更多+