初衷

重构和复用是软件的一个古老话题。

在日常的软件项目开发的过程序中,如何保证团队代码的强健,同时在不断变化的需过程中最大限度的保障代码的一致性,是项目开发中的难以控制的,我们可以借助各种源码管理和标准工作流程制度和增加各种岗位人手来进行控制,但随着时间的推移,由于各种水平的开发人员,加入各种藕合的非藕合的功能,代码变得难以管理。

但市场和客户对我们的软件总是看起来让人不可理喻,当我们信心满满的把软件产品交付给我们客户时依然要应对各种指责,有的需求反复,“不,这完全没有达到我们当时的需求,和我想的不一样”,在不断的变化,不断的反复,代码被修改得面目全非,团队陷于无助之中。

从实际的管理中,我们不能完全消除代码的藕合、代码的混乱,每一个程序员心中都有自己的江湖,所谓“文无第二、武无第一”,每个程序员都会认为自己的代码是没有任何问题的。作为项目的管理者,只能最大限度的降低程序人员的人为因素来的变化,让标准化的代码在项目占有越大的份量,如果这是标准代码是由工具产生,那么在需求发生变化时,重购代码也变得非常轻松且易控。

如果在构建项目之初的与客户需求交流中,以工具来生成标准代码并因此为用户快速构建一个可见的Demo,那么项目需求就会变得更加明确、易控。尽管这与最终交付的产品还有很大的差距,但仍然可以减少客户需求的明确性。如果我们把可控代码与非控代码在生产时进行分离,那么当后期客户需求变化时,仍然可以让工具重构变化的需求。

让技术优秀的人员构建基础库,变把日常开发中用的常用功能模板化,这样,框架-工具-模板,就会在团队中成为技术、经验的容器,让再开发变得更加容易、可控、稳定。我们不需要把大把的时化在那些重复且繁重的属性代码编写,并不断的进行各种属性的拷贝,在需求变更时,又化大量时间云矫正。我们应该让更多时间去与客户交流业务需求,编写强健的应用设计上,那么我们应该使用正确的框架、同时逐渐累积可复用的功能支持库,并使功能模块低耦合,使用代码工具将各种功能调用模板化,这样不仅保证了编码上的一至性,同时最大限度降低编码的劳动强度,减少重复简单代码所消耗宝贵的时间,也能使组织和团队在协调技术的一至上化更少的时间和金钱的投入。

一个好的架构能应对不同的应用需求,但是没有一个可行的,万能的架构,不然我没在这里就不用讨论架构的问题了。这里不仅是代码的问题,随着时间的推移,各种编程技术的进步,让一些原本复杂的问题变得简单,功能更容易实现,而客户需求总是贪婪的,所要求的更加复杂,使得新的需求产生,技术实现同样的需要更多的精力和时间,就因为如此,我们不应该同时也没必要把时间和精力耗在无尽的重构中,而应该让编写代码更加工具化、模板化换个比较时尚的词,更加智能化。

ATK 系列说明

AtkFrame

  • 其核心是:Atk.DataPortal
  • 框架业务基础类型;
  • 数据门户;
  • 业务操作简化;
  • 业务操作权限的处理;

二、CodeToolSolution

实现目标:

  • 快实现基于Atk.DataPortal为基础框架的业务代码;
  • 通过自定义模板,生成非标准的业务代码

三、 SqlRepoEx

轻型的ORM处理库,基于开源的SqlRepo库的二次开发;

  • 解决前端为强类型操作,数据操作时为基本的SQL语句之间的无缝转换;
  • 减少数据层操作的复杂度;
  • 简化分布式服务时数据操作;

四、ExpressionTurn

Lambda表达式转SQL语句类库

  • 本功能类库主要提供给代码中使用Lambda表达式,后需转成SQL的条件语句这一需求;
  • 解决条件状态下Lambda拼凑条件语句;
  • 本类库不能解析Linq语句、不能解析SQL中的Select部分。但SqlRepoEx解决了这个问题

以上各库、工具会在接下的博客中进行更细仔说明。

---------------------------------------

ATK

1、一个完整支持分布式服务框架;

2、代码生成工具,可快速生成基于服务框架的应用;

3、其他支持库

4、完整代码可在GitHub的https://github.com/azthinker ;开源中国 https://gitee.com/azthinker

目标:使应用开发,低代码、高效率、快迭代

有兴趣的请在QQ群中参与讨论、联系作者  QQ群名称:ATK高效开发 ,QQ群号:747049962

也可发邮件至:azthinker@sina.com

Demo中的数据库、编译好的代码工具链接:https://pan.baidu.com/s/1B9RQm7_-SFyhLb_HLIGs0w 密码:85q6

ATK Demo使用的数据库 : https://download.csdn.net/download/xftyyyyb/10675497

ATK自动代码工具 :https://download.csdn.net/download/xftyyyyb/10675490

ATK系列库说明的更多相关文章

  1. ATK系列库介绍

    1.一个完整支持分布式服务框架: 2.代码生成工具,可快速生成基于服务框架的应用: 3.其他支持库 4.完整代码见https://github.com/azthinker 目标:使应用开发,低代码.高 ...

  2. STM32入门系列-库目录及文件介绍

    已经介绍了过了CMSIS标准,ST公司按照这个标准设计了一套基于STM32F10x的固件库,我们可以直接在ST公司的官网进行下载,现在给大家STM32最新固件库v3.5,在网盘上给大家提供了下载包,链 ...

  3. STM32入门系列-库帮助文档使用

    在前面文件夹介绍时,提到了stm32f10x_stdperiph_lib_um.chm文件,此文件是库函数使用帮助文档,可以直接打开如下图. 因为STM32库函数非常多,我们不可能把所有的外设函数都记 ...

  4. 教程:关于如何通过Maven仓库安装Spire系列的 Java产品

    Spire系列库中已发布的Java产品目前有三个,即Spire.PDF for Java.Spire.Presentation for Java.Spire.Barcode for Java.使用该J ...

  5. ATK 设计框架 之 Atk.CustomExpression

    在ATK-DataPortal框架中的xxxHandel中常用到的一种类型,形如: 1.protected virtual D ItemHandle(D item, Func<E, E> ...

  6. Cookiecutter: 更好的项目模板工具:(1)简介及可用资源汇总

    原文档地址:https://cookiecutter.readthedocs.io/en/latest/ 本系列只介绍cookiecutter的基础使用,而且会删除与功能使用无关的部分.深度使用及了解 ...

  7. 部分rpm包总结描述

    acl-2.2.51-15.el7.x86_64 Commands for Manipulating POSIX(可移植操作系统接口 of unix) Access Control Lists.有ge ...

  8. Android Support Library

    title: Android Support Library tags: Support Library,支持库 grammar_cjkRuby: true --- DATE: 2016-5-13. ...

  9. MVVM架构的一次实践,重写iOS头条客户端

    前言: 一个iOS头条APP,使用MVVM架构实现,代码中有注释,封装了AFN网络请求,解媾代码,使用起来非常方便.用最经典的TableView展示,后续不断更新,喜欢就star或fork一下,有问题 ...

随机推荐

  1. 初学Hadoop之计算TF-IDF值

    1.词频 TF(term frequency)词频,就是该分词在该文档中出现的频率,算法是:(该分词在该文档出现的次数)/(该文档分词的总数),这个值越大表示这个词越重要,即权重就越大. 例如:一篇文 ...

  2. git每次提交都输入密码

    打开gitbash执行即可 git config --global credential.helper store 长期储存密码,因为git默认是不储存密码的,不执行这条命令的话每次更新代码,或者提交 ...

  3. ControlTemplate 中 Bingding 附加属性时需要加入 Path

    <Style TargetType="{x:Type GroupBox}" BasedOn="{StaticResource MaterialDesignGroup ...

  4. H5插入视频兼容主浏览器

    插入视频的方法有很多种,但是有一些方法不兼容. 方法1:DW插入视频利用DW插入的视频为flv格式,操作较简单,但是代码复杂,需要浏览器支持flash插件:火狐浏览器需要手动下载flash插件,比较麻 ...

  5. 解决C#调试ArcMap断点不能停的问题

    问题出在ArcMap bin\ArcMap.exe.config 默认是不支持NET4.0 <startup> <!--<supportedRuntime version=&q ...

  6. Business Component(BC)和Business Object(BO)

    Siebel应用架构的一个成功的地方就是在应用里引入了BC,BO的概念,从而使得几千张关系数据表能够按照业务的含义组织成业务对象,对于业务人员而言具有了业务上的含义,而不仅仅是从技术人员的观点来对待数 ...

  7. SASS初体验

    SASS初体验 标签(空格分隔): sass scss css 1. 编译环境 需要安装Ruby,之后需要打开Start Command Prompt with Ruby运行 gem install ...

  8. 增加C盘空间大小

    随着我们使用电脑的时间越来越久,电脑C盘的空间会出现不够用的情况,这时我们需要的就是增加C盘的大小,基本上有两种方式 1.通过系统自带的磁盘管理(有可能没法操作,主要介绍第二种) 2.通过分区软件进行 ...

  9. pip 安装下载好的tensorflow

    pip --default-timeout=100 install C:\Users\Administrator\Downloads\tensorflow-1.12.0-cp37-cp37m-win_ ...

  10. 作为软件技术人员建立自己的git账户并保存资料的重要性

    日常生活中,当修改并保存了一个文件,所得到的就是此文件的最新版本,假若今后因某一问题需要用到原来文件,可是很多情况下,这种修改是不可逆的.你修改完之后,无法回到你修改前的样子.为了避免这种情况,有的人 ...