简述

其实今天说的内容不仅仅局限于Qt,在很多其它语言或者框架中也适用,那就是 - 用可视化工具or文本编辑器?拖or不拖?

如果有人问我喜欢脱or不脱?我会毫不犹豫地说不脱,因为我比较矜持O(∩_∩)O哈哈~!

其实刚接触Qt,我就习惯了手写代码,不喜欢用Designer。不喜欢并不代表不会,其实很熟练 - 因为很熟,所以注定是朋友O(∩_∩)O~。就和我一直很喜欢用Visual Studio一样,当然,Creator也是很棒的(博客中的分享也是基于Creator来讲解)。

喜欢并不能说明纯代码在任何情况下一定是最好的,也许对我来说是因为习惯了。这好比喜欢一个人,不仅仅喜欢TA的优点,还得包容TA的缺点,这就是喜欢!

你是否被鄙视过

项目开始时,组内开发成员过来碰了个面。“是用可视化编辑器,还是纯代码?”话音未落,就会有人一副鄙视的样子说当然是纯写代码了。然后自己闷头在想这是个什么情况。没有可视化编辑器的时候,一直想要可视化编辑器,现在有这么好的可视化编辑器为什么却非不用呢?

猿A-PK-猿B

猿A:能拖不拖的属于思想腐朽,不思进取。本身5分钟能搞定的事还用半小时撸代码玩,是病,得治。

猿B:装逼必须的,我有代码洁癖,自己写实现UI大部分都是手动,简单直观快捷,而且复杂关系的布局好调整。

猿A:如果光是一些简单的交互,界面也不复杂,这时候拖控件所能体现出来的效率是纯代码无法比拟的。

猿B:我很熟悉了,即使手写也可以很快搞定,拖控件那都是低级程序员干的事,大神怎么屑于做?

猿A:刚开始的时候,我不会手写,只能拖控件。而且,我们有可视化编辑器为啥还要手写,不是多此一举吗?

猿B:控件就这么几个,不能满足需求的时候怎么拖!手写的话可以自定义很多控件,而且很方便移植。

猿A:不要跟自己过不去,真的。人生苦短,何必呢?

猿B:纯代码可以让你熟悉整个流程的实现和细节,何乐而不为?

猿A:反正我喜欢拖,不管怎么说,我都要拖。拖。。拖。。。一拖到底!

猿B:沉默中。。。开始思考人生。

优略性

说实话,我觉得到底是拖控件还是纯代码还是要以项目复杂度为准。

以前我参与过百万行代码量的项目,这是一个什么概念?大家可以和自己最大的项目对比一下。访问量较大、安全性较高,当然,其中80%以上肯定是纯代码写的。很简单的道理,很多界面布局和交互从技术实现上,难度极大,光是用可视化编辑器肯定实现不了。

参与过几万行代码量的项目中,基本有很多是一些简单的交互,界面也不复杂,这时可视化编辑器所能体现出来的效率是纯代码无法比拟的。

但是,毫不夸张的说,一些简单的UI如果用可视化编辑器来做,一个优秀的程序猿用纯代码很快就可以完成。但是如果有一个工具可以提高开发效率,为什么不用呢?

何去何从

  • 可视化开发工具能实现的功能,代码都能实现。
  • 代码能够实现的功能,可视化开发工具不一定能实现。
  • 对于可视化开发工具能实现的功能,其开发效率要高于代码。

显然,如果存在一个所有功能都能用代码实现的项目。

a. 全部使用代码。

可行,效率低,纯代码思维,全键盘工作。

b. 全部用可视化工具。

不可行。

c. 使用可视化工具实现能实现的功能,剩下的使用代码。

可行,效率相对较高。

看来就选c了~~~,然而现实中哪有这么理想的情况,很多情况下你需要花时间仔细斟酌:这个效果我是要用可视化编辑器来做更好呢,还是纯代码来写更棒呢。。。可视化编辑器我点两下鼠标就搞定了。。。代码好像可以预留一些扩展来应对需求变化。。。O(∩_∩)O~,对大部分程序猿来说,此项操作比较耗时!

越拖越难过

歌曲:越拖越难过

歌手:╰☆一去 二三里`

说 说你为什麼 为什麼要拖

说你为何要拖动 别拖

求你别软弱 求你说出口 拖动的理由

但你却(还) 拖 拖 拖 拖到什麼时候

如果要拖却又为何停留

请你别 拖 拖 拖 大声的说出口

请你要拖就拖个快活

如果说你要拖 我不会留

我不去管以后

然后我们说清楚 一句话就够

如果说你要拖 我不会留

我不去管以后多麼痛 多麼的难过

别越拖越难过

然后连代码都不撸 继续沉默

连商量都没得说 为了什麼

然后跟别人说你其实还是不爱拖

就算了吧 Coding我来作

探讨

刚工作的时候,参与的第一个项目的时候,所有的界面都是用可视化编辑器设计的,当时不管三七二十一,先做完再说,根本没有时间考虑太多。但到了后期维护时,我把所有的UI都删了,全部用代码重写了一遍,虽然过程很痛苦,但是效果很喜人。因为我知道,这个阶段总有一天要经历!

拖or不拖,一直都备受争议,说说你的选择。。。

可视化PK纯代码的更多相关文章

  1. 【iOS开发】多屏尺的自动适配 AutoLayout (纯代码方式)

    关于AutoLayout,最早从iOS6开始引入使用.   主要功能是使用约束,对视图进行相对布局,以适应不同屏尺的变换.   网上大量的资料都在介绍xib和storyboard,如何使用AutoLa ...

  2. 使用Java纯代码实现MySQL的连接

      建立数据库 1. 点击连接-->MySQL: 输入连接名 . 主机名/IP地址 .端口 .用户名.密码(没有密码就省略),然后点击确定,建立的表格是灰色表示关闭状态,双击开启 2. 重新创建 ...

  3. swift 之 纯代码创建 cell

    初学swift 但是网上只有很多swift用xib创建的cell,就算是有也不是我想要的.今天自己弄了一个不用xib纯代码写的,来上代码 博客地址: https://github.com/liguol ...

  4. Masonry -- 使用纯代码进行iOS应用的autolayout自适应布局

    简介 简化iOS应用使用纯代码机型自适应布局的工作,使用一种简洁高效的语法替代NSLayoutConstraints. 项目主页: Masonry 最新示例: 点击下载 项目简议: 如果再看到关于纯代 ...

  5. ios开发UI篇—使用纯代码自定义UItableviewcell实现一个简单的微博界面布局

    本文转自 :http://www.cnblogs.com/wendingding/p/3761730.html ios开发UI篇—使用纯代码自定义UItableviewcell实现一个简单的微博界面布 ...

  6. iOS开发小技巧--纯代码自定义cell

    纯代码自定义cell 自定义cell的步骤(每个cell的高度不一样,每个cell里面显示的内容也不一样) 1.新建一个继承自UITableViewCell的子类 2.在initWithStyle:方 ...

  7. ios - 纯代码创建collectionView

    开始考虑好一点点时间,因为一般的都是用xib,或者storyboard来写的.这次用纯代码...废话较多请看 首先把storyboard干掉,工程里面的main干掉 由于干掉了storyboard则启 ...

  8. IOS之UI--小实例项目--添加商品和商品名(纯代码终结版)

    前言:这个小实例项目是完完全全以MJ视频传授的优化方案一步一个思路从零开始敲出代码的,而且每一步都有思路,都有逻辑所以然.敲代码讲究思路,我个人不建议记忆太多东西,反正我记性很差的. 小贴士:文章末尾 ...

  9. iOS高仿app源码:纯代码打造高仿优质《内涵段子》

    iOS高仿app源码:纯代码打造高仿优质<内涵段子>收藏下来 字数1950 阅读4999 评论173 喜欢133 Github 地址 https://github.com/Charlesy ...

随机推荐

  1. asp.net 中给gridview添加自动序号

    第一种方式,直接在Aspx页面GridView模板列中.这种的缺点是到第二页分页时又重新开始了. 代码如下: <asp:TemplateField HeaderText="序号&quo ...

  2. ubuntu下搭建nfs,tftp,安装qt等一些基本的启动bootloader前的服务

    之前做三星的6410是在红帽下做的,现在公司给了个TI的AM3359的开发板,开发环境是ubuntu10-04.这周经过半天的研究对比,终于算是搭好tftp下载的一些服务了. [防火墙] sudo u ...

  3. ffmpeg 打开视频流太慢(上)

    新版ffmpeg打开网络视频流需要调用avformat_find_stream_info方法,很多朋友会发现调用改方法耗费很多时间造成打开视频流太慢.有两个参数可以减少avformat_find_st ...

  4. 用protobuf编译时报错:protoc: error while loading shared libraries: libprotoc.so.9: cannot open shared object file: No such file or directory 的解决方法

    解决办法:export LD_LIBRARY_PATH=/usr/local/lib

  5. mysql 执行流程

    mysql 执行流程 我们可以人为的把mysql 的主要功能分为如下模块. 1.初始化模块 mysql启动的时候执行初始化工作,如读取配置文件,分配一些全局变量(sql_model,catch buf ...

  6. SVN--下载、安装VisualSVN server 服务端和 TortoiseSVN客户端

    前言: 在http://www.cnblogs.com/xiaobaihome/archive/2012/03/20/2407610.html的博客中已经很详细地介绍了SVN的服务器--VisualS ...

  7. Tower of Hanoi问题

    [问题描述] 有A, B, C三个塔座,A上套有n个直径不同的圆 盘,按直径从小到大叠放,形如宝塔,编号1, 2, 3 … n. 要求将n个圆盘从A移到C,叠放顺序不变,移动过程中遵循 下列原则: w ...

  8. [设计模式] 4 原型模式 prototype

    设计模式:可复用面向对象软件的基础>(DP)本文介绍原型模式和模板方法模式的实现.首先介绍原型模式,然后引出模板方法模式. DP书上的定义为:用原型实例指定创建对象的种类,并且通过拷贝这些原型创 ...

  9. oracle sql 性能 优化

    目录[-] (1) 选择最有效率的表名顺序(只在基于规则的优化器中有效):ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table ...

  10. jquery 父页面 子页面 同级页面 调用

    项目中用到  代码 ,先 展示 ,以便以后用到,直接看下就会明白. var li_divs = parent.$("#servicelist")[0].contentWindow. ...