程序员按项目性质大致有三种:写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则可以作为业余另一种体验的选择。当然,这只是提议,不是强制规定。在保证开发效率的情况下,允许大家有自己的选择。

IDE有毒的更多相关文章

  1. 微信应用号(小程序)开发IDE配置(第一篇)

    2016年9月22日凌晨,微信宣布“小程序”问世,当然只是开始内测了,微信公众平台对200个服务号发送了小程序内测邀请.那么什么是“小程序”呢,来看微信之父怎么说 看完之后,相信大家大概都有些明白了吧 ...

  2. 使用 .NET WinForm 开发所见即所得的 IDE 开发环境,实现不写代码直接生成应用程序

    直接切入正题,这是我09年到11年左右业余时间编写的项目,最初的想法很简单,做一个能拖拖拽拽就直接生成应用程序的工具,不用写代码,把能想到的业务操作全部封装起来,通过配置的方式把这些业务操作组织起来运 ...

  3. 微信小程序IDE(微信web开发者工具)安装、破解手册

    1.IDE下载 微信web开发者工具,本人是用的windows 10 x64系统,用到以下两个版本的IDE安装工具与一个破解工具包: wechat_web_devtools_0.7.0_x64.exe ...

  4. Mac OS X 上编写 ASP.NET vNext (二) IDE配置

    上一篇中介绍了如何在OS X上搭建.Net运行时.不过光有运行时还不够,还需要有一个好用的IDE,有了IDE的支持,OS X上的开发才称为可能. 和上篇类似,这里先列举出具体步骤,个人可以根据自己的情 ...

  5. 感悟 GNU C 以及将 Vim 打造成 C/C++ 的半自动化 IDE

    C 语言在 Linux 系统中的重要性自然是无与伦比.不可替代,所以我写 Linux 江湖系列不可能不提 C 语言.C 语言是我的启蒙语言,感谢 C 语言带领我进入了程序世界.虽然现在不靠它吃饭,但是 ...

  6. Java 开发主流 IDE 环境体验

    前言 本来应该继续从 Oracle 官网搬砖的,但是随着示例代码越来越复杂,涉及的类库越来越多,使用 Vim 写 Java 代码就很力不从心了,是时候上 IDE 了.我最熟悉的 IDE 环境是 Ecl ...

  7. [Intel Edison开发板] 03、Edison开发IDE入门及跑官方提供的DEMO

    一.启动Eclipse爱迪生开发板IDE eclipse开发环境在iss-iot-win_03-14-16中,但是一定每次都是点bat脚本启动,否则就会少东西(windows->preferen ...

  8. 微信小程序(微信应用号)开发ide安装解决方法

    这两天整个技术圈都炸锅了,微信小程序(微信应用号)发布内测,首批200家收到邀请,但是没受邀请的同学,也不用担心,下面介绍一下解决方法. 首先需要下载ide,昨天只需要下载0.9版本的编辑器并替换文件 ...

  9. Atitit.ide技术原理与实践attilax总结

    Atitit.ide技术原理与实践attilax总结 1.1. 语法着色1 1.2. 智能提示1 1.3. 类成员outline..func list1 1.4. 类型推导(type inferenc ...

随机推荐

  1. adb server is out of date. killing...

    1.查看adb端口号 adb nodaemon server 打印:cannot bind 'tcp:5037' 2.查看端口被哪个进程占用 netstat -ano | findstr " ...

  2. zookeeper分布式锁实现

    1.定义分布式锁接口 package com.ljq.lock; import java.util.concurrent.TimeUnit; public interface DistributedL ...

  3. Spark算子选择策略

    摘要  1.使用reduceByKey/aggregateByKey替代groupByKey 2.使用mapPartitions替代普通map 3.使用foreachPartitions替代forea ...

  4. sublime text 下的Markdown写作

    sublime text 2(3)下的Markdown写作 什么是 Markdown wiki Markdown 是一种方便记忆.书写的纯文本标记语言,用户可以使用这些标记符号以最小的输入代价生成极富 ...

  5. 初学者--bootstrap(五)JavaScript插件(上)----在路上(6)

    jQuery 插件为 Bootstrap 的组件赋予了“生命”.可以简单地一次性引入所有插件,或者逐个引入到你的页面中. 一:首先要确认的是,单个还是全部引入: JavaScript 插件可以单个引入 ...

  6. IIS7.5+WebConfig实现页面伪静态和301重定向

    IIS7.5+WebConfig实现页面伪静态和301重定向 使用URLRewriter组件在windows 2003 +iis 6.0下配置伪静态的文章网络上一大堆.但在iis7.0或iis 7.5 ...

  7. win7+IIS7下木有4.0框架问题的解决方案

  8. 【Win10 应用开发】OCR识别

    OCR,即Optical Character Recognition,光学字符识别.以下介绍来自搜索: OCR(Optical Character Recognition,光学字符识别)是指电子设备( ...

  9. Java 超简单实现发送邮件(可动态控制发送人数)

    发送邮件的实现 需要事先引入以下几个架包,最重要的架包是jodd-3.7这个 以上架包下载地址:http://pan.baidu.com/s/1kVs7Tyv  提取密码:h22x 新建一个Util类 ...

  10. Extend Volume 操作 - 每天5分钟玩转 OpenStack(56)

    前面我们讨论了 volume 的 attach 和 detach 操作,今天讨论如何扩大 volume 的容量.为了保护现有数据,cinder 不允许缩小 volume. Extend 操作用于扩大 ...