游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

陷入了写代码的完美主义陷阱怎么办?

  如何提升代码能力,以及如何克服这种又菜又想追求完美导致低效的问题呢?我们总结了鹅厂程序员们的方法。
  鹅厂内部,有一个关于陷入了写代码的完美主义陷阱怎么办的帖子,题主是这样写的:
  自认为代码编写和设计能力不弱,一般的代码逻辑也比较清晰。但是当要设计一个略大的项目,或者接手一个相对较新的代码,想要适当地做一些较大的重构的时候,就总是会感觉这样也不好,那样也不好,怎么做都会有一些缺陷,难以下笔。虽然能合理地拆分成几个模块,但是对每个模块的代码怎么写还是十分纠结,然后总觉得自己还是思路不够清晰,没有想清楚怎么继续调整,空耗了一些时间,最后还是以一个自己不满意的结构写完,这个过程中虽然有思考,但是有明显的局限,也导致效率有下降。
  求教:如何提升代码能力,以及如何克服这种又菜又想追求完美导致低效的问题。
  这大概是很多技术同学都想了解的问题,那么如何解决这个问题呢?我们总结了鹅厂程序员们的方法:1。一边写代码,一边继续思考A生。
  看到问题比较能感同身受,因为我记得自己有一个阶段也是这样。可能是对代码完美主义心有余悸,我在写完自己的书《Python编程进阶相关》时,还特意在结尾时留了一页,这么写道:
  本书的最后,我想额外啰唆几句。
  虽然本书自始至终都在说如何把Python代码写得更好这件事,但我还是希望最后提醒你一句:不要掉进完美主义的陷阱。因为写代码不是什么纯粹的艺术创作,完美的代码是不存在的。有时,代码只要能满足当前需求,又为未来扩展留了空间就足够了。
  完美主义如何产生危害?主要在于当我们面对规模较大的任务时(比如你提到的设计大项目、较大的重构),盘旋在脑海里的想法和声音太多了,每一个都在对我们说:这样做最好,能保你之后万事无忧!。在它们的包围中,我们先是花了大量时间纠结,之后无论做出哪种选择,似乎都不够好不仅效率受到影响,心理上也十分难受。
  要从完美主义的消极影响里走出来,最简单的办法就是不管它:继续写代码,继续纠结。当你重复做一件事情足够多次以后,那些宝贵的经验会自然而然地让你跳出完美主义,不再纠结。
  除了放任完美主义不管之外,另一个行之有效的办法则是测试驱动开发(TDD)。采用TDD后,你能更流畅地在两种角色之间转换:设计者(编写测试时)和实现者(编写代码时)。不同的角色能有效为你的思维设限,让你更清晰地思考,从而打磨出更好的设计。
  除此之外,TDD对于克服完美主义还有以下优势:编写测试本身就有助于写出耦合更低、结构更优良、更趋近于完美的代码当你纠结于代码好坏时,单元测试会像一位旁观者一样告诉你:代码没毛病,别瞎纠结。当你发现旧设计有问题,想重构时,单元测试也会辅助你在追求完美的路上万无一失
  最后,完美主义虽然有一些坏处,但适度追求完美也是必要的。反过来说,如果大家写代码时从不纠结,关于代码的最高指导思想就四个字:能跑就行,这样也很可怕吧。B生。
  绝大多数好的设计不是一蹴而就的,而是逐步演进出来的,除非要应对的场景本身就在我们的经验范围之内。
  大致路线可能是:先理解清楚业务需求,调研业界类似场景的解决方案。如果有解决方案,那这个设计一般已经是在别人那里演进过多轮了,结合自身场景的特殊性,加以适配使用现场的方案即可。如果没有解决方案,那首先应该感到兴奋,因为你正在做的事情很可能是在创新或者至少是微创新。这时候先设计一个版本把系统跑起来,后续迭代中再逐步去优化也是无可厚非的。
  上述过程中,可能方案调研是一个关键环节了,就像写论文中的综述部分。2。给代码一个进化的过程C生。
  当接到完整的需求或者接手已有项目的代码,这种情况会存在两个问题:
  一是大量需求并不是你和需求提出者一点点讨论、磨合出来的,没有经过长时间的需求分析、讨论,对需求的理解不够深刻。
  二是在全部需求都已知的情况下你试图一下子设计一套完整的结构、框架,不像新项目先设计一个简单但灵活的框架,然后随着需求的滚动增长不断调整设计、不断重构,同时也对需求理解更加深刻,我管这个叫做给代码一个生长、发育的过程或者给代码一个进化的过程。
  想一步到位设计出完美的架构是不可能的,编程最大的技巧就是无限深入需求,不断思考需求,让代码从小到大不断发展、重构,当然很多时候客观条件不允许,那就放下对完美代码的执着吧。
  顺便说一句,我反对大部分代码重构的原因是:大部分重构人只是新接触一个项目,重构的理由有时是我比较闲、有时间,或者对之前的设计感到不舒服。但他们缺乏重构的最重要条件,就是对需求比以前更加深刻地理解,和需求摸爬滚打在一起的决心。D生。
  引用React官网的一段话,也作为我陷入类似情况的一个破局之道不要过度思考。
  如果你刚刚开始一个项目,不要花超过五分钟在选择项目文件组织结构上。选择任何一种模版结构(或提出自己的方式)并开始编写代码。因为,在你编写了一些真正的代码之后,你将很有可能会重新考虑它。
  如果您感觉完全卡住,请先将所有文件保存在同一个文件夹中。它最终会变得足够大,以至于让你想要将其中一些文件拆分出去。到那时,你将有足够的知识去区分你最频繁编辑的文件。通常,将经常一起变化的文件组织在一起是个好主意。这个原则被称为colocation。
  随着项目规模的扩大,人们通常会在实践中混搭使用各种方式。因此,在开始时选择正确的那个方式并不是很重要。3。够好即可不意味着糟糕的代码E生。
  如《IEEE软件》杂志上一篇由爱德华尤登写的文章《够好即可的软件就是最好的》所述:
  你能训练自己写出够好即可的软件对用户、未来的维护者来说够好即可,只要好的程度能让你自己内心平静就可以。你会发现,你变得更有效率,用户也更快乐。而且,可能让你更开心的是,更短的孵化期促使你的程序实际上更好了。
  在进一步讨论之前,我们需要对将要讨论的内容做一些限定。够好即可这个词并不意味着草率或糟糕的代码。所有系统必须达到用户的需求才算完成,需要达到基本的性能、隐私和安全标准。你做的东西,从用户需求角度来说是否足够好?最好还是留给用户一个机会,让他们能亲自参与评判。
  与构想中的明天那个完美的软件相比,今天就还不错的软件通常更讨人喜欢。如果你早点给用户一点东西玩,他们的反馈常常能引领你做出更好的最终方案。
  《程序员修炼之道》第51页话题12:曳光弹F生。
  《重构》的作者KentBeck的有个两顶帽子说法我觉得很有道理:就是软件开发的过程应该有两顶帽子换着戴,一顶是开发新功能的帽子,一顶是重构的帽子。
  简单来说,就是楼主想添加新功能时,先不管实现是否优美,先把功能给写了;然后再切换成重构帽子,把它优化一下。注意,这两顶帽子是不断快速切换的,不是说你一下子写完好大一个模块再重构它,那是不行的。很多作家写作时大体也和这差不多。
  我觉得挺好用的。但是实践中也有很多别的问题,比如开始选得不好后面不好改啊,写出来难得重构啦,选来选去也选不好啊等等。我觉得这些可以靠经验解决啦,如果很熟练的话就应该就能做到胸有成竹了。作为一个小菜鸡,我还不够有经验,我希望我有一天能做到胸有成竹。H生。
  分享一下我的见解:
  (1)因为设计一个略大的项目,或者接手一个相对较新的代码是一个开放性的问题,较为抽象的问题。代码编写和设计能力不弱对于维护老的项目,做一些需求的改动这种依赖边界清晰的、具体的问题是足够的。要解决抽象的问题,还需要‘分析问题的能力’,以及‘创新能力’解决新问题。
  (2)要能很好地认识新问题,你需要给自己时间思考、分析问题。不要急于写下第一行代码。
  (3)我们不要从头发明看似简单的‘牛顿经典力学’,从课本里学习,初中生就能掌握,自己去思考,可能一辈子也不够。所以,面对新问题,我们首先要去调查其他人遇到过么,积累了哪些思考、实践、认知。
  (4)工程师的能力的提升,就是解决越来越抽象的、边界不清晰的、依赖不清楚的、依赖众多的问题。比如,极度抽象的,spaceX项目。

魔鬼天使扬思敏的风采惊鸿一瞥成就永远的震撼《魔鬼天使》电影是1995年上映的作品,其中在台湾大红起来的女演员杨思敏也有参与其中,年轻时候的扬思敏常常被观众用秀色可餐来形容她的美丽,这部作品里面饰演杜夫人,虽然出镜的时间……方琼简历个人资料简介老公杨阳比她大多少岁方琼被认为是在主持人中比较有前途,其实在出名之后,方琼更多的是认可了才能,但是在感情中就被说的非常不堪,还说方琼之所以上升的那么厉害,其实是因为方琼的丈夫杨阳,这个事情是怎么回……阿里最大股东是日企,腾讯背后是南非,小米京东有没有沦陷?阿里巴巴和腾讯是中国最大的两个互联网巨头,前者在生活方式上带来了巨大的改革,后者改变了人们的娱乐以及社交方式。能成为一个行业的尖端,身价自然也是不菲的。阿里巴巴巅峰时期市值为8……火影忍者小樱佐助强禁武力镇压强迫同人福利漫画《火影忍者》明明是那么多人喜欢的漫画作品,只是有些网友觉得作者更新的太慢,或者是不符合自己理想中的角色人物关系,进而在原作品的基础上二次创作除了同人系列,而《火影忍者》小樱佐助……iOS版PixelmatorPhoto开始预订良心价25元著名图像编辑应用Pixelmator开发团队计划在下周正式面向iOS平台推出其桌面级图像编辑应用PixelmatorPhoto。PixelmatorPhoto与Pixel……程序员2021。9。20、字节大战腾讯元宇宙:布局社交产品Pixsoul字节投资的代码乾坤,近日正式上线了元宇宙游戏《重启世界》。就在两个月前,被称为元宇宙第一股的Roblox登陆国内,由腾讯……郑媛媛未加工照片一辈子都被毁掉有什么消息吗郑媛媛未加工照片,和男友之间的各种照片曝光之后,社会网络中引起了很大的轰动,很多年人们都在找郑媛媛,还在说郑媛媛各种不要脸,很多网友也在起哄,希望可以放出更多关于郑媛媛的照片,……Android开发之ImageView播放GIF动画实例Android开发之ImageView播放GIF动画实例Android的原生控件并不支持播放GIF格式的图片,如果想在Android中显示一张GIF动态图片,可以利用Im……孙红雷丁嘉丽什么关系影帝成名前的私生活有多混乱孙红雷这名影帝成名之前的私生活到底有多么混乱,这一点看他的过往情史就知道了,估计很多人还不知道孙红雷和丁嘉丽到底是什么关系吧,如果说孙红雷的成名史,不得不说的就是丁嘉丽这个号人……双鱼玉佩事件是真的吗彭加木没回来被说队友吃了他双鱼玉佩被说的非常神奇,是说一个双鱼玉佩,就让整个团队全军覆没,这样的说辞简直是让人不敢相信,只是在当时那么严谨的情况中意外是怎么发生,主帅彭加木的消息是什么都不存在了,让太多……火影忍者雏田污图漫迷们期待的太多火影忍者这部动漫已经不知道有多少忠实的网友们每天在絮叨里面的人物故事,鸣人作为该部动漫的男主角,不论是他的战斗经历还是好友情谊,再到长大后的懵懂爱情,跟漫的朋友都在时时关注,雏……刘亦菲裸浴照视频截图电影情节被放大搭配私生活中刘亦菲在很多人心中其实是神仙姐姐,是什么人都难以代替,虽然此时很多人都在说什么神仙气质等等,可是和刘亦菲比起来简直是让我们不能够去说明什么,最近在网络中说刘亦菲裸浴照视频截图,……
海康威视推出可落地的建筑工业类型AR眼镜方案VR陀螺10月20日讯,据了解,海康威视自主研发了一款AR眼镜,该眼镜为智慧安全帽产品,名为iDS5AH100,配备双目近眼显示功能,具备头戴式摄像头用于移动场景第一视角的图像……新手必看亚马逊ERP无货源铺货的优势说起无货源模式,其实一些卖家都知道,因为国内做无货源模式的也是很多的,这种模式不需要囤货,不需要自己发货,不需要付费推广,就是采集别的平台的商品上架到自己的店铺出售的。不……米家指甲刀五件套磨砂质感,磁吸收纳。这才是我想要的!说到指甲刀,想必每个人都不只有一把吧?就我来说,我搜集了一下,不找不知道,一找吓一跳,怎么这么多啊?大的、小的等等不下七八把。但无论材质还是设计的美观度,都入不了我的法眼,我需……心动外卖想补齐履约短板,真的很难决定心动外卖的外卖生意能不能做成、其飞轮效应能否显现的核心要素正在于其履约能力。曹惺璧文7月中旬,字节系产品抖音即将推出心动外卖,正式进军外卖领域的消息在网上传开。……Web前端培训Web设计与Web开发Web设计和Web开发虽然经常互换使用,但描述了网站创建过程中两个不同但互补的组成部分。了解网页设计和网页开发之间的区别是很有必要的,尤其是如果你打算创建自己的网站。想要更进一……雷风科技上榜2021信创云企业50强近日,由中国科学院主管、科学出版社主办的商业期刊《互联网周刊》发布榜单,雷风科技入围2021信创云企业50强。(2021信创云企业排行)2021信创云企业排行榜(部分)……好看好用好安静海尔京尚变频柜机空调及海尔京东618活动推荐前言端午假期结束了,大家吃粽子了吗?粽子应该是甜的!描写端午的千古绝句有很多,比如诗圣杜甫的《端午日赐衣》。宫衣亦有名,端午被恩荣。细葛含风软,香罗叠雪轻。自天题处……挖矿显卡质保吗?良心品牌矿卡也质保目前没有厂家敢张嘴就说你是矿卡。没有任何技术层面的手段敢盖章出证明说你挖过矿。华硕质保详情华硕的品牌质量大家是有目共睹的,尤其是猛禽ROG系列都是高端玩家的最爱。犀利的外……升级windows10系统电脑耳机没声音的设置方法很多深度技术的用户,都会使用到电脑耳机,随着win10系统的普及,如今电脑用户安装升级windows10系统的越来越多,而且各种关于电脑的小问题也困扰着对电脑并不是很了解的人们……赢在起跑线上就相当于获得了加速度大家好,我是涩郎,一名知识挖掘师兼知识布道师。我最近越发的感觉到了一句真理:赢在起跑线上就相当于获得了加速度。理解了这句话,可能大家就能理解为什么人们都要头破血流的……win10正式版点击小娜Cortana无反应的解决方法有不少深度技术的小伙伴,可能不是很了解windows10系统中Cortana小娜有什么功能,其实,它是微软发布的全球第一款个人智能助理,帮助用户进行日程安排、问题回答等。但是有……新订单交付时间延长一周探店蔚来空间从8月份新势力TOP3的交付数据上看,理想以9433台再度霸占榜首,小鹏以7214台位居第二,而蔚来则仅有5880台,环比下降25。9,多少让人有些意外。毕竟,在大家都缺……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网