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则可以作为业余另一种体验的选择。当然,这只是提议,不是强制规定。在保证开发效率的情况下,允许大家有自己的选择。
IDE有毒的更多相关文章
- 微信应用号(小程序)开发IDE配置(第一篇)
2016年9月22日凌晨,微信宣布“小程序”问世,当然只是开始内测了,微信公众平台对200个服务号发送了小程序内测邀请.那么什么是“小程序”呢,来看微信之父怎么说 看完之后,相信大家大概都有些明白了吧 ...
- 使用 .NET WinForm 开发所见即所得的 IDE 开发环境,实现不写代码直接生成应用程序
直接切入正题,这是我09年到11年左右业余时间编写的项目,最初的想法很简单,做一个能拖拖拽拽就直接生成应用程序的工具,不用写代码,把能想到的业务操作全部封装起来,通过配置的方式把这些业务操作组织起来运 ...
- 微信小程序IDE(微信web开发者工具)安装、破解手册
1.IDE下载 微信web开发者工具,本人是用的windows 10 x64系统,用到以下两个版本的IDE安装工具与一个破解工具包: wechat_web_devtools_0.7.0_x64.exe ...
- Mac OS X 上编写 ASP.NET vNext (二) IDE配置
上一篇中介绍了如何在OS X上搭建.Net运行时.不过光有运行时还不够,还需要有一个好用的IDE,有了IDE的支持,OS X上的开发才称为可能. 和上篇类似,这里先列举出具体步骤,个人可以根据自己的情 ...
- 感悟 GNU C 以及将 Vim 打造成 C/C++ 的半自动化 IDE
C 语言在 Linux 系统中的重要性自然是无与伦比.不可替代,所以我写 Linux 江湖系列不可能不提 C 语言.C 语言是我的启蒙语言,感谢 C 语言带领我进入了程序世界.虽然现在不靠它吃饭,但是 ...
- Java 开发主流 IDE 环境体验
前言 本来应该继续从 Oracle 官网搬砖的,但是随着示例代码越来越复杂,涉及的类库越来越多,使用 Vim 写 Java 代码就很力不从心了,是时候上 IDE 了.我最熟悉的 IDE 环境是 Ecl ...
- [Intel Edison开发板] 03、Edison开发IDE入门及跑官方提供的DEMO
一.启动Eclipse爱迪生开发板IDE eclipse开发环境在iss-iot-win_03-14-16中,但是一定每次都是点bat脚本启动,否则就会少东西(windows->preferen ...
- 微信小程序(微信应用号)开发ide安装解决方法
这两天整个技术圈都炸锅了,微信小程序(微信应用号)发布内测,首批200家收到邀请,但是没受邀请的同学,也不用担心,下面介绍一下解决方法. 首先需要下载ide,昨天只需要下载0.9版本的编辑器并替换文件 ...
- Atitit.ide技术原理与实践attilax总结
Atitit.ide技术原理与实践attilax总结 1.1. 语法着色1 1.2. 智能提示1 1.3. 类成员outline..func list1 1.4. 类型推导(type inferenc ...
随机推荐
- Oracle 中 union 和union all 的简单使用说明
1.刚刚工作不久,经常接触oracle,但是对oracle很多东西都不是很熟.今天我们来了解一下union和union all的简单使用说明.Union(union all): 指令的目的是将两个 S ...
- LInux 查看环境变量
1. 显示环境变量HOME $ echo $HOME /home/redbooks 2. 设置一个新的环境变量hello $ export HELLO="Hello!" $ ech ...
- OpenCASCADE Conic to BSpline Curves-Parabola
OpenCASCADE Conic to BSpline Curves-Parabola eryar@163.com Abstract. Rational Bezier Curve can repre ...
- Python标准模块--logging
1 logging模块简介 logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级.日志保存路径.日志文件回滚等:相比print,具备如下优点: 可以通过设置不同 ...
- c#代码命名规则
c#代码命名规则 以前没有考虑过命名的这个问题,写起来就是随心所欲,想怎么搞就怎么搞,在但是代码越写越乱,连自己都搞不清楚了,不得不进行认真考虑.参考了一些文章,形成以下想法: 一. ...
- Web APi之HttpClient注意事项以及建议(四)
前言 之前对于用SelfHost来手动实现Web API的宿主模式,似乎不是太深入,所以本篇文章我们一起来讨论关于利用HttpClient来访问Web API上的资源来进行探讨以及注意相关事项,希望此 ...
- EntityFramework之摸索EF底层(八)
前言 此篇文章我将深入去摸索edmx中一些不为人知的东西,有时候我们需要知道Code First模型中一些存储以及映射的原理,个人觉得那是必要的也是有用的,因为很有可能SQL会出现一些其他问题,只有 ...
- Rust初步(六):在C#中使用Rust组件
上一篇文章,我们通过实例比较了一下C#和Rust的性能表现,应该说在Release模式下面,Rust进行计算密集型的运算还是有些比较明显的优势的.那么,我们有没有可能,在C#中做一些快速应用开发,而一 ...
- EntityFramework 7 Join Count LongCount 奇怪问题(已修复)
问题说明: 博客问题纪录 Use EF7, Linq Join Count is error EF7 Code Commit EF7 版本(注意 rc): 旧版本:"EntityFramew ...
- SPRING多个占位符配置文件解析源码研究--转
原文地址:http://www.cnphp6.com/archives/85639 Spring配置文件: <context:property-placeholder location=&quo ...