提交代码前问自己七个问题!(福利:留言送《统计之美》)

640?wx_fmt=jpeg

为什么写出好的代码是如此之难? 为什么经过了这么多年的努力,有这么多的最佳实践/工具/方法学 (例如:瀑布式开发,迭代开发,Scrum , XP, 单元测试,TDD,持续集成,UML,Code Review ,IDEA, Eclipse......  这个名单可以非常长),我们还是无法创造高质量的软件? 

有市场的原因,需求的原因,工期的原因,也有程序员的原因。 

Bozhidar Bozhanov 在他的文章《7 QUESTIONS TO ASK YOURSELF ABOUT YOUR CODE》 (点击阅读原文可查看)提出了7个问题,我觉得很有价值, 我把他翻译了一下,分享给大家:

1. 代码是正确的吗?  

是不是实现了规格说明书中的需求?如果没有的规格说明书,你自己是不是付出了足够的努力来找出软件期待的行为, 并且把它测试了一遍? --- 最好是自动的,至少也得有手工的测试。 

2. 代码是完整的吗?

不管你的需求文档中写没写, 你的代码是不是仔细考虑了边界条件?  很多边界条件都是技术相关的:连接断开,内存不足,硬盘已满等等。

3. 代码是安全的吗?

它是不是遵循了安全的最佳实践,是否验证了输入数据,防止了数据注入? 它是否经过了对已知攻击的安全测试? 安全当然不仅仅是代码, 但是代码的确可以引入不少安全漏洞。

4. 代码是可读、可维护的吗?

其他人是不是可以轻松地理解你写的代码? 有没有适当的注释来描述一小部分代码在一个大场景中的位置?有没有把代码拆分成小的,可以读的单元。

5. 代码是可以扩展的吗?

代码是否允许添加新的功能而不破坏老的代码? 是不是参数化的,或者可以配置的? 有没有使用恰当的设计模式来支持扩展?

6. 代码是不是高效的?

在高负荷下能否工作正常?  是否避免了一次性读入大量数据到内存中,是否适当地使用了异步的处理?

7.  有没有一些让你可以自豪的地方?

你觉得你的代码会让你很自豪,还是说你想把它藏起来不让别人看到?

大部分的代码都是平凡的,不是光芒四射的,但是你的代码是不是展示了一些比较好的实践?你是否愿意把他放到GitHub上去? 

其实这些问题不仅仅要在提交代码之前思考,在Code Review的时候也完全可以借鉴。

高质量的软件依赖很多因素,程序员可以说是最重要的一环。我觉得经常问问自己这些问题并且采取行动,你最终会变得与众不同。 

福利时间!!!

送出10本《统计之美》,在评论区留言说说那些让你自豪的代码吧,如果没有的话,讲讲让你崩溃的代码也行,点赞前10名送书。截止时间:3月22日晚8点。

640?wx_fmt=jpeg

640?wx_fmt=jpeg

资源下载链接为: https://pan.quark.cn/s/5c50e6120579 在Android移动应用开发中,定位功能扮演着极为关键的角色,尤其是在提供导航、本地搜索等服务时,它能够帮助应用获取用户的位置信息。以“baiduGPS.rar”为例,这是一个基于百度地图API实现定位功能的示例项目,旨在展示如何在Android应用中集成百度地图的GPS定位服务。以下是对该技术的详细阐述。 百度地图API简介 百度地图API是由百度提供的一系列开放接口,开发者可以利用这些接口将百度地图的功能集成到自己的应用中,涵盖地图展示、定位、路径规划等多个方面。借助它,开发者能够开发出满足不同业务需求的定制化地图应用。 Android定位方式 Android系统支持多种定位方式,包括GPS(全球定位系统)和网络定位(通过Wi-Fi及移动网络)。开发者可以根据应用的具体需求选择合适的定位方法。在本示例中,主要采用GPS实现高精度定位。 权限声明 在Android应用中使用定位功能,必须在Manifest.xml文件中声明相关权限。例如,添加<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />,以获取用户的精确位置信息。 百度地图SDK初始化 集成百度地图API时,需要在应用启动时初始化地图SDK。通常在Application类或Activity的onCreate()方法中调用BMapManager.init(),并设置回调监听器以处理初始化结果。 MapView的创建 在布局文件中添加MapView组件,它是地图显示的基础。通过设置其属性(如mapType、zoomLevel等),可以控制地图的显示效果。 定位服务的管理 使用百度地图API的LocationClient类来管理定位服务
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值