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

IDE有毒

程序员按项目性质大致有三种:写Demo的、写Proto的、写成品的;按项目开发周期大致有:写开头的、写中间的、写结尾的。

  • Demo是样品,主要是表面上初步实现,临时忽悠客户用的,不一定要求继续演化;
  • Proto是原型,主要是从概念上实现,可能包含了对于底层框架的选型,能逐步演化为成品;在一些场景中Demo和Proto的意义接近;
  • 成品即完整实现的产品,满足用户实际业务场景。

大多数培训学校教出来的孩子,一开始写出来的东西最多只能叫Demo,根本达不到Product的阶段。那些外包公司做出来的东西,能算哪一类呢?

而所谓写开头的,就是项目刚开始、还可以很自由的选择熟悉的或者Big高的框架来点垃圾代码;写中间的,就是业务高速发展、不管代码质量好坏、没时间吃药的写代码;写结尾的,就是项目进入萎缩期,留一个人在那打扫打扫灰尘、整天吐槽代码的状态。

IDE有毒这个主题,其实与上面的话题无关,主要是感叹于程序开发工具发展到如今,依然有明显的两极分化:Editor和IDE。

我毫无挑起争吵的意愿。在接触规模化开发之前的N年时间内,我折腾过市面上几乎所有的Editor(这里就不提所谓编辑器之神和神之编辑器了),尤其是jEdit,修复过它的一些bug、给它写过语言mode,也算是为开源世界贡献过微力的。但后来团队项目中,由于使用的多数是动态类型语言,用编辑器实在是效率太低,才开始选择IDE。

我个人的习惯是小的脚本或者一些配置文件修改可以用Editor,但团队协作开发的项目代码量都会积累到比较大型的状态,就必须用IDE了。一些Editor可以做到快速启动、内存占用少、快速编码、自由扩展特性,这是很多人选择Editor的理由;相应的,IDE能智能感知代码、错误提示、项目管理、任务管理、VCS等各种集成,是另一部分人选择的理由。

IDE对于多数程序员来说是有毒的,因为你用了就会上瘾,用久了更是毒入骨髓。Editor则往往可以为它编写各种扩展或插件,那种参与的过程会让人有种莫名的满足感。

在公司内部团队环境,IDE是一般最优的选择。Editor则可以作为业余另一种体验的选择。当然,这只是提议,不是强制规定。在保证开发效率的情况下,允许大家有自己的选择。

相关文章:

  • 遍历数组,将数组中key值相同的对象合并
  • RAID磁盘阵列详细说明
  • linux下安装php的imagick扩展模块(附php升级脚本)
  • 正则校验非中文 加长度校验
  • Day8-php 文件的操作
  • toFixed() 踩坑----四舍六入 银行家算法
  • 基于.net开发chrome核心浏览器
  • juery 选择器 选择多个元素
  • Object.keys() 判断每一行的值是否相等
  • IBM公布Kitura 1.0和Bluemix Runtime for Swift 3
  • vsCode 文件保存自动格式化 设置
  • 程序员客栈携手野狗 体验国内领先的实时后端云协作
  • MyEclipse中点击Deploy MyEclipse J2EE Project to Server无响应解决方法
  • react 项目 计算列表金额 数据 汇总并实时变更
  • MongoDB学习(一)
  • create-react-app项目添加less配置
  • extract-text-webpack-plugin用法
  • HashMap剖析之内部结构
  • Java|序列化异常StreamCorruptedException的解决方法
  • java2019面试题北京
  • javascript 总结(常用工具类的封装)
  • js如何打印object对象
  • MySQL的数据类型
  • storm drpc实例
  • 翻译:Hystrix - How To Use
  • 基于web的全景—— Pannellum小试
  • 记一次和乔布斯合作最难忘的经历
  • 警报:线上事故之CountDownLatch的威力
  • 坑!为什么View.startAnimation不起作用?
  • 类orAPI - 收藏集 - 掘金
  • 罗辑思维在全链路压测方面的实践和工作笔记
  • 前端相关框架总和
  • 区块链分支循环
  • 区块链技术特点之去中心化特性
  • 长三角G60科创走廊智能驾驶产业联盟揭牌成立,近80家企业助力智能驾驶行业发展 ...
  • 选择阿里云数据库HBase版十大理由
  • ​3ds Max插件CG MAGIC图形板块为您提升线条效率!
  • ​Spring Boot 分片上传文件
  • ​一些不规范的GTID使用场景
  • (delphi11最新学习资料) Object Pascal 学习笔记---第2章第五节(日期和时间)
  • (vue)el-checkbox 实现展示区分 label 和 value(展示值与选中获取值需不同)
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (备忘)Java Map 遍历
  • (三) prometheus + grafana + alertmanager 配置Redis监控
  • (原創) 如何使用ISO C++讀寫BMP圖檔? (C/C++) (Image Processing)
  • (转)c++ std::pair 与 std::make
  • (转)iOS字体
  • (转)VC++中ondraw在什么时候调用的
  • (转载)CentOS查看系统信息|CentOS查看命令
  • (转载)虚函数剖析
  • ****** 二十三 ******、软设笔记【数据库】-数据操作-常用关系操作、关系运算
  • *p++,*(p++),*++p,(*p)++区别?
  • .NET C#版本和.NET版本以及VS版本的对应关系
  • .net core 实现redis分片_基于 Redis 的分布式任务调度框架 earth-frost
  • .net core控制台应用程序初识