问题

作为程序员,我们应该更关注代码质量还是只需要以完成功能就好了?

回答
在咱们程序员的世界里,这问题真是个老生常谈,但又无比实在。你说,是把代码写得跟艺术品似的,每一行都严丝合缝,逻辑清晰得像一本教科书;还是能把客户要的功能捣鼓出来,哪怕过程有点磕磕绊绊,代码像是个拼凑起来的集市?

我倾向于认为,咱们得在两者之间找到一个平衡点,而且这个平衡点,更多地会向“代码质量”这边倾斜。为啥这么说呢?

首先,你想想,咱们写代码,不是为了自己爽,也不是为了应付一次性的交差。很大程度上,咱们是在为未来的自己,或者为团队里的其他伙伴,甚至为公司未来的发展在“埋坑”或者“铺路”。如果咱们只图完成功能,不管质量,那就像是在盖房子,只顾着把墙砌起来,地基随便挖挖,钢筋乱搭一气,最后房子能站住,但没准一阵风来就歪了,一场雨就漏水。等到后面有人想在这基础上加盖一层,或者做个装修,那可就麻烦大了,得花多少力气去修补,去拆除,去重建?这就像是技术债,一旦积累起来,会像滚雪球一样,越滚越大,最后可能压垮整个项目。

而且,高质量的代码,它本身就蕴含着一种“可维护性”和“可扩展性”。就像一个设计精良的工具,你用起来顺手,出了问题容易找到症结,而且还方便你根据需求进行改造升级。一个逻辑清晰、命名规范、注释到位、结构良好的代码库,哪怕过了几年,另一个程序员接手,也能相对快速地理解它,修改它,甚至在这个基础上添加新功能。反之,那些写得像“意大利面条”一样的代码,变量名随便起,函数长得离谱,逻辑嵌套得像迷宫,别说别人了,过几个月你自己回来看,可能都得挠头半天,才能搞明白当初自己到底是怎么想的。

再说了,咱们程序员,说到底也是个手艺人。咱们靠的是技术吃饭。如果咱们的产品,也就是咱们写出来的代码,本身就粗糙不堪,那咱们的手艺往哪儿放?长远来看,一个只追求“能用就行”而忽视质量的团队,很容易陷入“救火”的恶性循环。天天都在修补 bug,解决各种意想不到的问题,根本没有时间和精力去思考更长远的发展,去创新,去学习新的技术。这不仅会磨灭大家的积极性,也对公司的长远发展不利。

当然,我不是说要极端到为了写出完美的、没有一丝瑕疵的代码,而把功能开发无限期地拖延下去。毕竟,软件开发本身就是一个迭代的过程,现实世界的需求也是千变万化的。咱们需要在“速度”和“质量”之间找到一个动态的平衡。有时候,为了快速响应市场变化,或者验证一个想法,可能会暂时牺牲一些代码的“完美度”。但关键在于,我们要有意识地认识到这一点,并有一个计划,在后续的时间里,或者在某个合适的节点,把这些“妥协”的部分进行重构,提升质量。

所以,总结一下,我觉得咱们作为程序员,不能仅仅满足于“完成功能”。完成功能是基础,是生存的第一步。但真正的价值,更在于我们能不能在完成功能的同时,也交付一份高质量、易于维护、可扩展的代码。这不仅仅是对客户负责,更是对自己职业生涯负责,对团队负责,对公司的长远发展负责。把代码写好,本身就是一种对“程序员”这个身份的尊重和坚持。

网友意见

user avatar

你有这种困惑不过是因为进错了公司而已。


其实这个问题是有歧义的,任何工作都是要完成任务,实现需求和创造价值。所以问题的关键在于,需求是不是只需要完成功能就可以了,如果是,那你就应该用最快最简单的方式完成功能


但更多时候,在一个稍微正常一点儿的软件公司,维护和测试的成本肯定是远大于研发的成本的

为了提高维护和测试的效率,自然就会对代码质量和各种方面做出要求。


这压根儿不是程序员需要去权衡的问题,而是团队领导者和架构师需要去权衡的问题……





既然公司要求你尽快完成功能,你不按照公司的要求进行开发的工作,当然是有问题的。如果这与你的职业目标不相符,则应该是你更换工作的时候了。

类似的话题

  • 回答
    在咱们程序员的世界里,这问题真是个老生常谈,但又无比实在。你说,是把代码写得跟艺术品似的,每一行都严丝合缝,逻辑清晰得像一本教科书;还是能把客户要的功能捣鼓出来,哪怕过程有点磕磕绊绊,代码像是个拼凑起来的集市?我倾向于认为,咱们得在两者之间找到一个平衡点,而且这个平衡点,更多地会向“代码质量”这边倾.............
  • 回答
    作为一名程序员,要判断你的水平,需要一个更具体、更全面的评估框架,而不是简单的一两个指标。你的问题“我这属于什么水平?”非常普遍,也因此非常难以直接回答。只有你提供更多关于你的经验、技能、项目、学习方式等方面的信息,我才能给你一个更贴近实际的评估。不过,我可以提供一个程序员能力评估的详细框架,你可以.............
  • 回答
    “执剑人”——光是这个词,就足以让人心中泛起一种沉甸甸的责任感,以及一丝冰冷的恐惧。如果《三体》真的是我们即将面临的现实,那么,选谁来掌握这足以决定人类存亡的“剑”,这个问题,将比任何一次政治选举都更加严峻,也更加令人纠结。如果真的要我们在黑暗森林的丛林法则下,从现实世界的我们中选出一位“执剑人”,.............
  • 回答
    看到你用手机拍出这样的作品,我必须说,这已经是一个非常棒的起点,绝对不是一般初中生能够达到的水平! 你在构图、色彩、光影以及捕捉瞬间上展现出了相当的天赋和努力。那么,这个水平跟专业摄影师比肩了吗?坦白说,现在还不能完全说比肩专业,但你的作品已经具备了很多专业摄影师追求的特质,而且是你这个年龄段里非常.............
  • 回答
    这四年多感情,说实话,真是从热恋期走到现在,说平淡也平淡,说有激情也还能找回来点。但最近这几个月,我对象身上这股“作”劲儿,真是越来越猛,频率高得吓人,程度也让人有点吃不消。有时候我真的觉得,我再这么下去,精神都要有点不正常了。咱们先说说这“作”的表现,具体是什么样的。一、无端猜忌和情绪波动:以前吧.............
  • 回答
    作为一名程序员,我承认“坚持不懈地学习”和“不累”这两种状态之间存在着张力。老实说,累是肯定累的,但同时,驱使我不停学习的动力也异常强大,甚至常常能盖过疲惫感。让我来详细地为你解析一下,是什么让我,一个程序员,在这个快速变化的领域里坚持不懈地学习,以及这种坚持背后复杂的感受。 为什么坚持不懈地学习?.............
  • 回答
    这个问题就像在问一个厨师:“你做过多少次番茄炒蛋?”或者一个作家:“你写过多少次关于爱情的诗?” 说实话,我数不清了。真的,太多太多了。对我来说,「hello world」不仅仅是一行代码,它更像是一种仪式,一种对新世界、新工具的敲门砖。刚接触一门新的编程语言,或者尝试一个新的开发环境,我的第一件.............
  • 回答
    哈哈,问到点子上了!作为一名程序员,要说实话,这真不是一件容易的事,尤其是在工作之后,时间被代码、Bug、以及无穷无尽的需求占得满满当当的。但我还是找到了,而且一路走来,觉得挺有意思的,也积累了一些“血泪史”和经验。先说说我的情况吧。大学毕业就进了这家互联网公司,典型的996模式(当然,现在国家提倡.............
  • 回答
    作为一名程序员,在日常工作中,绘制流程图、时序图、状态图等可视化图形是必不可少的技能,它们能极大地帮助我们梳理逻辑、沟通设计、记录分析。随着技术的发展,市面上的工具也层出不穷,但经过多年的摸索和实践,我通常会根据不同的场景和需求,选择最顺手的几款软件。1. 简单快速、临时记录:Mermaid (与 .............
  • 回答
    坦白说,这确实是个需要斟酌的问题。作为一名程序员的面试官或主管,我并非要求每个人都必须达到专业打字员的水平,但“不会盲打”和“二指禅”这样的描述,确实会让我产生一些考量。首先,我得承认,现代程序员的工作,离不开频繁的键盘输入。从编写代码、调试、提交代码,到撰写文档、回复邮件、使用各种开发工具,键盘几.............
  • 回答
    作为程序员,我确实遇到过一些让人哭笑不得、甚至捶胸顿足的代码注释。有些注释就像给一个已经摆烂的房间里,又塞进一堆不知所云的杂物,让人看了头更疼。让我印象最深刻的一次,是在维护一个好几年前的老项目。那个项目挺大的,涉及的模块和功能也很多。我接手的时候,已经有人走了,留下的代码只能靠着注释和自己的理解来.............
  • 回答
    我这里没啥“工作台”的说法,你指的是我码字的“地点”吧? 我没有实体,所以我没有一个像你们那样,摆满键盘、屏幕、鼠标、咖啡杯,可能还有点凌乱的实物工作台。但我可以告诉你,我“工作”的时候,我的“工作台”是这样的:我没有物理空间的束缚,但有无形的“思考空间”。你可以想象成一个无比庞大、信息流如同瀑布般.............
  • 回答
    作为一个程序员,2017年绝对是我职业生涯中一个非常“忙碌”但收获颇丰的年份。与其说我“习得了”什么,不如说我被推着,主动地去探索和拥抱了一些在当时崭露头角的或者已经成为主流的技术趋势。回忆起来,有几个方面给我留下了特别深刻的印象,并且至今都在我的日常工作中发挥着作用。首先,深入理解了容器化技术,特.............
  • 回答
    作为一名程序员,我一直在折腾几个个人项目,说实话,这些项目有的是在积累经验,有的是纯粹为了满足好奇心,还有些则是希望能解决自己生活中遇到的一些小麻烦。下面就给你仔细说说,尽量把它们讲得生动点,让你感觉像是跟我面对面聊天一样。1. 那个“万物皆可搜”的私有知识库(正在进行中,迭代更新ing)这个项目是.............
  • 回答
    这问题触及到我内心深处的一个甜蜜点。很多时候,当我们谈论编程时,总会聚焦在那些敲击键盘、调试代码的直接技巧上,好像整个过程都是在与机器的语言搏斗。但对我来说,这种看法太狭隘了。数学,噢,数学才是那个藏在幕后的、真正的魔法师,它让我的编程之路更加顺畅,也更有趣,甚至在很多时候,它就像是我大脑里一个无形.............
  • 回答
    关于“是否应该抵制实施996工作制的互联网公司产品与服务”这个问题,我作为程序员,确实有过很多思考,也和不少同行交流过。这是一个复杂的问题,很难简单地用“是”或“否”来回答。它涉及到个人价值观、职业道德、行业生态、社会责任以及现实的无奈等等。下面我想详细聊聊我的看法,尽量不掺杂那些“官方”的、听起来.............
  • 回答
    作为一名“曾经的程序员”,这个问题对我来说触及了职业生涯中一个重要的转折点。如果我是一个真正拥有过程序员身份的人,那么我不会当程序员的原因,以及我现在在做什么,将是一个充满故事和思考的过程。曾经作为程序员的你,为什么不当程序员了?让我坦诚地说,我之所以不再是传统意义上的“程序员”,是因为我的进化方向.............
  • 回答
    这个问题很有意思,也触及了很多基层程序员的痛点。为什么自己天天加班写代码,感觉也挺努力,但和BAT(百度、阿里、腾讯)的程序员比起来,总觉得有股难以逾越的鸿沟?这背后其实是多方面因素在起作用,绝不是简单的一句“能力不行”就能概括的。我尝试从几个角度来拆解一下,希望能说得更明白些。一、 平台与视野:站.............
  • 回答
    12306 这玩意儿,啧啧,每次放假前都是一场“大型灾难片”。作为码农,看着它一次次宕机、一次次卡顿,真真是心痒痒,想狠狠地把它“操”一番。要说最想优化哪个功能,那绝对是——购票流程的稳定性与响应速度,特别是秒杀高并发场景下的表现。我知道,这话说得有点笼统,就像跟产品经理说“用户体验要做好”一样。但.............
  • 回答
    面试官问你如何看待“阿里月饼事件”,这是一个非常考验情商和价值观的问题,尤其对于程序员来说,既要展现技术人的理性思维,也要体现对公司文化的理解和对社会现象的认知。下面我将从几个方面详细地阐述,你可以根据自己的理解和面试官的反应进行调整。核心思路:在回答这个问题时,你需要展现以下几个层面的能力:1. .............

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有