简单的编程体会

今天的这篇博文,我不谈及具体的编程技术,只想从这段时间的学习以及写代码的过程中,分享一下自己的编程体会。

上周呢,项目中碰到了一个新的任务,要接入一个第三方外设厂商的蓝�牙设备,对方公司提供了一个sdk。其实接入一个sdk这个小事情呢,每个从业者都会碰到,合理的选用第三方的sdk服务能大大缩短我们的开发时间,让我们把目光都放到自己的核心业务上去。而碰巧这个sdk是对方公司新写出来的,于是,本着怀疑的态度,我开始了对这个sdk包的接入工作。

由于这个sdk包是新版,为了预防后面的升级,为了松耦合,我在这个第三方库上加了一层完整的封装。仔细的整理好项目的需求,封装了一层适用于项目的API接口,并且提供给团队的小伙伴使用。而既然是要提供给团队的小伙伴使用的API,我在编写代码的过程中慎之又慎,单元测试覆盖率基本达到了95%以上。很早以前我有一篇博文,是专门讲TDD模式和一款Kiwi的测试框架,其实那个阶段的我,更多的是停留在对那款单元测试的框架使用和摸索上,并没有极大程度的重视TDD的思想。而在又重读《Clean Code》这本书之后,单元测试的这根弦又在我脑子里绷紧了。

于是在这次的编码过程中,没有经过单元测试的代码,坚决不能放在生产环境里成了我坚持的原则,每一行代码都必须跑过,在各种条件下测试过,才会成为放心的代码,才能在之后放心的重构。不然小伙伴调用API的时候如果产生了一堆bug,你让我这张脸往哪搁。在这样的实践之下,我逐渐尝到了测试驱动开发这个思想的甜头,之前我还有接入其他设备的经验,但是当时赶工期,缺乏系统的单元测试,使得上线后bug不断,有时候debug时定位都要花费一些功夫,但是当你的每行代码都跑过单元测试时,你会对你的代码很有信心,并且能梳理的逻辑更清楚。况且,你要进行单元测试,那么以最小单元模块为单位的代码块或者函数,也必然是一段短小的代码,符合短函数的要求,最近苛刻的要求自己绝对不写超过20行的代码。只为函数的单一职责和逻辑清晰。

通过近期补充自己的数据结构和算法知识,我在敲代码的过程中,对这个方面,也多了一层考虑。从一些细节方面来思考怎么把代码写的更好,除了表层的代码风格,在组织数据时,考虑是否有合适的数据结构类型可以使用,并且哪怕小到一个排序算法,或者查找算法,也会想怎么写才能更有效率,平衡时间复杂度和空间复杂度的关系。这些意识都是之前所不具备的,所以感觉到最近自己在编程方面通过学习还是有一些提升的。而同时也很后悔自己对于这方面知识的学习来的太晚,回顾以前写的代码,还是生产了不小量的脏代码。检索一组规律数据,使用从头遍历这样时间复杂度底下的方式,实在不应该。

其他的一些编码细节也慢慢注意了起来,比如命名的更合理规范明确,比如函数在类里的摆放位置,一切其实都是为了一个事情,就是代码的可读性。写出来的代码20%的时间在开发,80%的时间在维护,可读性是非常重要的一件事情,而最近不断培养的也正是这个意识,只希望写出能让人读的舒服的代码。仅此而已。

近期敲得代码比较杂,写过前端三件套,HTML+CSS+JavaScript,并且系统的学习了Vue框架,也用了stylus这个css预处理器写过css,算法数据结构用Java写,后端的处理是php,框架使用了Laravel,iOS端Swift Objective-C混写,慢慢的有种感受就是,其实用什么框架用什么语言真的无所谓,早先时候,自己还是太过于追求框架,有时候学习的路线反而是不正确是,是要去深刻的理解一门语言,以及这个语言主要解决问题的场景,而非如何使用一个趁手的框架去完成任务,轮子是永远造不完的,旧的框架以后一定会被新的取代,而语言特性这种小细节,是需要去细细体会,花时间琢磨的。

今天随便说说的一些体会,也只是为了写出更好的代码,仅此而已。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,302评论 5 470
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,232评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,337评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,977评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,920评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,194评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,638评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,319评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,455评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,379评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,426评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,106评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,696评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,786评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,996评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,467评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,043评论 2 341

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,280评论 25 707
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 11,982评论 4 60
  • 1.迅速成功不可能,快速入门绝对有可能,而且还绝对有必要。 2.学习的目的是为了更好的用。 3.先学会“学习”,再...
    可可儿妈阅读 130评论 0 0
  • 我发现母亲开始有变化是在生下老三后,连续生了三个女儿,想要个儿子的父亲整天唉声叹气,母亲的脸上从此蒙上了一层厚厚的...
    素瓜豆阅读 583评论 0 3
  • 你喜欢的人喜欢着别人 你不喜欢的人喜欢着你 最终你喜欢的人和他喜欢的人在一起了 喜欢你的人和别人在一起了 而你 还...
    有故事的小可爱阅读 154评论 0 0