当前位置: 首页 > news >正文

写代码的正确姿势

需要一个合适的键盘,这里未必要那种上千元的机械键盘,只要用着顺手就行了。以前我玩吉他的时候圈子里就流传着一句话:技术不足,设备来补。要知道,好的乐器和音响或许还真能弥补一些演奏效果的缺陷,不过换做写程序,恐怕不行。我个人现在除了笔记本的键盘外,台式机还用着60块买的联想标配键盘,没感觉有什么不舒服。

让程序员们一直争论不休的应该是编辑器的选择。vim, emacs, vscode… 这里编辑器真的也没有绝对的好坏,哪个用着顺手用哪个就行了。不过编辑器毕竟是编辑器,任何企图将编辑器变成IDE的做法都是在找麻烦。

IDE相对于编辑器,提供了更多的功能。比如即时语法检查,代码提示,优化提示,重构…这些功能有些编辑器或许能通过装插件来实现,我知道的vim就有几款插件还算不错,比如YCM。emacs没用过,不知道。不过插件再怎么装,跟IDE也是相距甚远。这个可以自己用一下试试,说再多也没有。

这里需要说一下,文本编辑器和IDE其实是两个东西,IDE并不是一个功能更多的文本编辑器。当然,要是有人这么想或者这么用也没办法。当我们的写代码的时候,实际上是把我们头脑中的设计写出来,在这个过程中,思路是尽可能不要被打断的。而IDE恰好会时不时的打断你的思路。写完一句话忘了分号给你报个错,写个复杂点的逻辑提示你可以优化…但我们在写设计的时候其实没有必要关心细节是否正确,甚至代码提示也可以没有,函数名写一个象征性的近义词都是可以的。一气呵成,将设计写完,回过头来在修改就容易了。要知道,编码上出现的错误一般都是低级错误,而设计上的错误往往才是大错误。

所以我个人写代码一般用vim+IDE,写完之后IDE在过一遍就OK了。当然,IDE关闭语法提示也是个不错的选择。把文本编辑器的有点和IDE的有点结合起来才能提高生产力,切勿准求完美的工具。设计没有完美的,工具也一样。linux和windows不也是各有所长嘛。

只用文本编辑器写代码?呵呵。

调试器,尽量不用。而有人特别喜欢用调试器,写完一个函数调一波,没问题再写下一个,跟做单元测试一样。同样,思路会被打断,不推荐。

From: 写代码的正确姿势

相关文章:

  • 从用户的视角看待网页设计(三)
  • 源码安装ncurses-devel
  • update-alternatives——linux软件版本管理命令
  • 自适应css和屏幕探测
  • php5.3 php-fpm 开启 关闭 重启
  • linux 下的 rsync 文件同步
  • Redis---Sorted-Sets数据类型操作
  • 闭包的好处罗列
  • Knuth-Morris-Pratt Algorithm
  • cas记录
  • spring事物的传播行为及隔离
  • 华为通报 6 名前中高层被抓疑泄露资料给乐视酷派
  • linux cp/scp命令+scp命令详解
  • 在Spring Boot中使用Spring Retry
  • 用C#开发Windows服务监控系统使用
  • JavaScript 奇技淫巧
  • MySQL Access denied for user 'root'@'localhost' 解决方法
  • Nginx 通过 Lua + Redis 实现动态封禁 IP
  • rc-form之最单纯情况
  • Twitter赢在开放,三年创造奇迹
  • vue-cli在webpack的配置文件探究
  • WordPress 获取当前文章下的所有附件/获取指定ID文章的附件(图片、文件、视频)...
  • 阿里云ubuntu14.04 Nginx反向代理Nodejs
  • 半理解系列--Promise的进化史
  • 搭建gitbook 和 访问权限认证
  • 区块链分支循环
  • 十年未变!安全,谁之责?(下)
  • 使用权重正则化较少模型过拟合
  • ionic入门之数据绑定显示-1
  • 函数计算新功能-----支持C#函数
  • ​VRRP 虚拟路由冗余协议(华为)
  • # Pytorch 中可以直接调用的Loss Functions总结:
  • #includecmath
  • #LLM入门|Prompt#1.8_聊天机器人_Chatbot
  • #图像处理
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • (07)Hive——窗口函数详解
  • (173)FPGA约束:单周期时序分析或默认时序分析
  • (2)Java 简介
  • (2)nginx 安装、启停
  • (2)STM32单片机上位机
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (ZT)一个美国文科博士的YardLife
  • (顶刊)一个基于分类代理模型的超多目标优化算法
  • (附源码)计算机毕业设计SSM在线影视购票系统
  • (附源码)计算机毕业设计大学生兼职系统
  • (推荐)叮当——中文语音对话机器人
  • (转)JVM内存分配 -Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=512m
  • .htaccess配置重写url引擎
  • .net Application的目录
  • .net core webapi Startup 注入ConfigurePrimaryHttpMessageHandler
  • .net wcf memory gates checking failed
  • ??如何把JavaScript脚本中的参数传到java代码段中
  • @ComponentScan比较
  • @RequestParam @RequestBody @PathVariable 等参数绑定注解详解