Firedac集成在Delphi中已经有几个版本了,偶尔也拖到Form上试着用用,虽然知道Firedac有可能是最终的(或很很长时间内)数据访问技术,可一直不能接受它,其中最大的原因就是过于“复杂” -- 虽然复杂也意味着功能更强大。

就个人的感觉而言,一个好的软件系统,【基础】是好的设计,没有好的设计,意味着软件的生命不会长久,只要不是”一次性“的软件,必然会有升级和维护。

重构就是一种非常好方式,简单的来说,提炼方法,提炼类和接口等等。而针对RAD开发来说,是需要一定的“勇气”的,因为DELPHI实在是太易使用了,基本上设置一些属性,在关键的事件中写写代码就OK了。也正是太容易了,所以很多时候,基本上没有设计。

很早以前,就看到过有人说不用数据感知的组件了,很长时间里,一直觉得不用数据感知组件是本末倒置,舍近求远。(自己也增改造了不少感知控件)

随着时间流失,自己开发的软件积累了不少。每次的改动,都觉得很“烂“ (虽然技巧不少),这里的”烂“,主要是指”结构“烂了,感觉调着调着,真是伤筋动骨啊! ...省略千字...

软件的维护,绝对不是靠着修改N个属性就OK了的。依赖属性越多,就越是铁板一块。而维护的人,也不是靠组件和属性就能深刻的理解业务的,或许写“不需要注释的代码”是不易的,但这是应该追求的。现代盖个巨大的高层建筑很容易,也很快速,但这是在有图纸,有设计的前提下的。

RAD带便利的同时,让人们忽略了设计??还是人太懒了呢? Firedac功能越强大,封装的功能很多,我觉得越容易让人依赖于他的属性和功能,尤其是C/S开发上。当然并不是说这些功能不需要,但应该粒度上更细一些,或者单独封装出来,最终让开发者用组合的方式来使用。我个人喜欢dbx的原因就是非常简单,数据的处理必须要自己代码来控制,提炼数据层接口,提炼业务代码,最终用代码描述业务功能。

新的一年马上就要来临了,作为2014年最后的一点想法,感觉有些勿忙和凌乱,有如是不知所言。

关于Firedac的一点看法的更多相关文章

  1. 关于js的回调函数的一点看法

    算了一下又有好几个月没写博客了,最近在忙公司android的项目,所以也就很少抽时间来写些东西了.刚闲下来,我就翻了翻之前看的东西.做了android之后更加感觉到手机端开发的重要性,现在做nativ ...

  2. 关于STM32的ST官方的库的一点看法

    标题确实很别扭,因为我现在用这个库也很别扭. 在不久之前,一直有个讨论的话题:STM32开发是用库还是用寄存器? 很多人的结论是不需要讨论! 但是,今天我想说下我的看法. 首先,我还是一个菜鸟,对库对 ...

  3. 关于DBX Framewrok 和 FireDac 的一点随笔

    DBX Framework (dbExpress Framework )用了很长的时间, 一直觉得简单好用,但今天需要连MySQL5.7, 发现已经没办法用了,感觉是时候放弃用它来作数据连接了. 以前 ...

  4. 关于SQLSERVER联合查询一点看法

    首先看一段代码 这个数据库表我就不发了,这段代码的意思是:查询Book表中大于该类图书价格平均值的图书信息, 先看()里的内容,我一个表起了两个别名,让这个表的相同的id相等,查出平均分,然后再看() ...

  5. ASP.NET中数据邦定效率问题的一点看法 - 转载(自由的天空)

    在 做Asp.NET开发的时候经常用到DataList.Repeater等,用这些控件的时候经常用到数据邦定,很多程序员都是按照MS提供的方 法<%#DataBinder.Eval(Contai ...

  6. hibernate结合使用gson转换json中一点看法

    转发请注明出处:http://www.cnblogs.com/shizhongtao/p/3680216.html 在前后台的交互中,经常需要把bean对象与xml或者json,这里就把自己以前遇到的 ...

  7. 关于jquery ID选择器的一点看法

    最近看到一道前端面试题: 请优化selector写法:$(".foo div#bar:eq(0)") 我给出的答案会是: 1. $("#bar") 2.  $( ...

  8. yzoi1109&&viojs1042最小步数的一点看法——回文数

    Description - 问题描述 有一天,雄霸传授本人风神腿法第一式:捕风捉影..............的步法(弟子一:堂主,你大喘气呀.风:你给我闭嘴.)捕风捉影的关键是换气(换不好就会大喘气 ...

  9. 自己对Java的一点看法

    作为一个理论性比较强的学生,谈一下这段时间对java以及对程序设计的理解 java相对于其它语言有几个特点,一个是面向对象,一个是强类型           首先谈谈面向对象,关于类和对象,这个一定要 ...

随机推荐

  1. apache rewrite 规则

    啥是虚拟主机呢?就是说把你自己的本地的开发的机子变成一个虚拟域名,比如:你在开发pptv下面的一个项目 127.0.0.1/pptv_trunk,你想把自己的机器域名变成www.pptv.com.那么 ...

  2. windows下利用nodejs压缩.min文件

    利用nodejs中的npm工具,压缩文件,必须在node环境下 压缩js文件 1.在全局中安装uglify-js模块 npm install uglify-js -g 2.可以直接使用uglifyjs ...

  3. 2016ICPC-大连 To begin or not to begin (简单思维)

    A box contains black balls and a single red ball. Alice and Bob draw balls from this box without rep ...

  4. 性能测试-3.Fiddler进行弱网测试

    fiddler模拟限速的原理(原文地址) 我们可以通过fiddler来模拟限速,因为fiddler本来就是个代理,它提供了客户端请求前和服务器响应前的回调接口,我们可以在这些接口里 面自定义一些逻辑. ...

  5. 适配手机端之 rem

    (function() { var psdWidth = 1080, maxRem = 100, ch = document.documentElement.clientHeight || docum ...

  6. phpcms 用户修改头像

    做的项目用户的头像是存在ucenter里面,phpcms通过phpsso这个单点登录系统? 具体的我也不清楚,phpcms自带的v9_member表里没有存放用户头像的字段,如果需要修改,就要修改uc ...

  7. 【leetcode】70-ClimbingStairs

    problem ClimbingStairs 题意: 爬台阶问题,每次可以爬1个或者两个台阶,问如果有n个台阶,可以有多少种方法爬到顶部? 解析: 对于n=1,有一种方法:n=2,有两种方法: 对于n ...

  8. 纯C:AES256

    尼玛的WordPress把格式全搞乱了 aes256.h #ifndef _AES256_H_ #define _AES256_H_ #include <stdio.h> #include ...

  9. MergeKLists

    public ListNode mergeKLists(ListNode[] lists) { if(lists==null||lists.length==0) return null; Priori ...

  10. EasyUI datagrid 查询、设置、提交 三

    查询 $(“#grid”).datagrid(“load”,{  a: $('#id').val(),b :$('#text').val() });   {} 里面可以 是序列化参数 $(“#grid ...