0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

程序员的基本功有哪些

工程师人生 来源:工程师吴畏 2018-12-28 14:31 次阅读

记得来TW之前看到过一个论坛上有人对TW的一条评价:这是一个奇怪的公司,非常强调代码风格。

现在已经在TW工作半年多了,回想起这句话,发现自己已经完全融入到这种“奇怪的”代码风格了。简言之,就是要把程序写的清晰易懂,易维护。具体如何达到这种目的。可以参看下面thoughtworks文集中的一篇,对象健身操,中所阐述的“编程规范”。

方法只使用一级缩进

拒绝else关键字

封装所有的原生类型和字符串

一行代码只有一个“。”运算符

不要使用缩写

保持实体对象简单清晰

任何类中的实例变量都不要超过两个

使用一流的集合

不使用任何Getter/Setter/Property

以上的这些标题如果感觉不是很能表意,不妨去网上搜下或者买本thoughtworks文集看看。其中第一条中的具体内容提到“把函数控制在5行”。其他条目中也有一些具体的“变态的”要求。

我在开头把“编程规范”打上引号的意思是:这不是真正要严格遵守的规范,而是一个方向。以此为方向写出来的程序能够在一定程度上符合前面提到的“清晰易懂,易维护”。我一直认为,标准一定是要定高一些的,这样即使不能完全达到标准的要求,也会为此为努力。比如你的标准是60分,你可以轻松的达到而自我满足;而我的标准是101分,虽然永远都达不到,可是我可以保持在饥饿的状态,从而不断的进步。

工作的前4,5个月,大部分时候写的是一些新代码。可以开心的按照上述的原则去编码。事实上写出来的代码也能够让自己觉得满意:短方法,表意的名字,测试,清晰简单的结构。并且感觉现代IDE对这种代码风格也是比较支持的。直到从TWU回来,回到原来的项目。项目进入support阶段。其实就是给人家修修bug。关键这些bug不是我们之前做的新功能引入的,而是他们的陈年老bug,两三年前的都有。所以这个阶段写的新代码少,多数是先读懂之前的代码,然后做少许修改。不得不说看这些老代码看起来真是恨痛苦,很慢。很多超过一屏甚至两屏的长函数,在我们24寸的大显示器下。

在抱怨老代码写的像一坨的同时,突然觉得,还是自己看代码的能力有欠缺。一直工作在相对来说比较简单易懂的代码库上,然后去看这些一坨的代码就好像一个人很整洁很爱卫生的人突然被扔到垃圾堆里,异常难受。而对于常年在垃圾堆里生活的人们早已久闻不觉其臭,甚至还对垃圾堆中的那些病菌产生了抗体。世界没有那么美好,工作中总是会遇到不尽如人意的代码库,无论是做交付还是做咨询。所以除了要有写出清晰漂亮代码的能力外,还要有读复杂,凌乱的代码的能力和改造复杂凌乱代码的能力,也就是我们常说的重构。

复杂代码可以分成两种:

一种是受到语言,平台,库的限制,使得代码无法写的非常简短和易懂。比如使用纯c,没有很好的语言特性和可用的sdk,使得实现复杂逻辑的时候不可避免的要写出很长很复杂的代码。有时短的代码也不一定清楚,比如在代码中大量使用组合表达式或者是位运算符,在让代码变短的同时,变得更难懂。这些时候通常是处于效率的考虑。

一种是我们有了更高级的语言和其上的大量的框架。如java+spring+struts+hibernate,或者是直接用Ruby on rails,Django等更易用的工具。通常在这些框架下写程序,是很容易遵循上面提到的让程序清晰简单的原则的。如果在这样的基础上写出了让人摸不着头脑的代码,那就完全是程序员的责任了。

现在有种感觉,在层层叠叠的框架下写程序,就像是搭积木,越来越简单。底层封装的越来越严实,程序员都像白痴一样机械的在框架中填写你想实现的业务逻辑。发明框架的原因是为了让程序员不再重新创造轮子。但是长期在框架上工作的结果是,大家都不会做轮子了,真正有一天需要你做点不太一样的轮子的时候,就sb了。

程序员写代码的能力是凌驾于语言之上的,是思考问题,抽象问题和用另外一种语言简洁,有效,清晰地描述问题的能力。我相信一个能写出优秀c代码的人通过一段时间对java及其上的一些框架的学习,也能写出优秀的java代码。

目前我正在学习各种各样的框架,平时的工作也是在这些框架上工作,越来越感觉,学习这些新知识的同时,做为一个程序员的基本功也不能放下。框架是很好的东西,在提高生产力方面,但是框架让写程序变得简单的同时也会降低对程序员的要求,久而久之,基本功就被荒废了。如何锻炼这些基本功?个人认为用最简单的语言,如c,去做一些算法题是一个不错的主意;或者不甘做玩积木的小孩儿,看看框架的源码。其实做为一个计算机专业的学生,这些锻炼应该是当学生的时候都好好练习过的东西。如果现在发现有所欠缺了,就赶紧补补吧。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 程序员
    +关注

    关注

    4

    文章

    953

    浏览量

    29819
收藏 人收藏

    评论

    相关推荐

    阿里云升级通义灵码AI程序员,全面上线

    近日,阿里云宣布其备受瞩目的通义灵码AI程序员已正式全面上线,为开发者带来更为强大和便捷的编程辅助工具。 此次上线的通义灵码AI程序员,在功能上实现了全面升级。现在,它支持VS Code
    的头像 发表于 01-09 11:16 172次阅读

    TMS320C6000程序员指南

    电子发烧友网站提供《TMS320C6000程序员指南.pdf》资料免费下载
    发表于 12-24 17:19 0次下载
    TMS320C6000<b class='flag-5'>程序员</b>指南

    TMS320C55x DSP CPU程序员参考补充

    电子发烧友网站提供《TMS320C55x DSP CPU程序员参考补充.pdf》资料免费下载
    发表于 12-21 11:36 0次下载
    TMS320C55x DSP CPU<b class='flag-5'>程序员</b>参考补充

    UCD3138A64/UCD3138128程序员手册

    电子发烧友网站提供《UCD3138A64/UCD3138128程序员手册.pdf》资料免费下载
    发表于 12-09 14:42 0次下载
    UCD3138A64/UCD3138128<b class='flag-5'>程序员</b>手册

    机械革命发布CODE AI程序员

    近日,英特尔新质生产力技术生态大会在成都举行,机械革命作为重要参展商带来了多款明星产品引爆全场!其中更是在AI PC软件生态产品发布分论坛上,Intel、智谱、机械革命三方联合发布了专为程序员设计的CODE AI程序员本,成为本次大会的一大亮点。
    的头像 发表于 11-30 10:34 439次阅读

    Linux驱动程序程序员指南

    电子发烧友网站提供《Linux驱动程序程序员指南.pdf》资料免费下载
    发表于 11-22 15:53 0次下载
    Linux驱动<b class='flag-5'>程序</b><b class='flag-5'>程序员</b>指南

    AI编程工具会不会抢程序员饭碗

    AI编程工具可辅助编程,减少手动编码,提升效率,对程序员积极影响也有挑战。程序员需深化技能、拓宽知识应对。长远看,AI与人类程序员将共生共荣。
    的头像 发表于 11-08 10:17 189次阅读

    第五届长沙·中国1024程序员节开幕

    据官方媒体报道,10月24日;  第五届长沙·中国1024程序员节在湖南湘江新区开幕;本次中国1024程序员节以“智能应用新生态”为主题。设置岳麓对话、技术英雄会、主题峰会及赛事、展览等活动,一场
    的头像 发表于 10-25 15:42 214次阅读

    程序员节视频创意大赛,用串口屏赢取千元大奖

    10月24日,程序员专属的节日里,我们盛大开启“程序员节视频创意大赛”特别活动!这不仅是一场视觉的盛宴,更是智慧与创意的璀璨碰撞。我们诚挚邀请每一位程序员及编程爱好者,拿起你的镜头,记录下那些平凡日子中的不凡瞬间,让编程的魅力与
    的头像 发表于 07-08 10:38 72次阅读
    <b class='flag-5'>程序员</b>节视频创意大赛,用串口屏赢取千元大奖

    程序员节视频创意盛宴,邀您共襄盛举!

    10月24日,程序员专属的节日里,我们盛大开启“程序员节视频创意大赛”特别活动!这不仅是一场视觉的盛宴,更是智慧与创意的璀璨碰撞。我们诚挚邀请每一位程序员及编程爱好者,拿起你的镜头,记录下那些平凡日子中的不凡瞬间,让编程的魅力与
    的头像 发表于 07-04 09:00 67次阅读
    <b class='flag-5'>程序员</b>节视频创意盛宴,邀您共襄盛举!

    适者生存,程序员最终会流向哪……

    程序员没有永远的护城河!!就目前的互联网大环境来看,it行业已经是……
    的头像 发表于 03-11 17:11 420次阅读
    适者生存,<b class='flag-5'>程序员</b>最终会流向哪……

    薪资高、青春饭,是不是程序员=青楼?

    花期太短。技术迭代快,年龄大容易失业。 就这几年的互联网环境而言,不管是前端、Java、Android开发等等行业。已经感受到程序员不是太卷就是工作难找,薪资过低。以前高工现在拿着中低程序员薪资
    发表于 03-06 21:32

    瑞萨Flash程序员V3 发布说明

    电子发烧友网站提供《瑞萨Flash程序员V3 发布说明.pdf》资料免费下载
    发表于 02-19 09:37 1次下载
    瑞萨Flash<b class='flag-5'>程序员</b>V3 发布说明

    2024程序员的未来方向如何走?还看今朝

    这几年的IT行业想必大家已经感受到了,Android、Java、前端等等程序员都经历了大厂……
    的头像 发表于 02-02 09:45 839次阅读
    2024<b class='flag-5'>程序员</b>的未来方向如何走?还看今朝

    1月18号“纯鸿蒙”千帆启航,程序员预备!

    。 如何正确看待鸿蒙? 我作为程序员来说,首先是看鸿蒙的发展、市场开发岗位、薪资以及前景。 这几年对鸿蒙的发展情况来分析,从2019年开始鸿蒙的出来今天,华为鸿蒙取得了很大的成就。从“不兼容
    发表于 01-16 22:13